以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  函数问题  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=67829)

--  作者:qq代人发帖
--  发布时间:2014/7/25 10:15:33
--  函数问题
请教,金字塔未来函数出现不可思议的情况,例如,昨天的银12月合约分笔图上,开盘后价格先升后降,出现一个高点,但下跌后,也就是说下跌到zig(x,n)的n%后,函数并没有给出转折提示,这样说,zig函数并非函数说明的那样准确。为什么?

图片点击可在新窗口打开查看此主题相关图片如下:sbu4oxz_0vkmjcvctlo%h.jpg
图片点击可在新窗口打开查看

--  作者:FexTel
--  发布时间:2014/7/25 10:19:01
--  

1,ZIG原理本身就是包含未来,实时状态不好给出

2,看下您求的是那个价格,看看实际条件历史后有没满足


--  作者:shuerdd
--  发布时间:2014/7/25 19:16:06
--  你好

zig函数的定义是从一个已知的高点或者低点算起,下跌n%后,价格穿越这个n%成立时,zig转折成立。

因此,zig函数应该自动测算从第一个数据以来,最高点下跌或者最低点上涨对应前面的一个绝对高点或者低点的位置,然后做出n%是否越过的逻辑判断。

一旦成立,则前面的转折就变成历史,不再发生任何变化。所以,zig函数对于前面的已经成立的数据不是未来函数。

本贴的意思也是因为这样的理解才发现如图上的问题的。如图问题的出现,个人认为不符合zig的数据逻辑筛选的原理。或者筛选数据时的前期逻辑有漏洞。


--  作者:FexTel
--  发布时间:2014/7/28 8:38:58
--  
1,代码给下,我调试下具体情况
--  作者:shuerdd
--  发布时间:2014/7/29 11:23:39
--  哈哈

//最小变动价位:
zx:DYNAINFO(208),LINETHICK0;
//zx是最小变动价位,实际中为2个,除以2再乘以y,则可以实现y为最小一个变动价位。
n:=(zx/2)*y;
    DK:=ZIG(4,n/10),LINETHICK2;
    hk:=VALUEWHEN(dk<=ref(dk,1) and ref(DK,1)>REF(DK,2),REF(DK,1)*(1-N/1000)-0.0001);
    Lk:=VALUEWHEN(dk>=ref(dk,1) and ref(DK,1)<REF(DK,2),REF(DK,1)*(1+N/1000)+0.0001);
    HD:IF(DK<=ref(DK,1) AND DK>HK,HK,DK),LINETHICK2,COLORGREEN;
    LD:iF(DK>=REF(DK,1) AND DK<LK,LK,DK),LINETHICK2,COLORRED;
    {买开,卖开条件}
    MC1:=IF(DK>=REF(DK,1) AND REF(DK,1)<REF(DK,2) AND l>LK,1,0);
    MC2:=IF(DK>=REF(DK,1) AND CROSS(l,LK),1,0);
  
    MR1:=IF(DK<=REF(DK,1) AND REF(DK,1)>REF(DK,2) AND h<HK,1,0);
    MR2:=IF(DK<=REF(DK,1) AND CROSS(HK,h),1,0);
   {买入卖出条件}
    Mc:=if(MC1=1 OR MC2=1,1,0);
    Mr:=IF(MR1=1 OR MR2=1,1,0);
     pd:=MR;//平多条件 
    kd:=MC;//开多条件
    PK:=Mc;//开空条件
    KK:=Mr;//平空条件

//以下为平仓反手时的语法,先开多,后平空;
//注意,用  LIMITR语句仍未下一个开盘成交,用limit怎么样?
if kd then
 begin
 sellshort(holding<0,0,MARKET);
 buy(holding=0 and kd ,1,MARKET);
 end
if kk then
 begin
 sell(holding>0,0,MARKET);
 buyshort(holding=0 and kk,1,MARKET);
 end


--  作者:FexTel
--  发布时间:2014/7/29 13:21:59
--  
DK:ZIG(4,n/10),LINETHICK2; //这个没有实时做跳转?当时N的值有做输出没