Wie programmiert man? - Seite 108

 

Ausführen eines MetaTrader-Skripts über die Befehlszeile

Ich möchte ein Skript oder Programm von der Kommandozeile aus starten können, das einen Kaufauftrag ausführt. Es gibt keine Regeln. Wenn ich das Skript über die Befehlszeile eingebe, soll es 1 EURUSD-Long-Position kaufen.

Wie kann das gemacht werden?

Vielen Dank!

paco

 

Einfacher pfeilbasierter Indikator und EA

Hallo zusammen.

Vor kurzem habe ich versucht, einen einfachen EA zu erstellen, der mit einem pfeilbasierten Indikator arbeitet. Ich versuche, den EA so zu gestalten, dass er zu jeder Zeit einen Auftrag aufrechterhält. Wenn der Pfeil nach unten zeigt, wird der vorherige Kaufauftrag geschlossen und ein Verkaufsauftrag eröffnet. Zeigt der Pfeil nach oben, wird der vorherige Verkaufsauftrag geschlossen und der Kaufauftrag eröffnet. Ich verwende den Tester (Visualisierungsmodus), um meinen Code zu überprüfen. Es scheint, dass, egal wie ich es versuche, der EA die Positionen nicht schließt und öffnet, wenn der Pfeilindikator nach oben oder unten zeigt. Der Backtest bestätigt, dass der EA nicht richtig funktioniert. Anstatt die Aufträge an den vom Indikator angezeigten Pfeilpunkten zu öffnen und zu schließen, schließt/öffnet der EA die Aufträge zu einem anderen Zeitpunkt. Ich kann nicht verstehen, warum mein Code nicht funktioniert.

Am Anfang der Startanweisung habe ich den folgenden Code:

if (Time[0] == savedTime) {

return (0);

} else {

savedTime = Time [0];

}

Damit wird (so hoffe ich) sichergestellt, dass der Code in der Startanweisung nur ausgeführt wird, wenn sich ein neuer Balken gebildet hat. Später im Hauptteil der Start-Subroutine frage ich den Indikator mit der Funktion iCustom ab. Die Abfrage sieht wie folgt aus:

iCustom (... 1)

Das letzte Argument von eins gibt den vorher gebildeten Balken an, weshalb es nicht 0 ist. Doch später schließe ich die geöffnete Order mit OrderClose und eröffne eine neue mit OrderSend. Ich nehme an, dass beide Funktionen sofort ausgeführt werden können müssen.

Die Quintessenz ist: Ich versuche, einen EA zu erstellen, der auf einem Pfeilindikator basiert. Der Indikator zeigt entweder nach oben oder nach unten. So wie ich es sehe (und ich liege wahrscheinlich falsch), ist das Einzige, was ich tun muss, die vorherige Order zu schließen und eine neue zu eröffnen, wenn sich der nächste Balken gebildet hat. Ich wäre für jeden Beitrag zu diesem Problem sehr dankbar.

Vielen Dank an alle.

 

Kann mir jemand sagen, wie ich das Verfallsdatum in den Indikator einfügen kann?

Danke.

 

Sehen Sie sich diesen Thread an: https://www.mql5.com/en/forum/174194

 
newdigital:
Sehen Sie sich diesen Thread an: https://www.mql5.com/en/forum/174194

Vielen Dank für diesen Link. Endlich habe ich die Seite gefunden, nach der ich suche hier

 

Wie bekomme ich 2 Indikatoren auf ein separates Fenster?

Kann mir jemand erklären, wie man 2 Indikatoren auf ein separates Fenster bekommt, so dass sie sich gegenseitig überlappen?

Vielen Dank für Ihre Hilfe im Voraus!

Dave

 

EA nur zum Öffnen von Aufträgen benötigt

Hallo zusammen,

Ich habe mich gefragt, ob mir jemand helfen könnte, einen EA zu erstellen, der nur 4 verschiedene Aufträge um 00:00 Uhr GMT für ein beliebiges Paar öffnet.

1 Lot kaufen

1 Lot kaufen

1 Lot Verkauf

1 Lot verkaufen

die alle um 00:00GMT geöffnet werden sollen

Danke für die Unterstützung

Ryan56

 
bdht:
Hallo, alle.

Kürzlich habe ich versucht, einen einfachen EA zu erstellen, der mit einem pfeilbasierten Indikator arbeiten würde. Ich versuche, den EA so zu gestalten, dass er zu jedem Zeitpunkt einen Auftrag aufrechterhält. Wenn der Pfeil nach unten zeigt, wird der vorherige Kaufauftrag geschlossen und ein Verkaufsauftrag eröffnet. Zeigt der Pfeil nach oben, wird der vorherige Verkaufsauftrag geschlossen und der Kaufauftrag eröffnet. Ich verwende den Tester (Visualisierungsmodus), um meinen Code zu überprüfen. Es scheint, dass, egal wie ich es versuche, der EA die Positionen nicht schließt und öffnet, wenn der Pfeilindikator nach oben oder unten zeigt. Der Backtest bestätigt, dass der EA nicht richtig funktioniert. Anstatt die Aufträge an den vom Indikator angezeigten Pfeilpunkten zu öffnen und zu schließen, schließt/öffnet der EA die Aufträge zu einem anderen Zeitpunkt. Ich kann nicht verstehen, warum mein Code nicht funktioniert.

Am Anfang der Startanweisung habe ich den folgenden Code:

if (Time[0] == savedTime) {

return (0);

} else {

savedTime = Time [0];

}

Damit wird (so hoffe ich) sichergestellt, dass der Code in der Startanweisung nur ausgeführt wird, wenn sich ein neuer Balken gebildet hat. Später im Hauptteil der Start-Subroutine frage ich den Indikator mit der Funktion iCustom ab. Die Abfrage sieht wie folgt aus:

