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

 

DIPlus1의 값을 8번 출력하는 이유는 무엇입니까?

이 줄을 사용하십시오. . 한번.

 Print ( "DIPlus1: " , DoubleToStr (DIPlus1, Digits ), " DIMinus1: " , DoubleToStr (DIMinus1, Digits ), " Main0: " , DoubleToStr (Main0, Digits ), " Rsi: " , DoubleToStr (Rsi, Digits ) );
 

당신은 당신과 다른 사람들이 따라하기 쉽도록 들여쓰기를 명확하게 해야 합니다. . .

 for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --)  
   {
   if (   OrderSelect (PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue ;   
   
   Print ( "DIPlus1: " , DoubleToStr (DIPlus1, Digits ), " DIMinus1: " , DoubleToStr (DIMinus1, Digits ), " Main0: " , DoubleToStr (Main0, Digits ), " Rsi: " , DoubleToStr (Rsi, Digits ) );
   
   if ( OrderMagicNumber () == MagicNumber2      
   && OrderSymbol () == Symbol ()          
   && OrderType () == OP_BUY         
   || OrderType () == OP_SELL )  
      {
       if ( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx)
         OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , Green );
      } 

   if ( OrderMagicNumber () == MagicNumber1      
   && OrderSymbol () == Symbol ()          
   &&   OrderType () == OP_BUY          
   || OrderType () == OP_SELL )  
      { 
       if ( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )
         OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Green );   
      }

   if ( ! OrderClose ( OrderTicket (), OrderLots (), OrderClosePrice (), 3 ) )                           //  <------  why this extra OrderClose ???
         Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () ); 
              
   }
 

랩터 감사합니다. 내 EA가 작동하기를 바랍니다.

내 새 코드:

 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 && DIPlus1 > DIMinus1 && Rsi < x )

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

   if (Main0 > err && Main1 < err && DIPlus1 < DIMinus1  && 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, Digits ), " DIMinus1: " , DoubleToStr (DIMinus1, Digits ), " Main0: " , DoubleToStr (Main0, Digits ), " Rsi: " , DoubleToStr (Rsi, Digits ) );
             
               { if ( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx)
                             OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , Green );
                   else Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () ); 
               
               } 
      
      
         
             if ( OrderMagicNumber () == MagicNumber1      
              && OrderSymbol () == Symbol ()          
               &&   OrderType () == OP_BUY          
                 || OrderType () == OP_SELL ) 
                  
                 Print ( "DIPlus1: " , DoubleToStr (DIPlus1, Digits ), " DIMinus1: " , DoubleToStr (DIMinus1, Digits ), " Main0: " , DoubleToStr (Main0, Digits ), " Rsi: " , DoubleToStr (Rsi, Digits ) );
                
                  { if ( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )
                                 OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Green ); 
                     else Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () ); 
                 
                  }
      }
   
    
 return ( 0 );
 }
   

즉시 닫으십시오! :(

 
RaptorUK :

 //  <------  why this extra OrderClose ???


?? 당신은 대답이 있습니까?
 
RaptorUK :
?? 당신은 대답이 있습니까?

내가 고쳤다!

내 새 코드를 미리 보십시오. 감사합니다!

 
toi10005doi :

내가 고쳤다!

내 새 코드를 미리 보십시오. 감사합니다!

나는 당신에게 사용 코드를 주었다. . . . 복사하여 붙여넣기만 하면 됩니다.

귀하의 코드는 여전히 잘못되었습니다. . . 돌아가서 을 다시 읽어야 합니다.

             if ( OrderMagicNumber () == MagicNumber1      
              && OrderSymbol () == Symbol ()          
               &&   OrderType () == OP_BUY          
                 || OrderType () == OP_SELL )     //  if this is true only the Print is called . . .
                  
                 Print ( "DIPlus1: " , DoubleToStr (DIPlus1, Digits ), " DIMinus1: " , DoubleToStr (DIMinus1, Digits ), " Main0: " , DoubleToStr (Main0, Digits ), " Rsi: " , DoubleToStr (Rsi, Digits ) );
                
                  { if ( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )             //  this happens regardless of the if above . . .
                                 OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Green ); 
                     else Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () );   //  this happens if the if above is false . . .  why ??
                 
                  }
 
RaptorUK :
나는 당신에게 사용 코드를 주었다. . . . 복사하여 붙여넣기만 하면 됩니다.

귀하의 코드는 여전히 잘못되었습니다. . . 돌아가서 을 다시 읽어야 합니다.



응! 나는 책을 더 읽을 것이다. 이 코드를 미리 볼 수 있습니까?

 for (PositionIndex = TotalNumberOfOrders - 1 ; PositionIndex >= 0 ; PositionIndex --)  
   {
   if (   OrderSelect (PositionIndex, SELECT_BY_POS, MODE_TRADES) ) continue ;   
   
               Print ( "DIPlus1: " , DoubleToStr (DIPlus1, Digits ), " DIMinus1: " , DoubleToStr (DIMinus1, Digits ), " Main0: " , DoubleToStr (Main0, Digits ), " Rsi: " , DoubleToStr (Rsi, Digits ) );
   
               if ( OrderMagicNumber () == MagicNumber2      
               && OrderSymbol () == Symbol ()          
               && OrderType () == OP_BUY         
               || OrderType () == OP_SELL )  
                  {
                   if ( DIPlus1 > DIMinus1 || Main0 < err || Rsi < xx)
                     {
                         if (! OrderClose ( OrderTicket (), OrderLots (),Bid, 3 , Green ))
                           Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () );
                     } 
                  }
               if ( OrderMagicNumber () == MagicNumber1      
               && OrderSymbol () == Symbol ()          
               &&   OrderType () == OP_BUY          
               || OrderType () == OP_SELL )  
                  { 
                     if ( DIPlus1 < DIMinus1 || Main0 < err || Rsi > x  )
                        {
                           if (! OrderClose ( OrderTicket (), OrderLots (),Ask, 3 , Green ))  
                               Print ( "Order Close failed, order number: " , OrderTicket (), " Error: " , GetLastError () );
                        } 
                      
                  }

   
    }
 return ( 0 );
 }
   

왜 주문을 닫지 않습니까?

 
toi10005doi :

응! 나는 책을 더 읽을 것이다. 이 코드를 미리 볼 수 있습니까?

왜 주문을 닫지 않습니까?

Print 문의 변수에 대한 로그에 인쇄된 정보를 복사하여 붙여넣을 수 있습니까?
 
RaptorUK :
Print 문의 변수에 대한 로그에 인쇄된 정보를 복사하고 붙여넣을 수 있습니까?

나는 단지 그것을 다시 테스트합니다. 그러나 그것은 어떤 주문도 닫지 않았습니까?

 
toi10005doi :

나는 단지 그것을 다시 테스트합니다. 그러나 그것은 어떤 주문도 닫지 않았습니까?

저널을 보고 인쇄된 값이 무엇인지 알아보십시오. 여기에서도 복사하여 붙여넣을 수 있습니까? . . . Print 문을 추가하는 요점은 디버깅을 위한 것이었습니다. . . 그 데이터를 보고 무엇이 잘못되었는지 알아내야 합니다.