Здравствуйте программисты! Мне нужно что бы индюк делал запись в отдельные буфера для бай и селл. Я сделал что бы индюк в течении n баров давал сигнал в эти буфера(при сигнале стрелки бай: буферу бай 2, буферу селл 1; на стрелку селл то же самое только значения местами помяняються). Так вот, вроде всё правильно но в некоторые моменты не ставит значение буферу бай(даже с Print в журнал вообще ничего не пишет). Огромная просьба помочь! Буду вечно благодарен тому кто ответит!
Просто меня этот индикатор убивает... Уже злюсь на этот индюк... И на себя... Спасибо
ГИГАНСКОЕ заранее.
пересмотрел ваши посты, но так и не понял: что вы хотите сделать!? я сам плохо разбираюсь в советниках....Здравствуйте программисты! Мне нужно что бы индюк делал запись в отдельные буфера для бай и селл. Я сделал что бы индюк в течении n баров давал сигнал в эти буфера(при сигнале стрелки бай: буферу бай 2, буферу селл 1; на стрелку селл то же самое только значения местами помяняються). Так вот, вроде всё правильно но в некоторые моменты не ставит значение буферу бай(даже с Print в журнал вообще ничего не пишет). Огромная просьба помочь! Буду вечно благодарен тому кто ответит!
Просто меня этот индикатор убивает... Уже злюсь на этот индюк... И на себя... Спасибо ГИГАНСКОЕ заранее.
как-то так... P.S. цены High/Low можно заменить и на Open/Close... или сложить все 4, а за скобками разделить на 4...Подскажите функцию: пробитие 50% предыдущей свечи с выбором отрабатываемого старшего таймфрейма
int CountedBars=IndicatorCounted();
if (CountedBars<0) return(-1);
if (CountedBars>0) CountedBars--;
int limit=fmin(Bars-CountedBars,Bars-2);
if (History>ZZSpeed) limit=fmin(History,Bars-2);
//**************************************************************************//
for (int i=limit+ZZSpeed*3; i>=0; i--) //for (i=0; i<=History; i++) //
{
int y = iBarShift(NULL,TimeFrame,Time[i],false);
int TF = 0 == текущий ТФ, 1 == предыдущий ТФ и так далее...
MID[i] = (iLow(NULL,TimeFrame,y+TF) + iHigh(NULL,TimeFrame,y+TF)) /2;
if (Close[i] > MID[i]) BUY[i] = рисуем гисто вверх (например)...
if (Close[i] < MID[i]) SELL[i] = рисуем гисто вниз (например)...
}
как-то так... P.S. цены High/Low можно заменить и на Open/Close... или сложить все 4, а за скобками разделить на 4...
Код:int CountedBars=IndicatorCounted(); if (CountedBars<0) return(-1); if (CountedBars>0) CountedBars--; int limit=fmin(Bars-CountedBars,Bars-2); if (History>ZZSpeed) limit=fmin(History,Bars-2); //**************************************************************************// for (int i=limit+ZZSpeed*3; i>=0; i--) //for (i=0; i<=History; i++) // { int y = iBarShift(NULL,TimeFrame,Time[i],false); int TF = 0 == текущий ТФ, 1 == предыдущий ТФ и так далее... MID[i] = (iLow(NULL,TimeFrame,y+TF) + iHigh(NULL,TimeFrame,y+TF)) /2; if (Close[i] > MID[i]) BUY[i] = рисуем гисто вверх (например)... if (Close[i] < MID[i]) SELL[i] = рисуем гисто вниз (например)... }
пересмотрел ваши посты, но так и не понял: что вы хотите сделать!? я сам плохо разбираюсь в советниках....
нет, если вы хотите отфильтровать "открытие ордера" по тренду от ZZ NRP, то добавил вам пару буферов в нужном месте...
и вообще, переписал его, чтоб облегчить работу... может поможет!?
- или вы хотите ещё и тренд "порезать" на короткие блоки [Howbars], чтоб поймать "запоздавшую" Стрелку/Алерт!?
- или вы хотите сделать Алерт, чтоб он сигналил ещё несколько свечей после Стрелки!?
как-то так... P.S. цены High/Low можно заменить и на Open/Close... или сложить все 4, а за скобками разделить на 4...
Код:int CountedBars=IndicatorCounted(); if (CountedBars<0) return(-1); if (CountedBars>0) CountedBars--; int limit=fmin(Bars-CountedBars,Bars-2); if (History>ZZSpeed) limit=fmin(History,Bars-2); //**************************************************************************// for (int i=limit+ZZSpeed*3; i>=0; i--) //for (i=0; i<=History; i++) // { int y = iBarShift(NULL,TimeFrame,Time[i],false); int TF = 0 == текущий ТФ, 1 == предыдущий ТФ и так далее... MID[i] = (iLow(NULL,TimeFrame,y+TF) + iHigh(NULL,TimeFrame,y+TF)) /2; if (Close[i] > MID[i]) BUY[i] = рисуем гисто вверх (например)... if (Close[i] < MID[i]) SELL[i] = рисуем гисто вниз (например)... }
int Type;
А почему должно что-то печатать если сегодня нет тиков? Один раз печатает и хватит.Привет знатоки.
Хочу сделать индикатор с возможностью переключения свойств с помощью кнопок. В глобальных переменных прописалТак эту переменную должны видеть и все функции OnCalculate,OnChartEvent.В функции OnChartEvent и OnCalculate сделал принт. В журнале вижу печать переменной, а вот в OnCalculate не печатает. Что не так делаю?HTML:int Type;
И еще вопрос. Как изменит цвет активной кнопки ?
А почему должно что-то печатать если сегодня нет тиков? Один раз печатает и хватит.
поменять цвет можно ObjectSetInteger(0,name,OBJPROP_BGCOLOR,back_clr);
Одно нажатие, один цвет. Второе нажатие другой цвет.
А зачем его туда передавать? OnChartEvent отдельный, самостоятельный обработчик события.Спасибо. Это понял. Так получается так, если нет тиков в выходные ни OnCalculate, ни OnTimer с OnChartEventне получит сигнал. А других способов передать сигнал с OnChartEventв в OnCalculate нету ?
Привет знатоки.
Хочу сделать индикатор с возможностью переключения свойств с помощью кнопок. В глобальных переменных прописалТак эту переменную должны видеть и все функции OnCalculate,OnChartEvent.В функции OnChartEvent и OnCalculate сделал принт. В журнале вижу печать переменной, а вот в OnCalculate не печатает. Что не так делаю?HTML:int Type;
Спасибо. Это понял. Так получается так, если нет тиков в выходные ни OnCalculate, ни OnTimer с OnChartEventне получит сигнал. А других способов передать сигнал с OnChartEventв в OnCalculate нету ?
И еще вопрос. Как изменит цвет активной кнопки ?
Добрый вечер, уважаемые коллеги.
Столкнулся в очередной раз с чудом то ли MQL4, то ли МТ4, то ли своего творчества.
Функция ObjectGetValueByTime в индикаторе не работает. Тоесть, не совсем не работает, а работает как то по своему усмотрению.
Нужно контролировать каналы стандартного отклонения...
Благодарю mobidik, действительно, цену канала CanelInside определяет, но со второй и далее итерации. А на первой, которую и выделяет флаг на 54 строке, чтобы не мелькали данные на каждый тик, объект определяется, а цена нет! После такого сбоя индикатор правильно не может инициализироваться. Почему так происходит и что делать, пока не пойму.А Вы закомментируйте 54 строку своего кода в "Chudo" и все будет, а вот чем вызвана задержка...
так это просто: ввести переменную, в которую будем заносить значение цены линии, затем задаем условие - как только значение в переменной становиться больше "0" - сменили флаг и вывели в принт, а так, вариантов может быть несколько.чтобы не мелькали данные на каждый тик
так это просто: ...