Params
Numeric ATRPeriod(10);// ATR周期N=10
Numeric Multiplier(3);// 乘数M=3
Vars
Series<Numeric> TR;
Series<Numeric> ATR;
Series<Numeric> hl2;
Series<Numeric> UpBand;
Series<Numeric> DnBand;
Series<Numeric> Trend;// 1=多头, -1=空头
Series<Numeric> ST;// 超级趋势线
Bool BuySig;
Bool SellSig;Begin// 1. 计算 TR 和 ATR
TR = Max(High - Low, Max(Abs(High - Close[1]), Abs(Low - Close[1])));
ATR = Average(TR, ATRPeriod);// 2. 中线与上下轨
hl2 =(High + Low)/2;
UpBand = hl2 + Multiplier * ATR;
DnBand = hl2 - Multiplier * ATR;// 3. 趋势方向判断If(Close > UpBand[1])
Trend =1;ElseIf(Close < DnBand[1])
Trend =-1;Else
Trend = Trend[1];// 4. 超级趋势线(单向不回撤,核心逻辑不变)If(Trend ==1)
ST = Max(DnBand, ST[1]);// 多头:支撑线只上移Else
ST = Min(UpBand, ST[1]);// 空头:压力线只下移// 5. 信号:TBQuant标准穿越函数
BuySig = CrossOver(Close, ST);// 价格上穿ST → 做多信号
SellSig = CrossUnder(Close, ST);// 价格下穿ST → 做空信号// 6. 绘图:完全符合TBQuant语法规范// 线宽直接用数值2,替换非法的Linethick2
PlotNumeric("SuperTrend", ST,0, IIf(Trend ==1, Red, Blue),2);// 修正PlotBool参数:去掉多余的0,正确传递颜色
PlotBool("Buy", BuySig, Low, Red);// 红色标记做多信号(低点)
PlotBool("Sell", SellSig, High, Blue);// 蓝色标记做空信号(高点)End//------------------------------------------------------------------------
建议参考下, 系统的案例, 看看, 代码的具体结构, 你的代码先不论对错, 代码块儿的结构是完全不对的, 先去看看系统内置的案例的结构
看到,begin-end,就笑了, 让ai写的策略是吧, ai没写对过哪怕一个策略, 建议学习下tb语言语法,你才能改ai的代码,