Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4972
Beiträge: 43266
Benutzer: 7.216
Aktive Benutzer: 84
Links: 84
Wir begrüßen unseren neuesten Benutzer: bb1107
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- bb1107
vor einer Woche
- rg-trader
vor 2 Wochen
- toshistyle
vor 2 Wochen
- Robin
vor 3 Wochen
- mMmaanu

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 103
Gesamt: 103
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 06.09.18
Neues Mitglied
 
Registriert seit: Oct 2016
Beiträge: 25
dundale befindet sich auf einem aufstrebenden Ast
Standard 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
  #2 (permalink)  
Alt 06.09.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
  #3 (permalink)  
Alt 06.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard



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.
  #4 (permalink)  
Alt 07.09.18
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

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

Easy Trading Assistant
  #5 (permalink)  
Alt 07.09.18
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #6 (permalink)  
Alt 07.09.18
Neues Mitglied
 
Registriert seit: Oct 2016
Beiträge: 25
dundale befindet sich auf einem aufstrebenden Ast
Standard

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.
  #7 (permalink)  
Alt 07.09.18
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

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

Easy Trading Assistant
  #8 (permalink)  
Alt 07.09.18
Premium Mitglied
 
Registriert seit: Jun 2016
Ort: Österreich
Beiträge: 362
Leopold befindet sich auf einem aufstrebenden Ast
Standard

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---
  #9 (permalink)  
Alt 07.09.18
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von dundale Beitrag anzeigen
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.
  #10 (permalink)  
Alt 07.09.18
Neues Mitglied
 
Registriert seit: Oct 2016
Beiträge: 25
dundale befindet sich auf einem aufstrebenden Ast
Standard

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

Ich danke euch für eure Beiträge.
Thema geschlossen

Lesezeichen

Stichworte
ea, magic number, signal

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------