서로 독립적으로 두 위치를 관리하는 이익 트롤의 조언이 필요합니다. 어떻게 구현할 수 있습니까?

[삭제]  

트롤을 설정하면 한 위치에서 잘 작동합니다.

그러나 위치가 두 개 이상인 경우(예: 두 위치).판매

동시에 둘 다 닫힙니다

포지션별로 따로 작업할 트레일이 필요합니다

이것은 수동 거래 중에 가능합니다. 즉, 하나의 매도 포지션에는 자체 StopLoss가 있습니다.

다른 매도 포지션에는 다른 손절매가 있습니다.

구글은 도움이 되지 않았다

[Deleted]  

어쨌든 흔적은 위치를 구별해야하므로 주문에 다른 마법을 할당하고 다른 마법으로 두 개의 흔적을 설정할 수 있습니다.

아니면 후행 코드를 어드바이저에 내장해야 합니까? 그런 다음 여전히 주문에 다른 마법을 할당하고 두 마법에 대한 후행 기능을 복제해야 합니다. 임호.

[삭제]  
티켓으로 나누려고 했지만 성공하지 못했습니다.
[삭제]  
Sancho77 :
어쨌든 흔적은 위치를 구별해야하므로 주문에 다른 마법을 할당하고 다른 마법으로 두 개의 흔적을 설정할 수 있습니다.


코드에서 어떻게 보일까요? 새로운 마술사를 쓰기 위해 각 위치에 대해?

각 위치에 대해 별도의 트롤?

위치 6-8인 경우

더 쉬울 수 없습니까?

트롤은 고문에 있습니다

[Deleted]  
charony :


코드에서 어떻게 보일까요? 새로운 마술사를 쓰기 위해 각 위치에 대해?

각 위치에 대해 별도의 트롤?

위치 6-8인 경우

더 쉬울 수 없습니까?

글쎄, 위치가 많으면 개별 트롤이 어렵다는 데 동의합니다. 두 위치이지만 내 의견으로는 정상입니다.

어쩌면 더 간단할 수 있지만 다른 주문의 후행에서 차이점은 무엇입니까?

 
charony :


코드에서 어떻게 보일까요? 새로운 마술사를 쓰기 위해 각 위치에 대해?

각 위치에 대해 별도의 트롤?

위치 6-8인 경우

더 쉬울 수 없습니까?

트롤은 고문에 있습니다

어드바이저에서 후행을 끄고 내장된 후행 을 사용하십시오. 각 위치에 대해 별도의 추적이 있습니다.
[삭제]  
sanyooooook :
Expert Advisor에서 후행을 비활성화하고 내장된 후행을 사용하십시오. 각 위치에 대해 별도의 추적이 있습니다.

재미 없다
[삭제]  
//--------------------------------------------------------------- 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 --
트롤 코드
[Deleted]  

글쎄, 나는 각 주문에 차례로 새로운 마법을 할당하는 것을 제안할 수 있을 뿐이며, 각 주문에 대해 다음과 같은 별도의 기능을 만드십시오.

 //--------------------------------------------------------------- 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 :

재미 없다

저렴하고 명랑합니다.

각 위치에 자체 트롤이 있는 경우 트롤 변수의 값은 각 위치에 대해 달라야 합니다. 따라서 각 트레일에는 고유한 변수가 있습니다. 최대 위치는 몇 개입니까?

[삭제]  
sanyooooook :

저렴하고 명랑합니다.

각 위치에 자체 트롤이 있는 경우 트롤 변수의 값은 각 위치에 대해 달라야 합니다. 따라서 각 트레일에는 고유한 변수가 있습니다. 최대 위치는 몇 개입니까?


최대 8자리