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


程式獵人知識庫-如何Debug程式,找出你程式錯誤的方法



不知道大家有沒有這樣的經驗,
常常要把自己腦中的交易想法寫成程式語言時,
結果程式跑出來的結果跟自己想像的有差距,
為什麼會這樣呢?
我們要怎麼去找出問題在哪?
今天就來告訴大家一個Debug程式的方法。



也許有蠻多人都會使用這種方法了,
不過為了剛接觸程式交易的人著想,
獵人還是必須要把Debug程式的方法在這邊說明一下。
一般來說,如果你的程式很簡單,
比如只有high、low、open、close等這些簡單的函數組成,
那你的程式大概不會有什麼太大的問題。
但是當你程式越寫越好,程度越來越高之後,
你所使用的程式語言可能會越來越深,
所以你也不見得完全了解那些內建的函數的用法,
也許函數所跑出來的結果跟你想像的不一樣。
甚至是你可能用了很多if迴圈或是for迴圈等,
有時候太複雜你可能根本無法知道最後跑出來的值是不是你想要的,
所以這時候我們該怎麼確認我們所寫的程式是否跟我們想像的一樣,
接下來就來告訴大家怎麼Debug。

這邊介紹一個指令print,
這個指令在TS跟MC都是一樣可以使用的,
其實print使用方式很簡單,
如果你想輸出每根K棒的日期、時間、開高低收的話,
寫法就是print(date,time,open,high,low,close);
這樣他就會把數據顯示在Debug視窗,
現在大家終於知道debug視窗在做什麼了。



所以當你想要使用一個你不熟悉的函數時,
你可能會使用程式內建的函數說明,
但是TS的說明都是英文的,你可能無法確切掌握到要點,
所以你就可以利用print這個方法把你函數值輸出,
然後去看看K線圖比較,就大概可以猜出那個函數有什麼功用,
它裡面所要填的參數值,該怎麼填才正確。

不過在debug視窗看可能不太方便,
Print指令還可以把數據輸出到檔案去,
這樣你看起來可能比較方便,指令如下:
print(file("C:\Documents and Settings\xxxxxx\桌面\test.txt"),date,time,open,high,low,close);
這樣easylanguage就會把你想輸出的值存到桌面的test筆記本中,
當然如果你想存成excel檔的話,把txt改成xls就可以了,
不過存成excel檔後,你開啟來會發現他是存成文字檔,
所以你必須要用資料剖析把每個欄位給分開來。

其實我覺得print的功用不只是可以拿來debug,
我認為拿來做研究野蠻好用的。
比如說:你想看看連續四天都是黑K棒的機率有多少?
如果你沒有TS或是MC這些交易軟體時,
你可能就要把資料通通弄到excel上,
然後在excel上面東搞西搞,還不見得弄得出來。
但是我們現在有好用的交易軟體,當然要來好好使用,
這時候你就可以先在程式裡面寫一個變數來儲存連續四根黑K的情況,



把檔案打開如下:



在上面的指令我加入了”,”進去,
這樣你用excel打開檔案後,方便使用資料剖析。
資料裡的第一行是日期1111020是表示20111020,
那9991020就表示是19991020。
第二行的0或1是表示是否滿足連續四天收黑K,
如果是就會出現1,不是就是0。
最後一行就是方便你統計總共有幾天,
然後你把第二行加總除上第三行總和就可以得到機率值了。
所以一套交易工具,可能大家使用的方式不同,
在這邊獵人提供自己的一個經驗給大家,
讓大家可以有更多做研究的方式。

0 意見: