廣告贊助

  以下以「LvstgVcp交易系統」為例說明如何利用ssdp物件開發一個交易系統。

參考網頁

  ■ SSDP-搭配參數管理的SSD

  ■ LvstgVcp交易系統

  ■ 程式下載:lvstgvcp.zip(Google雲端硬碟)

交易系統參數管理

1. 進入網頁:

  http://localhost/BT/index.php,點選下拉式功能表「交易系統參數設定」 

1050229-1  

2. 進入以下畫面後按「新增」

  此時會複製最後一筆紀錄。注意:sys+sybsys必須為唯一。

1050229-2  

3. 另外一種新增的方法--使用SQL

  如果要複製特定系統的參數來修改,可以使用SQL指令,如下為 copy lvstg,1 系統的參數到lvstgvcp,1。Copy 完後使用編輯功能進入修改(點選一下欲編輯之行)。

  /sql/backtesting/m_para.sql

  insert into bt_paraname select 'lvstgvcp','1',p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25 from bt_paraname where sys='lvstg' and subsys='1'

4. 編輯與設計參數

  p1~p13 是固定參數,無法更改。

  p14~p19是Copy 自 lvstg大量強勢股系統,我們打算使用相同的選股方式,只是在「進場篩選」方式有所不同,所以增加p20~p22三個參數。

  以下的「=」之後可以做參數的簡短說明。

  RISE_RANGE = 漲跌幅限制,自2014/6/1起放寬為10%,之前為7%,當我們測試2014/6/1之前時段時設為6.5(比7%稍微低一點),之後設為9.5。

  UP_MIN = 選股後第二根K線必須超過多少,如75指必須超過漲跌幅的75%,譬如10%就必須超過大量日收盤的1.075。

  DOWN_MAX = 買進後當日出現多少的跌幅就立刻出場,譬如-4指當日下跌超過4%就在尾盤立即出場。

1050229-3  

 

5. 輸入參數

  在「參數名稱一覽」中移到欲設定之系統,點選「參數設定」。

1050304-1

  

6. 快速設定多組參數

  使用如下的快速操作鍵:複製、刪除與設定有效/無效等快速建立多組參數。

1050304-2

 

6. 建立測試明細檔

  進入phpMyAdmin,複製表格結構lvstg到lvstgvcp,測試的明細過程都會記錄在這個檔。而績效統計則使用共同的bt_stat表格,各系統間以sys+subsys區分。sys=lvstg, sybsys=1

  相關資料庫整理指令見:/sql/backtesting/m_para.sql, m_bt_stat.sql

7. 開始撰寫程式

  我們使用到參數管理子系統(如上文),所以我們是使用ssdp class extends ssd。首先我們copy lvstgp.java 到 LvstgVcp_p.java

  將交易系統邏輯予以程式化,比如,我們的「進場篩選」邏輯是:

  日內若收盤價高於大量日之收盤價*[最小漲幅]則:

  1. 沒有漲停則於尾盤買進

  2. 漲停但沒有鎖住,於尾盤買進,不過程式測試只要是漲停全部視為無法於當天買進。

  3. 如尾盤漲停鎖住無法買進,則在2日內以該漲停價逢低買入。

  最小漲幅 = 1 + 漲跌幅限制 * 75%,如現今為10%,即為1.075。7%則為1.0525。

程式碼就是 Override getBuyPrice()這個方法。

 

8. 執行

  修改 /cmd/backtesting/doTest.cmd 後執行之。

  如:%javaexe% LvstgVcp_p lvstgvcp 1 A,B,C,D,E,F,G 指執行LvstgVcp_p.class sys=lvstgvcp, subsys=1, 期間為A 還有B...

9. 觀察測試績效與明細

1050304-31050304-4  

 

 

創作者介紹
創作者 jesse0606 的頭像
jesse0606

奇正

jesse0606 發表在 痞客邦 留言(0) 人氣()