Пересечение скользящей средней и цены

 

Здравствуйте, пытаюсь определить, пересекла ли скользящая средняя цены или нет. Подскажите пожалуйста, как это сделать?

MA0=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0); // средняя на текущем баре

MA1=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,1); // средняя на предыдущем баре

if (MA0>... && MA1<...) // тут я не знаю как сравнить с ценой на текущем и предыдущем баре :(

{

MessageBox("Есть пересечение",Symbol(),MB_OK);

}

 
если МА больше лоя и меньше хая соответствующего бара
 
Это я понимаю, но как написать. В документации написано про Bid, Ask, .. Вы хотите сказать, что надо использовать их?
 

MA0=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0); // средняя на текущем баре

MA1=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,1); // средняя на предыдущем баре

if (MA0>Close[0] && MA1< Close[1] ) // Вот так правильно???

{

MessageBox("Есть пересечение",Symbol(),MB_OK);

}

 
Скажите пожалуйста, я правильно написал?
 
MA0=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,0); // средняя на текущем баре

MA1=iMA(NULL,0,13,0,MODE_SMA,PRICE_CLOSE,1); // средняя на предыдущем баре

if (MA0>High[0] && MA1< High[1] ) // Вот так правильно??? 

{

MessageBox("Есть пересечение",Symbol(),MB_OK);

}

if (MA0<Low[0] && MA1> Low[1] ) // Вот так правильно??? 

{

MessageBox("Есть пересечение",Symbol(),MB_OK);

}
Что-то примерно так. Хотя мне не нравится
 
Я понимаю, что в первом сравнении проверяли на лонг, а во втором на шорт. А почему не нравиться? Потому что условия MA1< High[1] или MA1> Low[1] могут говорить о том, что на предыдущем баре средняя могла быть внутри свечи? Да?
 
Vinin:
Что-то примерно так. Хотя мне не нравится
Можно поширше представить тему:
Пересечение скользящей средней и цены
Хоть что-нибудь, но подойдет.
Мне лично проще рассматривать типовое пересечение двух МА, у одной из которых период=1.
 
"Мне лично проще рассматривать типовое пересечение двух МА, у одной из которых период=1." - даже не подумал об этом, спасибо, надо попробовать :)
 

А вот можно взять из советника Moving Average.mq4 из станд.набора который идет в любом МТ4 ...

Если открытие предыдущей свечи выше машки, а закрытие ниже машки - значит цена пересекла машку вниз, солим..

Если наоборот - баим...

Вроде очень разумное и лаконичное решение... А сравнивать пересечения High[0] и Low[0] с машкой по моему не совсем верно, пересечение может ведь быть и тенью от свечи - получите ложное пробитие, а ордерок то уже откроется и самоотверженно пойдет в убыток.

   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---- sell conditions
   if(Open[1]>ma && Close[1]<ma)  
     {
      OrderSend(Symbol(),OP_SELL,LotsOptimized(),Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//---- buy conditions
   if(Open[1]<ma && Close[1]>ma)  
     {
      OrderSend(Symbol(),OP_BUY,LotsOptimized(),Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
 
Abylhat:

А вот можно взять из советника Moving Average.mq4 из станд.набора который идет в любом МТ4 ...

Если открытие предыдущей свечи выше а закрытие ниже - значит цена пересекла машку вниз, солим..

Если наоборот - баим...

Вроде очень разумное и лаконичное решение...


Разумное, но не лаконичное
Причина обращения: