Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 709

 

Hallo zusammen, helfen Sie mir, einen Fehler im Code zu finden. Der Punkt ist folgender: alle offen, sagen wir 6 von ihnen 4 im Gewinn, 2 im Kauf (nach dem Screenshot). Die Schließung erfolgt, wenn der Gesamtgewinn 1,0 erreicht (gemäß dem Screenshot). 2 X 2 = 4 gesperrt (sie werden mit OrderCloseBy geschlossen), 2 Verkäufe werden mit OrderClose geschlossen.

Der Fehler ist folgender: die überlappenden Aufträge werden mit OrderCloseBy geschlossen, aber der Rest der Aufträge wird nicht geschlossen

Ich möchte nicht im Code wühlen, ich denke, der Fehler liegt hier.

Zeile 565 des Codes - Funktion zum Schließen von Aufträgen

Codezeile 92-100 - alle anderen Aufträge schließen

Zeile 550 des Codes - Funktion zum Zählen der offenen Aufträge

Ich wäre für jede Hilfe dankbar.


Dateien:
 

alexey1979621, на mql5 ответил ;)

 
Shurkin:

Hallo.

Beim Tesselieren (Terminal MT-4-670, Alt+R) werden die Diagrammfenster immer wieder an neuen Stellen platziert.

Können Sie mir bitte sagen, ob es möglich ist, sie so zu fixieren, dass die Position jedes einzelnen Diagramms auf dem Bildschirm konstant ist?


MT-4-670, bei mir ist alles in Ordnung

Die Paartabellen befinden sich immer (im Mosaik) in den unteren Registerkarten

In der Reihenfolge ihrer Priorität:

| 1 | 3 | 5 |

| 2 | 4 | 6 |

 
GalaX:

MT-4-670, mir geht's gut

Die Paardiagramme sind immer so angeordnet (als Mosaik), wie sie sich am unteren Rand der Registerkarten befinden

In der Reihenfolge ihrer Priorität:

| 1 | 3 | 5 |

| 2 | 4 | 6 |


Ich habe immer das Fenster, das zuerst im Vollbildmodus war, das aktive Fenster wechseln - die Reihenfolge des Mosaiks ändert sich auch
 
GalaX:

MT-4-670, mir geht's gut

Die Paardiagramme sind immer so angeordnet (als Mosaik), wie sie sich am unteren Rand der Registerkarten befinden

In der Reihenfolge ihrer Priorität:

| 1 | 3 | 5 |

| 2 | 4 | 6 |


Diese Eigenschaft erscheint, wenn das Diagrammpanel eingeschaltet ist. Wenn es ausgeschaltet ist, verschwindet es und das aktive Fenster wird an die erste Stelle gesetzt.

Ich konnte in der neuesten Version der Hilfe nichts darüber finden.

 
alexey1979621:

Hallo zusammen, helfen Sie mir, einen Fehler im Code zu finden. Der Punkt ist wie folgt: insgesamt geöffnet, sagen wir 6 von ihnen 4 zu profitieren, 2 zu kaufen (nach dem Screenshot). Die Schließung erfolgt, wenn der Gesamtgewinn, mit Cajem in 1,0 (nach dem Screenshot). 2 X 2 = 4 verschlossen (sie werden mitOrderCloseBy geschlossen), 2 Siegel werden mit OrderClose geschlossen.

Der Fehler ist folgender: Die überlappenden Aufträge werden mit OrderCloseBy geschlossen, aber die übrigen Aufträge werden überhaupt nicht geschlossen

Um nicht im Code zu wühlen, denke ich, dass der Fehler hier liegt.

Zeile 565 des Codes - Funktion zum Schließen von Aufträgen

Zeilen 92-100 des Codes - alle anderen Aufträge schließen

Zeile 550 des Codes - Funktion zum Zählen der offenen Aufträge

Ich wäre für jede Hilfe dankbar.


"Zeile 92-100 des Codes - alle anderen Aufträge schließen" - der Schlusskurs des Auftrags ist falsch.

