Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 364

 
Vasiliy Sokolov:

Очевидно что представленный вами метод является транзитным. Ошибка скорее всего не в нем. По представленным данным не понятно что происходит. Вариантов может быть несколько:

  • Неправильно указывается идентификатор графика (о чем и говорят ошибка 4101).
  • Слишком частые запросы;
  • Неверные другие параметры (идентификаторы событий например).

Судя по уровню написанного Вами кода можно сказать, что ошибка может быть где угодно и какая угодно.
 

Здравствуйте господа трейдеры! у кого  есть программа elliot wave analyzer3 ? проблема втом что не могу загрузить истории котировок с мт4 на elliot wave analyzer!

кто знает помогите пожалуйста! 

 

Вот система

 

где ещё возможно раздобыть 4 Мб оперативной памяти?

Т.е. я камп перезагружаю, отключаю антивирус, запускаю терминал и тестер при тестировании робота  выдаёт что нехватает  4 Мб. 

Раньше при браузерах и антивирусе писал что не хватает 17 Мб. 

 

 
Roman Shiredchenko:

Вот система

 

где ещё возможно раздобыть 4 Мб оперативной памяти?

Т.е. я камп перезагружаю, отключаю антивирус, запускаю терминал и тестер при тестировании робота  выдаёт что нехватает  4 Мб. 

Раньше при браузерах и антивирусе писал что не хватает 17 Мб. 

 

А другие ляпы в советнике совсем не смущают? Если их убрать, то и памяти хватит на всё.

Но всё-таки память докупить надо бы, 2Гб в наши дни - смешно...

 
Vitalie Postolache:

А другие ляпы в советнике совсем не смущают? Если их убрать, то и памяти хватит на всё.

Но всё-таки память докупить надо бы, 2Гб в наши дни - смешно...

Спасибо. :-) О ляпах - 

"2015.04.21 16:48:06.526 correlation (SBRF-6.15,H1) Not all data of MA is calculated. Error 4806. [ SBPR-6.15 ]

Обращать ли на это внимание? - нет" 

 
Vitalie Postolache:

А другие ляпы в советнике совсем не смущают? Если их убрать, то и памяти хватит на всё.

Но всё-таки память докупить надо бы, 2Гб в наши дни - смешно...

Да в общем-то и не очень смешно. Взял я в деревню старый ноут с оперативкой 2 гига, поставил туда, ради поиздеваться, Win7 64бит и ничего, работает. Выключаю только в выходные на ночь, а иногда с пятницы на субботу тоже не выключаю. Работает 2 терминала МТ4 и скайп. Да вот мазилу запускаю временами.

 
Vasiliy Sokolov:

Очевидно что представленный вами метод является транзитным. Ошибка скорее всего не в нем. По представленным данным не понятно что происходит. Вариантов может быть несколько:

  • Неправильно указывается идентификатор графика (о чем и говорят ошибка 4101).
  • Слишком частые запросы;
  • Неверные другие параметры (идентификаторы событий например).

Судя по уровню написанного Вами кода можно сказать, что ошибка может быть где угодно и какая угодно.

Этот кусок кода был взят с официального сайта в статье о пользовательских событиях графика, об "уровне написания" кода в подобных источниках судить не берусь.

- идентификатор графика указывается верно (о чем говорит отсутствие ошибки 4101)

- что Вы имеете в виду под частыми запросами мне не ясно, запрос на что, Вы не могли бы пояснить?

- весь алгоритм работает исправно на протяжении суток, и по непонятным причинам иногда возникает одна из перечисленных ошибок. Если предположить что неверны параметры, разве эти ошибки имеют отношение к идентификатору событий?

Напомню, что перечень отлавливаемых ошибок есть:

ERR_CHART_NO_REPLY

4102

График не отвечает

ERR_CHART_NO_EXPERT

4104

У графика нет эксперта, который мог бы обработать событие

ERR_INTERNAL_ERROR

4001

Неожиданная внутренняя ошибка


Еще раз напомню, что все работает без ошибок достаточно долгое время, по непонятным причинам иногда возникают ошибки. И спасибо за ответ.

 
dariamap:

...

...

Можете выложить законченный пример, воспроизводящий эту ошибку? Боевые исходники не нужны, подготовьте как можно более простой пример, демонстрирующий эту ошибку.
 

Всем доброго времени суток. 

Как правильно подготовить торговый запрос

 

//-----OrderSend:
double MyOrderSend(
   string   symbol,               // символ
   ENUM_ORDER_TYPE cmd,           // торговая операция
   double   volume,               // количество лотов
   double   price,                // цена
   int      slippage,             // проскальзывание
   double   stoploss,             // stop loss
   double   takeprofit,           // take profit
  // ENUM_ORDER_TYPE_FILLING
    int fill_type = SYMBOL_FILLING_FOK, // 
   string   comment=NULL,         // комментарий
   int      magic=0,              // идентификатор
   datetime expiration=0,         // срок истечения ордера
   color    arrow_color=clrNONE   // цвет
               )
  {
  //--- готовим запрос
   MqlTradeRequest request={0};
   request.action=TRADE_ACTION_DEAL;            // открывать по рынку
   request.magic=magic;                         // ORDER_MAGIC
   request.symbol=symbol;                       // инструмент
   request.volume=volume;                       // объем в лотах
   request.price=price;                         // цена для открытия
   request.sl=stoploss;                         // Stop Loss
   request.tp=takeprofit;                       // Take Profit   
   request.deviation=slippage;                  // проскальзывание
   request.type=cmd;                            // тип  ордера
   request.fill_type=SYMBOL_FILLING_FOK;                 // Тип ордера по исполнению
   request.expiration=expiration;               // срок истечения ордера 
   request.comment=comment;                     // комментарий
 
//--- отправим торговый приказ
   MqlTradeResult result={0};
   if (OrderSend(request,result))
   return(result.price);
   else
   return(0);
  }
//-----OrderSend

 т.к. при установке экспа на график возникает такая ошибка

 

Возможно надо ЯВНО указать политику заполнения рыночного ордера...

 Благодарю за помощь. 

 
Roman Shiredchenko:

Всем доброго времени суток. 

Как правильно подготовить торговый запрос

т.к. при установке экспа на график возникает такая ошибка

Возможно надо ЯВНО указать политику заполнения рыночного ордера...

 Благодарю за помощь. 

Привет! Внимательней смотри название полей структуры торгового запроса. fill_type необходимо заменить на type_filling. SYMBOL_FILLING_FOK очевидно надо заменить на ORDER_FILLING_FOK.

P/S/ Лучше используй торговый класс CTrade. Он позволяет выставлять заявки без утомительного заполнения торговой структуры.

Причина обращения: