恩恩
望圖興嘆! 感謝,不然跟GPT4o不知還得玩多久
vars: values1(0), values2(0), values3(0), values4(0), values5(0), values6(0), values7(0),
maxDuringBull(-9999), minDuringBear(9999), isBull(false),
maxBullPos(0), minBearPos(0), bullPeakPos(0), bearTroughPos(0);
values1 = MACD(WeightedClose, 12, 26, 9, values2, values3, values4);
if values4[1] < 0 and values4 > 0 then begin
if not isBull then begin
// 標示前一個空頭波段的最小值及位置
plot5(minDuringBear, "Min MACD in Bear");
plot7(minBearPos, "Min Bear Position");
end;
values5 = currentBar;
plot1(values5, "B1");
isBull = true;
maxDuringBull = values4; // 初始化多頭波段期間的MACD最大值
maxBullPos = currentBar; // 記錄多頭波段期間最大值的位置
end;
if values4[1] > 0 and values4 < 0 then begin
if isBull then begin
// 標示前一個多頭波段的最大值及位置
plot4(maxDuringBull, "Max MACD in Bull");
plot6(maxBullPos, "Max Bull Position");
end;
values6 = currentBar;
plot2(values6, "S1");
isBull = false;
minDuringBear = values4; // 初始化空頭波段期間的MACD最小值
minBearPos = currentBar; // 記錄空頭波段期間最小值的位置
end;
if isBull then begin
if values4 > maxDuringBull then begin
maxDuringBull = values4; // 更新多頭波段期間的MACD最大值
maxBullPos = currentBar; // 更新多頭波段期間最大值的位置
end;
bullPeakPos = maxBullPos; // 保存多頭波段最大值的位置
end else begin
if values4 < minDuringBear then begin
minDuringBear = values4; // 更新空頭波段期間的MACD最小值
minBearPos = currentBar; // 更新空頭波段期間最小值的位置
end;
bearTroughPos = minBearPos; // 保存空頭波段最小值的位置
end;
values7 = values6 - values5; // 計算多空之間的K棒數
plot3(absvalue(values7), "N1");
// 在波段結束時標示最大和最小值
if values4[1] < 0 and values4 > 0 then begin
plot4(maxDuringBull, "Max MACD in Bull");
plot6(bullPeakPos, "Max Bull Position");
end;
if values4[1] > 0 and values4 < 0 then begin
plot5(minDuringBear, "Min MACD in Bear");
plot7(bearTroughPos, "Min Bear Position");
end;
4 評論