[ARCHIV]Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Ohne dich kann ich nirgendwo hingehen - 5. - Seite 137
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
Im Moment lautet die Aufgabe: fastMa hat slowMa nach oben durchquert... Wir suchen also nach einem Ort, an dem wir sie kaufen können. Dann warten wir, bis der Preis d.h. Ask (da wir den Kauf in Betracht ziehen) fastMa erreicht ( nun, ich denke, es wird keinen exakten Wert geben, wir brauchen +- eine gewisse Abweichung, und diese wird durch i_thresholdFromMa verändert) und sobald der Preis fastMa +- i_thresholdFromMa erreicht, sollte der Expert Advisor BUYSTOP bei (fastMa + buyHear * pt) setzen.
Was ich mir ausgedacht habe, funktioniert nicht in einem Terminal und nicht immer in einem anderen. Irgendetwas stimmt generell nicht.
Die letzte Variante der Funktion buyHear hier:
Hier sind die Eingabeparameter:Die Fehler sind auf dem Screenshot zu sehen (in OrderSend() wird der Preis oberhalb des roten Stabes eingegeben, und der Auftrag liegt, wie auf dem Screenshot zu sehen, unter ....):
Ich war für ein paar Tage weg... Ich frage mich - haben die gleichen Parameter die Stäbe, die auf dem Diagramm geworfen werden, wie die Stäbe, die in den Berechnungen verwendet werden? Vielleicht ist der Hund dort begraben?
(Ich hatte noch keine Zeit, mich mit dem Code zu befassen und ihn zu zerlegen).
Ich würde z.B. eine Funktion erstellen:
und rufen es auf, um die Parameter zu erhalten
Hallo, können Sie uns bitte beraten! Ein Indikatorsignal hat ein Kaufsignal ausgelöst, ich eröffne eine Order erst nach Bestätigung der nächsten beiden Kerzen nach oben.
Hallo, können Sie mir bitte einen Rat geben! Ein Indikatorsignal hat ein Kaufsignal ausgelöst, ich eröffne eine Order erst nach Bestätigung der nächsten beiden Kerzen nach oben.
Überprüfen Sie also, ob die letzten beiden Kerzen nach oben zeigen und ob die Bedingung, einen Auftrag zu eröffnen, vor zwei Bars zur gleichen Zeit erfüllt ist.
Überprüfen Sie also, ob die letzten beiden Candlesticks nach oben zeigen und ob die Bedingung erfüllt ist, einen Auftrag zwei Balken zurück zu eröffnen.
Wie mache ich das?
Und wenn ja, wird das Signal ausgelöst, warten Sie auf die Bestätigung, nur nach einer Bar nach oben oder unten 2 Bars.
Wir brauchen es, um die Bar auf das Signal, die Bar nach dem Signal, vergleichen sie, wenn die beiden sind aufsteigend oder absteigend, dann .....
Wie mache ich das?
Wenn das Signal funktioniert hat, warten wir auf die Bestätigung, aber nachdem der Balken nach oben oder unten geht.
Es sollte sich den Balken vor dem Signal und den Balken nach dem Signal merken und vergleichen, ob die beiden auf- oder absteigend sind, dann .....
Wie mache ich das?
Wenn das Signal funktioniert hat, warten wir auf die Bestätigung, aber nachdem der Balken nach oben oder unten geht.
Es sollte sich den Balken vor dem Signal und den Balken nach dem Signal merken und vergleichen, ob die beiden auf- oder absteigend sind, dann .....
Ich schreibe einen einfachen Expert Advisor und stoße dabei auf eine Menge Probleme.
Die Bedingung ist
Ich merke mir den Schlusskurs des aktuellen Balkens und gebe ihn in die Variable Startprice ein, wenn der vorherige 4.
Wenn die Bedingung erfüllt ist, wird ein Symbol gezeichnet, das den Schlusskurs des Balkens, d. h. den Startpreis, anzeigt.
Bei mir wird das Symbol zwar gezeichnet, aber nur einmal, während ich es jedes Mal brauche.
Der Schlusskurs des Balkens stimmt nicht mit dem Startpreis bei 0,00001 überein. Warum und wie kann ich das beheben?
Versuchtes Runden und Trimmen auf 5 Stellen hat nicht geholfen(
Im Protokoll mit dem Druck nenne ich den Wert Startprice, zeigt die Zahl nur bis zu 4 Ziffern und weniger.
Wie lässt sich die gleiche Genauigkeit wie im Datenfenster des Terminals erreichen?
Dieses Problem mit dem Dezimalpunkt gilt auch für den Schieberegler selbst. Wenn Sie die Werte über print aufrufen, können Sie nicht mehr als 4 Ziffern im Protokoll erhalten.
Verwenden Sie DoubleToStr(number, Digits) für die Ausgabe. Anstelle von Ziffern können Sie die gewünschte Genauigkeit angeben. Fügen Sie dem Namen des Symbols die Uhrzeit des Balkens hinzu, an dem Sie das Symbol einstellen.
wenn ja
es funktioniert nicht, es wird '=' verantwortlich gemacht - inkompatible Typen C:\fortest\experts\sve.mq4 (34, 14)
Wie schreibe ich es richtig?
Danke für die Antwort, ich kämpfe schon seit einer Woche mit diesem Problem.)
Verwenden Sie DoubleToStr(Zahl, Ziffern). Sie können anstelle von Digits die gewünschte Genauigkeit angeben. Fügen Sie dem Namen des Symbols die Taktzeit hinzu, wenn Sie das Symbol einstellen.
aber was die Ausgabe betrifft, so verstehe ich, dass der Drucker nur 4 oder weniger Ziffern druckt.
then if Drucken (DoubleToStr(Startpreis,5)); // Startpreis drucken
gibt es 5.
Aber hier ist, wie man die Zeit der Bar hinzufügen.
Diese Zeile fügt nicht die Zeit des Taktes hinzu?