以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  关于在图表上输出历史K线出现过的高低点  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=143566)

--  作者:youthto
--  发布时间:2016/11/29 23:08:52
--  关于在图表上输出历史K线出现过的高低点

在分析历史数据时,需要在图表中之前高低点所在的K线上或下,输出高低点的具体点位,或者画图标也可以

 

目前看到drawicon,drawnumber,drawtext都仅是能在当前K线的位置draw

 

请问有没有哪个函数可以在之前K线位置实现输出

 

谢谢!!


--  作者:jinzhe
--  发布时间:2016/11/30 9:15:23
--  

这个你要用refx作为上面函数的判断条件了

 


--  作者:youthto
--  发布时间:2016/12/1 0:25:20
--  

下面是一些测试代码,逐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


--  作者:youthto
--  发布时间:2016/12/1 9:15:54
--  

貌似是没有办法在当前K,定位到左边的K线,然后drawnumber或drawicon了


--  作者:youthto
--  发布时间:2016/12/1 9:27:33
--  

if (date + 19000000=20160928) then
BEGIN 
 BARSSET(1,H,1,-3);
end
 

 

用法:
BARSSET(COND,PRICE,N,OFFSET)
当COND条件满足时,在PRICE位置绘制标记。
N为所影响到的周期数。
OFFSET为影响周期的偏移,0为以中心点前后影响,负数为往前影响,正数为向后影响。                     <---   这个偏移,是指什么的偏移,测试的时候,发现标记都是绘制在当前K线的
该函数通常用在逻辑公式中。
所属函数组:绘图函数

 

 


--  作者:jinzhe
--  发布时间:2016/12/1 9:47:27
--  

前面说了,你要用refx来给要画的高点定位

而且是一个已知的点,比如你知道高点在前面3个周期

drawicond(refx(高点判断条件,3),c,1);

这样写


--  作者:youthto
--  发布时间:2016/12/1 11:37:48
--  

OK,可用

 

逐K模式下,报“公式正在执行重复计算两次的未来函数调用,金字塔提醒用户尽量不要在逐K模式下使用未来函数”

 

是否逻辑上不会有问题?

是否仅是性能上有影响?

是否可以不用未来函数?

 


--  作者:jinzhe
--  发布时间:2016/12/1 13:10:23
--  
这个你只能是在序列模式下看的,不要放在图表交易代码里面
--  作者:youthto
--  发布时间:2016/12/1 13:56:08
--  

简单测试,drawicon(refx(判断条件, 3 ),h,2);       是可用

 

放到模型里面,drawicon(refx(判断条件, 动态k线个数 ),h,2);      动态K线个数会变化,画图标的位置也变了   ,所以refx也用不了

 

在这上面花时间过多了,先暂时跳过了