Подскажите почему не сробатывает?

 

Мне нужно что-бы сигнал с пользовательского индюка подтверждался на трёх таймфреймах!

Где я ошибся???

if((iCustom(NULL,5,"ZigAndZag",5,ZZbar)!=0)&&(iCustom(NULL,60,"ZigAndZag",5,ZZbar)!=0)&&(iCustom(NULL,240,"ZigAndZag",5,ZZbar)!=0)){buy=true;SetArrow(241,1,true,Blue);}
if((iCustom(NULL,5,"ZigAndZag",6,ZZbar)!=0)&&(iCustom(NULL,60,"ZigAndZag",6,ZZbar)!=0)&&(iCustom(NULL,240,"ZigAndZag",6,ZZbar)!=0)){sell=true;SetArrow(242,1,false,Red);}

 

я не знаю что у тя за ZigAndZag но в моём ZigAndZag -е

есть параметры

extern int KeelOver=55;
extern int Slalom=17;

и в iCustom(NULL,5,"ZigAndZag",5,ZZbar) ты меняешь парам KeelOver = 5 !

и не известно что скрыто за ZZbar !?

и бай и сел друг друга перебивают!

 
vvavva >>:

я не знаю что у тя за ZigAndZag но в моём ZigAndZag -е

есть параметры

extern int KeelOver=55;
extern int Slalom=17;

и в iCustom(NULL,5,"ZigAndZag",5,ZZbar) ты меняешь парам KeelOver = 5 !

и не известно что скрыто за ZZbar !?

и бай и сел друг друга перебивают!

ZZbar это shift

А меняю я только Тайм фрейм!

С одним тайм фреймом:

if(iCustom(NULL,5,"ZigAndZag",5,ZZbar)!=0){buy=true;SetArrow(241,1,true,Blue);}
if(iCustom(NULL,5,"ZigAndZag",6,ZZbar)!=0){sell=true;SetArrow(242,1,false,Red);}


всё работает прекрасно!

А вот как его заставить получать сигнал с трёх???

 

сори перепутал(не проснулся) ты оказывается буферы запрашиваешь!

но сигнал буфера 5 и 6 обычно на каждом периоде разный и на разных барах!

те нужно делать проверки к каждому периоду отдельно и потом анализировать и делать вывод!

так как у тя работаь не бут(если конечно я проснулся!?))!

 
Ты, конечно, молодец, хочешь чтобы на трех разных таймфремах на одном и том же (в смысле одинаковом по счету) баре были одинаковые сигналы. Т.е., например, на третьем четырехчасовом баре и третьем пятиминутном баре. Это в разных галактиках. Или я чего не понимаю?
 

Спасибо теперь я понял что полез не в ту степь!))

Не подскажете как правильно написать??? Я просто не програмист! Я просто из кусков кода составляю советник! Со встроенным получалось не плохо (не факт что со всеми, возможно просто повезло)

А вот с пользовательским не могу разобраться!

Подскажите если не трудно! Пните в нужную сторону!)) Если не затруднит примером))

 

На примере MA


bool buy=(iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0) <iClose(NULL, 0,0))&&(iMA(NULL,PERIOD_W1,13,0,MODE_SMA,PRICE_CLOSE,0)<iClose(NULL, 0,0));


Buy будет true если на текущий графиге и на недельном MA меньше текущей цены

 

Заметил вот что:

в вызове iCustom вы не передаете параметры индикатора (посмотрите внимательно описание функции iCustom), а сразу указываете буфер и бар. Если в вашем индикаторе объявлены экстерн переменные, необходимо в строгой очередности (в той в какой они объявлены) передавать их во время вызова iCustom.

 
hasayama >>:

Заметил вот что:

в вызове iCustom вы не передаете параметры индикатора (посмотрите внимательно описание функции iCustom), а сразу указываете буфер и бар. Если в вашем индикаторе объявлены экстерн переменные, необходимо в строгой очередности (в той в какой они объявлены) передавать их во время вызова iCustom.

Не обязательно. Можно не указывать, тогда будут использованы extern индикатора.

 
Atis >>:

На примере MA


bool buy=(iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0) <iClose(NULL, 0,0))&&(iMA(NULL,PERIOD_W1,13,0,MODE_SMA,PRICE_CLOSE,0)<iClose(NULL, 0,0));


Buy будет true если на текущий графиге и на недельном MA меньше текущей цены

Вы меня конечно извините но помоему вы мне показываете тот же хрен только вид с боку!))

 
hasayama >>:

Заметил вот что:

в вызове iCustom вы не передаете параметры индикатора (посмотрите внимательно описание функции iCustom), а сразу указываете буфер и бар. Если в вашем индикаторе объявлены экстерн переменные, необходимо в строгой очередности (в той в какой они объявлены) передавать их во время вызова iCustom.

Если я не ошибаюсь то параметры индикатора здесь указанны.

if((iCustom(NULL,5,"ZigAndZag",5,ZZbar)!=0)&&(iCustom(NULL,60,"ZigAndZag",5,ZZbar)!=0)&&(iCustom(NULL,240,"ZigAndZag",5,ZZbar)!=0)){buy=true;SetArrow(241,1,true,Blue);}
if((iCustom(NULL,5,"ZigAndZag",6,ZZbar)!=0)&&(iCustom(NULL,60,"ZigAndZag",6,ZZbar)!=0)&&(iCustom(NULL,240,"ZigAndZag",6,ZZbar)!=0)){sell=true;SetArrow(242,1,false,Red);}

Причина обращения: