модификация ордера

 
Вопрос к знатокам MQL4.

Я написал простой советник, в котором позиции открываются и закрываются при пересечении 24EMA. Потом планировал модифицировать ордер спустя час(спустя 1 период) после пересечения 24EMA. При этом модифицировать только ОДИН раз. Написал так:

if (m==0 && BuyTicket > 0 && Close[2]>My_24EMA2 && Close[3]<My_24EMA2)

{

OrderSelect(BuyTicket,SELECT_BY_TICKET);

BuyStopLoss = OrderStopLoss()+10*Point;

BuyTakeProfit = OrderTakeProfit();

OrderModify(BuyTicket,OrderOpenPrice(),BuyStopLoss,BuyTakeProfit,0,Blue);

m=1;

}

Переменной m присваивается значение 0 при открытии позиции, а после модификации m равна 1. Вначале всё идёт по плану - после открытия ордера 1 период ничего не происходит. А потом - со второго периода - модификация ордера ПОСТОЯННО повторятся, хотя m уже не равно нулю. Вот теперь ломаю голову.

Если кто-нибудь видит ошибку, пожалуйста, подскажите.
 
static int m=0;
 
xrust:


ok Спасибо!

сейчас попробую ....

 
xrust:

Спасибо! Работает! Сам бы я вряд ли догадался...
 

просто подумайте - почитайте справку внимательно, о том как функционируют советники и прочее - на каждом тике ваша переменная обнуляется если она обьявлена внутри "старта", поэтому либо ее обьявлять в глобальной области. либо статической.

 
спасибо! ваш совет очень мне помог.
Причина обращения: