Вопрос к техподдержке.

 
Здравствуйте. Возможно мой вопрос будет выглядеть глупым и невозможным, но так оно и есть.  Пишу эксперта и столкнулся с проблемой, а именно эксперт выставляет ордера, но закрывает сделки когда хочет. При этом функция закрытия ордеров и выставления стоп ордеров отключены и при компиляции выводит сообщение, что такие-то такие функции не используются. В журнале тестера сделку закрывает эксперт, но данной функции в нем нет! Если честно долго изучал, что написал, но вот такое рандомное закрытие сделок я объяснить не смог. Вписывал алерты в функцию закрытия ордеров, но в журнале этих алертов нет. Могу сделать вывод, что это не эксперт в тестере закрывает сделки. Вопрос что может закрывать сделки? MT4 build 218.
 
KING писал (а) >>
Так не бывает. Приведите код.
 
KING писал (а) >>
Вопрос что может закрывать сделки?
Вы не на сверхъестественные силы намекаете? ;)
 
KING писал (а) >>
Здравствуйте. Возможно мой вопрос будет выглядеть глупым и невозможным, но так оно и есть. Пишу эксперта и столкнулся с проблемой, а именно эксперт выставляет ордера, но закрывает сделки когда хочет. При этом функция закрытия ордеров и выставления стоп ордеров отключены и при компиляции выводит сообщение, что такие-то такие функции не используются. В журнале тестера сделку закрывает эксперт, но данной функции в нем нет! Если честно долго изучал, что написал, но вот такое рандомное закрытие сделок я объяснить не смог. Вписывал алерты в функцию закрытия ордеров, но в журнале этих алертов нет. Могу сделать вывод, что это не эксперт в тестере закрывает сделки. Вопрос что может закрывать сделки? MT4 build 218.

Приведите код эксперта и Вам сразу объяснят в чем дело.

Любая программа работает так, как ее написали и нет неправильно работающих программ !

 
if (sendstopstoserver == false)// проверка на закрытие по стоп приказам
      {
      for (i=1;i<=ar;i++)
         {
         if (Allorders[2][i][3] == 1)
         {
         if (Allorders[2][i][0] == 1)
            {
            if (Allorders[2][i][1]==0) //покупка
               {
               //if (Allorders[2][i][13]!=3) //проверка был ли изменён
               //   {
                  //Alert ("Вызвали функцию модификации пункт 1");
                  //if (trailing_bool==true)
                    // {z = Allorders[2][i][2]+Point*trailing;
                    // if (z<=Bid) 
                    //    {
                    //    modify(i);
                    //    Allorders[2][i][13]=3;
                    //    }
                     //Alert ("Вызвали функцию модификации пункт 2");
                     //Alert ("Если превысил",z);
                     //}
               //   }
               
               if (Allorders[2][i][4]>=Bid)
                  {
//Alert(ar," = ar !!!");
Alert("Пункт 1 внутри проверки на закрытие. Прошла успешнр проверка на стоплосс",Allorders[2][i][4]," цена открытия", Allorders[2][i][2]," текущий bid = ",Bid);
                  CloseOrder(2,i);
                  }
               if (Allorders[2][i][5]<=Bid)
                  {
Alert("Пункт 1.1 внутри проверки на закрытие .Прошла успешнр проверка на стоплосс",Allorders[2][i][5]," цена открытия", Allorders[2][i][2]," текущий bid = ",Bid);
//Alert(Allorders[2][i][1]," - если 0 то это покупка, если 1 - продажа");
                  CloseOrder(2,i);
                  }
               }
            if (Allorders[2][i][1]==1) //продажа
               {
               if (Allorders[2][i][4]<=Ask) 
                  {
Alert("Пункт 2 внутри проверки на закрытие. Прошла успешнр проверка на стоплосс",Allorders[2][i][4]," цена открытия", Allorders[2][i][2]," текущий bid = ",Ask);
                  CloseOrder(2,i);
                  }
               if (Allorders[2][i][5]>=Ask)
                  {
Alert("Пункт 2.1 внутри проверки на закрытие .Прошла успешнр проверка на стоплосс",Allorders[2][i][5]," цена открытия", Allorders[2][i][2]," текущий bid = ",Ask);
                  CloseOrder(2,i);
                  }
               }
            }
         }
         }
      }
 
вот единственный кусок кода откуда может идти приказ  на закрытие ордера.
 
 
KING писал (а) >>
ещё код функции закрытия

+лог из журнала в котором видно что закрывается он по сверх причине

Почему же по сверх-причине ? Ведь если выдаётся сообщение из основного кода "...Прошла успешно проверка ..., то за ним сразу же и неизбежно выполняется функция CloseOrder().

Другое дело, что из функции CloseOrder() нет сообщения о закрытии ордера. Думаю, что Вы зыпускаете ещё не модифицированный эксперт, в котором это сообщение отсутствует.

 
Valmars писал (а) >>

Почему же по сверх-причине ? Ведь если выдаётся сообщение из основного кода "...Прошла успешно проверка ..., то за ним сразу же и неизбежно выполняется функция CloseOrder().

Другое дело, что из функции CloseOrder() нет сообщения о закрытии ордера. Думаю, что Вы зыпускаете ещё не модифицированный эксперт, в котором это сообщение отсутствует.

Вы правы я нашел ошибку в коде. У меня вообще с этим форумом так всегда, как только напишу что-нибудь нелепое, так потом на след день сам разберусь где ошибка.

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