請教大神,以下是否有錯誤的寫法導致回測無交易,感謝
// 宣告參數
Input: Length(34, "期數"), UpperBand(2.5, "通道上緣"), LowerBand(2.5, "通道下緣");
Variable: mid(0), up(0), down(0),
early_high(0),
early_low(0),
current_price(0),
trailing_stop(0), // 移動止損變數
pullback_confirmed(0);
// 資料讀取筆數設定
SetTotalBar(10); // 設定資料讀取範圍為 10 根 K 棒
// 計算布林通道
up = BollingerBand(Close, Length, UpperBand); // 上軌
down = BollingerBand(Close, Length, -1 * LowerBand); // 下軌
mid = (up + down) / 2; // 中間線
// 取最近 10 根 K 棒的最高點和最低點
early_high = Highest(GetField("最高價"), 10);
early_low = Lowest(GetField("最低價"), 10);
// 當前收盤價
current_price = GetField("收盤價");
// -------------------- 多單邏輯 --------------------
// 多單回踩確認
If current_price > early_high Then
Begin
If GetField("收盤價")[1] < early_high And current_price >= early_high Then
pullback_confirmed = 1; // 多單確認
End;
// 多單進場條件
If Position = 0 And pullback_confirmed = 1 And current_price >= down And current_price < mid Then begin
SetPosition(1); // 做多
trailing_stop = current_price - 50; // 初始化移動止損(固定點數)
pullback_confirmed = 0; // 重置回踩確認
end;
// 多單平倉條件
If Position = 1 And current_price >= up And current_price > mid Then begin
SetPosition(0); // 平倉多單
end;
// 多單移動止損
If Position = 1 Then begin
trailing_stop = MaxList(trailing_stop, current_price - 70); // 更新移動止損
If current_price < trailing_stop Then begin
SetPosition(0); // 平倉多單
end;
end;
// -------------------- 空單邏輯 --------------------
// 空單回踩確認
If current_price < early_low Then
Begin
If GetField("收盤價")[1] > early_low And current_price <= early_low Then
pullback_confirmed = -1; // 空單確認
End;
// 空單進場條件
If Position = 0 And pullback_confirmed = -1 And current_price <= up And current_price > mid Then begin
SetPosition(-1); // 做空
trailing_stop = current_price + 50; // 初始化移動止損(固定點數)
pullback_confirmed = 0; // 重置回踩確認
end;
// 空單平倉條件
If Position = -1 And current_price <= down And current_price < mid Then begin
SetPosition(0); // 平倉空單
end;
// 空單移動止損
If Position = -1 Then begin
trailing_stop = MinList(trailing_stop, current_price + 70); // 更新移動止損
If current_price > trailing_stop Then begin
SetPosition(0); // 平倉空單
end;
end;
2 評論