valenok2003:
Вот так я сделал для стохастика.
Это тоже новое для меня. Я попробую разобрать Ваш код и сделать все на основе вашего кода. Думаю получится сделать то же самое с этим самодельным параболиком. Но будем надеяться все же, что это не единственный вариант.Вот так я сделал для стохастика.
Спасибо!
Двигаюсь в правильном направлении. В простом индикаторе такое получается, а в этом нет. Чего-то опять не учел... Не прорисовывает на старшем, не пойму, в чем проблема:
for (int i=Bars-2; i >= 0; i--) { int st=iBarShift(NULL, TF,Time[i], true); int ml = iBarShift(NULL, 0, iTime(0,TF,st+1), true); int bars= iBars(NULL,TF); double high= iHigh(NULL,TF,st); double low= iLow(NULL,TF,st); double close= iClose(NULL,TF,st); if(i == Bars-2) { n_ST = 1; S_ST = step; barA_ST = iClose(NULL,TF,st); barB_ST = iClose(NULL,TF,st); Bufer_ST[i] = iLow(NULL,TF,st) - 10 * Point; } else { if(iClose(NULL,TF,st) > barA_ST) { barA_ST = iClose(NULL,TF,st); if (n_ST==1 && S_ST <= max - step) { S_ST = S_ST + step; } } if(iClose(NULL,TF,st) < barB_ST) { barB_ST = iClose(NULL,TF,st); if (n_ST == -1 && S_ST <= max - step) { S_ST = S_ST + step;} } //------------- Формула: if (n_ST == 1) // если бай { Bufer_ST[i] = Bufer_ST[ml] + S_ST * (barA_ST - (Bufer_ST[ml])); } else { Bufer_ST[i] = Bufer_ST[ml] + S_ST * (barB_ST - (Bufer_ST[ml])); } // если сигналит либо вниз либо вверх: if ((Bufer_ST[ml] < iClose(NULL,TF,st+1) && Bufer_ST[i] > iClose(NULL,TF,st)) || (Bufer_ST[ml] > iClose(NULL,TF,st+1) && Bufer_ST[i] < iClose(NULL,TF,st))) { S_ST = step; if (n_ST == 1) {Bufer_ST[i] = barA_ST;} else {Bufer_ST[i] = barB_ST;} barB_ST = iClose(NULL,TF,st); barA_ST = iClose(NULL,TF,st); n_ST = -1 * n_ST; } } }
Прошу спецов снизойти наконец к простым смертным )) А то чувствую, буду так колдыбаситься еще целый месяц над, наверное, простыми вещами (для кого-то).
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Имеется код параболика. Требуется на текущий график вывести индикатор старшего таймфрейма (например на графике М5 мы должны видеть расположение индикатора на М15, период меняется). Причем сделать это получается только с через iSAR с помощью iBarShift(NULL, TF,Time[b], false)
А вот как написать это в данном коде никак не пойму. В том виде, что привел ниже, попытался сделать просто через деление
max и step на таймфрейм. В итоге обработка идет по барам текущего таймфрейма, и результаты расчета не совпадают со старшим. А как рассчитать по барам старшего?