在分析历史数据时,需要在图表中之前高低点所在的K线上或下,输出高低点的具体点位,或者画图标也可以
目前看到drawicon,drawnumber,drawtext都仅是能在当前K线的位置draw
请问有没有哪个函数可以在之前K线位置实现输出
谢谢!!
这个你要用refx作为上面函数的判断条件了
下面是一些测试代码,逐K模式
cb:currbarscount,linethick0;
b1:barpos,linethick0;
d1:datacount,linethick0;
sc:ref(c,3),linethick0;
c3:=ref(c,3);
//假设我测试过去3个月的数据,在9月28日这一日的K线,符合我策略的某个条件,我需要在3天前(9月25日)的K线上面做drawnumber
//我看到论坛有个例子这样写,if barpos=datacount-3 then drawnumber(1,c3,123,0); 这里datacount对应的是最后一个k线的数量,所以成立,对吧?
if (date + 19000000=20160928) then
BEGIN
//如果不是最后一根K线,而是在测试数据中的某根K线向前移N个K=3个K线,使用drawnumber
if barpos(这个对应的是要draw的K线的位置) = datacount(这里用什么替代?) - 3 then drawnumber(1,c3,123,0);
end
貌似是没有办法在当前K,定位到左边的K线,然后drawnumber或drawicon了
if (date + 19000000=20160928) then
BEGIN
BARSSET(1,H,1,-3);
end
用法:
BARSSET(COND,PRICE,N,OFFSET)
当COND条件满足时,在PRICE位置绘制标记。
N为所影响到的周期数。
OFFSET为影响周期的偏移,0为以中心点前后影响,负数为往前影响,正数为向后影响。 <--- 这个偏移,是指什么的偏移,测试的时候,发现标记都是绘制在当前K线的
该函数通常用在逻辑公式中。
所属函数组:绘图函数
前面说了,你要用refx来给要画的高点定位
而且是一个已知的点,比如你知道高点在前面3个周期
drawicond(refx(高点判断条件,3),c,1);
这样写
OK,可用
逐K模式下,报“公式正在执行重复计算两次的未来函数调用,金字塔提醒用户尽量不要在逐K模式下使用未来函数”
是否逻辑上不会有问题?
是否仅是性能上有影响?
是否可以不用未来函数?
简单测试,drawicon(refx(判断条件, 3 ),h,2); 是可用
放到模型里面,drawicon(refx(判断条件, 动态k线个数 ),h,2); 动态K线个数会变化,画图标的位置也变了 ,所以refx也用不了
在这上面花时间过多了,先暂时跳过了
谢