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

 
DhP:

Es ist dasselbe, aber es ist einfacher (vertrauter), den Code zu lesen.

Ich bin zu faul, um es herauszufinden, aber jemand wird leicht einen Fehler in Ihrem Code finden, ohne sich anzustrengen. Warten Sie nur.

Es liegen keine Fehler vor. Alles funktioniert einzeln gut, aber ich würde gerne alles in einem Expert Advisor zusammenfassen. Zumindest kombinieren Expert Advisors mit Linien, das Tonsignal kann auch separat als Skript ausgeführt werden.
 

Manchmal erscheint eine Meldung im Logbuch:

ungültiger Preis 1.37197000 für OrderSend-Funktion

Worum könnte es sich dabei handeln? Sie erscheint, nachdem der Stop-Loss erreicht wurde.

 

der falsche Preis ist 1,37197000.

der korrekte Kurs ist 1,37197 oder 1,3719, je nachdem, welche DNS verwendet wird.

NormalizeDouble() wird verwendet, um die Anzahl der Stellen nach dem Dezimalpunkt festzulegen

 

Wie kann ich die Eröffnung eines neuen Taktes in int start() verfolgen?

Der Code muss nicht bei jedem Tick ausgelöst werden, sondern nur, wenn ein neuer Balken geöffnet wird.

 

Wenn die Zeit des Balkens nicht dieselbe ist, bedeutet dies, dass sich der Balken geändert hat.

Wenn sie nicht gleich ist, bedeutet das, dass sich der Takt geändert hat - tun Sie, was Sie tun müssen, und merken Sie sich die Zeit.

 

Wer hat isCloseLastPosByStop() oder isCloseLastPosByTake() verwendet? Zeigen Sie, wie Sie es gemacht haben.

 

Könnten Sie bitte mitteilen, wie man einen Indikator programmatisch in ein Diagramm lädt?

Es gibt die Funktion bool ServiceLoadCustomIndicator(int hwndChart,...); //hwndChart- Systemdeskriptor des Chartfensters, in das der Indikator geladen wird.

Ich weiß nicht, woher ich den Deskriptor des Diagrammfensters kenne.

Ich muss nur GetTickCount auf dem ersten Tick nach dem Start des Indikators zu speichern, aber der Code unten funktioniert nicht - das Terminal hängt. Vielleicht in init() RefreshRates funktioniert überhaupt nicht...?

 while(true){
  if(RefreshRates()) { tik=GetTickCount(); break; }
  Sleep(1); }
 
doon:

Wer hat isCloseLastPosByStop() oder isCloseLastPosByTake() verwendet? Zeigen Sie mir, wie Sie es gemacht haben.

Einfacher geht's nicht:

if (isCloseLastPosByStop(OP_BUY, Magic)) {
// код если последняя поза Бай с магиком Magic закрылась по стоп-приказу
}
if (isCloseLastPosByTake(OP_SELL, Magic)) {
// код если последняя поза Селл с магиком Magic закрылась по тейку
}

Platzieren Sie Funktionen selbst außerhalb der Funktion start(), Sie können sogar am Ende des gesamten Codes.

 
todem:

so dass zumindest ein bisschen Live-Video die Erfahrung künftiger Programmierer hier bereichern wird
Ihre Erklärung ist nicht zufriedenstellend. Ein "Live-Video" mit einer dummen Werbung für einen Broker bringt nichts als Werbung für den Broker.
Ihre Beiträge werden gelöscht, Sie wurden verwarnt.
 
artmedia70:

Einfacher geht's nicht:
Platzieren Sie die Funktionen selbst außerhalb der start()-Funktion oder ganz am Ende des gesamten Codes.

Ich sollte hinzufügen, dass auf dem gleichen Link, wo doon nahm den Code von Funktionen, gibt es ein Beispiel für test_isCloseLastPosByStop.mq4 Skript, wo alles getan wird, wie Artem sagt. Sie sollten es sich ansehen, bevor Sie fragen.
Grund der Beschwerde: