Ошибки, баги, вопросы - страница 1311

 
Ivan Vagin:

Теперь сайт открывается но, не видно картинок

И при попытке открыть прикрепленный файл

Проблема остается

К сожалению, старые аппараты не поддерживают безопасное соединение, используемое на наших веб-серверах.

Рекомендуем вам следующие варианты:

  1. по возможности обновить версию Android
  2. использовать другой браузер (Chrome, например)
  3. обновить аппарат
 
Alexandr Bryzgalov:

Только попарно.

Вот код(в старом стиле), его можно усовершенствовать:

Спасибо за подсказку, но сам скрипт закрытия перекрытых ордеров есть!

Именно интересует реализация через саму терминальную фичу это сделать!

Файлы:
 
murad:

К сожалению, старые аппараты не поддерживают безопасное соединение, используемое на наших веб-серверах.

Рекомендуем вам следующие варианты:

  1. по возможности обновить версию Android
  2. использовать другой браузер (Chrome, например)
  3. обновить аппарат

к стати рекламу тоже не видно

 

 
При включении опции "Трассировка сделок на графике" - на графике автоматически должна появится трассировка или нужны дополнительные действия? Terminal 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.

Мучал суппортов этого брокера.

Сказали вот что.

" выставите в советнике биржевое исполнение, отключите проверку типа".

Как это понимать. Это что за извращенство поставить исполнение биржевое но неизвестно как наливать ордера.

Попробуйте вместо trade.PositionOpen() использовать OrderSend()
 
Михаил:
Попробуйте вместо trade.PositionOpen() использовать OrderSend()
         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    Trades    '*********': failed exchange buy 0.10 EURUSD at market [Unsupported filling mode]

 

с расскоментированным type_filling результат аналогичный

 
Alexey Klenov:

2015.05.20 23:01:55.387    Trades    '*********': failed exchange buy 0.10 EURUSD at market [Unsupported filling mode]

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 );
}
Причина обращения: