借用發財橘子 的跳空策略來回測 (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;
照網站上方式進行回測勾逐筆洗價, 回測結果會買在最低點, 為什麼?
借用發財橘子 的跳空策略來回測 (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;
照網站上方式進行回測勾逐筆洗價, 回測結果會買在最低點, 為什麼?
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 的時候,才有可能觸發進場,
因此回測結果會買在最低點,以上說明,謝謝。
1 評論