|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Ein EA mit zwei Signalen mit jeweils eigenen Magic Numbers?
Hallo,
ich möchte in einem EA (Bsp. EURUSD) zwei Signale verwenden. Beide Signale sollen aber eine eigene Magic Number erhalten. Die Berechnungen wie zum Beispiel: Anzahl der offenen Sell-Order, Erhöhung der LS und des Breakeven für die Buys usw. sollen jeweils durch die beiden Magic Number getrennt erfolgen. Gedacht hatte ich folgende Struktur: Code:
void Check_Signal_1() { //if-Statement mit der Signal-Definition PlaceOrder(OP_BUY, "Signal 1", 111111); } void Check_Signal_2() { //if-Statement mit der Signal-Definition PlaceOrder(OP_BUY, "Signal 2", 111111); } void PlaceOrder(int type, string MyComment, int MyMagicNumber) { double price = Bid, sl = Bid+(SL*pips), tp = Bid-(TP*pips), lotsize = 0; if(type == OP_BUY) { price = Ask; sl = Ask-(SL*pips); tp = Ask+(TP*pips); } //Orderplatzierung int ticket=OrderSend(Symbol(),type,lotsize,price,30,sl,tp,MyComment, MyMagicNumber,0,clrGreen); } In den Funktionen wie Anzahl der offenen Sell-Order, Erhöhung der LS und des Breakeven für die Buys werde durch die Variable MyMagicNumber in einem if-Statement die Trades selektiert. Hier mein Problem, irgendwie klappt die Übergabe der MagicNumber nicht. Die MagicNumber wird nicht in den anderen Funktionen übertragen. Hat jemand einen Tipp, wie ich das so lösen kann, dass beide Signale in einen EA getrennt laufen. Oder vielleicht einen ganz anderen Lösungsvorschlag? Wäre euch sehr dankbar. Freue mich auch eure Beträge Tom |
|
|||
Verstehe ich nicht ganz.
Erst einmal wird z.Z. in beiden Funktionen diesselbe MagicNumber übergeben? Und wenn in der Funktion PlaceOrder() die Berechnungen aufgrund der MagicNumber unterschiedlich sein sollen, dann wird halt einfach über if (MyMagicNumber == 111111) bzw. if (MyMagicNumber == 222222) der eine oder der andere Weg beschritten. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Soviel ich weiß, ist die MN nur dazu da, um die Order zu identifizieren. Nicht für Ein- oder Ausstiegssignale. Oder sollen mehrere Orders gleichzeitig offen sein, die jeweils ne eigene MN haben sollen? Dann müsste man checken, ob schon Eine MN vergeben ist, und wenn ja, der nächsten Order ne andere MN mit geben. |
|
|||
Du kannst die MagicNummer von einer Order nur nach aufgerufener Order abfragen und selektiv verwenden.
Orderschleife mit OrderSelect und anschließend if( OrderMagicNumber() == 111111 ) { dann gehe folgt vor .. } oder if( OrderMagicNumber() == 222222 ) { dann gehe so folgt vor .. } Klaro? |
|
|||
Das verstehe ich anders.
Er will doch gemäß: Code:
void Check_Signal_1() { //if-Statement mit der Signal-Definition PlaceOrder(OP_BUY, "Signal 1", 111111); } void Check_Signal_2() { //if-Statement mit der Signal-Definition PlaceOrder(OP_BUY, "Signal 2", 111111); } Oder er meint was anderes, als er geschrieben hatte. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Vielen Dank für eure Beiträge. Sorry, dass ich mein Problem nicht klarer beschrieben habe.
Ich habe zwei getrennte Signale, deren getrennt angelöste Order jeweils eine eigene Magic Number haben sollen. Wenn die Signale nun weitere Order auslösen, kann man einen Breakeven-Punkte berechnen und die Anzahl der offenen Orders usw. Wie berechne ich mit multiplen Magic Numbers in solchen Funktionen diese Werte. Also ich kann die Werte mit und ohne Magic Number schon berechnen, nur nicht mit mehren Magic Number. Irgendwie glaubte ich, der EA könnte etwas parallel berechnen und ich glaubte man bräuchte nur eine einzige zusätzliche Zeile nach dem OrderSelect. Aber es scheint aufwendiger zu sein. |
|
|||
Das ist aufwendiger, Du kannst den Code kopieren und für jede Magic einen Durchgang machen.
|
|
|||
so wie ich das verstehe müsstest du bei der Abfrage nach OrderSelect() einfach fragen ob OrderMagicNumber() == MN1 oder OrderMagicNumber() == MN2.
Wenn du das mit Allen Orders hin bekommen hast, dann sollte das mit 2 MagicNumbers auch kein Problem sein. ---Leopold--- |
|
|||
Zitat:
Wie soll das Ganze genau funktionieren? Wär vielleicht einfacher, zwei MT4 Installationen mit je einem der 2 EA zu benutzen. |
Lesezeichen |
Stichworte |
ea, magic number, signal |
|
|