![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
OnCalculate
Функция OnCalculate() вызывается только в пользовательских индикаторах, когда необходимо рассчитать значения индикатора по событию Calculate .
Обычно это происходит при получении нового тика для символа, для которого рассчитывается индикатор.
Индикатор не обязательно должен быть привязан к какому-либо ценовому графику данного символа.
Функция OnCalculate() должна иметь возвращаемый тип int. Возможны два варианта определения. В рамках одного индикатора нельзя использовать обе версии функции.
Первая форма предназначена для тех индикаторов, которые могут рассчитываться на одном буфере данных. Примером такого индикатора является Custom Moving Average.
intOnCalculate(constint rates_total,// размер массива price[]
constint prev_calculated,// бары, обработанные в предыдущем вызове
constint begin,// откуда начинаются значимые данные
constdouble& price[]// массив для расчета
);
OnCalculate
Функция OnCalculate() вызывается только в пользовательских индикаторах, когда необходимо рассчитать значения индикатора по событию Calculate .
Обычно это происходит при получении нового тика для символа, для которого рассчитывается индикатор.
Индикатор не обязательно должен быть привязан к какому-либо ценовому графику данного символа.
Функция OnCalculate() должна иметь возвращаемый тип int. Возможны два варианта определения. В рамках одного индикатора нельзя использовать обе версии функции.
Первая форма предназначена для тех индикаторов, которые могут рассчитываться на одном буфере данных. Примером такого индикатора является Custom Moving Average.
intOnCalculate(constint rates_total,// размер массива price[]
constint prev_calculated,// бары, обработанные в предыдущем вызове
constint begin,// откуда начинаются значимые данные
constdouble& price[]// массив для расчета
);
(Я использую слово "Lag", оно означает задержку ценового действия, открытия и закрытия ордеров, одно это слово выводит из строя мою платформу MT4).
Я использую нижеприведенную функцию для моего пользовательского индикатора.
Когда я пишу нижеприведенный код возврата для моего пользовательского индикатора, то мой пользовательский индикатор начинает запаздывать. Но работает корректно, что мне и нужно.
И когда я пишу ниже код возврата к моему пользовательскому индикатору, мой пользовательский индикатор не работает правильно, что я и хочу. То есть при фальшивом пересечении МА "Стрелка" не возвращается к предыдущей точке пересечения МА.
Вопрос: Что я могу сделать в этой ситуации, пожалуйста?
Заранее спасибо.
Вот, пожалуйста.
Заранее спасибо.
ХОРОШО! Спасибо!
Мне все еще нужен более четкий ответ.
Заранее спасибо.
Ответ:Проверьте как текущее пересечение МА, так и предыдущее пересечение МА.
#Буфер (массив вне диапазона в ) - закрыто
#Задержка пользовательского индикатора - закрыто
#Первый результат цикла - Открыть
Заранее спасибо.