请老师帮看一下,为什么我的代码在日线周期上不能 收盘前触发预警,收到预警还是晚上开盘的时候。
Params
Numeric AlertSound(1); // 预警声音类型(可选)
Vars
Bool AlertCondition(false); // 预警触发条件
Series<Numeric> PreviousHigh(0); // 记录上一根K线的最高价
Events
OnInit()
{
array<Numeric>timepoint;
timepoint=0.145950;
SetTriggerBarClose(timepoint);
}
OnBarclose(ArrayRef<Integer> indexs)
{
// 记录上一根K线的最高价
PreviousHigh = high[1];
// 核心逻辑:判断当前K线的收盘价是否高于上一根K线的最高价
AlertCondition = (Close > PreviousHigh);
// 如果预警条件触发
If (AlertCondition)
{
// 1. 在注释框输出详细提示信息
Commentary("【价格上破预警】时间:" + Text(Date) + " " + Text(Time) +
", 当前收盘价:" + Text(Close) +
" < 前一根K线最高价:" + Text(PreviousHigh,2));
// 2. 在图表上绘制向下箭头标记,直观显示预警位置
PlotString("S", "↓", High + 1 * MinMove * PriceScale);
// 3. 触发系统声音预警(如果平台支持且用户开启)
//PushStatusMsg("收盘价低于上一根K线的最低价"); // 可根据需要取消注释
Alert(A_GetOrderCreateSource()+":收盘价高于上一根K线的最高价");
}
没抄对啊
timepoint是数组
你这样赋值是赋不进去
不信你在timepoint赋值后,打印一下看看

你要只需要一个时间点
就timepoint[0]=0.145950;
很棒
老师,我改过之后,小时级别的能够触发提醒,但是日线和周线的周期就触发不了,不知道为什么?
说详细点呢
是多周期吗?data0是小时,日线和周线是data1、data2 ?
还是data0直接切换的周期?
老师是这样的,策略单元设置的时候,周期设置选成1日或一周就不能在收盘前触发预警,如果设置成小时周期的就可以触发预警。
我用回放测的是可以的呀,可以触发Onbarclose域
如果你触发不了 是不是可以检查一下 触发条件是否满足?
你的预警语句我没删 ,ag有预警,fg没有预警,因为不满足你设定的条件,但都是触发了Onbarclose域打印出了时间的

