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

 
Sprut112:

А так можно?

сделай вот так...

double Freeus =AccountInfoDouble(ACCOUNT_MARGIN_FREE)* MaximumRisk 
               /SymbolInfoDouble(symbol_name[ir],SYMBOL_TRADE_TICK_VALUE)/ 1000;
  input_lots = NormalizeDouble(MathRound(Freeus) * SymbolInfoDouble(symbol_name[ir], SYMBOL_VOLUME_STEP),dg);
 
xxz:

сделай вот так...

Не, все заработало, когда добавил Step:) Спасибо ещё раз!
 
Vladimir Karputov:

Исправьте блоки инициализации в советниках (OnInit() ).

А что именно ? предупреждений 0. Return 0 на
 return(INIT_SUCCEEDED) если только.
 
pivomoe:
А что именно ? предупреждений 0. Return 0 на
 return(INIT_SUCCEEDED) если только.

Покажите полный MQL5 код функции OnInit() советников, которые не перезагружаются. Покажите полный MQL5 код функции OnDeinit() советников, которые не перезагружаются. Советники используют сторонние библиотеки? Dll?

 
Vladimir Karputov:

Покажите полный MQL5 код функции OnInit() советников, которые не перезагружаются. Покажите полный MQL5 код функции OnDeinit() советников, которые не перезагружаются. Советники используют сторонние библиотеки? Dll?

Dll не использую. Код OnInit простыня на 1000 строк. Есть выделение памяти для классов. В OnDeinit наверное далеко не вся память освобождается. Через закрытие терминала крестиком всё хорошо, а вот через планировщик всё хорошо только в 90% случаев.
 
pivomoe:
Dll не использую. Код OnInit простыня на 1000 строк. Есть выделение памяти для классов. В OnDeinit наверное далеко не вся память освобождается. Через закрытие терминала крестиком всё хорошо, а вот через планировщик всё хорошо только в 90% случаев.

Вы уже на 90% ответили на свой вопрос. Осталось найти ошибку :)

 
Подскажите пожалуйста, как явно присвоить каждому ордеру свой магик.
Например. 
Нужно установить:
ордер Buy_Stop и присвоить ему магик_1
ордер Buy_Stop и присвоить ему магик_2
ордер Buy_Stop и присвоить ему магик_3

С тем, что бы при модификации ордеров, можно было явно указать, какой именно ордер модифицировать. 

если, ордер Buy_Stop == магик_2, модифицируем.

 

Добрый день.

Вопросы у меня возникли всвязи с отсутствием Sleep() в тестере. Хочется узнать как люди решают следующие задачи при использовании тестера стратегий (как однократный прогон, так и перебор инпут параметров):

1) Как проверяют готовность хэндла индикатора? Как бы мне заставить ждать завершения расчета индикатора, и только потом двигаться дальше по строчкам.

2) Как дождаться открытия текстового файла, вызванного для считывания в ходе работы советника?

3) Как дождаться ответа функции OrdersTotal()? И может ли быть задержка ответа этой функции?

4) Как дождаться ответа функции OrderCalcMargin()? И может ли быть задержка ответа этой функции?

5) Есть ли смысл в тестере ставить (пусть и не ясно как) ожидание "кода возврата торгового сервера" через MqlTradeResult.

В терминале все эти задачи решались используя Sleep(), а в тестере он не работает. К тому же, я не уверен что нужен именно Sleep(), может есть какое-то рациональное решение?

Уже спасибо.

 

Здравствуйте! разложите конструкцию на операторы if... C= (i>0) ? (A>B) ? 1 : (A<B) ? 2 : C: 0;

читал по справке - но не справился)

 
Tango_X:

Здравствуйте! разложите конструкцию на операторы if... C= (i>0) ? (A>B) ? 1 : (A<B) ? 2 : C: 0;

читал по справке - но не справился)

Вроде так:

C=xxx;
if(i>0)
  {
   if(A>B)
     {
      C=1;
     }
   else
     {
      if(A<B)
        {
         C=2;
        }
      else
        {
         C=C;
        }
     }
  }
else
  {
   C=0;
  }

ЗЫ. Справка-то тут не при чём. Тут логика.

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