Здравствуйте. Подскажите пожалуйста как пропустить 50 свечей на графике?
такой вариант работает, но только в будущем. На истории не пропускает эти 50 свечей.
Подробнее, пожалуйста. Пока вопрос непонятен. Что значит "пропустить 50 свечей"?
Подробнее, пожалуйста. Пока вопрос непонятен. Что значит "пропустить 50 свечей"?
Есть сигнал. У него рисуется линия на 50 баров вперед, но условия на отрисовку сигнала еще раз выполняются раз от раза в этот же момент и получается наложение сигналов другу на друга в некоторых местах. Мне надо что бы после сигнала не трогались условия еще 50 баров. Примерный код.
if(a!=1&&iRSI(NULL, 0, 14, PRICE_CLOSE, i+1)>50) { Отрисовка сигнала a=1; } // тут нужно подождать 50 баров и сделать а=0; // как это осуществить? if(a!=1&&iRSI(NULL, 0, 14, PRICE_CLOSE, i+1)>50) // такой вариант подходит, но он работает только когда график идет вперед,на истории налазиет друг на друга { Отрисовка сигнала t=iTime(NULL,0,i+1); a=1; } if(iBarShift(NULL, 0, t)>50) { a=0; } Пробывал еще так: if(a!=1&&iRSI(NULL, 0, 14, PRICE_CLOSE, i+1)>50) // такой вариант и на истории и на графике вперед работает как надо, но стоит войти во входные параметры и не чего { //не меняя нажать ок, на истории вылазят наложенные сигналы . Отрисовка сигнала t=iTime(NULL,0,i+1); a=1; } if(Bars(NULL, 0, t,iTime(NULL,0,i+1))>50) { a=0; }
Есть сигнал. У него рисуется линия на 50 баров вперед, но условия на отрисовку сигнала еще раз выполняются раз от раза в этот же момент и получается наложение сигналов другу на друга в некоторых местах. Мне надо что бы после сигнала не трогались условия еще 50 баров. Примерный код.
50 баров это PeriodSeconds()*50;
Так вот и сравнивай текущее время с временем запомненным в момент появления сигнала.
50 баров это PeriodSeconds()*50;
Так вот и сравнивай текущее время с временем запомненным в момент появления сигнала.
Ни чего на истории не отображаеться.
Ни чего на истории не отображаеться.
Я не говорил что что-то должно отображаться. Это всего лишь ответ на конкретный вопрос.
if(a == 0 &&iRSI(NULL, 0, 14, PRICE_CLOSE, i+1)>50) // такой вариант подходит, но он работает только когда график идет вперед,на истории налазиет друг на друга { Отрисовка сигнала t=iTime(NULL,0,i+1); a=1; } if(a=1 && TimeCurrent()-t >= PeriodSeconds()*50) { a=0; }
Пока не отсчитаем 50 баров, а будет равно 1 и в первое условие не войдём.
После того как "а" станет равно 0 войдём в первое условие, время t будет иметь новую точку отсчёта, "а" будет равно 1 и опять будет ожидание до обнуления переменной "а".
Я не говорил что что-то должно отображаться. Это всего лишь ответ на конкретный вопрос.
Пока не отсчитаем 50 баров, а будет равно 1 и в первое условие не войдём.
После того как "а" станет равно 0 войдём в первое условие, время t будет иметь новую точку отсчёта, "а" будет равно 1 и опять будет ожидание до обнуления переменной "а".
Не подходит такое решение проблемы. Все равно в некоторых местах налазиет.
Вопрос полностью расписал. То что ваш метод не работает у меня, это не значит, что он не правильный. Но и не значит, что он подходит для решения моей проблемы. Возможно надо не посылаться, а просто как то еще попробывать помочь. Может что можно из такого варианта выжить:
if(Bars(NULL, 0, t,iTime(NULL,0,i+1))>50) { a=0; }
Есть сигнал. У него рисуется линия на 50 баров вперед, но условия на отрисовку сигнала еще раз выполняются раз от раза в этот же момент и получается наложение сигналов другу на друга в некоторых местах. Мне надо что бы после сигнала не трогались условия еще 50 баров. Примерный код.
Тогда так:
static datetime dtLastSignalTime = 0; ... if (dtLastSignalTime == 0 && iRSI(NULL, 0, 14, PRICE_CLOSE, i+1) > 50) { // Отрисовка сигнала dtLastSignalTime = iTime(NULL, 0, i + 1); } // тут нужно подождать 50 баров int nLastSignalBarIndex = iBarShift(NULL, 0, dtLastSignalTime); if (i + 1 - nLastSignalBarIndex > 50) dtLastSignalTime = 0;
Тогда так:
Рисует всего один сигнал на истории.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте. Подскажите пожалуйста как пропустить 50 свечей на графике?
такой вариант работает, но только в будущем. На истории не пропускает эти 50 свечей.