MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1645

 
EVGENII SHELIPOV # :

Makar, 코드의 어느 부분에서 함수에 대한 참조가 있는지 설명할 수 있습니까?

1개 이상의 주문이 있는 경우

 //+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
   {
//---
   if (CountTrade()> 1 ) TrailingGroupOrder();
   }
 
MakarFX # :

죄송합니다, 4에 대해 썼습니다 ...

5시에 확인! 모든 것이 작동합니다.

감사해요. 내 솔루션이 작동하지 않는 것은 매우 이상합니다. 뇌 전체가 망가졌다))

 
Andrey Sokolov # :

감사해요. 내 솔루션이 작동하지 않는 것은 매우 이상합니다.

이상한게 아니라...

경로를 작성하지 않았습니다. 여기에 코드가 있습니다.

   string src_path; 
   string dst_path; 
   StringConcatenate (src_path, "" , "//" ,name_file); 
   StringConcatenate (dst_path,name_folder, "//" ,name_file); 
   ResetLastError ();
   if ( FileMove (src_path, 0 ,dst_path, 0 )){

"src_path"와 "dst_path"는 무엇과 같습니까?

 
MakarFX # :

1개 이상의 주문이 있는 경우

아니 Makar 그것은 작동하지 않습니다

 
MakarFX # :

이상한게 아니라...

경로를 작성하지 않았습니다. 여기에 코드가 있습니다.

"src_path"와 "dst_path"는 무엇과 같습니까?

https://www.mql5.com/ru/docs/files/filemove 도움말에서 가져온 다음 두 줄로 작성되었습니다.

그리고 그것이 요점이 아닙니다. 이 코드는 MT4에서 작동했고 MT5에서는 첫 번째 화면이 이동했습니다.

 
EVGENII SHELIPOV # :

아니 Makar 그것은 작동하지 않습니다

그럴 수는 없습니다... 오후에 모든 코드를 줘
 
MakarFX # :
그럴 수는 없습니다... 오후에 모든 코드를 줘

당신을 보내

 
EVGENII SHELIPOV # :

당신을 보내

답변됨
 
MakarFX # :
답변됨

Makar님 감사합니다 더 생각하겠습니다

 
MakarFX # :
답변됨

마카르 좋은 하루 !!!

귀하의 추천에 따라 void OnTick() 함수에서 TrailingGroupOrder() 함수를 첨부하여 그룹 주문의 후행을 수정하는 명령을 보낼 수 있는 위치를 찾았습니다. 그리고 보라, 그룹 주문의 추적이 작동하기 시작했습니다. 그러나 기쁨은 길지 않았습니다. 자세히 보니 최소 티켓이 있는 주문만 추적되고 있었습니다.

 //+----------------------------------------------------------------------------+
//| Трейлинг стоп групповых ордеров                                            |
//+----------------------------------------------------------------------------+
void TrailingGroupOrder()
{
     for ( int i = OrdersTotal ()- 1 ; i>= 0 ; i--)
    {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
       {
       if (OrderType() == OP_BUY && Bid - GetAveragePrice() > TrailingStopGroupOrder* Point )
        {
         if (Bid - GetAveragePrice() > TrailingStopGroupOrder* Point || OrderStopLoss() == 0 )
         {
         if (OrderStopLoss() < Bid - (TrailingStep + TrailingStopGroupOrder )* Point || OrderStopLoss() == 0 )
          {
           if (!OrderModify( OrderTicket() , OrderOpenPrice(), NormalizeDouble (Bid - TrailingStopGroupOrder* Point , Digits ), tp, 0 ))
                     Print ( "Ошибка модификации групповых ордеров на покупку!" );
          }
         }
        }
         if (OrderType() == OP_SELL && GetAveragePrice() - Ask > TrailingStopGroupOrder* Point )
         {
         if (GetAveragePrice() - Ask > TrailingStopGroupOrder* Point || OrderStopLoss() == 0 )
           {
             if (OrderStopLoss() > Ask + (TrailingStep + TrailingStopGroupOrder)* Point || OrderStopLoss() == 0 )
              {
               if (!OrderModify( OrderTicket() , OrderOpenPrice(), NormalizeDouble (Ask + TrailingStopGroupOrder* Point , Digits ), tp, 0 ))
                     Print ( "Ошибка модификации групповых ордеров на продажу!" );
              }
           }
         }
      } 
    }
}

나는 문제가 한 번에 모두가 아니라 첫 번째(최소) 순서만 수정하는 데 있다고 높은 확률로 가정할 수 있습니다.

Makar, 그리드의 모든 주문이 한 번에 수정되도록 만드는 방법을 알려주세요????