本人剛接觸程式碼,還不是很了解,想請問如果我想要9:05進場,並且在13:20出場完成當沖,要怎麼寫才對,感謝大家
要怎麼控制幾點幾分進出場?
- 421
- 最後發表 Albert3919 2025 四月 07
若你的頻率是1分K或5分K,
if time=090500 and position=0 then setposition(1,market);
if time=132000 and position>0 then setposition(0,market);
input: entry_time(090500, "進場時間(HHMMSS)"); // 預設開盤後5分鐘進場
input: exit_time(132000, "出場時間(HHMMSS)"); // 預設收盤前10分鐘出場
// 策略執行
if time = entry_time and position = 0 then begin
// 開盤做空
setposition(-1, market);
print("開盤做空進場,時間:", time);
end;
if time = exit_time and position < 0 then begin
// 尾盤平倉
setposition(0, market);
print("尾盤平倉出場,時間:", time);
end;
以上是我的程式碼,但是回測後,卻沒有任何進場紀錄(過去5年交易次數為0),想請教您這是哪邊出了問題,非常感謝您願意回答我
你的策略,回測是OK的。要注意的是,選擇的頻率只能是1分鐘或5分鐘。
但如果想要用日K來回側有辦法嗎? 該怎麼改寫比較好?
日頻率之下,Time永遠為0,必須改用currentTime,但currentTime=090500,必須分秒不差才會符合條件,所以最好改成一段期間,例如,if currentTime>=090500 and currentTime<091000 then ...
Hello Albert3919,
小編補充,可以使用跨頻率的Time來當作條件,例如 GetField("Time", "1") 就會是對應的1分鐘Bar的Time。
另外需注意XQ K棒上標示的時間是K棒開始的時間,所以1分鐘頻率下 090500 會是在 09:05 ~ 09:06 之間。
6 評論