
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erstens ist es falsch, reale Stochast_ und ganze Zahlen 75 zu vergleichen, und zweitens ist es richtiger, ihre Differenz mit Null zu vergleichen.
Ein weiteres Problem tritt bei der Positionsschließungssperre auf. Ich habe diesen Block in meinen bevorzugten Expert Advisor eingebaut. Es eröffnet nur Geschäfte, die strikt in Richtung des Trends gehen (dazu gratuliere ich ihm...)
Aber je nach Stärke des Trends ist der Expert Advisor in der Lage (und tut es auch!), immer wieder mehrere Geschäfte zu eröffnen, - eines nach dem anderen! Hier benötige ich den Block der Schlusspositionen auf das Signal des Indikators. Aber hier liegt das Problem: Wenn mehrere Positionen innerhalb eines Trends eröffnet werden und eine Korrektur gegen den Trend einsetzt, gibt der Indikator im Block ein Signal zum Schließen. Wie ich es brauche.
Aus irgendeinem Grund werden jedoch nicht alle offenen Positionen geschlossen. Im Grunde nur die früheste. Diejenigen, die später geöffnet wurden, reagieren nicht auf das Schließsignal, sondern bewegen sich weiter. Und weiter, - "Geschichte wiederholt sich wie eine Farce"! Bei jedem Schließsignal wird nur eine, die am frühesten geöffnete Position geschlossen, und die anderen bewegen sich weiter! Das Los aller Positionen ist konstant.
Hier ist das Diagramm für den visuellen Modus. Das Schließen durch das Signal des Indikators wird mit einem grünen Dreieck gekennzeichnet. Es ist deutlich zu erkennen, dass durch das Signal jedes Mal nur eine Position geschlossen wird. Ich möchte, dass alle offenen Stellen geschlossen werden! Bitte teilen Sie mir mit, was der Grund dafür ist.
Eine Erinnerung an den Code :
/********* Закрытие позиций **************************************** if (AutoClose) { //---------------------------------------------------------------------- if (ExpertOrder(MagicLong)) { //есть открытые ордера на покупку if(Stochast_1>=Up_lim && Stochast_0<Up_lim) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);//закрываем позицию return(0); // выходим } } //-------------------------------------------------------- if (ExpertOrder(MagicShort)) { //есть открытые ордера на продажу if(Stochast_1<=Low_lim && Stochast_0>Low_lim) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);//закрываем позицию return(0); // выходим } } //------------------------------------------------------- } //if (AutoClose)
Ein weiteres Problem ergibt sich mit dem Closing Block...
Wo befindet sich die Schleife von OrdersTotal()?
Nein, das ist hier nicht der Fall. Aufträge werden - unterschiedlich - definiert:
Und diese Version des Codes ist für mich viel bequemer! Denn meine Long- und Short-Positionen werden unabhängig voneinander eröffnet.
Mit dem Standardverschluss ist es aber immer noch dasselbe. ...
Mit dem Standardverschluss ist es aber immer noch dasselbe. ...
Versuchen Sie, eine umgekehrte Schleife von OrdersTotal bis 0 zu machen. Das sollte helfen.
Wie kann man das tun? Bitte schreiben Sie mir, wenn es Sie nicht zu sehr belastet. Hier ist übrigens der Chart - mit dem obigen "Standard": Alles ist gleich - nur eine Position schließt auf das Signal des Indikators -
Wie macht man das?
for (int v=0; v<OrdersTotal(); v++)
schreiben:
for (int v=OrdersTotal()-1; v>0; v--)
Das funktioniert bei mir.
Wie machen Sie das?
for (int v=0; v<OrdersTotal(); v++)
schreiben:
for (int v=OrdersTotal()-1; v>0; v--)
Das funktioniert bei mir.
Sie haben völlig Recht. Obwohl KimV über Skripte und Bibliotheken verfügt, die all dies implementieren. Vielleicht sollten Sie in seinem Forum danach suchen.