2015年8月25日 星期二

股票期貨歷史回測--驗證自己的交易策略

    想要做程式自動交易, 有了資料源之後, 第二步就是交易策略. 交易策略是需要先被驗證的, 畢竟誰都不希望一個賠錢的策略實際的被執行(應該大家都不希望吧...), 這時候我們要談的主角就跳出來了, 用歷史回測的方式佐證自己的交易策略, 確認是獲利的再實際自動交易.
 
    今天介紹的是股票期貨日K資料歷史回測, 跟你說一個秘密喔, 會特別把交易策略程式位置點出來, 讓你自己修改變成你自己的交易策略歷史回測工具, 請耐心看下去~~
 
    首先是環境, 掌握先機要求必須要先登入才能使用SDK歷史回測功能, 且會員權限必須是認證權限. 下載掌握先機Windows版本. 免費註冊掌握先機. 手機認證後全功能免費使用一個月.
 
    接下來請大家服用今天的餐點, 股票期貨日K歷史回測執行檔, 執行檔要放到掌握先機安裝目錄下才能正常執行(64位元預設安裝目錄"C:\Program Files (x86)\U-TOUTZH", 32位元預設安裝目錄"C:\Program Files\U-TOUTZH"). 先吃菜, 後面再講解 怎麼做菜.

1.要歷史回測當然要先有歷史資料, 掌握先機為了保證策略私密性, 設計了將資料下載到本機做歷史回測的模式, 進入 設定->設定
 
2.勾選 資料在地化
3.點選 是, 確認下載 在地化資料
4.下載資訊說明, 點擊 確定
5.接下來會帶入預設的瀏覽器下載畫面, 每個人的畫面不盡相同, 只有一個重點, 把檔案下載回來就對了~~ 下面是IE的下載畫面
 
 
6.解析剛下載回來的資料, 選擇剛下載回來的檔案
8.等待解析完成, 大約1分鐘, 然後會自動詢問是否更新到最新資料, 選 是
9.恭喜你已經擁有近30年的歷史資料 (也還好吧..), 點擊確定離開設定視窗 然後點擊離開關閉掌握先機
10開啟 股票期貨日K回測執行檔, 點擊 登入SDK 再點擊 歷史回測
11.跑出歷史回測結果, 過程約30秒 (一堆紅字表示策略獲利)

    照過來照過來, 接下來才是本篇重點, 趕緊回神不要轉台~~

    如何套入自己的策略呢??? 先下載股票期貨日K歷史回測原始碼 (使用VS 2010, win32開發)(解開後整個目錄放到掌握先機安裝目錄下)
   
在InitDialog.cpp 611行附近, 是買進停利停損策略程式碼位置
 
  //買進賣出停損判斷
  //買進
  if(idstk.sdkc_stk.fStockEnd < 10)
  {
   count = BuyHandle(&idstk.sdkc_stk, count, 99999999, &fTempCost, &fMaxCost, pFastArray);
  }
  //處理賣出與停損
  if(count > 0)
  {//有買進資料
   int hh = GetFastArray(pFastArray, idstk.sdkc_stk.iStockCompanyNo);
   if(hh >= 0)
   {//有在FastArray內
    int gg = pFastArray[idstk.sdkc_stk.iStockCompanyNo][hh];
    if(!MSHTInfo[gg].bSaleOut)
    {//未賣出
     if((MSHTInfo[gg].fBuyValue*2) <= idstk.sdkc_stk.fStockEnd)
     {//兩倍獲利, 停利
      SaleHandle(&idstk.sdkc_stk, pFastArray, &fTempCost);
     }
     if((MSHTInfo[gg].fBuyValue*0.5) >= idstk.sdkc_stk.fStockEnd)
     {//虧損50%, 停損
      SaleHandle(&idstk.sdkc_stk, pFastArray, &fTempCost);
     }
    }
   }
  }

 
範例的策略是簡單型的
買進策略: 股價小於10買進
停利策略: 兩倍獲利停利
停損策略: 虧損50%停損

前文一堆, 重點一點點. 就像人生, 美好總是短短一瞬間 (喂~ 回題了~)
 
你可以自己修改策略模組這個區塊, 回測自己的策略, 祝大家早日找到自己的獲利策略, 報告完畢~~ (之後會再撰文介紹期貨選擇權Tick資料歷史回測, 請期待)
 

2 則留言:

  1. 目前選擇權日K資料尚未補上, 補上就可以做選擇權日K歷史回測, 待補上再通知大家

    回覆刪除