错误、漏洞、问题 - 页 1311

 
Ivan Vagin:

现在网站打开了,但没有看到图片。

而当我试图打开所附文件时。

问题仍然存在。

不幸的是,旧设备不支持我们的网络服务器上使用的安全连接。

我们推荐以下选项。

  1. 如果可能的话,更新你的安卓 版本
  2. 使用不同的浏览器(例如Chrome)。
  3. 更新你的设备
 
Alexandr Bryzgalov:

只有在成对的情况下。

这是代码(老式的),可以改进。

谢谢你的提示,但该脚本本身就是为了关闭重叠的订单而存在的!

我对通过终端功能本身实现这一点很感兴趣!

附加的文件:
 
murad:

不幸的是,旧机器不支持我们的网络服务器上使用的安全连接。

我们推荐以下选项。

  1. 如果可能的话,更新你的安卓版本
  2. 使用不同的浏览器(例如Chrome)。
  3. 更新你的设备

我也看不到广告。

 
当 "在图表上追踪交易 "选项被启用时--追踪应该自动出现在图表上,还是应该执行额外的操作?终端MetaTrader 5 build 1135。
 

我有一个有交易所执行的经纪人。

我的专家顾问使用一个标准库

当我运行它时,我在专家顾问的日志中看到,有一条命令被触发了

         trade.PositionOpen(_Symbol,// инструмент
                            ORDER_TYPE_BUY,// 
                            inLot,// количество лотов для торговли
                            ask,// последняя цена  ask
                            0.0,// Stop Loss
                            0.0,// Take Profit 
                            " ");                                             // без комментариев  

但在终端日志中没有任何内容。我在图书馆做了一些挖掘工作。发现了这个。

   if(!FillingCheck(symbol))
      return(false);

它在这里崩溃了。

我进一步搜索,得到了这个结果。

         //--- wrong filling policy, set error code
         m_result.retcode=TRADE_RETCODE_INVALID_FILL;
         return(false);

我回来后发现了这个

//--- get possible filling policy types by symbol
   uint filling=(uint)SymbolInfoInteger(symbol,SYMBOL_FILLING_MODE);

返回0。

试图与这个经纪人的支持人员交谈。

他们告诉我。

"如果你在你的专家顾问中设置了交换执行,禁用类型检查。

我不知道该如何处理它。我应该问问我的经纪人,在我的经纪人经纪交易中我有什么样的错误。

 
Alexey Klenov:

我有一个有交易所执行的经纪人。

我的专家顾问使用标准库

当我运行它时,我在专家顾问的日志中看到,有一条命令被触发了

但在终端日志中没有任何内容。我在图书馆做了一些挖掘工作。发现了这个。

它在这里崩溃了。

我进一步搜索,得到了这个结果。

我回来后发现了这个

返回0。

给这个经纪人的支持人员打了个电话。

他们告诉我。

"如果你在你的专家顾问中设置了交换执行,禁用类型检查。

我不知道该如何处理它。我应该问问我的经纪人,在我的经纪人经纪交易中我有什么样的错误。

尝试使用OrderSend()而不是trade.PositionOpen()。
 
Михаил:
尝试使用OrderSend()而不是trade.PositionOpen()。
         MqlTradeRequest req;
         req.action=TRADE_ACTION_DEAL;       // Тип выполняемого действия
         req.symbol=_Symbol;                 // Имя торгового инструмента
         req.volume=inLot;                   //Запрашиваемый объем сделки в лотах
         req.type=ORDER_TYPE_BUY;            //Тип ордера
         //req.type_filling=ORDER_FILLING_FOK; // Тип ордера по исполнению
         //+------------------------------------------------------------------+
         //|                                                                  |
         //+------------------------------------------------------------------+
         MqlTradeResult rez;

         OrderSend(req,rez);

2015.05.20 23:01:55.387 交易 '*********': 在市场上兑换买入0.10欧元美元失败 [不支持的填充模式]

在注释了type_filling后,结果是一样的

 
Alexey Klenov:

2015.05.20 23:01:55.387 交易 '*********': 在市场上兑换买入0.10欧元美元失败 [不支持的填充模式]

MqlTradeRequest request = {0};
  MqlTradeResult  result  = {0};
   
//--- Fill structure
  request.magic = 987654321;
  request.symbol = _Symbol;
  request.volume = inLot; 
  request.type_filling = ORDER_FILLING_IOC; //Взять то, что можно взять :)
  request.type_time = ORDER_TIME_DAY;
  request.action = TRADE_ACTION_DEAL;

 request.type = ORDER_TYPE_BUY;            //Тип ордера 

  request.comment = "Рыночный ордер...";
 
Михаил:
其结果是一样的
 
Alexey Klenov:
其结果是一样的

经纪人去死吧!

秒,我去投一张支票,你把结果贴出来......

//+------------------------------------------------------------------+
//| Expert Check Market Parametrs function                           |
//+------------------------------------------------------------------+
bool CheckMarketParam( const string a_symbol )
{
//--- Check for full mode
  long trade_mode = long( SymbolInfoInteger( a_symbol, SYMBOL_TRADE_MODE ) );
  
  if ( ( SYMBOL_TRADE_MODE_FULL & trade_mode ) != SYMBOL_TRADE_MODE_FULL )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает полную торговлю!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
//--- Check trade execution mode
  long market_info = long ( SymbolInfoInteger( a_symbol, SYMBOL_TRADE_EXEMODE ) );
    
  if ( market_info != SYMBOL_TRADE_EXECUTION_EXCHANGE )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает TRADE EXECUTION EXCHANGE режим!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
//--- Check orders mode
  int order_mode = int( SymbolInfoInteger( a_symbol, SYMBOL_ORDER_MODE ) );
  
  if ( ( SYMBOL_ORDER_MARKET & order_mode )!= SYMBOL_ORDER_MARKET )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Market Execution режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_LIMIT & order_mode )!= SYMBOL_ORDER_LIMIT )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_STOP_LIMIT & order_mode ) != SYMBOL_ORDER_STOP_LIMIT )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop Limit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_STOP & order_mode )!= SYMBOL_ORDER_STOP )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_SL & order_mode) != SYMBOL_ORDER_SL )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Stop Loss режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_ORDER_TP & order_mode) != SYMBOL_ORDER_TP )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает Take Profit режим установки ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
//---Filing mode
  int filling_mode = int( SymbolInfoInteger( a_symbol, SYMBOL_FILLING_MODE ) );
  
  if ( ( SYMBOL_FILLING_IOC & filling_mode ) != SYMBOL_FILLING_IOC )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  
  if ( ( SYMBOL_FILLING_FOK & filling_mode ) != SYMBOL_FILLING_FOK )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает filling IOC режим исполнения ордеров!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }      
//---Ckeck expiration
  int symbol_exp_type = int( SymbolInfoInteger( a_symbol, SYMBOL_EXPIRATION_MODE ) );
  
  if ( ( symbol_exp_type & SYMBOL_EXPIRATION_DAY ) != SYMBOL_EXPIRATION_DAY )
  {
    MessageBox( "Символ " + a_symbol + " не поддерживает экспирацию DAY!", "Ошибка", MB_OK | MB_ICONHAND );
    return( false );
  }
  return( true );
}