Прошу помощи машки

 

Подскажите плизз как установить наблюдение за машками после их пересечение на 10 баров???



Имеется код:


Emax.Strategy.2.MA.1 [i]   =  iMA(Symbol(),NULL,12,0,MODE_EMA,PRICE_OPEN,i);
Emax.Strategy.2.MA.2 [i]   =  iMA(Symbol(),NULL,5,0,MODE_EMA,PRICE_CLOSE,i);
Emax.Strategy.2.MA.3 [i]   =  iMA(Symbol(),NULL,9,0,MODE_EMA,PRICE_CLOSE,i);
Задача найти пересечение машек с периодом 12 и 5 и наблюдать в течении скажем 2-3 баров за другим индикатором...
 
А попроще и с примером можно? Что в Вашем понятии - наблюдать?
 
Вот тут описана стратегия я пытаюсь к ней написать сигнализатор... http://strategy4you.ru/strategii-s-indikatorami-foreks/indikatornaya-strategiya-forex.html
 
Я его прошу попроще, а он к первоисточникам отсылает. "Пальцем покажи, что надо."
 

Так попробую обьяснить...

Нужно отловить пересечение 2 МА с периодами 12 и 5, когда поймаем пересечение нужно дождатся закрытия одного бара после пересечения, проверить показания других индикаторов и если всё сходится дать сигнал в нужную сторону...

 
Ты сначала проверь "другие" индикаторы, потом проверяй машки на втором и третьем баре, это лучший вариант.
Если так не подходит, после отлова пересечения запоминай, что тебе надо в глобальную переменную как флаг (время бара или цену закрытия) ипотом как будет условие на других индикаторах, сличай с флагом.
Ну, не знаю, вариантов - тонны.
 
Тут именно машек надо сначало проверять!
 
Не пойму в чем проблема? Поступил сигнал от машек - запоминаем время открытия свечи, на которой это произошло (Time или iTime, при рестарте просто просканируем последнее пересечение и опять же запоминаем время). Потом проверяем, когда нужно, другие индикаторы. При этом, если интересует сигнал машек на протяжении Х баров, высчитываем номер бара (iBarShift) по сохраненной цене и сравниваем с Х. Если больше Х, то не реагируем.
 
xweblanser >>:
Вот тут описана стратегия я пытаюсь к ней написать сигнализатор... http://strategy4you.ru/strategii-s-indikatorami-foreks/indikatornaya-strategiya-forex.html

Roger таки правильно говорит.

Не обязательно отслеживать последовательность событий,

удобней проверять условия на момент открытия ордера.

Приблизительно так:)

double
MA5_0=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0),
MA5_1=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1),
MA5_2=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,2),
MA12_0=iMA(NULL,0,12,0,MODE_EMA,PRICE_OPEN,0),
MA12_1=iMA(NULL,0,12,0,MODE_EMA,PRICE_OPEN,1),
MA12_2=iMA(NULL,0,12,0,MODE_EMA,PRICE_OPEN,2),
SAR=iSAR(NULL,0,0.02,0.2,0),
PLUSDI=iADX(NULL,0,9,PRICE_CLOSE,MODE_PLUSDI,0),
MINUSDI=iADX(NULL,0,9,PRICE_CLOSE,MODE_MINUSDI,0),
ADX=iADX(NULL,0,9,PRICE_CLOSE,MODE_MAIN,0);

bool OpenBuy=false,OpenSell=false;

if((Close[2]<MA5_2 || Close[2]<MA12_2)
&& Close[1]>MA5_1 && Close[1]>MA12_1
&& Close[0]>MA5_0 && MA5_0>MA12_0
&& Close[0]>SAR
&& PLUSDI>MINUSDI && ADX>MINUSDI) OpenBuy=true;

if((Close[2]>MA5_2 || Close[2]>MA12_2)
&& Close[1]<MA5_1 && Close[1]<MA12_1
&& Close[0]<MA5_0 && MA5_0<MA12_0
&& Close[0]<SAR
&& MINUSDI>PLUSDI && ADX>PLUSDI) OpenSell=true;
 
Swan >>:

Roger таки правильно говорит.

Не обязательно отслеживать последовательность событий,

удобней проверять условия на момент открытия ордера.

Приблизительно так:)


О спс)))

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