以文本方式查看主题

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

--  作者:sword8586
--  发布时间:2019/5/1 9:23:05
--  CROSS 等函数经常漏信号
版本5.02
代码:
UCMPrice:=CROSS(MPrice,RMPrice);DCMPrice:=CROSS(RMPrice,MPrice);

按SHIF+Q检测各值:
2根K线:MPrice=2693.239RMPrice=2695.925;UCMPrice=0.000,DCMPrice=1.000;出现信号
前1根K线:MPrice=2689.972,RMPrice=2693.239;UCMPrice=0.000,DCMPrice=0.000;
当根K线:MPrice=2692.132,RMPrice=2689.972;UCMPrice=0.000,DCMPrice=0.000;未及时出现信号

请问为何?




--  作者:banzhuan
--  发布时间:2019/5/5 9:04:33
--  
当前K应该满足UCM的条件,您指的未及时出现信号是什么概念呢,运行的是哪个周期的?
--  作者:sword8586
--  发布时间:2019/5/5 11:54:14
--  
不同周期均出现该现象,似乎与周期无关,不同品种也如此。
请老师简单用此代码测试:
M1:=EMA(CLOSE,2);RM1:=REF(M1,1);
UCM:=CROSS(M1,RM1);DCM:=CROSS(RM1,M1);
if UCM&&holding>=0 then begin
sellshort(1,1,marketr)
buy(1,1,marketr);
end 
if DCM&&holding<=0 then begin
sell1,1,marketr)
buyshort((1,1,marketr);
end 

图表看看信号

谢谢

--  作者:banzhuan
--  发布时间:2019/5/5 13:15:45
--  
您改成下单的代码试试

M1:=EMA(CLOSE,2);RM1:=REF(M1,1);
UCM:CROSS(M1,RM1);
DCM:CROSS(RM1,M1);

if UCM then begin
sellshort(HOLDING <0,1,marketr);
buy(holding=0,1,market);
end 

if DCM then begin
sell(holding>0,1,marketr);
buyshort(holding=0,1,market);
end