32行Then变量没有被声明.需要修正//------------------------------------------------------------------------
// 简称: MACDPillar_TB_Final
// 名称: MACD立柱策略(最终修正版)
// 类别: 策略应用
// 类型: 用户应用
//------------------------------------------------------------------------
Params
Numeric FastLength(12); // 快线周期
Numeric SlowLength(26); // 慢线周期
Numeric SignalLength(9); // 信号线周期
Numeric MarkOffset(3); // 标记偏移系数
Vars
Numeric MACDValue(0); // MACD值
Numeric AvgMACD(0); // 信号线
Numeric MACDDiff(0); // MACD柱状图
Bool BuyCondition(False); // 买入条件
Bool SellCondition(False); // 卖出条件
Numeric BuyMarkPos(0); // 买入标记位置
Numeric SellMarkPos(0); // 卖出标记位置
Numeric TextOffset(0); // 文本偏移量
Numeric i(0); // 循环计数器(备用)
Begin
// MACD指标计算
MACDValue = XAverage(Close, FastLength) - XAverage(Close, SlowLength);
AvgMACD = XAverage(MACDValue, SignalLength);
MACDDiff = MACDValue - AvgMACD;
// 确保有足够历史数据
If (CurrentBar > SlowLength + SignalLength + 5) Then // Then是关键字,不需要声明
Begin
// 买入条件:5>4<3<2<1形态
BuyCondition = (MACDDiff > MACDDiff[1]) And
(MACDDiff[1] < MACDDiff[2]) And
(MACDDiff[2] < MACDDiff[3]) And
(MACDDiff[3] < MACDDiff[4]);
// 卖出条件:连续2根递减
SellCondition = (MACDDiff < MACDDiff[1]) And
(MACDDiff[1] < MACDDiff[2]);
// 交易执行模块
If (MarketPosition <> 1 And BuyCondition) Then // Then是关键字
Begin
Buy(1, Open);
// 计算标记位置
BuyMarkPos = Low - MarkOffset * MinMove * PriceScale;
TextOffset = (MarkOffset + 2) * MinMove * PriceScale;
// 绘制买入信号
PlotNumeric("Buy", BuyMarkPos, 0, RGB(255,255,0));
PlotText("B@"+Text(Open,2), CurrentBar, Low - TextOffset, 0, RGB(255,255,0));
End;
If (MarketPosition = 1 And SellCondition) Then // Then是关键字
Begin
Sell(0, Open);
// 计算卖出标记位置
SellMarkPos = High + MarkOffset * MinMove * PriceScale;
// 绘制卖出信号
PlotNumeric("Sell", SellMarkPos, 0, RGB(0,255,255));
PlotText("S@"+Text(Open,2), CurrentBar, High + TextOffset, 0, RGB(0,255,255));
End;
End;
End
//------------------------------------------------------------------------
// 编译版本 TB5.0
// 版权所有 TradeBlazer
//--------------------------------
这种字段是谁教你的
Ai写的.要怎么修改