//------------------------------------------------------------------------
// 简称: MAbonding
// 名称: 快三线粘合
// 类别: 指标应用
// 类型: 用户应用
// 输出: Void
//------------------------------------------------------------------------pascal
Params
Numeric ATRPeriod(14); // ATR计算周期(默认14)
Numeric Threshold(0.5); // 粘合阈值系数(0.5倍ATR)
Vars
Series<Numeric> MA5;
Series<Numeric> MA10;
Series<Numeric> MA20;
Series<Numeric> ATRValue;
Numeric MaxMA;
Numeric MinMA;
Series<Bool> Cond_Converge;
Series<Bool> Signal_Buy;
Series<Bool> Signal_Sell;
Events
OnInit()
{
// 计算均线值(使用前复权数据)
MA5 = AverageFC(Close, 5);
MA10 = AverageFC(Close, 10);
MA20 = AverageFC(Close, 20);
// 计算ATR及动态阈值
ATRValue = AvgTrueRange(ATRPeriod);
// 获取三条均线的极值
MaxMA = Max(MA5, Max(MA10, MA20));
MinMA = Min(MA5, Min(MA10, MA20));
// 均线粘合条件判断
Cond_Converge = (MaxMA - MinMA) <= Threshold * ATRValue;
// 生成预警信号(突破最高/最低均线时触发)
Signal_Buy = Cond_Converge[1] && (Close > MaxMA); // 上穿最高均线
Signal_Sell = Cond_Converge[1] && (Close < MinMA); // 下穿最低均线
// 仅当信号为True时输出
If (Signal_Buy) {
Commentary("买入预警触发!时间:" + Text(Date) +
", 价格:" + Text(Close) +
", 突破均线值:" + Text(MaxMA));
}
If (Signal_Sell) {
Commentary("卖出预警触发!时间:" + Text(Date) +
", 价格:" + Text(Close) +
", 跌破均线值:" + Text(MinMA));
}
// 图表标注(可视化辅助)
PlotNumeric("MA5", MA5);
PlotNumeric("MA10", MA10);
PlotNumeric("MA20", MA20);
If(Signal_Buy) PlotBool("Buy", Signal_Buy);
If(Signal_Sell) PlotBool("Sell", Signal_Sell);
}
预警函数是 Alert
在哪里体现,该怎么修改
如果你的逻辑是对的的话, 就在最后你commentary的后面一行加就行了
具体怎么写啊