Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В любом случае, спасибо, мне придется еще почитать об этом, я подбираюсь ближе, но все еще немного туманно :)
Похоже, что у меня уходит слишком много времени на изучение вещей. Думаю, мне нужно больше читать чужие коды и пытаться понять их, чтобы получить лучшие идеи для дизайна.
Спасибо за ответ.
Есть 2 буфера (массива), в которых хранятся значения цен фракталов ... val1 и val2. Если вы хотите найти предыдущие значения фракталов, вы просто выполняете цикл, увеличивая значение сдвига, и проверяете значения буферов, пока не найдете те, которые не являются EMPTY_VALUE ( https://docs.mql4.com/customind/SetIndexEmptyValue ).
Итак, я могу зациклиться на v1[i] и v2[i] с помощью кода 1++,
Я не понимаю val1>0, разве оно не всегда больше 0, кроме High[0]?
И почему val1 отмечает только высокий фрактал, а не все High[i] AHHH Я думаю, что понимаю, потому что оператор if говорит ему делать только High[i].
Хорошо, давайте подумаем еще немного.
val1 - это фракталы, однако v1[i] - это только высокие значения фракталов. Хорошо, думаю, я разобрался с этой частью.
Тогда я могу зациклить v1[i] 1++ каким-то образом (мне придется разобраться с этой частью) до предыдущей точки перед EMPTY_VALUE, и это будет предыдущий High[i] фрактал.
Я приближаюсь к цели?
Ладно, просто размышляю вслух:
val1 - это фракталы, однако v1[i] - это только максимумы фракталов. Я думаю, что я разобрался с этой частью.
Тогда я могу зациклить v1[i] 1++ каким-то образом (мне придется разобраться с этой частью) до предыдущей точки перед EMPTY_VALUE, и это будет предыдущий High[i] фрактал.
Я приближаюсь к цели?
Правильно... :-)
Спасибо
Как бы то ни было:
Я думал, что цикл for вернет меня назад только на один сигнал и напечатает уровень сигнала для меня. но я не получаю ничего или 0.
После нескольких дней обдумывания и перепробования многих вещей, я попытался внести эти изменения в версию индикатора, добавив 3-й буфер и попытавшись сигнализировать ценой на графиках, но и это не помогло.
Ну, подождите, я беру свои слова обратно, в короткой версии советника у меня нет буфера EMPTY_VALUE, так что, скорее всего, он не будет работать, и поэтому идея заключалась в том, чтобы протестировать советник, чтобы я мог увидеть функции печати, чтобы увидеть результаты, но версию индикатора мне придется подождать, так что я должен отписаться об этом, как выяснилось.
В общем, я пока оставил попытки создать 3-й буфер/сигнал и просто хочу посмотреть, смогу ли я вывести результат предыдущего сигналаВ любом случае, вот версия индикатора, но я не чувствую себя уверенно, потому что я не совсем уверен, должен ли я пытаться зациклиться внутри оператора while или создать новый цикл и воссоздать val1 = .... снова.
EMPTY_VALUE, как я ввел код, инициализирует индикатор, но это все, что ничего не печатает.
Не могли бы вы объяснить, как работает этот цикл for?
for(val1=High[i]; v1[i] == 0 ;i++)
Не могли бы вы объяснить, как работает этот цикл for?
for(val1=High[i]; v1[i] == 0 ;i++)
Я думал, что это увеличит i++ на 1 уровень до предыдущего максимума, ну, на самом деле, я думаю, что это перейдет к следующему EMPTY_VALUE.
Поэтому мне нужно сделать это наоборот v1[i] = High[i]; i++
Тогда это не должно привести меня к предыдущему High, но я не уверен, как правильно инициализировать его.
Я буду продолжать работать над этим.
Все, что я получаю, это 0, так что на самом деле нет никаких значений, когда = Print (v1[i]);
Что странно, потому что как тогда индикатор вообще работает в этот момент?
Ну ладно, буду продолжать.
Я меняю его на if( Я просто хочу увидеть хоть что-то, что печатается в этот момент, чтобы я мог хотя бы увидеть, что делает индикатор.
Все, что я получаю, это 0, так что на самом деле нет никаких значений, когда = Print (v1[i]);
Что странно, потому что как тогда индикатор вообще работает в этот момент?
Ну ладно, буду продолжать.
Может быть, вы просто видите значения для v1[0] ? print i в то же время...
я не все выложил, но все строки читаются одинаково = 0
я думал я все же должен увидеть фактическое значение для v1[0] ?
как оно может быть всегда 0, когда индикатор должен быть if(>0) ?
Возможно, я попадаю в еще одну область, в которой я невежественен.
Я думал, что смогу распечатать, чтобы попытаться понять, что и почему все мои попытки терпят неудачу; и чтобы я мог увеличить i++ каким-то образом, чтобы добраться до следующего фрактала, а затем как-то понять, как использовать эту информацию для чего-то.
Я могу напечатать High[i] или v1[i] и это всегда 0
Печать High[0] или High[1] тоже 0
Хотя я понимаю, что вы написали и печать значения i, которое, кажется, застряло из-за цикла i--, который всегда возвращает его к 0, но даже в этом случае он должен печатать значение для i, по крайней мере, я думал.
И я понимаю, почему он печатает [-1], потому что i=Bars. Это я понял, но =0?