短線交易想分別在每個交易日的045900 與134400離場.請問語法怎麼寫?謝謝!
我的腳本:
if Position <>0 and (CurrentTime=045900 or CurrentTime=134400) then begin
SetPosition(0, MARKET); ///以市價平倉離場
end;
回測結果:(30分鐘頻率)於時間0400收盤(0430開盤)賣出.然後並未在045900平倉離場


短線交易想分別在每個交易日的045900 與134400離場.請問語法怎麼寫?謝謝!
我的腳本:
if Position <>0 and (CurrentTime=045900 or CurrentTime=134400) then begin
SetPosition(0, MARKET); ///以市價平倉離場
end;
回測結果:(30分鐘頻率)於時間0400收盤(0430開盤)賣出.然後並未在045900平倉離場


Hello winton,
30分鐘頻率逐筆洗價回測運算時是用1分鐘Bar模擬,且下出委託後會在接下來的價格判斷是否能成交。
由於XQ標示的時間是K棒開始的時間,所以最接近的作法是將條件寫為:
if position = 1 and (getfield("time", "1") = 045800 or getfield("time", "1") = 134300) then setposition(0, market);
這樣的話就會在 045900 和 134400 這兩根Bar成交出場。
需注意在即時逐筆洗價的狀況下寫法會不一樣,另外即時的currenttime會是腳本運算當下的時間,所以 CurrentTime=045900 這種寫法會需要運算當下剛好就是 04:59:00 才會符合。
會建議您修改為 currenttime >= 045900 and currenttime < 050000 這樣比較適合。
我的回測不是"逐筆洗價".請問回復會有不同嗎?謝謝!
Hello winton,
如果回測沒有逐筆洗價的話,那麼 currenttime 會等於 time。
30分鐘頻率的當日最後一筆會是 043000,故條件不會符合。
您可以將其print 出來確認。
3 評論