МА и отскок

 
Всем привет. В программировании новичок, поэтому решил обратиться к толковым людям. Подскажите своим кодом или может кто-то подскажет уже написанный код в интернете (не могу найти). Суть вот в чем цена пробила МА -> ушла дальше -> вернулась к МА -> задела, на этом моменте должен быть сигнал на открытие ордера. Задача тривиальная, но алгоритмически что то не доходит как это сделать. есть идея, что как только точка соприкосновения появилась запустить цикл на проверку её ранее соприкосновения и отхода цены в нужную сторону, но вот чую, что можно сделать проще, или нет?
 
pilolin: цена пробила МА -> ушла дальше -> вернулась к МА -> задела, на этом моменте должен быть сигнал на открытие ордера
На конец увидел одно сообщение со словами открытие ордера. Ура, будет профит. Но надо усложнить. Начал писать тестовый советник...
 
LRA:
На конец увидел одно сообщение со словами открытие ордера. Ура, будет профит. Но надо усложнить. Начал писать тестовый советник...
Это не вся стратегия которую я описал, но могу описать подробнее. На ручной торговле вроде приносило +. Хочу написать советника, но запнулся на этом простом моменте. Можете помочь хотя бы с тем что описал?
 
pilolin:
Всем привет. В программировании новичок, поэтому решил обратиться к толковым людям. Подскажите своим кодом или может кто-то подскажет уже написанный код в интернете (не могу найти). Суть вот в чем цена пробила МА -> ушла дальше -> вернулась к МА -> задела, на этом моменте должен быть сигнал на открытие ордера. Задача тривиальная, но алгоритмически что то не доходит как это сделать. есть идея, что как только точка соприкосновения появилась запустить цикл на проверку её ранее соприкосновения и отхода цены в нужную сторону, но вот чую, что можно сделать проще, или нет?

Если входим на нулевом, а смотрим на первом баре, то примерно так:

extern int            Period_  =7;
extern int            q        =33;
extern int            Z        =700;
/////////////////////////////////////////////////////////////////

double MA=0.0, m=0.0, d=0.0, v=0.0;
int punkt=0;
MA=    iMA(NULL,0,Period_,0,MODE_EMA,PRICE_CLOSE,1); 
if (Low[1] <= MA)
{
for (int x=2;x<=q;x++)
{
m=iMA(NULL,0,Period_,0,MODE_EMA,PRICE_CLOSE,x); 
d=High[x]-m;
if (d > v)v=d;
if (Low[x] < m){break;}
}
punkt=v/Point;
if (punkt >= Z)
{
//Ваш код

}
}
 
pilolin:
Всем привет. В программировании новичок, поэтому решил обратиться к толковым людям. Подскажите своим кодом или может кто-то подскажет уже написанный код в интернете (не могу найти). Суть вот в чем цена пробила МА -> ушла дальше -> вернулась к МА -> задела, на этом моменте должен быть сигнал на открытие ордера. Задача тривиальная, но алгоритмически что то не доходит как это сделать. есть идея, что как только точка соприкосновения появилась запустить цикл на проверку её ранее соприкосновения и отхода цены в нужную сторону, но вот чую, что можно сделать проще, или нет?
Когда цена ушла дальше, можно поставить на MA отложенный ордер.
Причина обращения: