错误、漏洞、问题 - 页 872

 
你好!
在安装Meta Trader 5时,我应该安装哪个代理服务器?
 
Vladon:

它在MT5上工作。

是的,它可以工作-计算欧元/美元的误差-01.10.2012至06.10.2012
附加的文件:
20121111.log  60 kb
 
mario065:
是的,它可以工作-计算欧元/美元的误差-01.10.2012至06.10.2012

你是什么意思?

未能修改买入0.10 EURUSDsl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [无效的止损]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27修改错误 =4756

止损和止盈本身是不能修改的,这就是为什么说止损错误的原因,为什么会让人惊讶。

 
Vladon:

你是什么意思?

未能修改买入0.10 EURUSDsl: 1.29120, tp: 1.29370 -> sl: 1.29120, tp: 1.29370 [无效的止损]

JF 0 Core 1 19:48:37 2012.10.03 16:20:27修改错误 =4756

我想说的是,止损和止盈本身是不能修改的,这就是为什么它说的是止损错误,为什么会令人惊讶。

是的,还有代码中写的内容。
  if(PositionSelect(Symbol())){
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
      {
      if(MStop > 0)
       {
        if(NormalizeDouble(Bid - MStop,4) >= Open)
          if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Bid - MStop,4),TP);
           }
        }
      }
    if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
      {
      if(MStop > 0)
       { 
        if(NormalizeDouble(Ask + MStop,4) <= Open)
          if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
           {
            ModifyPosition(Symbol(),NormalizeDouble(Ask + MStop,4),TP);
           }
        }
      }
     } 
  }

10个点后是否改变止损?

如果我指定何时改变止损,如何计算10个点的费用?

如果(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

如果有一个买入位置

如果(MStop > 0)

如果MStop高于零

如果(NormalizeDouble(Bid - MStop,4) >= Open)

如果买入价减去MStop价大于开盘价,双倍Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

这是由4位数字指定的。

如果(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

如果Stoploop = 0或买入价减去点数高于或等于Stoploop水平。

什么是不清楚的?

在MT4上运行良好。

我在MT5上使用它,这是一个故障。

在MT5上,我设置了更多,因为StopLevel(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL))。还是有故障。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
但是,Kommers.自己去看。
 
mario065:
是的,还有代码中写的内容。

10个点之后是否应该改变止损?

那么,如果我指定了改变止损点的时间,如何计算出10个点是昂贵的?

如果(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)

如果有一个买入位置

如果(MStop > 0)

如果MStop高于零

如果(NormalizeDouble(Bid - MStop,4) >= Open)

如果买入价减去MStop价大于开盘价,双倍Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4)

这是由4位数字指定的。

如果(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

如果Stoploop = 0或买入价减去点数高于或等于Stoploop水平。

什么是不清楚的?

在MT4上运行良好。

我在MT5上使用它,这是一个故障。

我做了计算,在MT4上运行良好,我在MT5上设置了更多的止损水平(SymbolInfoInteger(_Symbol,SYMBOL_TRADE_STOPS_LEVEL))。仍然有故障。


if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

 

这很简单,是错误的止损水平,即比最低限度的止损少了一个。

有什么不明白的呢?

 
Vladon:

这很简单,是错误的止损水平,即比最低限度的止损少了一个。

有什么不明白的呢?

他在那里得到了所有的错误,因为那里的关节比需要的要多。
 
Reshetov:

你好,雷舍托夫。

对你来说是 "这到底是怎么回事?",对我来说是当我不得不调用修改函数时的情况。

如果你看了这段代码,你就不会写了。

if(NormalizeDouble(Bid - MStop,4) >= Open)
                                  ^^^^^^
                                Что за хрень?

if(SL == 0 || NormalizeDouble(Ask + MStop,4) <=SL) 
  ^^^^^^^^                 ^^^^^^^^^^^^^^
Почему не нормализовано? Нахрена это нормализовать?

该代码确实如此。

  double Bid  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_BID),4);
  double Ask  = NormalizeDouble(SymbolInfoDouble(Symbol(),SYMBOL_ASK),4);
  double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
  double SL   = NormalizeDouble(PositionGetDouble(POSITION_SL),4);
  double TP   = NormalizeDouble(PositionGetDouble(POSITION_TP),4);

翻译条件。

input double MStop  = 0.001;
double Open = NormalizeDouble(PositionGetDouble(POSITION_PRICE_OPEN),4);
if(NormalizeDouble(Bid - MStop,4) >= Open)

如果Bid-MStop上的价格高于或等于头寸的开仓 水平,那么就可以调用修改函数的调用,而不是提前调用。

另外,这不是正确的做法--它是在代码中,应该正确地进行。

if(SL == 0 || NormalizeDouble(Bid - MStop,4) >= SL)

第二次规范化只是为了以防万一,我认为这并不坏。

条件本身(你从卖出正股的条件中提取)。

如果止损为零或买入价减去10点多或等于止损水平 - 那么我们可以调用修改功能。

如果价格走高而止损发生变化,下一次看涨将在10个点之后进行,所以不会在每一个点上发生。

这就是我写的--我认为它是正确的。

我希望你能告诉我这是对还是错,是我的错误还是一个错误?

 
mario065:

你好,雷舍托夫。

对你来说是 "这他妈是什么?",对我来说是我必须进行修改函数调用时的状况。

...
我想雷舍托夫的意思是,你不需要对if的变量进行标准化。当订单被发送到服务器时,我们应该将价格值标准化。不做NormalizeDouble(Bid - MStop,4),而做NormalizeDouble( (Bid- MStop),4)。
原因: