[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 397

 
VOLDEMAR:

Ja, wenn Sie x=0 eingeben, geht es auf Null, wenn Sie x: eingeben, geht es nicht auf Null, es geht nach oben.


Tut mir leid, dass ich nicht bemerkt habe, dass es im Kern des Starts ist ....
 
Ich bin sicher, dass sie sich zurücksetzen wird. Danke an alle, es ist ein bisschen komisch.
 
int tiket,tikett;double volume=0.1;int i=0,R1=0,R2=0,A=1 ;
int start()
  { 
int    X=0; 
double price=(Ask+Bid)/2;      
int total=OrdersTotal();                                         
                                       
   for (int i=total-1; i>=0; i--)                                 
   {
    if(OrderSelect(i, SELECT_BY_POS))                          
     { 
      Alert ("Uy",i);
      if(OrderSymbol()==Symbol()&&OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol())
       {
       X ++;
       }  
       }
       }
       Alert ("X",X);}

if (X==0)
   {
   tiket= OrderSend( Symbol(), OP_BUYSTOP,  volume*A, price +otstup*Point, Point* 3, R1, price+takeprofit*Point+otstup*Point, "OP_BUYSTOP", 1000,  expiration, Red); 
   Alert ("OP_BUYSTOP", GetLastError( )); 
   tikett= OrderSend( Symbol(), OP_SELLSTOP,  volume*A, price -otstup*Point, Point* 3,R2, price-takeprofit*Point-otstup*Point, "OP_SELLSTOP" , 2000,  expiration,C'0,128,255' );
    Alert ("OP_SELLSTOP", GetLastError( )); 
    }       


   return(0);
  

Das ist der richtige Weg!!!!!

 
Dimka-novitsek:
Ich bin sicher, dass sie auf Null gesetzt ist. Vielen Dank an alle, es ist ein bisschen komisch.
Besser ist es , comment() zu verwenden; dann können Sie während des Testens sehen, was mit Ihren Variablen oben links passiert......
 
Ich danke Ihnen!!!
 
Ich habe Ihren Code eingefügt, aber er lässt sich nicht kompilieren. Was ist der Fehler, ich kann ihn nicht verstehen. Aber die Hauptsache, ich fragte immer noch, es muss eine Art von logischen Fehler sein, Aufträge sind auf jedem Tick geöffnet, wahrscheinlich dieser Teil nicht funktioniert.
 if(OrderSymbol()==Symbol()&& OrderMagicNumber( )==1000||OrderMagicNumber( )==2000 && OrderSymbol()==Symbol())
Das ist der Teil, der nicht funktioniert, und ich kann ihn auch nicht verstehen?
 
VOLDEMAR:

Jungs eine kompliziertere Frage......

Wie man einen EA dazu bringt, alle Aufträge zu schließen, wenn ein bestimmter Gewinn erreicht ist .... Nur Aufträge für ein Symbol schließen ...

Beispiel: EA arbeitet auf 3 Paare Betrag zu schließen alle Aufträge auf ein Symbol 100p ...

Wenn der EUR mehr als 100 Pence hat, werden nur EUR-Aufträge geschlossen, während andere 200 Pence haben können ...

Wenn ich accountbalanse(), dann EA wird nur schließen, wenn die Summe der drei Paare ist mehr als 100p. Diese Option funktioniert nicht für mich !!!!

Hilfe bitte.........



Wahrscheinlich mit
AuftragGewinn( )
Und auch If (OrderSymbol()==Symbol()) {Obwohl ich es nicht selbst schreiben kann...
 

Bitte teilen Sie mir mit, was in dem Code falsch ist. Der Roboter sollte einen Verkaufsauftrag abschließen und wenn dieser nicht vorhanden ist, sollte er kaufen. Es wird der Fehler 4105 angezeigt, den ich zu beheben versuche, was aber zu keinem Ergebnis führt. Vielleicht gibt es noch andere Möglichkeiten, sie zu verarbeiten?

PRICECURRENTPPROFIT ist die Kaufstufe.


// ROBOT SELLS
// Ermitteln, ob Verkaufsaufträge vorliegen
if (Bid>=PRICECURRENTPPROFIT && PRICECURRENTMPROFIT>0)
{
for(cnt=OrdersTotal();cnt>=0;cnt--)
{OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES); mode = OrderType(); if(OrderSymbol() == "EURUSD")
{if(mode == OP_BUY)
{go=OrderClose(OrderTicket(), Lots, Bid, Slippage, Green);

}
}
} // wenn offen, schließen
} if(go != true) {Print("Failed to open SELL order. Fehler N", GetLastError());
switch(GetLastError()) {case 4105: OrderSend("EURUSD",OP_SELL,Lots,Bid,2*Point,0,0, "robot sells",MagicNumber,0,Red);break;}
}

 

Ich möchte einige Funktionen hinzufügen, um sie für Kauf und Verkauf zu öffnen, aber für Verkauf und Kauf brauche ich eine separate Magicnumber

Wenn eine Take Profit Order ausgelöst wird, schließt der Roboter alle schwebenden Orders. Ich möchte, dass er alle schwebenden Orders OP_SELLLIMIT schließt und sie unverändert lässt OP_BUYLIMIT, OP_BUY

 
Dimka-novitsek:
Ich habe Ihren Code eingefügt, aber er lässt sich nicht kompilieren. Was ist der Fehler, ich kann ihn nicht verstehen. Aber am wichtigsten ist, fragte ich immer noch, es muss eine Art logischer Fehler sein, Aufträge sind auf jedem Tick geöffnet, wahrscheinlich ist dieser Teil nicht funktioniert, und ich kann es nicht verstehen, entweder?
Entweder wird der Code nicht vollständig angezeigt oder es fehlt die schließende geschweifte Klammer ganz unten.