画线语句为:
if(close < open and Up)
{
Plt_ZT.ployline("阻力位", date + time, high, 0, true);
Plt_ZT.ployline("阻力位", date[-3] + time[-3], high, 1, true);
}满足条件的时候,往未来3根K线画横线
但当K线数量不够的时候,就变成往前画了,一直画到第一根K线
不影响计算,只是看着有点别扭

还有个问题
如果单独画图的公式加载多个周期的画图正常
如果额外加载一个订阅了多周期的公式,那么长周期上面的画图就是全部往前画的
这个加载的订阅了周期的公式是发布的

把Data1.Hide; 这行注释掉,显示出多周期

策略中是不是使用了不同图层的数据导致获取到了无效值?
有可能,
我遇到的新问题,也许也与此有关
暂时还没找出原因
老师 我弄出来最小能定位问题的代码了
demo1:
//------------------------------------------------------------------------
// 简称: test_if
// 这个代码就画个图
-------------------------------------------------------------------
Params
//此处添加参数
Vars
//此处添加变量
plot Plt_ZT;
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
// SubscribeBar(Symbol,"15m",BeginDateTime); //自己订阅的多周期不会闪退
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
range[0:DataSourceSize - 1]
{
if(close > open And close[1] > open[1] And close[2] > open[2] )
{
Plt_ZT.ployline("三连阳", date + time, low, 0, true);
Plt_ZT.ployline("三连阳", date[-3] + time[-3], low, 1, true);
}
}
//------------------------------------------------------------------------
// 编译版本 2025/12/3 93440
-----------------------------demo2:
// 这个代码就订阅个周期+设置下运行频率
Params
Vars
Events
OnInit()
{
SubscribeBar(Symbol,"15m",BeginDateTime);
SetBasePeriod("15m"); //出问题就是这句,没有这句画图就是正常的
}SetBasePeriod("15m"); //问题出在这句
咦,在原始画图代码里订阅 ,如果加这句,也会出问题了.....
我就不改了....
图就是这么个图

这是不是plot的机制和周期数据对齐机制冲突了?
有法改吗?
Params
//此处添加参数
Vars
//此处添加变量
plot Plt_ZT;
Series<bool> isTripleUp(False,4);
Defs
//此处添加策略函数
Events
//此处实现事件函数
//初始化事件函数,策略运行期间,首先运行且只有一次
OnInit()
{
// SubscribeBar(Symbol,"15m",BeginDateTime); //自己订阅的多周期不会闪退
}
//Bar更新事件函数,参数indexs表示变化的数据源图层ID数组
OnBar(ArrayRef<Integer> indexs)
{
range[0:DataSourceSize - 1]
{
isTripleUp = close > open And close[1] > open[1] And close[2] > open[2];
if(isTripleUp[3])
{
Plt_ZT.clear("三连阳", date[3] + time[3]);
Plt_ZT.ployline("三连阳", date[3] + time[3], low[3], 0, true);
Plt_ZT.ployline("三连阳", date + time, low[3], 1, true);
}
}
}不要使用未来时间 调用了SetBasePeriod历史数据以基础周期频率执行,[-3]获取的时间也是未来数据,改为上面的代码试试
好的吧~谢谢老师🤞
使用了未来时间超出了当前的bar数量 时间返回的是无效值 可以进行判断一下再进行绘图
这个代码最好调整为向历史方向绘图
嗯嗯 这不是想偷懒😀
想着比如有 时间轴虚拟占位:如果作图超出原有时间轴,根据需求虚拟几个时间点
或者进入待画 出现了再补
没搞过开发 不知道难度或者是否在胡说八道
您的v是多少我加您一下
抱歉抱歉非常抱歉 社区发contact info是违规的哈~~
有问题可以大家一起看看
我经常回答错误 老师看到都会帮忙纠正的 比听一个人胡说被带偏的好
🤝🤝
学习了
收到