2013年12月24日 星期二

㊣ 程式碼自動產生器 (介紹)

EasyTrader ArtNo 080
通常在交易策略開發的過程,在主要進場規則決定後,接下來就是透過歷史數據的回測來觀察是否符合設計時的目標 ,如果不合適,那麼就要重新選擇新的規則 ;如果是有機會改善,則會透過增加濾網(另一種或多種不同型式的條件),參數調整來讓交易模型的表現更好,可是這樣的學習曲線是漫長費時的!

程式碼自動產生器的想法源自 Genetic Algorithm (基因演算法)

1. 首先選取元素 : 例如 PriceLeft[Mabr] > PriceRight[Nbar] 這個規則包含了 5個需要的元素
a. 運算符號左邊的價格 PriceLeft ,它可以是 Open/High/Low/Close 的任一個 ;
b. 左邊價格的參考位置 Mbar , 是當根K棒或是往前引用第 M 根
c. 運算符號: 是[大於] ,[等於] ,還是[小於]
d. 運算符號右邊的價格 PriceRight ,它可以是 Open/High/Low/Close 的任一個 ;
e. 右邊價格的參考位置 Nbar , 是當根K棒或是往前引用第 N 根
這樣完成了一個規則或是一組條件

2.實務上我們通常需要一組以上的規則(或條件)組合成一個進出場的策略,所以就會需要類似的運算規則,不過這通常需要一些技術與經驗
3.將完成的策略作歷史資料回測,確認是否符合設定的績效,在這個步驟裡主要是針對參數 Mbar,Nbar 作最佳化,並非對已固定的 PriceLeft , 運算符號 ([大於] ,[等於] ,[小於]) ,PriceRight 作最佳化

4.重覆步驟 1~3 直到有一組以上滿意的參數

程式碼自動產生器與傳統程式策略開發的差異在於以下幾項都是由電腦隨機產生

A. 步驟1的五個基本元素
B. 步驟2的進出場所需的規則(條件)組數
在計算完成符合設定目標的規則後,自動將該組程式碼輸出到成程式指定路徑下的檔案

我用實際執行圖片說明







在執行過程中,符合設定目標的程式碼自動輸出到指定路徑下


MS168_12231345.txt 檔案內容為策略程式碼,讀者可以看到
1.每一個 System No 就代表一個完整的策略程式碼 , 以及它的基本回測資訊
2.不同 System No 內的策略所包含的規則組數與 元素是不同的


MS168_CodeRpt.txt 檔案內容為所有輸出策略的摘要報告(類似讀者熟悉的回測摘要,也就是上個檔案拿掉程式碼的資料匯總 )

最後再將輸出的程式碼存成訊號檔編譯後 ,使用與原來測試相同的週期與參數設定就可以使用






這是原型碼產生的範例輸出檔連結

MS168_12231345.txt
MS168_12231345(當沖).txt
_MS168_12231345(10min留倉).txt
_MS168_12231345(當沖).txt
_MS168_12231345(電子期留倉).txt
_MS168_12231345(電子當沖).txt

1.程式碼自動產生器可在不同的商品及商品週期狀況下產生符合合理目標設定的程式碼,近日即將推出單純以價格為元素的產生器的原型碼(使用TS2000i 軟體撰寫 )!!
2.當您離開電腦時, 將 SystemNo 參數作 1~10000 的設定 ,回座位時根據績效目標的鬆緊設定,就會有一定數量的不同策略程式碼等待您檢閱
3.雖是原型碼也會偶有佳作,跑出勝率超過 70 , PF > 2 的策略出來
4.原型碼的執行是從超過百萬組的組合中,挑出 SystemNo的組數去篩選符合設定的策略組合 ,所以每次都設定 1~10000 都可以跑出不同的策略

Coming Soon ....

2 則留言:

  1. 請教下,這個程式碼自動產生器,是什麼名稱? 那邊可以購買?

    回覆刪除
  2. 這是我的 email : easytrader788@gmail.com

    回覆刪除