|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Also das Problem der Brokererkennung wird wie folgt gecodet:
int Multiplier = 1; if(Digits == 3 || Digits == 5) Multiplier = 10; if(Digits == 6) Multiplier = 100; TakeProfit *= Multiplier; StopLoss *= Multiplier; Slippage *= Multiplier; TPValue = NormalizeDouble(TakeProfit * Point, Digits); SLValue = NormalizeDouble(StopLoss * Point, Digits); usw. D.h. zuerst wird die Systemkonstante Digits abgefragt. Sollte es ein 4-Digit-Broker sein ändert sich nichts. Beim 5-Digit muß der Multiplier auf 10 gesetzt werden (angenommen, es existiert ein 6-Digit-Broker, dann muß mit 100 multipliziert werden). Im nächsten Schritt werden die Pipwerte der Variablenangaben im EA-Kopf mit dem Multiplier multipliziert, um dann letztendlich mit der Systemkonstante Point multipliziert und auf die Anzahl der Nachkommastellen, vorgegeben durch Digits, gekürzt zu werden. Die beiden Variablen TPValue und SLValue können nun im Programm an einer x-beliebigen Stelle benutzt werden, um von den aktuellen Bid- oder Ask-Werten addiert oder subtrahiert zu werden, um z.B. in der OrderSend() benutzbar zu sein. traderdoc |
|
|||
Das funktioniert, danke Racki.
kann ich auch einer extern int mehrere Werte zu Weisen? und wenn ja, wie sieht das aus?. z.B. PHP-Code:
Ich habe probiert: PHP-Code:
|
|
|||
extern int CloseTime1 = 5;
extern int CloseTime2 = 30; |
|
|||
geht das auch in einer extern int?
z.B. extern int CloseTime = 5, 30; ? |
|
|||
Nein, wenn dann nur als Array, aber nicht als extern.
Das geht nur so: extern CloseT1 = 5; extern CloseT2 = 30; int CloseTime[x] //x Anzahl der Elemente, also in dem Falle 2 CloseTime[0] = CloseT1; CloseTime[1] = CloseT2; |
|
|||
hat geklappt! Traderdoc
gibt es einen Befehl mit dem man den EA nach einer bestimmten Aktion, einfach neu Starten kann?
Sowas wie restart.... und der EA fängt von vorne an? Danke euch... |
|
|||
Nein, über den Code kannst Du das nicht erreichen.
Wobei die Frage zu klären wäre, was verstehst Du unter "von vorne"? Und v.a. Warum sollte er wieder von vorne beginnen? Was ist Dein Ziel dahinter? |
|
|||
Der EA startet, kauft einen trade und schliesst ihn dann irgendwann! z.b. um 15:43 Uhr.
Nach dem schliessen sind keine trades mehr im Mark! Also soll der EA im Falle keiner offenen Positionen von vorne beginnen, da er in der Startphase ja einen trade eröffnet. |
|
|||
Na das ist doch was ganz anderes.
Natürlich wird der EA wieder einen Trade öffnen, sobald die von Dir gestellten Bedingungen erfüllt sind. Von vorne würde nach meiner Betrachtung nämlich bedeuten, dass der EA incl. Der init()-Funktion aus dem Programm heraus gestartet wird und das geht nicht. In Deinem Falle läge der Sachverhalt aber ganz anders und das zu Deinem Gunsten. traderdoc |
Lesezeichen |
Stichworte |
ea, erster ea, erster expert advisor, expert advisor, metatrader, mql4, mql4 lernen, programmieren, programmierung metatrader |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|