Запомнить значение индикатора в тот момент, когда это происходило. Далее использовать по необходимости.
Как пример:
Нужно найти индекс этого бара на котором Вы хотите взять значение индикатора далее делаете вот такую функцию где естественно переменная MA_handle хендл Вашего индикатора, а цифра 3 порядковый номер буфера индикатора.
double SignalD(datetime index) { double MA[1]; ResetLastError(); if(CopyBuffer(MA_handle,3,index,1,MA)<0) { PrintFormat("Failed to copy data from the SignalD indicator, error code %d",GetLastError()); return(0.0); } return NormalizeDouble(MA[0],Digits()); }
Далее обращаемся к этой функции вот таким образом
CurSignal=(int)SignalD(iTime(_Symbol,PERIOD_CURRENT,i));где i это индекс нужного Вам бара и в переменную будет записано значение индикаторного буфера
Есть в прошлом локальный минимум. Свеча, в которой минимальное ее значение - минимально для 10 свечей до и 10 после (для получения значений свечей использую MqlRates).
Есть индикатор (например, я беру стохастический осциллятор с входными значениями K, В и S), значение которого равнялось конкретной величине именно в тот момент, когда значение свечи показывало этот минимум.
Как его найти?
Подготовить массив данных ДО искомого бара. Длина должна быть достаточной для расчета индикатора.
Добавить в массив искомый бар в нужном состоянии (например, когда цена была на уровне лоу). Состояние бара можно восстановить из тиков.
Рассчитать на этом массиве значение индикатора.
Добавить в массив искомый бар в нужном состоянии (например, когда цена была на уровне лоу). Состояние бара можно восстановить из тиков.
Вот здесь непонятно. Прошу немного поподробнее. Как это сделать? Это можно сделать не в разделе OnTick, что сработает при прогоне на тестере стратегий, а в разделе OnInit?
Вот здесь непонятно. Прошу немного поподробнее. Как это сделать? Это можно сделать не в разделе OnTick, что сработает при прогоне на тестере стратегий, а в разделе OnInit?
Что конкретно не понятно?
Как получить состояние бара на нужный момент времени? Берете все тики от начала бара до этого момента и находите хай и лоу, первый тик считаете опеном, последний - клоузом.
Как добавить бар в массив? Добавьте новый элемент, и присвойте ему нужное значение.
Где это делать? Там, где нужно получить значение индикатора. Если нужно однажды, в ОнИнит, можно там.
Тут самое сложное — Рассчитать на этом массиве значение индикатора. Для некоторых индикаторов есть стандартные функции, для остальных нужно будет немного заморочиться.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет
Есть в прошлом локальный минимум. Свеча, в которой минимальное ее значение - минимально для 10 свечей до и 10 после (для получения значений свечей использую MqlRates).
Есть индикатор (например, я беру стохастический осциллятор с входными значениями K, В и S), значение которого равнялось конкретной величине именно в тот момент, когда значение свечи показывало этот минимум.
Как его найти?
Спасибо.