초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 642

 
paylesss :

감사합니다! 컴퓨터를 다시 시작하는 것이 도움이 되었습니다! 아침 내내 앉아 있었던 것이 부끄럽습니다))

그러나 이제 터미널 빌드가 훨씬 더 관련성이 있으며 전역 변수가 떨어졌던 작업을 단계별로 기억하는 것이 좋습니다. 상황을 반복할 수 있다면 일반적으로 훌륭할 것입니다.

 
Kirill Andreev :

올빼미를 썼지 만 어떤 이유로 후행 정지가 작동하지 않습니다 ... 이유는 무엇입니까?

작동하려면 OnTick에 푸시해야 합니다.
 
Vladislav Andruschenko :
작동하려면 OnTick에 푸시해야 합니다.
감사합니다!!! 시도해보겠습니다.
 

안녕하세요.

제발, 마지막인 "막내"를 제외한 모든 위치를 수정하고 싶습니다. 하나를 더하거나 빼는 곳은 어디 입니까?


 int i; total = OrdersTotal();
          for(i = 0; i < total; i++)
             {
              if(OrderSelect(i, SELECT_BY_POS)   && OrderLots() == _Lots)
              {
              if (OrderType()==OP_BUY) 
              {
              if (OrderOpenPrice()!=OrderStopLoss()) 
              {
              ModifyOrder(-1,OrderOpenPrice() , -1);
              }
             } 
            }  
           }
 
mila.com :

안녕하세요.

제발, 마지막인 "막내"를 제외한 모든 위치를 수정하고 싶습니다. 하나를 더하거나 빼는 곳은 어디 입니까?



 int i; total = OrdersTotal();
          for(i = 0; i < total -1 ; i++)
             {
              if(OrderSelect(i, SELECT_BY_POS)   && OrderLots() == _Lots)
              {
              if (OrderType()==OP_BUY) 
              {
              if (OrderOpenPrice()!=OrderStopLoss()) 
              {
              ModifyOrder(-1,OrderOpenPrice() , -1);
              }
             } 
            }  
           }


 
-Aleks- :
 int i; total = OrdersTotal();
          for(i = 0; i < total -1 ; i++)
             {
              if(OrderSelect(i, SELECT_BY_POS)   && OrderLots() == _Lots)
              {
              if (OrderType()==OP_BUY) 
              {
              if (OrderOpenPrice()!=OrderStopLoss()) 
              {
              ModifyOrder(-1,OrderOpenPrice() , -1);
              }
             } 
            }  
           }

목록의 마지막 위치를 건너뛸 수 있는 확실한 방법을 보여주었습니까?

거래하는 것이 현실이라면 분류가 갑자기 중독 될까봐 걱정하지 않습니까?

여전히 IMHO, 여기에는 두 개의 주기가 필요합니다. 첫 번째 주기에서는 시간을 열어 가장 신선한 위치를 찾고, 두 번째 주기에서는 첫 번째 주기에서 티켓이 발견된 것을 제외한 모든 것을 수정합니다.

 
mila.com :

안녕하세요.

제발, 마지막인 "막내"를 제외한 모든 위치를 수정하고 싶습니다. 하나를 더하거나 빼는 곳은 어디 입니까?


나는 그렇게 할 것이다.

 /********************Script program start function********************/
void OnStart ()
{
 int i, t1, t2, clTicket, total = OrdersTotal ();
   datetime d1, d2;
   double v1, v2, clVolume;
     for (i = total- 1 ; i > 0 ; i--)
     {
       if ( OrderSelect (i, SELECT_BY_POS ))
       {
        t1 = OrderTicket ();
         d1 = OrderOpenTime ();
        v1 = OrderLots ();
       }
       else continue ;
         if ( OrderSelect (i- 1 , SELECT_BY_POS ))
         {
          t2 = OrderTicket ();
           d2 = OrderOpenTime ();
          v2 = OrderLots ();
         }
         else continue ;
        clTicket = d1 > d2 ? t1 : t2;
       clVolume = d1 > d2 ? v1 : v2;
       if (! OrderClose (clTicket, clVolume, OrderClosePrice () , 100 )) // закрывает независимо от типа ордера OP_BUY или OP_SELL
       Print ( "фигня кака-та" );
    }
} /********************************************************************/

유감스럽게도 이것은 확인되지 않았고 다음 주문을 마감한 후 주문 목록에 "구멍"이 생겼을 때 가능한지 알 수 없습니다.

누구든지 그러한 "구멍"의 출현 가능성을 설명 할 수 있다면 나는 감사 할 것입니다 ...

삽입된 보험의 경우 계속 진행하십시오. 구멍이 있는 경우 한 주문은 건너뛰게 됩니다. 그래서 그런 것 같습니다.

 
Alexey Viktorov :

나는 그렇게 할 것이다.

유감스럽게도 이것은 확인되지 않았고 다음 주문을 마감한 후 주문 목록에 "구멍"이 생겼을 때 가능한지 알 수 없습니다.

누구든지 그러한 "구멍"의 출현 가능성을 설명 할 수 있다면 나는 감사 할 것입니다 ...

삽입된 보험의 경우 계속 진행하십시오. 구멍이 있는 경우 한 주문을 건너뜁니다. 그래서 그런 것 같습니다.

처음에 질문은 마지막 주문을 건너 뛰는 것이 었습니다. 그리고 시작합니다.

다음을 수행해야 합니다.

 for (int i = total- 2 ; i >= 0 ; i--)

그런 다음 삭제 후 공백이 없으며 가장 최근 주문은 건너뜁니다.

 
Alexey Kozitsyn :

처음에 질문은 마지막 주문을 건너 뛰는 것이 었습니다. 그리고 시작합니다.

다음을 수행해야 합니다.

그런 다음 삭제 후 공백이 없으며 가장 최근 주문은 건너뜁니다.

목록의 마지막은 아니지만 시간상 "막내"입니다.

나도 관심을 두지 않는데도 말이다. 수정에 대한 질문인데 클로저를 쓰고 있는데... 수정만 하면 주문 목록에 빈틈이 없을 텐데... 변수를 추가하고 값을 할당 해야 할 수도 있습니다. 및 MANDATORY 오류 #1이 발생하지 않도록 매개변수를 확인합니다. 글쎄요, 밀라는 스스로 해결할 수 있습니다.

 
Alexey Kozitsyn :

처음에 질문은 마지막 주문을 건너 뛰는 것이 었습니다. 그리고 시작합니다.

다음을 수행해야 합니다.

 for (int i = total- 2 ; i >= 0 ; i--)

그런 다음 삭제 후 공백이 없으며 가장 최근 주문은 건너뜁니다.

정렬 종속성이 나타나지 않고 원하는 잘못된 순서를 전혀 놓칠 것이라고 어떻게 절대적으로 확신 할 수 있습니까?

다시 한 번 반복합니다. 마지막 주문을 정확하게 찾으려면 목록의 위치가 아니라 시작 시간 으로 결정 해야 합니다.