Was ist order_id? - Seite 2

 
toi10005doi:

@Raptor:

Ja, aber ich habe es kaum verstanden, weil ich nur EA schreiben wollte. Sr für Sie zu stören.

Ich verstehe nicht, warum meine Bestellung schließen sofort, nachdem es Stern.

Wenn Sie nicht verstehen, mein Thread Sie brauchen, um das Buch mehr zu lesen ... . der Thread ist nur über eine Schleife und Schließen von Aufträgen und ist sehr einfach und klar, und Sie haben immer noch nicht beachtet es.


Warum versuchen Sie, Ihre Order 4 Mal zu schließen - zweimal zum Bid und zweimal zum Ask?

 
Meine naheliegende Bedingung ist eine cobine Bedingung. Aber als ich sie geschrieben habe, hat sie nicht funktioniert. Also habe ichsie getrennt.
 
toi10005doi:
Meine naheliegende Bedingung ist eine cobine Bedingung. Aber als ich sie geschrieben habe, hat sie nicht funktioniert. Also habe ichdiese Bedingung getrennt.
Aber Sie versuchen, denselben Auftrag (nach Ticketnummer) viermal zu schließen... warum?
 
toi10005doi:

Ja! Ich habe es.

Ich habe meinen Code korrigiert, aber meine Bestellung wird immer noch sofort nach dem Start geschlossen. Bitte zeigen Sie mir, was ich falsch gemacht habe

In der Schleife, in der Sie Ihre Order schließen, drucken Sie diese Werte. DIPlus1 DIMinus1 Main0 Rsi stellen Sie sicher, dass Sie DoubleToStr() verwenden, um die richtige Anzahl von Dezimalstellen zu erhalten.
 
Raptor hat Ihnen bereits gesagt, was Sie tun müssen. Fügen Sie einige Druckanweisungen mit dem vollständigen Variablenwert in Ihre Schleife ein und Sie werden herausfinden, warum
 
RaptorUK:
In der Schleife, in der Sie Ihren Auftrag schließen, drucken Sie diese Werte. DIPlus1 DIMinus1 Main0 Rsi stellen Sie sicher, dass Sie DoubleToStr() verwenden, um die richtige Anzahl von Dezimalstellen zu erhalten.

Tun Sie dies. Was erhalten Sie im Protokoll?
 
RaptorUK:
Tun Sie dies. Was erhalten Sie im Protokoll?

Können Sie mir den Code zeigen?

 
toi10005doi:

Können Sie mir den Code zeigen?

Machst du Witze? Es ist nur eine einzige Zeile mit Print() und DoubleToStr().

Schreiben Sie ihn selbst, posten Sie ihn hier und ich werde meine Zeit opfern, um ihn für Sie zu überprüfen.
 
RaptorUK:
Machst du Witze? Es ist nur eine einzige Zeile mit Print() und DoubleToStr().

Schreiben Sie es selbst, posten Sie es hier und ich werde meine Zeit opfern, um es für Sie zu überprüfen.

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);
 }
   
Meinen Sie dies? Aber jetzt schließt sich der Auftrag nicht.
 
toi10005doi:
Meinen Sie dies? Aber jetzt wird der Auftrag nicht geschlossen.
Ich sagte, fügen Sie eine Zeile hinzu ... das war alles, was nötig war.

Sehen Sie sich Ihren Code an. . . . folgen Sie ihm Zeile für Zeile, sehen Sie, was Sie hinzugefügt haben, sehen Sie, warum Sie ihn gebrochen haben . . . so lernen Sie. Verstehen Sie, wie eine if-Anweisung funktioniert ? verstehen Sie den Zweck der geschweiften Klammern { }?