電子信箱 service [at] bituzi.com
幣圖誌首頁 facebook粉絲團 google plus google plus

程式獵人知識庫-如何Debug程式碼



上星期我們介紹了如何找出你程式錯誤的方法
雖然覺得有點笨拙,但是卻很實在,
因為你可以看到所有你想看到的數據,
不過當你想從K線圖觀察你的關鍵數據時該怎麼辦?
畢竟搭配K線圖來看才能夠快速驗證你的想法對不對。
今天我們就來介紹另一種可以在K線圖上呈現的方式。



TS中的Indicator、ShowMe、PaintBar等都可以在K線圖上畫出圖形,
大家也可以從內建的程式稍微了解他們是怎麼在K線圖上畫出圖形,
但是Signal也是可以把一些記號跟圖形標記出來警示或提示你,
所以今天獵人主要要介紹兩個指令給大家,方便大家作回測使用。

假設你想計算出兩條直線作為你進場的壓力跟支撐線,
但是你的算法可能不是很簡單,或是需要滿足一些濾網後才會出現,
那這時候你要怎麼確定實際上程式跑出來的線是不是你要的線呢?
這時候可以在signal裡面加入一個指標-t1_new,這個指令要怎麼使用呢?
舉例來說: TL_New(date,0845,opend(0),date,1345,opend(0))
這時候K線圖上會出現什麼呢?如下圖所示:



大家可以發現K線圖上出現一條從開盤到收盤的紅線,
而這條紅線的位置就是開盤價的位置。
所以 TL_New(date,0845,opend(0),date,1345,opend(0))簡單來說,
第一個date就是線的起始日期,0845是起始時間,opend(0)是起始價格;
第二個date就是線的結束日期,1345是結束時間,opend(0)是結束價格。
這邊獵人介紹一個應用的方法,一般來說你的程式除了進場邏輯外,
還會添加一些濾網,但是K線價格再跑,你怎麼知道到底滿足了沒。
當然,如果你接即時資料源在跑的時候,TS本身就會跳出一個視窗來提醒你,
不過當你在做回測的時候並不會出現,如果濾網一滿足後,
下根K棒就進場的話,這你就馬上可以看到,就沒什麼影響。
但是如果下根K棒沒有突破價格進場的話,那也許已經滿足條件了,
只是你並不知道,所以有個方法可以讓你知道,
到底哪些K棒是有滿足你進場條件的設定,
這樣讓你讓你了解到你的策略到底在何時滿足條件,
是跟你想像中的一樣嗎?方便你去做調整。
當然他用法變化也很多,就看你怎麼使用了。
上述的程式寫法如下:



也就是說,當K線滿足你所有進場條件後,
K線圖會呈現出下面紅色線條在你的K棒高點上面從現在到下5分鐘的位置。




接下來要介紹另一個指令,就是text_new指令,
這個指令主要是當K線圖上出現滿足你設定的條件時,
他可以在圖上出現你設定的文字或記號來提醒你,
用法如下:



這樣他就會在你滿足進場條件後,在K棒上面15點的地方出現”@”符號,
所以 text_new(date,time,high+15,"@")中的date是你想要讓它出現的日期,
Time是出現時間,high+15是你要它出現的位置,
最後就是你想要它出現的符號或是文字,切記一定要加上兩個 ” 。
所以就會像下圖一樣出現@,



其實舉這個例子它的效果很類似上面TL_New後來舉的例子,
不過大家要注意一點,當你在策略中加入這些指令,
都有可能會拖累你程式的計算速度,所以建議在回測時使用就好。
所以獵人在這邊提供了這兩個指令幫助你更了解你的程式,
希望對大家有些幫助,也能更快速找出程式的問題,
避免沒注意到的漏洞所帶來的傷害。

0 意見: