Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Ein EA mit zwei Signalen mit jeweils eigenen Magic Numbers? (http://www.expert-advisor.com/forum/showthread.php?t=6197)

dundale 06.09.18 13:22

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);
}

(Die Lotsize kommt aus den externen Eingabevariablen und soll 0.05 betragen.)
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

traderdoc 06.09.18 18:56

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

MA-EA 06.09.18 18:57

:confused:

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.

Raul0 07.09.18 03:29

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?

traderdoc 07.09.18 08:29

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);
}

nach abgefragter Signal-Definition entweder eine BuyOrder platzieren nach dem Signal1 oder Signal2. In der Funktion PlaceOrder() will er dann die für die Ordersetzung notwendigen Parameter anhand unterschiedlich zu setzender MagicNumbers berechnen lassen. Da war doch eigentlich von der Notwendigkeit. einer Abfrage der MagicNumber gar keine Rede.

Oder er meint was anderes, als er geschrieben hatte.

traderdoc

dundale 07.09.18 12:17

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.

Raul0 07.09.18 12:31

Das ist aufwendiger, Du kannst den Code kopieren und für jede Magic einen Durchgang machen.

Leopold 07.09.18 12:32

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---

MA-EA 07.09.18 14:22

Zitat:

Zitat von dundale (Beitrag 41566)
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.

Was für Signale?

Wie soll das Ganze genau funktionieren?

Wär vielleicht einfacher, zwei MT4 Installationen mit je einem der 2 EA zu benutzen. :confused:

dundale 07.09.18 18:01

Vielleicht ist es doch einfacher, zwei getrennte Magic Number auf zwei Charts zu verwenden.

Ich danke euch für eure Beiträge. :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:27 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum