Бета-тестирование MetaTrader 5 началось! - страница 121

 

А Macd Sample.mq5 как считала неверно индикатор МАСД, так и далее считает неверно.

Проверяйте:

m_macd_current = m_MACD.Main(0); Print("Macd(0)= ",m_macd_current);
m_macd_previous = m_MACD.Main(1); Print("Macd(1)= ",m_macd_previous);
double M2 = m_MACD.Main(2); Print("Macd(2)= ", M2); Comment("Macd(2)= ", M2);

 
TheXpert >>:

Да. Как вариант, циклиться с маленьким промежутком времени.

Если советник один -- торговый поток всегда будет свободен (теоретически), если больше -- всегда есть вероятность уткнуться в проблему его занятости.

Чем больше сделок -- тем больше вероятность.


Так вот и не понятно, как эту задачу правильно решить....

При чем раньше можно было опрашивать в цикле IsTradeContextBusy(), а теперь его нет, и как тут быть информации не нашел?

 
Я пока поставил семафор на глобальной переменной, но хотелось бы услышать мнение разработчиков.
 
pronych >>:

Так вот и не понятно, как эту задачу правильно решить....

При чем раньше можно было опрашивать в цикле IsTradeContextBusy(), а теперь его нет, и как тут быть информации не нашел?

Тьфу, этож 5ка! Тут я пока пас, это к разработчикам.

 

Есть ли в пятерке функции iHighest и iLowest ? Как они называеются ? :)

Не могу найти :(

Спасибо.

И еще, при новом обновлении начала появляться ошибка "Unhandled exception 0xC0000005".

GetLastError() == 0 ( вызывался в конце индикатора ).

 
exi >>:

Есть ли в пятерке функции iHighest и iLowest ? Как они называеются ? :)

Не могу найти :(

...

нет...

 
YuraZ писал(а) >>

нет...

Жаль....

Интересно, с чем это связано ?

 
exi >>:

Жаль....

Интересно, с чем это связано ?

Разобрался.

ArrayMaximum() и ArrayMinimum() по сути тоже самое.

Посмотрите на этой ветке и в ветке MQL5

я точно не помню но кажется приводили коды

в моем частном случае, это делаю через такой код


      
      double Low[];

      copied=CopyLow(sSymbol[iC],PERIOD_D1,timedr,timedr,Low);
      if(copied<=0)
         return(-1); // не удалось


я так понимаю связанно это с новой концепцией

ранее при подобном обращении копировался массив, т к терминал не знал в каой момент вы запросите и какой бар

то хранил все что мог! в памяти что сами понимаете и медленно и накладно.

--

а сейчас вы должны запросить именно тот кусок какой вам важен

и затем работать с ним - ну в скорости это большой плюс - уверен что понимаете это

сначала грузанули то что надо, причем ограниченно а не все, потом ходим по массиву - т е в памяти, без обращений уже на подгрузку

разумеется это достаточно экономит память и скорость

ну вряд ли вам при работе нужен к примеру, 2001 год 5 мая

 
Rosh >>:

Возможно, появится. Пока не решено.

Хотелось уж чтоб была, и по занятости потока тоже...

 

Почему не предусмотрена генерация события OnDeinit при закрытии инструмента?


Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

·

перед переинициализацией в связи со сменой символа или периода графика, к которому прикреплена mql5-программа;

·

перед переинициализацией в связи со сменой входных параметров;

·

перед выгрузкой mql5-программы.


К примеру решил я закрыть инструмент, но не заметил что на нем работает советник.

Как следствие не проверилось условие OnDeinit и в результате осталась открытая позиция, или не поменялись глобальные переменные, да мало ли что должен поправить советник/индикатор при выгрузке его из памяти. :-(

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