請問我將第一根K棒標記後 依據這根K棒的條件做完交易後,就不想要再依據這根K棒的條件,等到出現下一根符合條件的K棒出現,請問這樣該怎麼修改 謝謝
變數:
previous_green(false), // 前一根K棒是否為綠色
previous_red(false), // 前一根K棒是否為紅色
green_high(0), // 前一根綠K棒的最高點
green_low(0), // 前一根綠K棒的最低點
red_high(0), // 前一根紅K棒的最高點
red_low(0); // 前一根紅K棒的最低點
// 當前為紅K棒且成交量大於1500
if Close[1] > Open[1] and Volume[1] > 1500 then begin
previous_red = true; // 收盤價 > 開盤價 -> 紅K棒
red_high = High[1];
red_low = Low[1];
previous_green = false; // 重置綠K棒標記
end;
// 當前為綠K棒且成交量大於1500
if Close[1] < Open[1] and Volume[1] > 1500 then begin
previous_green = true; // 收盤價 < 開盤價 -> 綠K棒
green_high = High[1];
green_low = Low[1];
previous_red = false; // 重置紅K棒標記
end;
// 多單進場條件:當前價格大於綠K棒的最高點+1
if previous_green and Position = 0 then begin
if Close > green_high + 1 then // 確保當前價格大於綠K棒的最高點+1
SetPosition(2, green_high + 1); // 進場價格:標記綠K棒的最高點+1
end;
// 空單進場條件:當前價格小於紅K棒的最低點-1
if previous_red and Position = 0 then begin
if Close < red_low - 1 then
SetPosition(-2, red_low - 1); // 進場價格:標記紅K棒的最低點-1
end;
// 多單出場條件
if Position = 2 then begin
if Close >= green_high + 1 + (green_high - green_low) then begin
SetPosition(0); // 平倉
end;
// 停損條件:當前價格跌破綠K棒的最低點
if Close < green_low then begin
SetPosition(0); // 平倉
end;
// 從多單轉空單:若已平倉且符合空單進場條件
if Position = 2 and previous_red then begin
SetPosition(0); // 先平倉多單
if Close < red_low - 1 then
SetPosition(-2, red_low - 1); // 進場空單
end;
end;
// 空單出場條件
if Position = -2 then begin
if Close <= red_low - 1 - (red_high - red_low) then begin
SetPosition(0); // 平倉
end;
// 停損條件:當前價格漲破紅K棒的最高點
if Close > red_high then begin
SetPosition(0); // 平倉
end;
// 從空單轉多單:若已平倉且符合多單進場條件
if Position = -2 and previous_green then begin
SetPosition(0); // 先平倉空單
if Close > green_high + 1 then
SetPosition(2, green_high + 1); // 進場多單
end;
end;
end;
3 評論