Помогите понять почему советник не работает?

 

Сделал советник, он должен ставить на открытую в ручную позу тейк и стоп. И потом тралить позу.

Несколько раз переделывал код, но не работает.

В журнале пишет при установке советника на график что советник запущен, потом когда позу сделать ручками -- пишет МТ4 в журнале: запрещена торговля.

 
Без кода совет дать сложно...
 

Значит, скорее всего, автоторговля советниками запрещена в этом ДЦ

 

Общество телепатов уже решает эту проблему....

...

.......

.......завершено 99%

О!!! говорят, решили и отправили ответ по своим каналам...

 

А как начсет мордашки и разрешения в параметрах терминала. Стоят?

И еще сделайте пожалуйста вывод номера кода ошибки.

 

Мне интересно кто-нибудь знает? если торговля запрещена, можно "как-нибудь" всёравно торговать роботу? кроме взлома или декомпиляции терминала и т.д... Не нужно рассказывать способ, просто есть ли такая возможность вообще?

 

Не проще ли сменить ДЦ?

 

Код без ошибок. Автоторговля разрешена - звонили в ДЦ. Разрешения есть.

extern string t="Параметры ордеров";
extern int Profit=200;
extern int StopLoss=100;
extern int TrailingStop=50;
extern string t2="Магическое число ордера";
extern int MAGIC=0;//1987088
//+------------------------------------------------------------------+
int start()
  {
    int cnt, total;
    total=OrdersTotal();
    for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL && OrderSymbol()==Symbol()&& OrderMagicNumber()==MAGIC )
        {
         if(OrderType()==OP_BUY)   
         {    
         tral1();
         orders1(); 
         return(0);
         } 
         else 
         {
         tral2();
         orders2(); 
         return(0);
         }
        }
     }  
   return(0);
  }
//+------------------------------------------------------------------+
void orders1 ()
{
 RefreshRates();
 if(OrderStopLoss()==0)
 {
 OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Bid-Point*StopLoss),Digits),NormalizeDouble((Ask+Point*Profit),Digits),0,Green);
 return(0);
 }
}
void orders2 ()
{
 RefreshRates();
 if(OrderStopLoss()==0)
 {
 OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Ask+Point*StopLoss),Digits),NormalizeDouble((Bid-Point*Profit),Digits),0,Red);
 return(0);
 }
}
//+------------------------------------------------------------------+
void tral1 ()
{
               RefreshRates();
               if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble(Point*TrailingStop,Digits))
                 {
                  if(OrderStopLoss()<NormalizeDouble(Bid-Point*TrailingStop, Digits))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Bid-Point*TrailingStop),Digits),OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
}
void tral2 ()
{
               RefreshRates();
               if(NormalizeDouble((OrderOpenPrice()-Ask),Digits)>NormalizeDouble((Point*TrailingStop),Digits))
                 {
                  if((NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble((Ask+Point*TrailingStop),Digits)))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Ask+Point*TrailingStop),Digits),OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
}
//+------------------------------------------------------------------+

Kharin, хватит тупить.



sergeev, в коде нет ошибок.



StatBars, есть возможность копировать прогой на Делфи действия на МТ4 где запрет автоторговли, советника на МТ4, на котором можно торговать советникам.

 
LeoV писал (а) >>

Не проще ли сменить ДЦ?


Нет.
 

Нет. Ситуация такая - Есть ДЦ где торговля экспертам запрещена и нужно чтобы именно здесь робот торговал!

Знает ли кто-нибудь такой способ, поволяющий это сделать?

 
StatBars писал (а) >>

Нет. Ситуация такая - Есть ДЦ где торговля экспертам запрещена и нужно чтобы именно здесь робот торговал!

Знает ли кто-нибудь такой способ, поволяющий это сделать?

Например, через ДЛЛ имитировать ручную работу в терминале. Ведь советник запускается, и не работают только торговые функции?

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