Вопросы от начинающих MQL4 MT4 MetaTrader 4 - страница 195
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Находите точку, в которой цена пересекла МАшку вверх. Это будет старт диапазона поиска.
Находите точку, в которой цена пересекла МАшку вниз. Это будет стоп диапазона.
Берёте iHighest() только в этом диапазоне.
А как реализовать поиск точек МА, так чтоб искало всего 2 крайних а не до бесконечности. словами я это тоже понимаю, но если не трудно как это реализовать в код.
Один из способов: завести переменную на глобальном программном уровне советника (объявить переменную в "шапке" советника) - в эту переменную записывать время открытия бара на котором было последнее пересечение. Это поможет использовать третью форму вызова CopyBuffer:
Обращение по начальной и конечной датам требуемого интервала времени
здесь start_time - как раз и есть время из нашей переменной, а stop_time - время последней известной котировки сервера.
А как реализовать поиск точек МА, так чтоб искало всего 2 крайних а не до бесконечности. словами я это тоже понимаю, но если не трудно как это реализовать в код.
Нужно делать перебор в цикле до тех пор, пока не будет найден уход за МА.
Один момент, это участок выделенный жёлтым прямоугольником, он прервёт цикл до того, как дойдёт до второго пересечения цены и МА. По итогу максимум будет найден на первом справа пересечении
P.S. Чем отличаются выделенных 2 участка?
P.S. Чем отличаются выделенных 2 участка?
Они могут отличатся - а именно первая точка, может быть выше второй или ниже.
Это пример просто такой получился. Но это не значит что они одинаковые будут всегда.
Кто может накидать примеров кода с похожими условиями.:
Текущее значение МА> 0 бара
Ищем номер Бара, Цена<МА, нашли номер 1 бара, записываем значение в буфер 2
Ищем следующий номер Цена>МА нашли номер 2 бара, записываем в значение в буфер 1.
Останавливаем поиск.
Далее между значениями буфера 1 и 2 ищем самую низкую цену Low.
Если Текущее значение МА< 0 бара
Ищем номер Бара, Цена>МА, нашли номер 1 бара, записываем значение в буфер 2
Ищем следующий номер Цена<МА нашли номер 2 бара, записываем в значение в буфер 1.
Останавливаем поиск.
Далее между значениями буфера 1 и 2 ищем самую высокую цену High.
Они могут отличатся - а именно первая точка, может быть выше второй или ниже.
Это пример просто такой получился. Но это не значит что они одинаковые будут всегда.
Кто может накидать примеров кода с похожими условиями.:
Текущее значение МА> 0 бара
Ищем номер Бара, Цена<МА, нашли номер 1 бара, записываем значение в буфер 2
Ищем следующий номер Цена>МА нашли номер 2 бара, записываем в значение в буфер 1.
Останавливаем поиск.
Далее между значениями буфера 1 и 2 ищем самую низкую цену Low.
Если Текущее значение МА< 0 бара
Ищем номер Бара, Цена>МА, нашли номер 1 бара, записываем значение в буфер 2
Ищем следующий номер Цена<МА нашли номер 2 бара, записываем в значение в буфер 1.
Останавливаем поиск.
Далее между значениями буфера 1 и 2 ищем самую высокую цену High.
Если следовать изображению, то нужно запустить цикл и делать поиск до тех пор, пока не будет обнаружено условие МА<Цена.
Как только нашли это место - заполняем массив ценами High. Идём в цикле до тех пор, пока не будет обнаружено условие МА>Цена, как только нашли это место - прерываем цикл (break)
Ну и в массиве ищем пиковые цены
Если следовать изображению, то нужно запустить цикл и делать поиск до тех пор, пока не будет обнаружено условие МА<Цена.
Как только нашли это место - заполняем массив ценами High. Идём в цикле до тех пор, пока не будет обнаружено условие МА>Цена, как только нашли это место - прерываем цикл (break)
Ну и в массиве ищем пиковые цены
Все верно и я так же написал, а как это реализовать в Код можно хотя бы пример кода вот этого :
запустить цикл и делать поиск до тех пор, пока не будет обнаружено условие МА<Цена.
Как только нашли это место - заполняем массив ценами High
Все верно и я так же написал, а как это реализовать в Код можно хотя бы пример кода вот этого :
запустить цикл и делать поиск до тех пор, пока не будет обнаружено условие МА<Цена.
Как только нашли это место - заполняем массив ценами High
Я сейчас код не могу написать, может кто другой напишет - он простой
Вот такое надо, может кто то помочь с этим кодом.
Потом надо найти следующее значение где iLow>ma и возвратить номер бара No_2 .
Остановить поиск и с помощью функции iHighest найти вершину между этими барами
int val_index=iHighest(NULL,0,MODE_HIGH,No_2,No_1);
Это не MQL5 код.
Это не MQL5 код.
Это макет, здесь нет разницы между 4 и 5
:)