Ja, ich habe es getan, ich habe es getan, ich habe darüber nachgedacht, ich habe es nicht genau gesagt. Ich habe immer Schwierigkeiten, meine Gedanken zu formulieren. Bei der zehnten Änderung scheinen die Worte einen Sinn zu ergeben
Oooh, vielen Dank, mit so vielen Informationen kann man so viel erreichen...
Ich stehe kurz vor einer Geschäftsreise und möchte das mir zur Verfügung gestellte Material vertiefen, aber die Codierung... Ich könnte es auch auf einem Blatt Papier machen, das wäre ein gutes Trainingstool...
Mit freundlichen Grüßen, Roman
Dies ist nur ein winziger Bruchteil dessen, was Sie wissen müssen, ein Sandkorn im Meer des Programmcodes. Aber es reicht nicht aus, zu wissen, was man wann und wo einsetzt!
Wenn wir vom Namen des Themas"Robotererstellung" ausgehen, dann müssen Sie eine kostendeckende (profitable oder wie auch immer Sie es nennen wollen) Handelsstrategie haben, und erst dann die MQL5-Programmiersprache studieren.
Übrigens verfügt der MetaEditor des MT5-Terminals über den MQL5-Assistenten, mit dessen Hilfe Sie den Code des vorgefertigten Expert Advisors mit den Modulen der Handelssignale, die ihrerseits auf der Grundlage beliebter Indikatoren erstellt wurden, leicht und ohne Kenntnisse der Programmiersprache erhalten können. Mit Hilfe des MQL5-Assistenten können Sie schnell einen Expert Advisor erstellen und Ihre Strategie testen, wenn diese nur auf Indikatoren basiert. Hier ist der Link zu dem Artikel über den Aufbau eines Handelsroboters mit MQL5 Wizard: https://www.mql5.com/ru/articles/171.
При создании автоматических торговых систем возникает необходимость написания алгоритмов анализа рыночной ситуации и генерации торговых сигналов, алгоритмов сопровождения открытых позиций, систем управления капиталом и контроля риска торговли. После того как код модулей написан самой сложной задачей является компоновка всех частей и отладка...
57 und ein bisschen. Und die Antwort auf Ihre Frage nach dem Weg ist bereits bekannt, ich zitiere:
"Roman Zhilin:
Nein, es gibt keinen Prozess in der Freiberuflichkeit, den Sie nach Bedarf selbst entwickeln können. Und der einzige, der für meine Fehler verantwortlich gemacht werden kann, bin ich selbst, nicht ein fremder Programmierer. Sie müssen also lernen, lernen, kodieren, stolpern, Ihre Strategien verbessern und wieder lernen".
Mit freundlichen Grüßen, Vladimir.
Eine gute Auswahl, vielen Dank.
Erinnert mich an das Testament von Lenin :) Aber es ist richtig, es ist nie zu spät, etwas zu lernen.
Um zu verstehen, welche Art von Expert Advisor Sie benötigen, sollten Sie zunächst damit beginnen, daran zu arbeiten.
... Ich verstehe immer noch nicht den Sinn der ständigen Phrase, die mit dem Wort"Rückkehr" beginnt.
Wer kehrt zurück, zu wem kehrt er zurück, wohin kehrt er zurück, warum kehrt er zurück? Ich kann es immer noch nicht herausfinden...
Vielleicht kann ich das erklären.
Angenommen, Sie haben ein Symbol (z.B. EUR/USD), das auf dem Bildschirm schwankt, und ein Programm/Advisor/Roboter läuft im Terminal. Der Roboter führt den Code aus, den Sie in ihn eingegeben haben. Und dieser Code enthält diese Zeichenfolgen:
"orderSelect" ist eine Handelsfunktion, sie wählt einen bereits geöffneten Auftrag für die weitere Arbeit mit ihm aus. //In diesem Beispiel wird bei einer fehlgeschlagenen Auftragsauswahl (...==false) die weitere Ausführung der Funktion " if " durch den Befehl "break" unterbrochen.
Nächste. Wir haben den Auftrag mit der Handelsfunktion OrderSelect ausgewählt. Jetzt arbeiten wir damit, mit einer bestimmten Reihenfolge. Der Einfachheit halber gehen wir davon aus, dass wir nur zwei offene Aufträge haben.
Als Nächstes geben wir eine Variable OpenPrice [double type] ein und weisen ihr den Wert des Preises zu, zu dem die von uns ausgewählte Order eröffnet wurde (Codeabschnitt OpenPrice=OrderOpenPrice(); )
HIER ist eine Erklärung für Sie, was die RETURN eines Parameters bedeutet. Die Funktion OrderOpenPrice gibt den Wert des aktuellen Instrumentenpreises zurück . Das heißt, nachdem das Programm den aktuellen Preis vom Server angefordert hat, gibt es den Wert dieses Preises an Sie zurück und weist diesen Wert einer Variablen zu.
Nehmen wir an, Sie haben derzeit ein Symbol (z.B. EUR/USD), das auf Ihrem Bildschirm schwankt, und ein Programm/Advisor/Roboter läuft im Terminal. Der Roboter führt den Code aus, den Sie in ihn eingegeben haben. Und dieser Code enthält diese Zeichenfolgen:
"orderSelect" ist eine Handelsfunktion, sie wählt einen bereits geöffneten Auftrag für die weitere Arbeit mit ihm aus. //In diesem Beispiel wird bei einer fehlgeschlagenen Auftragsauswahl (...==false) die weitere Ausführung der Funktion " if " durch den Befehl "break" unterbrochen.
Nächste. Wir haben den Auftrag mit der Handelsfunktion OrderSelect ausgewählt. Jetzt arbeiten wir damit, mit einer bestimmten Reihenfolge. Der Einfachheit halber gehen wir davon aus, dass wir nur zwei offene Aufträge haben.
Als Nächstes geben wir eine Variable OpenPrice [double type] ein und weisen ihr den Wert des Preises zu, zu dem die von uns ausgewählte Order eröffnet wurde (Codeabschnitt OpenPrice=OrderOpenPrice(); )
HIER ist eine Erklärung für Sie, was die RETURN eines Parameters bedeutet. Die Funktion OrderOpenPrice gibt den Wert des aktuellen Instrumentenpreises zurück . Das heißt, nachdem das Programm den aktuellen Preis vom Server angefordert hat, hat es den Wert dieses Preises an Sie zurückgegeben und diesen Wert einer Variablen zugewiesen.
Ich danke Ihnen für Ihre Klarstellung. Ich hoffe, dass es Roman auch bei der Beherrschung der Programmiersprache helfen wird.
Hallo! Vielleicht kann mir ja auch jemand helfen...
Ich befasse mich derzeit mit Mechanismen zum Öffnen und Schließen von Aufträgen und bin auf ein Problem beim Schließen offener Positionen gestoßen.
Der Code ist einfach. Die Idee des Algorithmus ist es, den MA (gleitenden Durchschnitt) mit einer Periode von 100 auf dem Chart zu zeichnen. Wenn die vorherige Kerze [1] oberhalb des MA eröffnet und unterhalb des MA geschlossen hat , eröffnet die nächste Kerze [0] einen VERKAUFsauftrag.
//(Die Kaufbedingungen sind umgekehrt. Ich erkläre sie nicht)
Für die Schließung des Auftrags müssen folgende Bedingungen erfüllt sein: Der aktuelle Kurs ist vom Eröffnungskurs des Auftrags über den festgelegten Wert von Punkten, zum Beispiel 40, gestiegen.
Beispiel: Ein Lot wird bei Bid= 1,20045 eröffnet, es sollte bei Ask= 1,20005 schließen.
Der Code für das Öffnen und Schließen ist in 2 entsprechende Funktionen gepackt, die ihrerseits mit der Funktion OnTick() aufgerufen werden. Eigentlich sollte bei jedem Tick die Schließungsbedingung geprüft werden, aber tatsächlich kann der Preis unter das angegebene Niveau (Schließungsniveau) fallen, aber der Auftrag wird nicht geschlossen. Screenshots und Code sind beigefügt.
Hallo! Vielleicht kann mir ja auch jemand helfen...
Ich befasse mich derzeit mit Mechanismen zum Öffnen und Schließen von Aufträgen und bin auf ein Problem beim Schließen offener Positionen gestoßen.
Der Code ist einfach. Die Idee des Algorithmus ist es, den MA (gleitenden Durchschnitt) mit einer Periode von 100 auf dem Chart zu zeichnen. Wenn die vorherige Kerze [1] oberhalb des MA eröffnet und unterhalb des MA geschlossen hat , eröffnet die nächste Kerze [0] einen VERKAUFsauftrag.
//(Die Kaufbedingungen sind umgekehrt. Ich erkläre sie nicht)
Für die Schließung des Auftrags müssen folgende Bedingungen erfüllt sein: Der aktuelle Kurs ist vom Eröffnungskurs des Auftrags über den festgelegten Wert von Punkten, zum Beispiel 40, gestiegen.
Beispiel: Ein Lot wird bei Bid= 1,20045 eröffnet, es sollte bei Ask= 1,20005 schließen.
Der Code für das Öffnen und Schließen ist in 2 entsprechende Funktionen gepackt, die ihrerseits mit der Funktion OnTick() aufgerufen werden. Eigentlich sollte bei jedem Tick die Schließungsbedingung geprüft werden, aber tatsächlich kann der Preis unter das angegebene Niveau (Schließungsniveau) fallen, aber der Auftrag wird nicht geschlossen. Ich füge die Bildschirmfotos und den Code bei.
Oooh, vielen Dank, mit so vielen Informationen kann man so viel erreichen...
Ich stehe kurz vor einer Geschäftsreise und möchte das mir zur Verfügung gestellte Material vertiefen, aber die Codierung... Ich könnte es auch auf einem Blatt Papier machen, das wäre ein gutes Trainingstool...
Mit freundlichen Grüßen, Roman
Dies ist nur ein winziger Bruchteil dessen, was Sie wissen müssen, ein Sandkorn im Meer des Programmcodes. Aber es reicht nicht aus, zu wissen, was man wann und wo einsetzt!
Wenn wir vom Namen des Themas"Robotererstellung" ausgehen, dann müssen Sie eine kostendeckende (profitable oder wie auch immer Sie es nennen wollen) Handelsstrategie haben, und erst dann die MQL5-Programmiersprache studieren.
Übrigens verfügt der MetaEditor des MT5-Terminals über den MQL5-Assistenten, mit dessen Hilfe Sie den Code des vorgefertigten Expert Advisors mit den Modulen der Handelssignale, die ihrerseits auf der Grundlage beliebter Indikatoren erstellt wurden, leicht und ohne Kenntnisse der Programmiersprache erhalten können. Mit Hilfe des MQL5-Assistenten können Sie schnell einen Expert Advisor erstellen und Ihre Strategie testen, wenn diese nur auf Indikatoren basiert. Hier ist der Link zu dem Artikel über den Aufbau eines Handelsroboters mit MQL5 Wizard: https://www.mql5.com/ru/articles/171.
Mit freundlichen Grüßen, Vladimir.
57 und ein bisschen. Und die Antwort auf Ihre Frage nach dem Weg ist bereits bekannt, ich zitiere:
"Roman Zhilin:Nein, es gibt keinen Prozess in der Freiberuflichkeit, den Sie nach Bedarf selbst entwickeln können. Und der einzige, der für meine Fehler verantwortlich gemacht werden kann, bin ich selbst, nicht ein fremder Programmierer. Sie müssen also lernen, lernen, kodieren, stolpern, Ihre Strategien verbessern und wieder lernen".
Mit freundlichen Grüßen, Vladimir.
Eine gute Auswahl, vielen Dank.
Erinnert mich an das Testament von Lenin :) Aber es ist richtig, es ist nie zu spät, etwas zu lernen.
Um zu verstehen, welche Art von Expert Advisor Sie benötigen, sollten Sie zunächst damit beginnen, daran zu arbeiten.
Zwei weitere Schaltflächen zum Schließen einer Position hinzugefügt
... Ich verstehe immer noch nicht den Sinn der ständigen Phrase, die mit dem Wort"Rückkehr" beginnt.
Wer kehrt zurück, zu wem kehrt er zurück, wohin kehrt er zurück, warum kehrt er zurück? Ich kann es immer noch nicht herausfinden...
Vielleicht kann ich das erklären.
Angenommen, Sie haben ein Symbol (z.B. EUR/USD), das auf dem Bildschirm schwankt, und ein Programm/Advisor/Roboter läuft im Terminal. Der Roboter führt den Code aus, den Sie in ihn eingegeben haben. Und dieser Code enthält diese Zeichenfolgen:
... if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break; double OpenPrice = OrderOpenPrice(); ..."orderSelect" ist eine Handelsfunktion, sie wählt einen bereits geöffneten Auftrag für die weitere Arbeit mit ihm aus.//In diesem Beispiel wird bei einer fehlgeschlagenen Auftragsauswahl (...==false) die weitere Ausführung der Funktion " if " durch den Befehl "break" unterbrochen.
Nächste. Wir haben den Auftrag mit der Handelsfunktion OrderSelect ausgewählt. Jetzt arbeiten wir damit, mit einer bestimmten Reihenfolge. Der Einfachheit halber gehen wir davon aus, dass wir nur zwei offene Aufträge haben.
Als Nächstes geben wir eine Variable OpenPrice [double type] ein und weisen ihr den Wert des Preises zu, zu dem die von uns ausgewählte Order eröffnet wurde (Codeabschnitt OpenPrice=OrderOpenPrice(); )
HIER ist eine Erklärung für Sie, was die RETURN eines Parameters bedeutet. Die Funktion OrderOpenPrice gibt den Wert des aktuellen Instrumentenpreises zurück . Das heißt, nachdem das Programm den aktuellen Preis vom Server angefordert hat, gibt es den Wert dieses Preises an Sie zurück und weist diesen Wert einer Variablen zu.
MACD-Indikator hinzugefügt
MACD-Indikator hinzugefügt
Die Grundlagen sind vorhanden - jetzt liegt es an Ihnen
Vielleicht kann ich das erklären.
Nehmen wir an, Sie haben derzeit ein Symbol (z.B. EUR/USD), das auf Ihrem Bildschirm schwankt, und ein Programm/Advisor/Roboter läuft im Terminal. Der Roboter führt den Code aus, den Sie in ihn eingegeben haben. Und dieser Code enthält diese Zeichenfolgen:
"orderSelect" ist eine Handelsfunktion, sie wählt einen bereits geöffneten Auftrag für die weitere Arbeit mit ihm aus.//In diesem Beispiel wird bei einer fehlgeschlagenen Auftragsauswahl (...==false) die weitere Ausführung der Funktion " if " durch den Befehl "break" unterbrochen.
Nächste. Wir haben den Auftrag mit der Handelsfunktion OrderSelect ausgewählt. Jetzt arbeiten wir damit, mit einer bestimmten Reihenfolge. Der Einfachheit halber gehen wir davon aus, dass wir nur zwei offene Aufträge haben.
Als Nächstes geben wir eine Variable OpenPrice [double type] ein und weisen ihr den Wert des Preises zu, zu dem die von uns ausgewählte Order eröffnet wurde (Codeabschnitt OpenPrice=OrderOpenPrice(); )
HIER ist eine Erklärung für Sie, was die RETURN eines Parameters bedeutet. Die Funktion OrderOpenPrice gibt den Wert des aktuellen Instrumentenpreises zurück . Das heißt, nachdem das Programm den aktuellen Preis vom Server angefordert hat, hat es den Wert dieses Preises an Sie zurückgegeben und diesen Wert einer Variablen zugewiesen.
Ich danke Ihnen für Ihre Klarstellung. Ich hoffe, dass es Roman auch bei der Beherrschung der Programmiersprache helfen wird.
Mit freundlichen Grüßen, Vladimir.
Hallo! Vielleicht kann mir ja auch jemand helfen...
Ich befasse mich derzeit mit Mechanismen zum Öffnen und Schließen von Aufträgen und bin auf ein Problem beim Schließen offener Positionen gestoßen.
Der Code ist einfach. Die Idee des Algorithmus ist es, den MA (gleitenden Durchschnitt) mit einer Periode von 100 auf dem Chart zu zeichnen. Wenn die vorherige Kerze [1] oberhalb des MA eröffnet und unterhalb des MA geschlossen hat , eröffnet die nächste Kerze [0] einen VERKAUFsauftrag.
//(Die Kaufbedingungen sind umgekehrt. Ich erkläre sie nicht)
Für die Schließung des Auftrags müssen folgende Bedingungen erfüllt sein: Der aktuelle Kurs ist vom Eröffnungskurs des Auftrags über den festgelegten Wert von Punkten, zum Beispiel 40, gestiegen.
Beispiel: Ein Lot wird bei Bid= 1,20045 eröffnet, es sollte bei Ask= 1,20005 schließen.
Der Code für das Öffnen und Schließen ist in 2 entsprechende Funktionen gepackt, die ihrerseits mit der Funktion OnTick() aufgerufen werden. Eigentlich sollte bei jedem Tick die Schließungsbedingung geprüft werden, aber tatsächlich kann der Preis unter das angegebene Niveau (Schließungsniveau) fallen, aber der Auftrag wird nicht geschlossen. Screenshots und Code sind beigefügt.
Hallo! Vielleicht kann mir ja auch jemand helfen...
Ich befasse mich derzeit mit Mechanismen zum Öffnen und Schließen von Aufträgen und bin auf ein Problem beim Schließen offener Positionen gestoßen.
Der Code ist einfach. Die Idee des Algorithmus ist es, den MA (gleitenden Durchschnitt) mit einer Periode von 100 auf dem Chart zu zeichnen. Wenn die vorherige Kerze [1] oberhalb des MA eröffnet und unterhalb des MA geschlossen hat , eröffnet die nächste Kerze [0] einen VERKAUFsauftrag.
//(Die Kaufbedingungen sind umgekehrt. Ich erkläre sie nicht)
Für die Schließung des Auftrags müssen folgende Bedingungen erfüllt sein: Der aktuelle Kurs ist vom Eröffnungskurs des Auftrags über den festgelegten Wert von Punkten, zum Beispiel 40, gestiegen.
Beispiel: Ein Lot wird bei Bid= 1,20045 eröffnet, es sollte bei Ask= 1,20005 schließen.
Der Code für das Öffnen und Schließen ist in 2 entsprechende Funktionen gepackt, die ihrerseits mit der Funktion OnTick() aufgerufen werden. Eigentlich sollte bei jedem Tick die Schließungsbedingung geprüft werden, aber tatsächlich kann der Preis unter das angegebene Niveau (Schließungsniveau) fallen, aber der Auftrag wird nicht geschlossen. Ich füge die Bildschirmfotos und den Code bei.
Es gibt einen Forumsbeitrag unter https://www.mql5.com/ru/forum/160683/page767#comment_10725713.
Dort bekommen Sie vielleicht schneller Hilfe.
Mit freundlichen Grüßen, Vladimir.