고문이 벌 수없는 것은 무엇입니까? - 페이지 6

 
valenok2003 : 로마야, 거짓말하지마, 네가 처음 썼을 때
 while ( OrderSelect (ticket,SELECT_BY_TICKET)==false)

잘못된. 전체 주기는 다음과 같습니다.

 while ( OrderSelect (ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                 Sleep ( 100 );        

사실, 댓글이 잘못되었습니다. 그러나 주기는 정확히 이렇습니다. 주문이 선택될 때까지 100밀리초를 기다리십시오.

사실, 티켓 티켓이 있는 주문이 더 이상 없으면(닫힌) 로마 는 무한 루프에 들어갈 것입니다. 대부분 이 검사가 더 일찍 수행됩니다.

 
Roman. :

이 디자인은 원래 다음 질문과 함께 누군가의 게시물에 있었습니다: 주문 가격을 찾는 방법은 무엇입니까? 이 주기에서 답을 사용했습니다. 위 참조.

다음은 해당 질문 에 대한 답변입니다.

여기 있습니다, 로만. 가끔 티켓이 반환되지만 주문은 바이바이. 그리고 당신은 어린아이처럼 매달릴 것입니다.

또한, 다음이 있어야 합니다.

// 주문이 선택 되지 않은 경우

추신: 최근에 이 주제에 대해 논의했습니다.

 

글쎄, 당신은 빌어 먹을 ....

무슨 일이 일어날까은 무슨 뜻인가요? 이 질문이 정말 이해가 안되네요...

우리는 도크를 연기합니다 - 표준 상수 / 런타임 오류 - 모든 것이 정확하고 자세하게 설명되어 있습니다 ...

찾을 수 없는 경우 - 오류 번호 4108

 
valenok2003 :



로마, 교활하지 마십시오, 당신이 처음 썼을 때

이 디자인

 while ( OrderSelect (ticket,SELECT_BY_TICKET)==false)

온라인 작업 주기의 구성 요소입니다. 선택한 주문 의 특성을 얻는 데 사용합니다.

 // ------------------------------------------------Ищем наш ордер---------------------------------
   int orderType;
   for ( int orderIndex = ( OrdersTotal () - 1 ); orderIndex >= 0 ; orderIndex--)
   {
       if (! OrderSelect (orderIndex, SELECT_BY_POS))     continue ;
       if (( OrderSymbol () != Symbol ()) || ( OrderMagicNumber () != MagicNumber)) continue ;
      orderType = OrderType ();
       if ((orderType != OP_BUY) && (orderType != OP_SELL)) continue ;
          ticket = OrderTicket ( );                         // Номер ордера
          orderLots = OrderLots ();                         // Lots   
          orderProfit = OrderProfit () + OrderSwap ();       // Profit
          Price = OrderOpenPrice ();                         // Цена открытия рыночного ордера
          SL =   OrderStopLoss ();                           // Значение StopLoss ордера
          TP = OrderTakeProfit ();                           // Значение TakeProfit ордера          
           if (ticket> 0 )                                     // Если позиция открылась
              {
                 while ( OrderSelect (ticket,SELECT_BY_TICKET)==false)       // Если ордер выбран
                 Sleep ( 100 );                                 
                 double OpenPrice= OrderOpenPrice ();
       // Print("OrderTicket()=",OrderTicket(),  "OrderOpenTime()=",OrderOpenTime()); 
       // Print("TimeLocal()=",TimeLocal());                                                                    
                     //---------------------Запоминаем значения сл и тп ордера                     
                 if (orderType == OP_BUY) 
                   {                
                     
                   }
            
                 if (orderType == OP_SELL) 
                   {        
                     
                   }   
                            
               }
             
     // Проверка на предельную просадку      
       double loss = - ((orderProfit * 100.0 ) / AccountBalance ());
       if (loss > MaxLoss)
      {
         Print ( "MaxLoss" );
         CloseAllOrders(MagicNumber);
         IsExpertFailed = true;
         return ( 0 );
      }  
        
       return ( 0 );
   }
   
 
 

이미 몇 번이나 썼는지 주문을 선택한 후 마감 시간을 확인 하십시오. !=0이면 주문이 이미 마감된 것입니다.

"그리고 이 사람들이 나에게 코를 고르는 법을 가르치고 있어..."

 

그리고 그것이 당신의주기에 어떻게 걸리는지 ... 친애하는 어머니

Вот эта строка вашше не очем : if (! OrderSelect (orderIndex, SELECT_BY_POS)) continue ;

 
자주하는 FAQ : "그리고 이 사람들은 나에게 코를 고르는 법을 가르치고 있습니다..."

나는 기억했다:

아들은 우연히 부모의 섹스를 목격하고 생각합니다. "그리고이 사람들은 여전히 내 코를 고르는 것을 금지합니다 ...".

 
Mathemat :

잘못된. 전체 주기는 다음과 같습니다.

사실, 댓글이 잘못되었습니다. 그러나 주기는 정확히 이렇습니다. 주문이 선택될 때까지 100밀리초를 기다리십시오.
예, 이 게시물에 한 줄을 추가하는 것을 잊었지만 다른 게시물에서는 이 문제에 대한 전체 답변이 ...
 

젠장, 언제 당신은 복합 IF를 작성하지 않는 법을 배울 수 있습니까? 너무 게으르고 한 줄을 추가하기에는 너무 게으르지만 분석을 시작하자마자 벽에 완전히 머리를 부술 수 있습니다.

게다가 따로따로 2개보다 길다

 
FAQ :

이미 몇 번이나 썼는지 주문을 선택한 후 마감 시간을 확인하십시오. !=0이면 주문이 이미 마감된 것입니다.

"그리고 이 사람들이 나에게 코를 고르는 법을 가르치고 있어..."

예, 그건 그렇고, 지금은 기억합니다 ...

근처에 사용 가능한 경우 - 복사-붙여넣기 pliz ... 시간 제어 기능이 있는 경우 - 같지 않거나 0이 아닌 경우 ... 때문에. 마감된 주문에만 마감 시간이 있습니다...