以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  金叉 死叉问题  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=181890)

--  作者:arutema
--  发布时间:2020/8/25 17:10:44
--  金叉 死叉问题
input:xs(300,3,300,3);
ma60:ma(c,xs);
ma1:ma(c,1);
t3l:=ref(llv(l,3),1);
t3h:=ref(hhv(h,3),1);
t3m:(T3L+T3H)/2;


l1:ma(c/ma60,1);
tt1:c>t3m;
tt2:c<t3m;
tt3:c<ma60;
tt4:c>ma60;
PD:cross(ma1,ma60) and tt3;//        //平多条件 死叉60均 并小于60日均
PK:cross(ma1,ma60) and tt4;//            //平空条件金叉60均 并大于60日均
KD:cross(ma1,t3m) and tt4; //       //开多条件 金叉 并大于60日均
KK:cross(ma1,t3m) and tt3;//            //开空条件收盘价死叉 并小于60日均
//交

平多:SELL(PD,1,marketr);   

平空:SELLSHORT(PK,1,marketr);                  //平空信号
 
开多:BUY(KD AND HOLDING=0,1,marketr);          //开多信号
                   //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,marketr);     //开空信号


执行不了 请问老师错在那

--  作者:FireScript
--  发布时间:2020/8/25 17:13:58
--  
 把数据量扩充大点。你默认的ma参数是300.那么至少300个K,ma60才能正常有值。
--  作者:wenarm
--  发布时间:2020/8/25 17:14:32
--  

程序没有语法错误。只是条件比较苛刻。能满足条件的k线位置很少。自然不会或者出现开平记录。


--  作者:FireScript
--  发布时间:2020/8/25 17:15:20
--  

图片点击可在新窗口打开查看此主题相关图片如下:temp.png
图片点击可在新窗口打开查看

扩充后信号还是有的。

--  作者:arutema
--  发布时间:2020/8/25 22:28:02
--  
pk 和 pd 如果不加 tt3  tt4 能执行   但是就分不清金叉还是死叉了  这个怎么解决   cross 没法判断 是 上叉还是下叉 ,加上tt3 和 tt4就不执行了   就卡在这


--  作者:arutema
--  发布时间:2020/8/25 22:31:02
--  
比如做多  离场 就 c 下叉 ma60  如果这么 写cross(c,ma60)既能是上叉又能是下叉 不加 tt3 是没法判断了  
--  作者:FireScript
--  发布时间:2020/8/26 9:09:32
--  
 cross 就是表示上穿的意思。不存在说分不分得清。通常金叉,死叉只是把cross里面2个参数换个位置。
金叉是 cross(a,b) 那么死叉满足就是cross(b,a)