红心大蜜柚 发表于 2019-3-10 21:18:10

我写的这个ea逻辑问题在哪里呢

如图是我写的部分代码,实现功能是:
在开仓前,比对持仓订单的开仓价格和现价的价差,

如果差距在3000个点之内,本次即使符合条件也不开仓了。


但是现在跑出来好像一点效果也没有,不知道能否有大神指点下是哪里出了问题!

不胜感谢!!!

红心大蜜柚 发表于 2019-3-10 21:47:42

晚上有大神吗

mary1331 发表于 2019-3-10 23:23:20

试下这个 extern int      PriceDistance   = 300;
               if (Ordertype==OP_BUY)
               {
                if (Bid-OrderOpenPrice() >PriceDistance*point,Digits);
类似这样的

zoonily 发表于 2019-3-10 23:41:20

如果你的OrderOpenPrice()没问题,那么替换你的if语句试试
if (Ordertype==OP_BUY)
{
   if(MathAbs(OrderOpenPrice()-Bid)<3000*Point )
   Duokai=false;
}
   

红心大蜜柚 发表于 2019-3-11 00:15:02

本帖最后由 红心大蜜柚 于 2019-3-11 00:17 编辑

mary1331 发表于 2019-3-10 23:23
试下这个 extern int      PriceDistance   = 300;
               if (Ordertype==OP_BUY)
       ...
感谢大神深夜回复,可惜我按照您指点的试了一下,还是没奏效。
目前感觉的问题是,我开始设置的全局参数Duokai和Kongkai,在后面的计算函数里,没有被正确赋值。

没有被正确赋值的原因是否跟我引用的函数方法有问题?还是要在if后面加return?

另外可能的问题是不是OrderOpenPrice()-Bid这个计算出来不是point呢,跟后面的300无法形成比较,才会导致后面的赋值无法生效?

如有时间,烦请再帮忙看看。

实现的诉求就是,例如现在奥美价格是0.79000,持单中有一个开仓价是0.79100,那么即使现在符合开仓条件,也不进行开仓了,主要是为了规避震荡行情。

红心大蜜柚 发表于 2019-3-11 00:17:02

zoonily 发表于 2019-3-10 23:41
如果你的OrderOpenPrice()没问题,那么替换你的if语句试试
if (Ordertype==OP_BUY)
{


感谢大神深夜回复,可惜我按照您指点的试了一下,还是没奏效。

目前感觉的问题是,我开始设置的全局参数Duokai和Kongkai,在后面的计算函数里,没有被正确赋值。

没有被正确赋值的原因是否跟我引用的函数方法有问题?还是要在if后面加return?

另外可能的问题是不是OrderOpenPrice()-Bid这个计算出来不是point呢,跟后面的300无法形成比较,才会导致后面的赋值无法生效?

如有时间,烦请再帮忙看看。

实现的诉求就是,例如现在奥美价格是0.79000,持单中有一个开仓价是0.79100,那么即使现在符合开仓条件,也不进行开仓了,主要是为了规避震荡行情。

红心大蜜柚 发表于 2019-3-11 10:27:22

求大神继续指点下

红心大蜜柚 发表于 2019-3-11 13:46:43

来个大哥帮忙看看啊

红心大蜜柚 发表于 2019-3-11 16:09:17

没人了吗。。自己顶下

zoonily 发表于 2019-3-11 21:19:05

都告诉你了,自己检查去
"a<b<c"是错误的,不可以这样写,按下面逻辑
if(多信号)
if(MathAbs(lastopsell-Ask)>1000*Point)
{for。。。。。}//for循环,选择订单执行
关闭空单;
buy(。。。)//开多
buytime=Time;
lastopbuy=OrderOpenPrice();//这两个设全局变量就可以了
空。。。照上面来
页: [1]
查看完整版本: 我写的这个ea逻辑问题在哪里呢