Hello,
我寫了一個自動交易程式想在第一根5分開突破做多 , 跌破第一根5分低點停損 , 但是在回測時發現有時候會觸發停損(例如:2388),但有時候不會觸發停損(4142),我寫的程式及回測設定如附件,我看了2天了但看不出來為什麼,可以幫忙看看嗎?
看來這工具只能玩玩並不能實際用來交易, 條見觸發沒停損導致巨大損失這個太危險 , 我個人淺見大家見的開心
大部份網友看到你這四百多行的程式碼,應該都會覺得心有餘而力不足吧,畢竟要花不少時間。建議你不要把六個策略寫在一個腳本,而是一個策略一個腳本,這樣偵錯比較容易,程式編譯及執行效率也會比較高。
感謝教授回應,不過可能是否有誤會小弟程式包含註解只有134行?
策略就是以每日第一根5分加上一些為了過度交易及風控加的條件,例如:
1. 開超高或超低盤不交易
absvalue(OpenLongPercentage) <= OpenPercentage
2. 第一根5分K幅度太太不交易(停損%太大)
Open5KPercentageLimit >= absvalue(Open5KPercentage)
3. 第一根5分K交易量放大才交易(有波動)
Open5KVolTodayvsYesterday > Open5KVolTodayvsYesterdayIndex
DayVolYesterdayVsTwoDays > DayVolYesterdayVsTwoDaybeforeIndex
4. 交易量太小不交易
Open5KVolumn > Open5KVolMin
現在的問題是,停損價(第一根5分K低點)到的時候,停損不會觸發
if close cross under order_stoploss_price then begin
//跌過停損價,市價全數平倉
SetPosition(0,AddSpread(Open5KLowPrice,-2),label:="多單跌過停損價");
Print("多單停損",CLOSE);
end;
再次感謝有空協助幫我看這個問題並給我指教,謝謝。
Hello 十倍百倍千倍,
因為您使用逐筆洗價進行回測,故很有可能是變數沒有保存住K棒內洗價的數值。
可參考 intrabarpersist 說明,以此宣告變數避免這種狀況發生。
小編這邊測試可以正常出場 (參考附圖)。
4 評論