Birbirinden bağımsız iki pozisyonu yöneten bir kar trolünün tavsiyesine ihtiyacım var, nasıl uygulayabilirim?

 

trolü kurun, tek pozisyonla iyi çalışıyor

ancak birden fazla pozisyon varsa, örneğin iki pozisyon.Sat

ikisini aynı anda kapatıyor

Her pozisyon için ayrı ayrı çalışacak patikaya ihtiyacım var

bu, manuel ticaret sırasında mümkündür, yani bir Satış pozisyonunun kendi StopLoss'u vardır.

başka bir Satış pozisyonunun farklı bir StopLoss'u var

google yardımcı olmadı

 

Her durumda, izin pozisyonları ayırt etmesi gerekir, böylece siparişlere farklı büyüler atayabilir ve farklı büyülere sahip iki iz oluşturabilirsiniz.

Yoksa takip eden kodun danışmana eklenmesi mi gerekiyor? O zaman yine de siparişlere farklı büyüler atamanız ve iki büyü için takip işlevini çoğaltmanız gerekir. BENİM NACİZANE FİKRİME GÖRE.

 
Biletlerle bölmeye çalıştım, başarılı olamadım
 
Sancho77 :
Her durumda, izin pozisyonları ayırt etmesi gerekir, böylece siparişlere farklı büyüler atayabilir ve farklı büyülere sahip iki iz oluşturabilirsiniz.


kodda nasıl görünecek? her pozisyon için yeni bir sihirbaz yazmak için?

her pozisyon için ayrı bir trol?

ve eğer pozisyonlar 6-8 ise

daha kolay olamaz mı?

trol danışmanda

 
charony :


kodda nasıl görünecek? her pozisyon için yeni sihirbaz yazmak için?

her pozisyon için ayrı bir trol?

ve eğer pozisyonlar 6-8 ise

daha kolay olamaz mı?

Pek çok pozisyon varsa, o zaman her bir trol için zor, katılıyorum. Bence iki pozisyon ama normal.

Belki daha basit olabilir ama farklı siparişlerin takibindeki fark ne olmalı?

 
charony :


kodda nasıl görünecek? her pozisyon için yeni sihirbaz yazmak için?

her pozisyon için ayrı bir trol?

ve eğer pozisyonlar 6-8 ise

daha kolay olamaz mı?

trol danışmanda

Danışmanda izlemeyi kapatın ve yerleşik izlemeyi kullanın, her pozisyon için ayrı bir iz vardır.
 
sanyooooook :
Expert Advisor'da izlemeyi devre dışı bırakın ve yerleşik izlemeyi kullanın, her konum için ayrı bir iz vardır.

komik değil
 
//--------------------------------------------------------------- 1 --
// Функция модификации StopLoss всех ордеров указанного типа
// Глобальные переменные:
// Mas_Ord_New             Массив ордеров последний известный
// int TralingStop         Значение TralingStop(количество пунктов)
//--------------------------------------------------------------- 2 --
int Tral_Stop( int Tip)
  {
   int Ticket;                       // Номер ордера
   double
   Price,                           // Цена открытия рыночного ордера
   TS,                               // TralingStop (относит.знач.цены)
   SL,                               // Значение StopLoss ордера
   TP;                               // Значение TakeProfit ордера
   bool Modify;                     // Признак необходимости модифи.
//--------------------------------------------------------------- 3 --
   for ( int i= 1 ;i<=Mas_Ord_New[ 0 ][ 0 ];i++)   // Цикл по всем ордерам
     {                                     // Ищем ордера задан. типа
       if (Mas_Ord_New[i][ 6 ]!=Tip)         // Если это не наш тип..
         continue ;                         //.. то переступим ордер
      Modify= false ;                       // Пока не назначен к модифи
      Price =Mas_Ord_New[i][ 1 ];           // Цена открытия ордера
      SL    =Mas_Ord_New[i][ 2 ];           // Значение StopLoss ордера
      TP    =Mas_Ord_New[i][ 3 ];           // Значение TakeProft ордера
      Ticket=Mas_Ord_New[i][ 4 ];           // Номер ордера
       if (TralingStop<Level_new)           // Если меньше допустимого..
         TralingStop=Level_new;           // .. то допустимый
      TS=TralingStop*Point;               // То же в относит.знач.цены
       //--------------------------------------------------------- 4 --
       switch (Tip)                         // Переход на тип ордера
        {
         case 0 :                         // Ордер Buy
             if (NormalizeDouble(SL,Digits)< // Если ниже желаемого..
               NormalizeDouble(Bid-TS,Digits))
              {                           // ..то модифицируем его:
               SL=Bid-TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
             break ;                         // Выход из switch
         case 1 :                         // Ордер Sell
             if (NormalizeDouble(SL,Digits)> // Если выше желаемого..
               NormalizeDouble(Ask+TS,Digits)||
               NormalizeDouble(SL,Digits)== 0 ) //.. или нулевой(!)
              {                           // ..то модифицируем его
               SL=Ask+TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
        }                                 // Конец switch
       if (Modify== false )                   // Если его не надо модифи..
         continue ;                         // ..то идём по циклу дальше
       bool Ans=OrderModify(Ticket,Price,SL,TP, 0 ); //Модифицируем его!
       //--------------------------------------------------------- 5 --
       if (Ans== false )                     // Не получилось :( 
        {                                 // Поинтересуемся ошибками:
         if (Errors(GetLastError())== false ) // Если ошибка непреодолимая
             return ;                       // .. то уходим.
         i--;                             // Понижение счётчика
        }
      
     }
   return ;                                 // Выход из пользов. функции
  }
//--------------------------------------------------------------- 6 --
trol kodu
 

Pekala, sadece sırayla her siparişe yeni bir büyü atamayı önerebilirim ve her sipariş için aşağıdaki gibi ayrı bir işlev yapın:

 //--------------------------------------------------------------- 1 --
// Функция модификации StopLoss всех ордеров указанного типа
// Глобальные переменные:
// Mas_Ord_New             Массив ордеров последний известный
// int TralingStop_1         Значение TralingStop(количество пунктов)
//--------------------------------------------------------------- 2 --
int Tral_Stop( int Tip)
  {
   int Ticket;                       // Номер ордера
   double
   Price,                           // Цена открытия рыночного ордера
   TS,                               // TralingStop (относит.знач.цены)
   SL,                               // Значение StopLoss ордера
   TP;                               // Значение TakeProfit ордера
   bool Modify;                     // Признак необходимости модифи.
//--------------------------------------------------------------- 3 --
if(OrderMagicNumber() == magic_1){
  for ( int i= 1 ;i<=Mas_Ord_New[ 0 ][ 0 ];i++)   // Цикл по всем ордерам
     {                                     // Ищем ордера задан. типа
       if (Mas_Ord_New[i][ 6 ]!=Tip)         // Если это не наш тип..
         continue ;                         //.. то переступим ордер
      Modify= false ;                       // Пока не назначен к модифи
      Price =Mas_Ord_New[i][ 1 ];           // Цена открытия ордера
      SL    =Mas_Ord_New[i][ 2 ];           // Значение StopLoss ордера
      TP    =Mas_Ord_New[i][ 3 ];           // Значение TakeProft ордера
      Ticket=Mas_Ord_New[i][ 4 ];           // Номер ордера
       if (TralingStop<Level_new)           // Если меньше допустимого..
         TralingStop=Level_new;           // .. то допустимый
      TS=TralingStop*Point;               // То же в относит.знач.цены
       //--------------------------------------------------------- 4 --
       switch (Tip)                         // Переход на тип ордера
        {
         case 0 :                         // Ордер Buy
             if (NormalizeDouble(SL,Digits)< // Если ниже желаемого..
               NormalizeDouble(Bid-TS,Digits))
              {                           // ..то модифицируем его:
               SL=Bid-TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
             break ;                         // Выход из switch
         case 1 :                         // Ордер Sell
             if (NormalizeDouble(SL,Digits)> // Если выше желаемого..
               NormalizeDouble(Ask+TS,Digits)||
               NormalizeDouble(SL,Digits)== 0 ) //.. или нулевой(!)
              {                           // ..то модифицируем его
               SL=Ask+TS;                 // Новый его StopLoss
               Modify= true ;               // Назначен к модифи.
              }
        }                                 // Конец switch
       if (Modify== false )                   // Если его не надо модифи..
         continue ;                         // ..то идём по циклу дальше
       bool Ans=OrderModify(Ticket,Price,SL,TP, 0 ); //Модифицируем его!
       //--------------------------------------------------------- 5 --
       if (Ans== false )                     // Не получилось :( 
        {                                 // Поинтересуемся ошибками:
         if (Errors(GetLastError())== false ) // Если ошибка непреодолимая
             return ;                       // .. то уходим.
         i--;                             // Понижение счётчика
        }
      
     }
   return ;                                 // Выход из пользов. функции
  }
}
  //--------------------------------------------------------------- 6 --
 
charony :

komik değil

Ucuz ve neşeli.

Her pozisyonun kendi trolü varsa, trol değişkeninin değeri her pozisyon için farklı olmalıdır. Bu nedenle, her yolun kendi değişkeni vardır, maksimum kaç pozisyonunuz olacak?

 
sanyooooook :

Ucuz ve neşeli.

Her pozisyonun kendi trolü varsa, trol değişkeninin değeri her pozisyon için farklı olmalıdır. Bu nedenle, her yolun kendi değişkeni vardır, maksimum kaç pozisyonunuz olacak?


maksimum 8 pozisyon