Не за что. В качестве оплаты можете выполнить общественные работы - объяснить какие изменения и для чего были сделаны :)
Чтобы в будущем помочь новичкам с объянением. Когда другому объясняешь - сам лучше понимаешь. :)
Два индикаторных массива "привязаны" к статичным значениям двух переменных:
buy[i] =val1;
sell[i] = val2;
которые в свою очередь по-умолчанию равны нулевым значением:
val1=0;
val2=0;
если условия в блоках if не выполнятся, то текущее значение i-го элемента примет значение по умолчанию, т.е. 0, а нулевые значения мы не отрисовываем, т.к. вначале кода прописали пару волшебных строк, о которых говорил Profi_R, а именно:
как вариант - можно перенести объявления переменных val1, val2 в функцию start - локализовать, таким образом необходимость заботы об их обнулении отпадет (при появлении нового тика будет стартовать эта функция с инициализированными переменными), но это нужно делать в соответствии с контекстом кода.
Для авторизации и пользования сайтом MQL5.com необходимо разрешить использование файлов Сookie.
Пожалуйста, включите в вашем браузере данную настройку, иначе вы не сможете авторизоваться.
Вы вошли в аккаунт. Двухфакторная аутентификация отключена. Настройте её заново и отсканируйте новый QR-код или продолжите с отключённой двухфакторной аутентификацией.
for(i=0; i<limit; i++) { double teeth = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, i); if ((viewpre[i] > 0) && (viewpre[i+1] < 0) && (Close[i] > teeth)) { buy[i] = High[i] + Point*3; sell[i] = 0.0; } if ((viewpre[i] < 0) && (viewpre[i+1] > 0) && (Close[i] < teeth)) { sell[i] = Low[i] - Point*3; buy[i] = 0.0; } }double val1,val2; for(i=limit; i>=0; i--) { val1=0; val2=0; double teeth = iAlligator(NULL, 0, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH, i); if ((viewpre[i] > 0) && (viewpre[i+1] < 0) && (Close[i] > teeth)) { val1 = High[i] + Point*3; } if ((viewpre[i] < 0) && (viewpre[i+1] > 0) && (Close[i] < teeth)) { val2 = Low[i] - Point*3; } buy[i] =val1; sell[i] = val2; }И не забудьте проанализировать - что изменено и почему.
Спасибо!
Теперь код абсолютно здоров, жаль что сам раньше не догадался!
Чтобы в будущем помочь новичкам с объянением. Когда другому объясняешь - сам лучше понимаешь. :)
которые в свою очередь по-умолчанию равны нулевым значением:
если условия в блоках if не выполнятся, то текущее значение i-го элемента примет значение по умолчанию, т.е. 0, а нулевые значения мы не отрисовываем, т.к. вначале кода прописали пару волшебных строк, о которых говорил Profi_R, а именно:
SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0);Ну вот, вроде, и все. Не знаю насколько хорошо я объяснил, но сам я понял ;)
Еще раз спасибо!