Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 589
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
1. Я говорил проверить, а не заменить. iFractals возвращает 0 если нет фрактала. Я этим регулярно не пользуюсь и естественно не забиваю не высохшие остатки памяти такими мелочами.
2. Функция, хоть и написана ужасно, но всё-же работает исправно.
3. В Comment отображается последнее значение. Замените на
и посмотрите сколько раз будет напечатаноМного, но ни разу false. Как будто условие всегда выполнено. Но должно быть false.
Много, но ни разу false. Как будто условие всегда выполнено. Но должно быть false, на скрине, ситуация противоречит условию, но true.
На скрине отмечены первый фрактал и второй. Но по условию функция ищет дальше, пока не найдёт тот который ниже первого. А четвёртый фрактал ниже первого... Что и написано в условии.
Если условие дополнить
То будет печатать и false.
На скрине отмечены первый фрактал и второй. Но по условию функция ищет дальше, пока не найдёт тот который ниже первого. А четвёртый фрактал ниже первого... Что и написано в условии.
Если условие дополнить
То будет печатать и false.
Печатает false, но условие выполнено.
Второй цикл всегда возвращает цену фрактала найденного в первом цикле.
Второй цикл всегда возвращает цену фрактала найденного в первом цикле.
У вас, по-моему, с логикой беда.
Попробуйте себе простыми словами описать порядок поиска. Подумайте - всё ли верно вы написали. И уже потом делайте функцию поиска, которая будет возвращать цену найденного по его порядковому номеру фрактала. Как сделаете её, и она будет вам возвращать верную цену заданного по порядковому номеру фрактала, так начинайте делать логику поиска цены следующего по счёту фрактала (функция, возвращающая его цену на тот момент у вас уже будет). И потом останется лишь сравнить эти цены.
А вы всё в кучу городите сразу.
Может быть я неправильно понимаю как это работает?
Сначала нахожу фрактал, первый попавшийся выше МА - (на скрине помечен №1),
от него ищу, дальше, в историю, первый попавшийся - фрактал (на скрине помечен №2). Если фрактал №2 больше фрактал№1 возвращаю true.
Всё ли верно?
будет возвращать цену найденного по его порядковому номеру фрактала.
Не по номеру, ищу по условию что фрактал выше МА, порядковый номер может быть любым. Цена этого фрактала в первом цикле пишется в переменную "fr1" верно.
Проблема во втором цикле, если конечно правильно понимаю. Почему не находит цену фрактала №2, непонятно
Не по номеру, ищу по условию что фрактал выше МА, порядковый номер может быть любым. Цена этого фрактала в первом цикле пишется в переменную "fr1" верно.
Проблема во втором цикле, если конечно правильно понимаю. Почему не находит цену фрактала №2, непонятно
Всю логику приходится вам пересказывать. Хоть что-то можно самостоятельно обдумать?
1. В первом цикле находим фрактал выше МА. Номер бара пишем в переменную num_bar (на скрине бар №11)
2. Во втором цикле начинаем искать второй фрактал удовлетворяющий условию. Начинаем искать с бара num_bar... то-есть с бара №11 потому, что nf равно нулю.
3. Фрактал найден. Значение равно предыдущему. Условие не будет выполнено, ведь в условии то > то < но не равно. А если поставить == то будет та-же белиберда только с другой стороны.
Видимо надо искать второй фрактал со следующего бара num_bar+1 или даже +2.
Всю логику приходится вам пересказывать. Хоть что-то можно самостоятельно обдумать?
1. В первом цикле находим фрактал выше МА. Номер бара пишем в переменную num_bar (на скрине бар №11)
2. Во втором цикле начинаем искать второй фрактал удовлетворяющий условию. Начинаем искать с бара num_bar... то-есть с бара №11 потому, что nf равно нулю.
3. Фрактал найден. Значение равно предыдущему. Условие не будет выполнено, ведь в условии то > то < но не равно. А если поставить == то будет та-же белиберда только с другой стороны.
Видимо надо искать второй фрактал со следующего бара num_bar+1 или даже +2.
В общем то действия в первых двух пунктах, я так и озвучил)
За "num_bar+1" спасибо.
Минимум не получается найти.
Условие не выполнено, стрелка ставится, выполнено не ставится.
Условие такое, если между пересечениями цены и МА расстояние от минимума свечи пересекшей МА, до минимума iLowest больше или равно 100, ставлю стрелку.
От В до А нахожу минимум С.
А-С=100 pips в точке В, должен поставить стрелку.
Почему не ставит?
В общем то действия в первых двух пунктах, я так и озвучил)
Немного не так озвучил второй пункт. В ваших рассуждениях небыло определения откуда начали искать и когда какое значение получим. А именно это и толкает на мысль что искать-то надо чуть подальше.
Минимум не получается найти.
Условие не выполнено, стрелка ставится, выполнено не ставится.
Условие такое, если между пересечениями цены и МА расстояние от минимума свечи пересекшей МА, до минимума iLowest больше или равно 100, ставлю стрелку.
От В до А нахожу минимум С.
А-С=100 pips в точке В, должен поставить стрелку.
Почему не ставит?
В этом коде что-то тоже логику трудно уловить.
Как минимум надо знать где и как объявлены переменные indexS1 и indexS2 не обнуляются-ли они на каждом тике.
А что произойдёт если пересечение МА попадёт в гэп?
И ещё один вопрос: Вы умеете пользоваться отладчиком?