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

 
Es ist klar, dass das Gebot gealtert ist, aber ich hatte gehofft, dass dieses Design es mir ermöglichen würde, mehrere Positionen auf dem aktuellen Balken mit unterschiedlichen Eröffnungspreisen zu eröffnen. Und im Tester funktioniert es gut, aber auf der Demo öffnet es eine Position und schließt sich sofort.
 
rapid_minus:
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.




 
LRA:

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.

Tut mir leid, ich weiß nicht, was ich als nächstes tun soll(
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);
}
 
AlexeyVik:    Sie haben mich überrascht... mathlog10

Das Problem wird auf eine viel einfachere Weise gelöst.

Mit ihm ist es sicherlich einfacher.... Vielleicht war es damals verschwunden oder verloren gegangen... In meinem geliebten TurboPascal fehlt sie definitiv. Ich habe dazu den Logarithmus verwendet.
 
Ich danke Ihnen!
 
LRA:
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...

 
Ich habe einen Indikator, der die Balken des Hauptfensters mit der gleichen Preis- und Zeitskala vollständig wiederholt. Frage: Gibt es ein CHARTSET CHARTGET für das Indikatorfenster, das beim Scrollen des Diagramms genauso skaliert wie im Hauptfenster?
 
AlexeyVik:

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)

 
Igemon:

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.

int fun(double ch)
{
 int i = 0;
 double res = 0, ostatok = fmod(ch, 1);
 while(ostatok != 0 && i < 16) // число взято от фонаря для прерывания зацикленности
  {
   res = ostatok * 10;
   ostatok = NormalizeDouble(fmod(res, 1), 8); // Вроде 8 максимально
   i++;
  }
 return(i);
}/*******************************************************************/

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.

Grund der Beschwerde: