請問回測的逐筆洗價功能

  •   1.1K 
  • 最後發表   YHC  2018 二月 01
YHC 發文於   2018/01/31

 

借用發財橘子 的跳空策略來回測 (https://xstrader.net/author/eddie/page/7/)

if open[1]>close[2]*1.02
and open[1]=low[1]
//前一日跳空
then begin
if close*1.02<=open[1]
//補空2%
and average(volume,100)>500
then ret=1;
end;

照網站上方式進行回測勾逐筆洗價, 回測結果會買在最低點, 為什麼?

 

XQ小幫手 發文於   2018/02/01

Hi YHC,

首先跟您說明,模擬逐筆洗價的模擬方式詳細介紹如下:

當您勾選模擬逐筆洗價功能時,系統會依照這根K棒所對應的歷史成交資料來產生多筆 O/H/L/C/V 的序列,並且依照此序列一一判斷是否需要進場以及停損/停利。

 

資料頻率為【日線】:

根據此頻率的 【5分鐘】的資料,模擬當時K棒的 O/H/L/C 形成順序,每筆K棒執行至多 4 次,讓每次執行時的 close 價可以碰觸到 O/H/L/C 這四個價位,模擬這一筆 K 棒的發展順序。

 

如果這這一筆 K棒 的資料順序是O,H,L,C的話:

第一次洗價:O/O/O/O,假設此時 close = O

第二次洗價:O/H/O/H,假設此時 close = H

第三次洗價:O/H/L/L ,假設此時 close = L

第四次洗價:O/H/L/C ,假設此時 close = C

 

如果這一筆 K棒 的資料順序是 O,L,H,C的話:

第一次洗價:O/O/O/O,假設此時 close = O

第二次洗價:O/O/L/L ,假設此時 close = L

第三次洗價:O/H/L/H ,假設此時 close = H

第四次洗價:O/H/L/C ,假設此時 close = C

 

若H/L在同一根 1 分鐘 K棒出現的話,則依照這一根 K棒是紅棒(Close > Open) 或是黑棒(C > O)而有所不同。如果是紅棒,則順序為O,L,H,C,反之則順序為 O,H,L,C。

 

若 H or L 價位與 Close 價或是 Open 價相同時,則可以省略其中部分洗價時機點。

 

成交量則平均分布到每一次洗價的時機點。例如如果這筆 K棒 洗三次,則第一次成交量 = 1/3V ,第二次成交量= 2/3V, 最後一次則是V。

 

由於系統端沒有這個商品的 1 分鐘對應資料時,則模擬 O/H/L/C 的方式會改成依照 High - Open 根 Open - Low 的比較決定:

如果 High - Open < Open - Low 的話,則假設K棒的發展為O,H,L,C

反之則假設K棒的發展為O,L,H,C

 

以上是模擬逐筆洗價的說明,

再來我們觀察XS語法的部分,

 

第11行 close *1.02 <= open[1] 這段程式碼,

所以在進場的時候,走模擬洗價機制,洗到 Close = L 的時候,才有可能觸發進場,

因此回測結果會買在最低點,以上說明,謝謝。

發表回覆
Close