想请DxdCn指点一二

 

DxdCn,你好!知道你是论坛里的高手,

想请你帮我看看我的程序。

我写了个EA,测试后发现只有卖出没有买进。

自己检查了好多次也没发现错误,如果你有时间请你帮我看看,

究竟哪里出了错误。

我的思路大概是这样的:

M15 chart

只在时间GMT(21:00到0:00)内交易。

首先检查之前GMT 5:00到21:00的价格情况,

如果63%的蜡烛线在MA60之上,为上升行情,

63%在MA60之下,为下降行情,

在时间GMT(21:00到0:00)内,如果价格回到MA60附近,

买入或卖出。

请求您的指点,谢谢。

 

这些if语句最好规范

(Low[1]<iMA(Symbol(),0,60,0,0,0,1)+DofPrice*Point) 改为 ( ( Low[1]< (iMA(Symbol(),0,60,0,0,0,1)+DofPrice*Point) )

以下类似检查:

(iRSI(Symbol(),0,14,0,0)>=iRSI(Symbol(),0,14,0,1)+5) &&
(Ask-Open[0]>=130*Point)

if(High[1]>iMA(Symbol(),0,60,0,0,0,1)-DofPrice*Point)

(iRSI(Symbol(),0,14,0,0)+5<=iRSI(Symbol(),0,14,0,1)) &&
(Open[0]-Bid>=130*Point)

在每个if前用Print调试,检查所用条件。

 
DxdCn 写道 >>

这些if语句最好规范

(Low[1]<iMA(Symbol(),0,60,0,0,0,1)+DofPrice*Point) 改为 ( ( Low[1]< (iMA(Symbol(),0,60,0,0,0,1)+DofPrice*Point) )

以下类似检查:

(iRSI(Symbol(),0,14,0,0)>=iRSI(Symbol(),0,14,0,1)+5) &&
(Ask-Open[0]>=130*Point)

if(High[1]>iMA(Symbol(),0,60,0,0,0,1)-DofPrice*Point)

(iRSI(Symbol(),0,14,0,0)+5<=iRSI(Symbol(),0,14,0,1)) &&
(Open[0]-Bid>=130*Point)

在每个if前用Print调试,检查所用条件。

多谢!

还有个问题,int TrendCheckedbyMA60(NUM) 这个子函数是否有问题,

用print调试过,但它返回的值只有卖的情况也就是-1。

不知道为什么。

真是麻烦你了。

 

int Up=0,Down=0; 改为 double Up=0,Down=0;

或者 double Present=Up/64; 改为 double Present=1.0 * Up/64.0;

Down没有使用

 
DxdCn 写道 >>

int Up=0,Down=0; 改为 double Up=0,Down=0;

或者 double Present=Up/64; 改为 double Present=1.0 * Up/64.0;

Down没有使用

多谢你的回复,按照你说的做了依然没有解决问题。

后来我加了else,问题得以解决。原因是什么,我还是不是很清楚。

多谢帮忙!

原因: