
// 宣告變數
Var: firstFiveMinLow(0), positionOpen(false), gapUp(false), prevDayClose(0);
// 每日第一根K線(5分鐘頻率)開始時,重置變數並檢查是否為新的一天
if Date <> Date[1] then begin
// 在新的交易日,記錄昨天的收盤價並判斷是否跳空開高
prevDayClose = Close[1]; // 使用前一天最後一根K線的收盤價
gapUp = Open > prevDayClose; // 用當日的開盤價和昨天的收盤價比較
positionOpen = false; // 重置部位狀態
end;
// 設定5分鐘K線頻率下的第一根5分鐘K線最低價
if Time = 085000 then begin
firstFiveMinLow = Low;
end;
// 判斷是否符合做空條件(跳空開高且跌破第一根5分鐘K線的低點)
Var: shortCondition(false);
shortCondition = gapUp and Close < firstFiveMinLow;
// 若符合做空條件,進行空單操作
if Position = 0 and shortCondition and not positionOpen then begin
SetPosition(-1, Market); // 做空1口,市價進場
positionOpen = true;
end;
// 設定回補條件:接近收盤時間 (13:40)
Var: exitCondition(false);
exitCondition = Time = 134000;
// 若符合回補條件,退出空單
if Position = -1 and exitCondition then begin
SetPosition(0, Market); // 回補空單,市價出場
positionOpen = false;
end;
搞不懂為什麼,程式都可以編譯了,回測時又編譯失敗

11 評論