지정된 기간 및/또는 SL 후 자동으로 주문 마감 - 페이지 4

 

SRC 버튼을 사용하여 코드를 게시하십시오. . . .

 

주문을 두 번 마감하려고 하는 것일 수 있습니다. .

 if ( OrderType () == OP_BUY || OP_SELL) 
{
bool Closed = OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), UseSlippage, Red ); 
openbuy = 0 ;
opensell = 0 ;
}


if ( OrderType () == OP_SELL) 
{
Closed = OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), UseSlippage, Red ); 
opensell = 0 ;
openbuy = 0 ; 
} 
}

이 중 하나만 필요합니다. . . 및 사용 . . .

 if ( OrderType () <= OP_SELL) 

OP_SELL 및 OP_BUY를 다루는 https://docs.mql4.com/constants/trading 을 읽으십시오.

 

다음과 같이 코드를 변경했습니다.

 for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
    {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))
       {
       if (( OrderOpenTime ()+ 3600 ) < TimeCurrent ())
          { 
           if ( OrderType () == OP_BUY)          
              {
               bool Closed = OrderClose ( OrderTicket () , OrderLots (), OrderClosePrice (), UseSlippage, Red );           
               openbuy = 0 ;
              }
           if ( OrderType () == OP_SELL)          
              {
               Closed = OrderClose ( OrderTicket () , OrderLots (), OrderClosePrice (), UseSlippage, Red );  
               opensell = 0 ;
              }              
          }
       }
    }

이제 StopLoss 또는 TakeProfit을 칠 때 코드 수를 opensell하고 openbuy를 0으로 만드는 방법을 찾아야 합니다.

 
nirvanamac :

다음과 같이 코드를 변경했습니다.

이제 StopLoss 또는 TakeProfit을 칠 때 코드 수를 opensell하고 openbuy를 0으로 만드는 방법을 찾아야 합니다.


opensell = 0 ;
openbuy = 0 ;
for ( int i = OrdersTotal () - 1 ; i >= 0 ; i--)
    {
     if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES))   //==> select also on magicnumber and symbol
       {
       if (OrderMagicnumber()== magicnumber && OrderSymbol ()== Symbol () && OrderType () == OP_BUY){openbuy++;}
       if (OrderMagicnumber()== magicnumber && OrderSymbol ()== Symbol () && OrderType () == OP_SELL){opensell++;}
       if (( OrderOpenTime ()+ 3600 ) < TimeCurrent () && OrderMagicnumber()== magicnumber && OrderSymbol ()== Symbol ())
          { 
           if ( OrderType () == OP_BUY)          
              {
               bool Closed = OrderClose ( OrderTicket () , OrderLots (), OrderClosePrice (), UseSlippage, Red );           
               openbuy = openbuy- 1 ;     //openbuy--;
              }
           if ( OrderType () == OP_SELL)          
              {
               Closed = OrderClose ( OrderTicket () , OrderLots (), OrderClosePrice (), UseSlippage, Red );  
               opensell = opensell- 1 ;     //opensell--;
              }              
          }
       }
    }

magicnumber에서 직접 선택하고 이 코드를 기호화하면 더 나은 방식으로 작성됩니다.

당신이 그것을 만든 방식으로 그것을 사용한다면 당신은 한 시간 이상 실행되는 모든 열린 거래를 닫게 될 것입니다 (이것도 아닙니다)

 
deVries :

magicnumber에서 직접 선택하고 이 코드를 기호화하면 더 나은 방식으로 작성됩니다.

당신이 그것을 만든 방식으로 그것을 사용한다면 당신은 한 시간 이상 실행되는 모든 열린 거래를 닫게 될 것입니다 (이것도 아닙니다)


안녕하세요 deVries...해봤고 지금 TP와 SL로 확인 하겠습니다...감사합니다...
 

와우 이제 괜찮아 보이네요 :) 성능이 아니라 EA와 SL, TP