Как можно заблокировать работу эксперта?

 
У меня странная ситуация. Стоит советник на реальном счете - выигрывает. Одновременно по нескольким парам. Но по одной почемуто перестал зделки открывать ( правда я код поменял немного) но по другим парам открывает все хорошо.... мог майкет мейкер что то сделать.... когда я в ручную попытался сделку открыть то очень большая задержка была с котировками... около минуты наверное. но потом в ручную когда время опять стало нормальным. Но советник по прежнему не пашет.... Помогите плиз !!!
 
nchnch писал (а):
У меня странная ситуация. Стоит советник на реальном счете - выигрывает. Одновременно по нескольким парам. Но по одной почемуто перестал зделки открывать ( правда я код поменял немного) но по другим парам открывает все хорошо.... мог майкет мейкер что то сделать.... когда я в ручную попытался сделку открыть то очень большая задержка была с котировками... около минуты наверное. но потом в ручную когда время опять стало нормальным. Но советник по прежнему не пашет.... Помогите плиз !!!

Советник плиз !!! ;)
 
DEan писал (а):
nchnch писал (а):
У меня странная ситуация. Стоит советник на реальном счете - выигрывает. Одновременно по нескольким парам. Но по одной почемуто перестал зделки открывать ( правда я код поменял немного) но по другим парам открывает все хорошо.... мог майкет мейкер что то сделать.... когда я в ручную попытался сделку открыть то очень большая задержка была с котировками... около минуты наверное. но потом в ручную когда время опять стало нормальным. Но советник по прежнему не пашет.... Помогите плиз !!!

Советник плиз !!! ;)

Нашел я в чем дело !!!!   если на разных инструментах MAGIK номера совпадали то он не работал... как только поменял то все пошло. .. УФФФ...... век живи век учись :)))))
 
Код сначала проверял MAGIK номер а потом смотрел на наличие открытых ордеров... а тот ли символ у ордера не смотрел.... вот вышло что если ордер на другом символе открыт то на нужной паре он уже не открывался...
for(i=0;i<OrdersTotal();i++) // перебор начинаем ордеров 
    {
     ticket=OrderSelect(i,SELECT_BY_POS); // выбираем ордер
     // смотрим за тем что бы это был ордер этого советника
     if(OrderMagicNumber()==magik) 
      {
       // идем в условие если наш ордер совпадает с тем что 
       // был на входе функции
       if(OrderType()==Type) 
        {
         if(Type==OP_BUY) // идем в условие если это бай
          {         
           // закрываем ордер если не закрылся то функия 
           // вернет false
           if(OrderClose(OrderTicket(),OrderLots(),Bid,slip,Red)
              ==False) 
               Result=False; 
          }
        if(Type==OP_SELL)// если ордер селл
          {        
           // закрываем ордер если не закрылся то функия 
           // вернет false
           if(OrderClose(OrderTicket(),OrderLots(),Ask,slip,Green)
              ==False) 
               Result=False;
 
nchnch писал (а):
Код сначала проверял MAGIK номер а потом смотрел на наличие открытых ордеров... а тот ли символ у ордера не смотрел.... вот вышло что если ордер на другом символе открыт то на нужной паре он уже не открывался...
Я бы рекомендовал следующую последовательность проверок:
1. Проверка на символ if (OrderSymbol()==Symbol()) {}
2. Проверка на магик if (OrderMagicNumber()==MAGIC) {}
3. Проверка на операцию if (OrderType()==OP_BUY) {}
4. Прочие проверки по необходимости
 
KimIV писал (а):
nchnch писал (а):
Код сначала проверял MAGIK номер а потом смотрел на наличие открытых ордеров... а тот ли символ у ордера не смотрел.... вот вышло что если ордер на другом символе открыт то на нужной паре он уже не открывался...
Я бы рекомендовал следующую последовательность проверок:
1. Проверка на символ if (OrderSymbol()==Symbol()) {}
2. Проверка на магик if (OrderMagicNumber()==MAGIC) {}
3. Проверка на операцию if (OrderType()==OP_BUY) {}
4. Прочие проверки по необходимости

Спасибо... учтем :)))