Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 1051
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
Ich verstehe nicht, wo die Antwort liegt. Ich meine dies: "Die Funktion integriert die Überprüfung des Stop-Flag-Status des Expert Advisors alle 0,1 Sekunden"? Wenn ja, wie kann dieses Kennzeichen entfernt werden?
Nein, wenn du bis zum Ende gelesen hättest, würdest du die Antwort auf die Frage sehen...
Hinweis
Die Funktion Sleep() kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da Indikatoren im Schnittstellen-Thread ausgeführt werden und diesen nicht verlangsamen dürfen. Die Funktion überprüft alle 0,1 Sekunden den Status der Stoppflagge des Experten. Die Funktion Sleep() im Strategietester verursacht keine Verzögerungen.
Fangen Sie damit an, diese am Ende des Indikators anzubringen. Sobald Sie die Markierung auf dem Bildschirm sehen, überlegen Sie sich, wie Sie das Gewünschte eintragen können. Hier erhalten Sie Ratschläge, aber Sie müssen es selbst eintragen.
int Zahl=25;
if(H==H1&&H1==H2)
{if(J == true) {ObjectCreate(PatternText[shift],
OBJ_TEXT, 0, Zeit[shift1], Hoch[shift1] + Bereich*5);
ObjectSetText(MusterText[shift], "Muster", 10, "Arial", Rot);
downArrow[shift1] = High[shift1] + Range*0.5;}if(setalert == 0 && Alert == true) {pattern = "pattern";setalert = 1;}}
if(ObjectFind(0, "Text")<0) // Ausgabebezeichnung prüfen
{
ObjectCreate("Text", OBJ_LABEL, 0, 0, 0); // Erstellung
ObjectSet("Text", OBJPROP_CORNER, 1); // Rechte obere Ecke
ObjectSet("Text", OBJPROP_XDISTANCE, 10); //X
ObjectSet("Text", OBJPROP_YDISTANCE, 10); //Y
}
ObjectSetText("Text", string(Zahl), 14, "Arial",Black); // Ausgabe auf Etikett
}
zurück(0);
}
Das Problem wird auf eine viel einfachere Weise gelöst.
StringLen("tickEURUSD")
Es ist sicherlich einfacher damit.... Vielleicht fehlte es damals, oder es ging verloren... Das fehlt definitiv in meinem Lieblings-TurboPascal. Ich habe früher mit Logarithmen multipliziert.
Nach der Umstellung auf das aktualisierte mql4 gab es eine Zeit lang einen Fehler in der Dokumentation. Ein Klick auf MathLog10 öffnet die MathLog-Hilfe
Ich habe an servicedesk geschrieben, aber sie haben nur die Hälfte der Probleme behoben und die andere Hälfte liegen gelassen...
log(10) ist wirklich nicht 1, aber die Tatsache, dass mql keinen dezimalen Logarithmus hat, überrascht mich...
Was ist es dann? https://docs.mql4.com/ru/math/mathlog10 obwohl es einen Fehler im Text gibt.
Die Frage ist viel einfacher zu lösen.
Ich werde gleich im letzten Beitrag antworten.
Was Logarithmen sind, habe ich verstanden, ich habe nicht verstanden, wofür sie in diesem Code sind, aber nach der Korrespondenz zwischen Ihnen und diesem Genossen habe ich verstanden, dass sie für Dezimalstellen sind, richtig?
Könnte man das nicht auch anders machen? Warum dies im Code(int) ? Warum ist Ihr Weg besser als der von mir angegebene ?))
vielen Dank)
Ich werde gleich im letzten Beitrag antworten.
Ich verstehe, was Logarithmen sind, ich habe nicht verstanden, warum in diesem Code, aber nach Ihrer und der Korrespondenz dieses Kameraden habe ich verstanden, dass es für die Bestimmung der Anzahl der Dezimalstellen ist, nicht wahr?
Könnte man das nicht auch anders machen? Warum brauche ich sie im Code(int)? Warum ist Ihr Weg besser als der von mir angegebene ?))
vielen Dank)
Ja, um die Anzahl der Dezimalstellen zu bestimmen. Dies ist erforderlich, um den Wert einer Partie zu normalisieren, wenn die Partie durch eine Formel definiert ist und das Ergebnis möglicherweise mehr Dezimalstellen hat als erlaubt. In manchen Fällen kann man auch einfach eine Zwei eingeben, aber dann könnte ein Fehler auftreten, so dass es besser ist, dies programmatisch zu definieren.
Es gibt noch eine andere Möglichkeit, dies zu tun. Es gibt zwei Möglichkeiten, dieses Problem zu lösen: Man kann eine Zahl in eine Zeichenkette umwandeln, die Länge der Zeichenkette definieren, den Index des Punktzeichens ermitteln und die Differenz zwischen der Länge der Zeichenkette und dem Index des Punktzeichens als Bruchteil der Zahl auswerten. Und auf mql5 Forum, können Sie mehrere Varianten, einige dünner, einige einfacher zu finden.
Hier ist eine weitere Variante.
Diese Funktion bestimmt die Anzahl der Dezimalstellen einer beliebigen Zahl.
Der Algorithmus ist unverschämt einfach, wir sollten uns überlegen, wie oft der Rest von der Division durch 1 größer als Null sein wird.
Ich habe nicht gesagt, dass mein Weg besser ist. Jeder Programmierer schreibt so, wie er die Problemlösung sieht.
Eine Zahl vom Typ double, auch wenn sie keine signifikanten Ziffern im Bruchteil hat, hat z.B. die Form 2.0, was nicht ganz korrekt ist, und um eine normale ganze Zahl zu erhalten, wird sie implizit in den Typ int umgewandelt.
Hinweis
Die Funktion Sleep() kann nicht von benutzerdefinierten Indikatoren aufgerufen werden, da Indikatoren im Schnittstellen-Thread ausgeführt werden und diesen nicht verlangsamen dürfen. Die Funktion prüft alle 0,1 Sekunden den Status der Stoppflagge des Experten. Die Funktion Sleep() im Strategietester verursacht keine Verzögerungen.
Alle sind so klug, dass es beängstigend ist, sie anzusehen. Ich habe geschrieben, dass der Slip im Strategy Tester ignoriert wurde (was klar ist), aber alle Positionen sind offen, wie ich angegeben habe. Aber auf der Demo Slip funktioniert nicht, und die Position ist nur eine geöffnet, und das schließt sofort. Das ist das Problem, das ich nicht lösen kann.