функция RefreshRates()
Например, в любом эксперте, прежде, чем открывать позицию, вычисляется состояние рынка по каким-либо параметрам. Затем, если условия подошли, открывается позиция. Чтобы открыть позицию, эксперт вызывает функцию OrderSend. В параметры этой функции нужно передать самую свежую цену Bid или Ask, а пока эксперт вычислял состояние рынка, эти цены могли измениться. Но внутри всего блока OnTick, в текущем проходе, эти изменения автоматически не происходят. Новые цены будут только в следующем проходе OnTick, а нам они нужны в текущем проходе. Поэтому перед OrderSend надо написать RefrashRates, что бы получить новые цены в текущем проходе блока OnCalculate.
Если после прихода нового тика, что поступил в терминал в момент текущего прохода блока OnTick, будет вызвана RefreshRates то, Bid, Ask и другие предопределённые переменные обновятся, RefrashRates вернёт true и изменит своё состояние на false, иначе, предопределённые переменные тоже обновятся, но после завершения текущего прохода блока OnTick, и RefrashRates так же станет false.
Само предназначение этой функции обновить значения предопределённых переменных.
Для всех инструментов в обзоре рынка ??? или активного окна
Само предназначение этой функции обновить значения предопределённых переменных.
Для всех инструментов в обзоре рынка ??? или активного окна
Это в справке прямо сказано
"Эксперты и скрипты работают с собственной копией исторических данных. Копия данных по текущему инструменту создается при первоначальном запуске эксперта или скрипта."
Господа, объясните,если можете,как работает функция RefreshRates(), пожалуйста. Насколько я мог понять, она во время тика принимает на короткое время значение TRUE, потом до следующего тика
имеет значение FALSE затем в результате очередного ТИКА опять TRUE,и так далее. Вопрос: надо ли помещать Функцию RefreshRates() в начале каждой функции, или только в начале первой?
с уважением, С.Buyanov