iCustom (... 1)

Das letzte Argument von eins gibt den vorher gebildeten Balken an, weshalb es nicht 0 ist. Doch später schließe ich die geöffnete Order mit OrderClose und eröffne eine neue mit OrderSend. Ich nehme an, dass beide Funktionen sofort ausgeführt werden können müssen.

Die Quintessenz ist: Ich versuche, einen EA zu erstellen, der auf einem Pfeilindikator basiert. Der Indikator zeigt entweder nach oben oder nach unten. So wie ich es sehe (und ich liege wahrscheinlich falsch), ist das Einzige, was ich tun muss, die vorherige Order zu schließen und eine neue zu eröffnen, wenn sich der nächste Balken gebildet hat. Ich wäre für jeden Beitrag zu diesem Problem sehr dankbar.

Vielen Dank an alle.

Wenn Sie Ihr Signal nur einmal pro Bar betrachten und Ihr "System" schließen und umkehren, wenn sich das Signal ändert, ist es wichtig, den Ausstieg VOR dem Einstieg zu prüfen. Wenn das nicht der Fall ist, kann der EA bei einem neuen Einstiegssignal nicht in den Handel einsteigen, weil das vorherige Signal noch offen ist. Und wenn der EA die Position schließt, wird er erst beim nächsten Balken einsteigen, weil er in diesem Teil des Codes nur einmal pro Balken kommt.

Hoffe, das macht Sinn (mit meinem Englisch!).

FerruFx

 
Dave137:
Kann mir jemand erklären, wie man 2 Indikatoren in ein separates Fenster bekommt, so dass sie sich überlappen?

Vielen Dank für Ihre Hilfe im Voraus!

Dave

Sehen Sie sich diese Seite an: https://www.mql5.com/en/forum/172923

 

Nun, dies wird Ihr neues Bar-Problem beheben (ich habe es aus einem Artikel auf mql4.com):

bool funcIsNewBar()

{

bool res=false;

// the array contains open time of the current (zero) bar

// for 7 (seven) timeframes

static datetime _sTime[7];

int i=6;

int timeFrame = Period();

switch (timeFrame)

{

case 1 : i=0; break;

case 5 : i=2; break;

case 15 : i=3; break;

case 30 : i=4; break;

case 60 : i=5; break;

case 240: i=6; break;

case 1440:break;

default: timeFrame = 1440;

}

//----

if (_sTime==0 || _sTime!=iTime(Symbol(),timeFrame,0))

{

_sTime = iTime(Symbol(),timeFrame,0);

res=true;

}

//----

return(res);

}[/CODE]

Call this function like this

int start()

{

if (funcIsNewBar)

{

//run some code

}

return (0);

}

That'll get code to run ONLY when there is a new bar.

What you need to do is find out in the data window of MT4 what the values are when there is NO arrow being put on the chart by your indicator. For example, the indicator may may have 0's or may be blank.

So all you do then is call the value of the indicator at each open [CODE]varMyIndieValue=iCustom();

if (varMyIndieValue>0) //there's an arrow

{

//run some code

}
bdht:
Hallo, alle zusammen.

Vor kurzem habe ich versucht, einen einfachen EA zu erstellen, der mit einem pfeilbasierten Indikator funktioniert. Ich versuche, den EA so zu gestalten, dass er zu jeder Zeit einen Auftrag aufrechterhält. Wenn der Pfeil nach unten zeigt, wird der vorherige Kaufauftrag geschlossen und ein Verkaufsauftrag eröffnet. Zeigt der Pfeil nach oben, wird der vorherige Verkaufsauftrag geschlossen und der Kaufauftrag eröffnet. Ich verwende den Tester (Visualisierungsmodus), um meinen Code zu überprüfen. Es scheint, dass, egal wie ich es versuche, der EA die Positionen nicht schließt und öffnet, wenn der Pfeilindikator nach oben oder unten zeigt. Der Backtest bestätigt, dass der EA nicht richtig funktioniert. Anstatt die Aufträge an den vom Indikator angezeigten Pfeilpunkten zu öffnen und zu schließen, schließt/öffnet der EA die Aufträge zu einem anderen Zeitpunkt. Ich kann nicht verstehen, warum mein Code nicht funktioniert.

Am Anfang der Startanweisung habe ich den folgenden Code:

if (Time[0] == savedTime) {

return (0);

} else {

savedTime = Time [0];

}

Damit wird (so hoffe ich) sichergestellt, dass der Code in der Startanweisung nur ausgeführt wird, wenn sich ein neuer Balken gebildet hat. Später im Hauptteil der Start-Subroutine frage ich den Indikator mit der Funktion iCustom ab. Die Abfrage sieht wie folgt aus:

iCustom (... 1)

Das letzte Argument von eins gibt den vorher gebildeten Balken an, weshalb es nicht 0 ist. Doch später schließe ich die geöffnete Order mit OrderClose und eröffne eine neue mit OrderSend. Ich nehme an, dass beide Funktionen sofort ausgeführt werden können müssen.

Die Quintessenz ist: Ich versuche, einen EA zu erstellen, der auf einem Pfeilindikator basiert. Der Indikator zeigt entweder nach oben oder nach unten. So wie ich es sehe (und ich liege wahrscheinlich falsch), ist das Einzige, was ich tun muss, die vorherige Order zu schließen und eine neue zu eröffnen, wenn sich der nächste Balken gebildet hat. Ich wäre sehr dankbar für jeden Beitrag zu diesem Problem.

Vielen Dank an alle.
Grund der Beschwerde: