欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]帮忙看看程序是否正确

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有2711人关注过本帖树形打印复制链接

主题:[求助]帮忙看看程序是否正确

帅哥,在线噢!
wenarm
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2019/7/24 13:24:05    Post IP:180.169.30.6[显示全部帖子]

不对的几点地方如下:

1,TRIX3金叉 := CROSS(TRIX3,TRML3);

CROSS返回的是交叉时的状态(某根k上是1,不能代码一个范围),所以在交叉之后,TRIX3>TRML3的情况下,TRIX3金叉 := CROSS(TRIX3,TRML3);返回值一样是0.

2.您说的盈利指的应该是持仓的浮动盈亏,不是平仓盈亏,所以NUMPROFIT(1)是不合理的,他只能返回上次平仓时的结果。

注:下面修改中使用OPENPROFIT函数,并且规定了大于0。

3.根据第一点,所以不需要使用全局变量进行标记。

 

代码修改如下:

//DMA(S,P,M)二线
DDD:=(MA(CLOSE,S)-MA(CLOSE,P));
AMA:=MA(DDD,M);

//TRIX(N1,M1)线
TR3:= EMA(EMA(EMA(CLOSE,N1),N1),N1);
TRIX3 : (TR3-REF(TR3,1))/REF(TR3,1)*100,LINETHICK0;
TRML3 :  MA(TRIX3,M1),LINETHICK0;


DMA金叉 := CROSS(DDD,AMA);
DMA死叉 := CROSS(AMA,DDD);


TRIX3金叉 := TRIX3>TRML3;
TRIX3死叉 := TRML3>TRIX3;

 

 

if TRIX3金叉=1 and DMA金叉=1 then begin
 开多1:BUY(HOLDING=0,NUM,MARKET);
end


if DMA死叉=1 and ( OPENPROFIT>0 or TRIX3死叉=1 ) then begin
 平多1: SELL(HOLDING>0,NUM,MARKET);
end



编程无捷径,技巧靠积累。
 回到顶部