order_id 란 무엇입니까? - 페이지 2

 
toi10005doi :

@랩터:

예, 하지만 EA를 쓰기 위해 별표를 던졌기 때문에 이해했습니다. 당신을 귀찮게 하는 씨.

왜 내 주문이 별표 표시 후 즉시 종료되는지 이해할 수 없습니다.

내 스레드를 이해하지 못한다면 을 더 읽어야 합니다. . . . 스레드는 루프와 마감 주문에 관한 것이며 매우 간단하고 명확하지만 여전히 주의를 기울이지 않았습니다.


주문을 4번 닫으려고 하는 이유는 무엇입니까? Bid에서 두 번, Ask에서 두 번?

 
제 가까운 상태는 코바인 상태입니다. 하지만 내가 그것을 썼을 때, 그것은 작동하지 않습니다. 그래서 나는 그것을 분리합니다.
 
toi10005doi :
제 가까운 상태는 코바인 상태입니다. 하지만 내가 그것을 썼을 때, 그것은 작동하지 않습니다. 그래서 나는 그것을 분리합니다.
그러나 동일한 주문 (티켓 번호 기준)을 네 번 닫으려고 합니다. . 왜요 ?
 
toi10005doi :

응! 알겠어요.

내 코드를 수정했지만 내 주문은 별표 표시 후 즉시 닫힙니다. 내가 뭘 잘못했는지 보여주세요

주문을 닫는 루프에서 이 값을 인쇄합니다. . . DIPlus1 DIMinus1 Main0 Rsi는 DoubleToStr() 을 사용하여 정확한 소수 자릿수를 가져오는지 확인하십시오.
 
랩터는 이미 무엇을 해야 하는지 알려 주었습니다. 루프에 전체 변수 값이 포함된 일부 인쇄 문을 추가하면 그 이유 알 수 있습니다.
 
RaptorUK :
주문을 닫는 루프에서 이 값을 인쇄합니다. . . DIPlus1 DIMinus1 Main0 Rsi는 DoubleToStr() 을 사용하여 정확한 소수점 이하 자릿수를 가져오는지 확인하십시오.

이 작업을 수행. 로그에서 무엇을 얻습니까?
 
RaptorUK :
이 작업을 수행. 로그에서 무엇을 얻습니까?

코드를 보여주시겠습니까?

 
toi10005doi :

코드를 보여주시겠습니까?

농담하는거야? Print() 및 DoubleToStr() 을 사용하는 한 줄입니다. . .

직접 작성하고 여기에 게시하면 시간을 내어 무료로 검토해 드리겠습니다.
 
RaptorUK :
농담하는거야? Print() 및 DoubleToStr() 을 사용하는 한 줄입니다. . .

직접 작성하고 여기에 게시하면 시간을 내어 무료로 검토해 드리겠습니다.

 int start()
{
   int i ,times;
   string DIPlus1;
   string DIPlus0;
 
   string DIMinus1;
   string DIMinus0;
   
   string Main1;
   string Main0;
   
   string MACD_main;
   string MACD_signal;
   string Rsi;
   
   string err = 26 ;
   string x = 70 ;
   string xx = 30 ;
   
   double sl = 300 ;
   double tp = 50 ;
   
   int MagicNumber1= 1234 ,MagicNumber2= 4321 ;
//----
/*DIPlus1=DoubleToStr(  DIPlus1, 4);
DIPlus0=DoubleToStr(    DIPlus0, 4);
DIMinus1=DoubleToStr(   DIMinus1, 4);
DIMinus0=DoubleToStr(   DIMinus0, 4);
Main1=DoubleToStr(      Main1, 4);
Main0=DoubleToStr(      Main0, 4);
Rsi=DoubleToStr(        Rsi, 4);
//err=DoubleToStr(err,4);
//x=DoubleToStr(x,4);
//xx=DoubleToStr(xx,4);*/

//---
 
DIPlus1= iADX ( NULL , 0 , 14 , PRICE_CLOSE ,MODE_PLUSDI, 1 );
DIPlus0= iADX ( NULL , 0 , 14 , PRICE_CLOSE ,MODE_PLUSDI, 0 );
 
DIMinus1= iADX ( NULL , 0 , 14 , PRICE_CLOSE ,MODE_MINUSDI, 1 );
DIMinus0= iADX ( NULL , 0 , 14 , PRICE_CLOSE ,MODE_MINUSDI, 0 );

Main1= iADX ( NULL , 0 , 14 , PRICE_CLOSE ,MODE_MAIN, 1 );
Main0= iADX ( NULL , 0 , 14 , PRICE_CLOSE ,MODE_MAIN, 0 );

Rsi = iRSI ( NULL , 0 , 14 , PRICE_CLOSE , 0 );

times = Minute () % 15 == 0 && Seconds () == 0 ;

//MACD_main = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); 
//MACD_signal = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,0);
   
//----
if ( Minute () % 15 == 0 && Seconds () == 0 )
{
   if ( Main0 > err && Main1 < err && DIPlus0 > DIMinus0 && Rsi < x )

    
       OrderSend ( Symbol (),OP_BUY, 0.03 ,Ask, 5 ,Ask-sl* Point ,Ask+tp* Point , "" , 1234 , 0 , Blue );
          
   

   if (Main0 > err && Main1 < err && DIPlus0 < DIMinus0  && Rsi > xx)
     
       OrderSend ( Symbol (),OP_SELL, 0.03 ,Bid, 5 ,Bid+sl* Point ,Bid-tp* Point , "" , 4321 , 0 , Red );
}
     
   //---
 int PositionIndex;    
 
int TotalNumberOfOrders;  

TotalNumberOfOrders = OrdersTotal ();   

for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --)  
   {
   if (   OrderSelect (PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue ;   
   
   if ( OrderMagicNumber () == MagicNumber2      
     && OrderSymbol () == Symbol ()          
      && OrderType () == OP_BUY         
       || OrderType () == OP_SELL )  
       Print ( "DIPlus1" , DoubleToStr (     DIPlus1, 4 ));
         Print ( "DIMinus1" , DoubleToStr (  DIPlus1, 4 ));
           Print ( "Main0" , DoubleToStr (    DIPlus1, 4 ));
           Print ( "Rsi" , DoubleToStr (     DIPlus1, 4 ));  
     { if ( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx)
                   OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , Green );
     } 
   if ( OrderMagicNumber () == MagicNumber1      
     && OrderSymbol () == Symbol ()          
      &&   OrderType () == OP_BUY          
        || OrderType () == OP_SELL )  
         Print ( "DIPlus1" , DoubleToStr (    DIPlus1, 4 ));
         Print ( "DIMinus1" , DoubleToStr (  DIPlus1, 4 ));
           Print ( "Main0" , DoubleToStr (    DIPlus1, 4 ));
           Print ( "Rsi" , DoubleToStr (     DIPlus1, 4 ));
    { if ( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )
                   OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Green );   
   }
      {   if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 3 ) )               
         Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () ); 
    }           
    }
 return ( 0 );
 }
   
당신은 이것을 의미합니까? 그러나 지금은 주문을 닫지 않습니다.
 
toi10005doi :
당신은 이것을 의미합니까? 그러나 지금은 주문을 닫지 않습니다.
나는 한 줄을 추가 라고 말했다 . . . 그것이 필요한 전부였습니다.

코드를 보십시오. . . . 한 줄 한 줄, 추가한 내용을 확인하고, 왜 삭제했는지 확인하세요. . . 이것이 당신이 배우는 방법입니다. if 문이 어떻게 작동하는지 이해하고 계십니까? 중괄호 { } 의 목적을 이해합니까?