[ARCHIV] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 3. - Seite 105

 
Dimka-novitsek:
Ich bewege diese Art des Schreibens jetzt, der Stop bewegt sich genau dann, wenn der Gewinn 30 Pips erreicht (abzüglich des Spreads, etc.), in einem Abstand von 15 Pips vom Preis.

Und die Reihenfolge wird immer geändert? Wenn ich versuche, sie manuell zu platzieren, lässt sie sich nicht bewegen und ich erhalte die Meldung Ungültige S/L...
 
Sagen Sie mir, wird diese Funktion, d.h. dieses Formular, die Aufträge aus den zuletzt geschlossenen und in der Reihenfolge auswählen?
for ( i=0; i<OrdersHistoryTotal(); i++) {
      if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
         if (OrderSymbol()!=Symbol())     continue;
         
         if (OrderMagicNumber()==1000 || OrderMagicNumber()==2000) {
            if (0<OrderClosePrice()) {
                Profit=OrderClosePrice();
                
               }
            if (0>OrderClosePrice()) {
                Loss=OrderClosePrice();   
               }
            }
         }
      }
      
 

ersten_Mai:



Und die Reihenfolge wird immer geändert? Wenn ich versuche, ihn manuell einzustellen, ist er nicht eingestellt und ich erhalte die Meldung Falsche S/L...


Nun, es muss falsch sein, auf der falschen Seite oder näher als 10 Pips auf den Preis, je nachdem, was der Broker erlaubt für dieses Paar

Mein S/L ist modifizierbar? keine Beschwerden.

 
Dimka-novitsek:


Nun, es muss falsch sein, auf der falschen Seite, oder näher als 10 Pips auf den Preis.

Ich will mich nicht beschweren.


Nun, sagen wir EURAUD - der Stop-Loss kann nicht unter 100 Pips gesetzt werden, und ich möchte mir das Breakeven-Level merken und es verschieben...
 
first_may:

Nun, sagen wir EURAUD - Sie können keinen Stop-Loss von weniger als 100 Pips setzen, und ich möchte mich an das Break-Even-Niveau erinnern, wenn ich einen Auftrag erteile und ihn verschiebe...

Ich verstehe...
 
first_may:

Nun, sagen wir das Paar EURAUD - hier kann man nicht einen Stop-Loss von weniger als 100 Pips setzen und ich möchte mir das Break-Even-Niveau merken und es verschieben...

Verwenden Sie einen virtuellen StopLoss-Level. Während Sie hier schreiben, merken Sie sich den Preis (speichern Sie ihn in einer Variablen). Wenn sich der Preis unter (für BUY) oder über (für SELL) das virtuelle Niveau bewegt, verwenden Sie die Funktion OrderClose().

Dies ist die einzige Möglichkeit, einen Verlust (Gewinn) zu erzielen, der etwas höher (niedriger) ist als gewünscht. Der Preis bleibt selten auf dem von uns gewünschten Niveau stehen. Aber diese Variante ist für den Handel durchaus akzeptabel. Es stimmt, ich habe nicht mit dieser Methode gehandelt.

 
MaxZ:

Verwenden Sie einen virtuellen StopLoss-Level. Während Sie hier schreiben, merken Sie sich den Preis (speichern Sie ihn in einer Variablen). Wenn sich der Preis unter (für BUY) oder über (für SELL) das virtuelle Niveau bewegt, verwenden Sie die Funktion OrderClose().

Dies ist die einzige Möglichkeit, einen Verlust (Gewinn) zu erzielen, der etwas höher (niedriger) ist als gewünscht. Der Preis bleibt selten auf dem von uns gewünschten Niveau stehen. Aber diese Variante ist für den Handel durchaus akzeptabel. Ich habe nicht nach dieser Methode gehandelt.


Ist das Speichern in einer Variablen eine globale Variable? Und wenn Sie mehrere Wertpapiere gleichzeitig speichern müssen, brauchen Sie ein Array?
 
first_may:

Handelt es sich bei der Speicherung in einer Variablen um eine globale Variable? Und wenn Sie mehrere Papiere gleichzeitig speichern müssen, brauchen Sie ein Array?
Was für eine intuitive Person Sie doch sind. Scheuen Sie sich nicht davor, mit Arrays zu arbeiten. Sie werden dich nicht fressen! :DD
 
MaxZ:
Wie klug Sie sind. Haben Sie keine Angst vor der Arbeit mit Arrays. Sie werden dich nicht fressen! :DD


Lesen: https://book.mql4.com/ru/variables/arrays . Es stellt sich heraus, dass ich ein zweidimensionales Array für beispielsweise drei Paare erstellen kann: double Mas_d[3][2] = {1, 0, 2, 0, 3,0};

wobei zu beachten ist, dass:

der Wert von Mas_d[1][1] entspricht z. B. dem AUDCAD-Paar, und Mas_d[1][2] ist der Wert dieses Paares;

der Wert von Mas_d[2][1] entspricht z.B. dem Paar AUDCHF und Mas_d[2][2] ist der Wert dieses Paares;

Der Wert von Mas_d[3][1] entspricht zum Beispiel AUDJPY, und Mas_d[3][2] ist der Wert dieses Paares,

die Array-Elemente behalten ihre Werte zwischen den Ticks bei. Und dann kann ich die Werte der Array-Elemente nach dem gewünschten Kriterium ändern. Habe ich richtig verstanden, was Sie meinen? :)

 
Leute, Hilfe: Ich habe eine Bedingung in meinem EA, die eine Kaufposition nur dann eröffnet, wenn das Tief der vorherigen Kerze unter allen Tiefs der vorherigen 40 Kerzen liegt. Die Frage ist: Wie kann man diese Aufzählung der Tiefststände der vorherigen Kerze implementieren und herausfinden, ob der Tiefststand der vorherigen Kerze unter dem Tiefststand der vorherigen Kerze lag? Ich danke Ihnen im Voraus.