新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1527

 
MakarFX:

使用读数来建立你的指标的逻辑。

不,它不像那样工作。

这里 .1指示器总是显示一个数字--2147483647。只要收到一个信号,它就会在一个缓冲区上显示一个不同的数字。这一点我已经搞清楚了。

但第二个指标总是在两个缓冲区同时 显示0或2147483647

附加的文件:
 
我想我已经明白了。它应该是这样的
  
     if (in1b<2147483647 && in2b>0 && in2b<2147483647)
           Sell[i]=low[i];
     if (in1s<2147483647 && in2s>0 && in2s<2147483647)
            Buy[i]=high[i];
 
jarikn:
我想我已经明白了。它应该是这样的

在这种情况下不需要具体说明,即只需要如果>0

 
MakarFX:

在这种情况下,不需要具体细节,即只需要如果>0

但是,当没有信号时,缓冲区里有什么呢?我认为>0在这里不起作用。

附加的文件:
 
jarikn:

但这是没有信号时缓冲区里的情况,我认为>0在这里不起作用,但我现在要试试

当没有信号时,第一个指标的值是EMPTY_VALUE

像这样走

   if(iCustom(NULL,0,"in1",1,i)>0&&iCustom(NULL,0,"in1",1,i)<Bid*2&&iCustom(NULL,0,"in2",0,i)>0) // индикатор стрелка вниз

   if(iCustom(NULL,0,"in1",0,i)>0&&iCustom(NULL,0,"in1",0,i)<Bid*2&&iCustom(NULL,0,"in2",1,i)>0) // индикатор стрелка вверх
 

请帮助我解决这个测试器的问题。我正在测试CME 欧元/美元 期货的开仓情况

在测试器中的市场上涨时,我在崩溃时开了一个多头头寸,带着我的止损,交易得到了2号票。市场上涨,下一个仓位被打开,并设置了止损,该交易在测试器中获得了3号票。

当市场对3号仓位不利并达到其止损点时,理想的情况是3号仓位应在止损点收盘,而2号仓位应留在那里,等待价格达到2号仓位。但由于某些原因,当3号停机位被触发时,测试仪也关闭了2号位置。

mql5 的代码是

MqlTradeRequest request={};
MqlTradeResult  result={};
                                 
request.action = TRADE_ACTION_DEAL; //Вход рынку
request.symbol = Symbol();
request.volume = 1.0; //Кол-во фьючей
request.type   = ORDER_TYPE_BUY; //Купить
request.price  = SymbolInfoDouble(Symbol(),SYMBOL_ASK);   
request.sl     = NormalizeDouble(sl,5); // Стоп

bool check     = OrderSend(request,result);


 
NastyaMaley:

请帮助我解决这个测试器的问题。我正在测试CME 欧元/美元 期货的开仓情况

在测试器中的市场上升时,我在突破时开了一个多头头寸,带着我的止损,交易得到了2号。市场上涨,下一个仓位开出了止损,该交易在测试器中得到了第3号。

当市场对3号仓不利并达到其止损点时,其想法是3号仓应在止损点收盘,2号仓应留在那里,等待价格达到2号仓的止损点。但由于某些原因,当3号停机位被触发时,测试仪也关闭了2号位置。

mql5 的代码是


我不知道mql5,但我没有看到哪里有选择关闭的命令
 
MakarFX:

当没有信号时,第一个指标的值是EMPTY_VALUE

应该这样做

是的,这是正确的。就这样吧,非常感谢你。

 

我想测试者行为的原因已经很清楚了。机器人所测试的模拟账户类型是净值账户。因此,如果开仓 3号时指定的止损被触发,它将关闭整个仓位的量。因此,在3号的停止处,它也关闭了2号,尽管它在打开时有自己单独的停止设置。

有了对冲账户类型,一切都会像以前的mql4一样工作。

 
NastyaMaley:

请帮助我解决这个测试器的问题。我正在测试CME 欧元/美元 期货的开仓情况

在测试器中的市场上涨时,我在崩溃时开了一个多头头寸,带着我的止损,交易得到了2号票。市场上涨,下一个仓位被打开,并设置了止损,该交易在测试器中获得了3号票。

当市场对3号仓位不利并达到其止损点时,理想的情况是3号仓位应在止损点收盘,而2号仓位应留在那里,等待价格达到2号仓位。但由于某些原因,当3号停机位被触发时,测试仪也关闭了2号位置。

mql5 的代码如下

你不应该使用停顿。我们不应该使用止损,而应该放置相反方向的挂单。