In allen Zyklen mit Auftragssuche müssen Sie die Auftragssuchrichtung ändern, z.B. auf folgende Weise

 for(t = OrdersTotal() - 1; t >= 0; t--)

Und in ClosePos() ändert sich die Anzahl der Aufträge nach der Überschreitung erheblich. Da muss es eine Menge Fehler geben.

 

Programmatischer Zugang zu Alarmen - die mit einem roten Pfeil auf der rechten Seite gezeichnet sind und Nachrichten an die Stelle senden, an die sie gesendet werden sollen, wenn der Kurs das gewünschte Niveau überschreitet, existiert???????

Ayyyyyyy

 

Hilfe bitte!!! Dritter Tag des Puzzlespiels!!!!

int stohastm1()

{


double z=iLowest(Symbol(),PERIOD_M1,MODE_LOW,m5,0); //Rückgabe des Bar-Index für n-Perioden mit Mindestpreis

double x=iHighest(Symbol(),PERIOD_M1,MODE_HIGH,m5,0); //Rückgabe des Bar-Index für n-Perioden mit Höchstpreis

double MinLOWPeriod=iLow(Symbol(),PERIOD_M1,z); //Rückgabe des Barpreiswertes mit dem niedrigsten Preis

double MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,x); //liefert den Preis des Balkens mit dem höchsten Preis

double PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //gibt den Schlusskurs des letzten Balkens zurück

double i=100*((PriceCloseBar*10000)-(MinLOWPeriod*10000));

double r=100*((MaxHIGHPeriod*10000)-(MinLOWPeriod*10000));

double Km1=(i/r);


zurück(Km1);

In Echtzeit funktioniert das Skript!!! im Strategie-Tester ERROR! DIVIDIEREN DURCH NULL!!! Die Formel ist die einfachste, aber man kann sie nicht ohne Division durchführen. (stochastische Formel). Wie im Code zu sehen ist und ich die Werte mit 10000 multipliziert habe, um Nullen generell auszuschließen! trotzdem ein Fehler! BITTE!!!

 
sponger:

Hilfe bitte!!! Dritter Tag des Puzzlespiels!!!!

int stohastm1()

{


double z=iLowest(Symbol(),PERIOD_M1,MODE_LOW,m5,0); //Rückgabe des Bar-Index für n-Perioden mit Mindestpreis

double x=iHighest(Symbol(),PERIOD_M1,MODE_HIGH,m5,0); //Rückgabe des Bar-Index für n-Perioden mit Höchstpreis

double MinLOWPeriod=iLow(Symbol(),PERIOD_M1,z); //Rückgabe des Barpreiswertes mit dem niedrigsten Preis

double MaxHIGHPeriod=iHigh(Symbol(),PERIOD_M1,x); //liefert den Preis des Balkens mit dem höchsten Preis

double PriceCloseBar=iClose(Symbol(),PERIOD_M1,0); //gibt den Schlusskurs des letzten Balkens zurück

double i=100*((PriceCloseBar*10000)-(MinLOWPeriod*10000));

double r=100*((MaxHIGHPeriod*10000)-(MinLOWPeriod*10000));

double Km1=(i/r);


zurück(Km1);

In Echtzeit funktioniert das Skript!!! im Strategie-Tester ERROR! DIVIDIEREN DURCH NULL!!! Die Formel ist die einfachste, aber es gibt keine Möglichkeit, sie ohne Division auszuführen. (stochastische Formel). Wie im Code zu sehen ist und ich die Werte mit 10000 multipliziert habe, um Nullen generell auszuschließen! trotzdem ein Fehler! BITTE!!!

Ist das nicht eine Division?double Km1=(i/r);
 

borilunad:
А это не деление? double Km1=(i/r);   

es ist!!! Aber Sie brauchen es!!! stochastische Formel%K = 100%-((Close - Minp)/(Maxp- Minp))

  • Close - aktueller Schlusskurs
  • Minp - Mindestwert für den Zeitraum n
  • Maxp - Höchstwert für den Zeitraum n
  • Wie kann ich das ohne Division machen?