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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3822
Beiträge: 36901
Benutzer: 6.068
Aktive Benutzer: 492
Links: 80
Wir begrüßen unseren neuesten Benutzer: supadog
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 14 Stunden
- supadog
vor einem Tag
- POCJonah7
vor einem Tag
- flowi88
vor einem Tag
- dealtycoon
vor einem Tag
- VicenteWuc

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

Empfehlungen

Werbung

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 02.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fxdaytrader Beitrag anzeigen
Es sollte klar sein daß die im EA eingegebene magicnumber mit derjenigen magicnumber der geöffneten order übereinstimmen muß.
Wenn Du also manuell eine order aufgibst, dann muß im EA auch eine 0 eingetragen werden. Sonst läuft es nicht.

Womit wir bei einer Sache wären die mich zur Weissglut bringen kann: Jemand fragt nach etwas, jemand anderes stellt das (diese Modifikation) kostenlos in den Raum, und zur Belohnung kommt ein "das funzt aber nicht". Wobei die Schuld nicht beim Programmierer liegt, sondern bei dem Idioten vor dem Bildschirm.

Wenn Ihr Programme nutzt (mt4 ist ein Programm) dann lest die schei** Gebrauchsanweisung solange bis Ihr sie versteht und wißt was Ihr da treibt.
Ich persönlich kann Deppen nicht ausstehen (ausser im Vollsuff, dann bin mit Glück ich auf demselben Level wie die nüchtern) und versuche mich von Ihnen fernzuhalten.
fxdaytrader:
also ich seh das so: zwei leute sitzen im tonstudio, der eine versteht was vom mischen, der andere nicht. der, der nichts versteht, hat eine Hypothese über den bass, der - wie er glaubt - anders klingen könnte. der, der was versteht davon, probiert mal, ohne sofort den gewünschten erfolg. eigentlich keine große Sache. man pegelt halt so lang herum, bis es eben für beide passt. und vor allem: man einigt sich ab einem gewissen zeitpunkt, ob die Sache eine kohle kostet oder nicht. rechtzeitig. wäre ja auch keine große Sache.

zusammenfassend: es geht ums einpegeln, sonst um nix.

außer: es sind schwierige personen dabei. dann wird es nämlich immer fad. denn es könnte nun einer der beiden etwas persönlich nehmen und in den falschen hals kriegen und dann überfallsartig mit Wörtern wie depp und idtiot herumschreien. das wiederum könnte man eigentlich nur dann akzeptieren, wenn sich der betreffende im vollsuff befindet.

also fxdaytrader: wenn du diese zeilen im vollsuff geschrieben hast, naja: suboptimal aber ok.

wenn du sie allerdings nüchtern geschrieben hast, würde ich es bevorzugen, wenn du dich von mir fernhältst.

lg Joe
  #12 (permalink)  
Alt 02.07.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Nun ja, ...

Nicht getestet, aber teste das mal:

Code:
//+------------------------------------------------------------------+
//|                                     //| TPSL-Insert EA mod.mq4 | |
//|                                                    Copyright © ? |
//|           mod. fxdaytrader, http://ForexFactory.com/fxdaytrader_ |
//|                                            http://ForexBaron.net |
//+------------------------------------------------------------------+
//////////////////////////////////////////////////////////////////////
// !!! YOU (probably) MUST COMPILE THIS EA WITH THE BUILD 509 COMPILER, download the metaeditor for build 509 at http://www.forexfactory.com/showthread.php?t=470340 !!!
//////////////////////////////////////////////////////////////////////
#property copyright "? // mod. fxdaytrader, http://ForexBaron.net "
#property link "http://ForexBaron.net"

//---- input parameters
extern double TakeProfitPips=100;
extern double StopLossPips=150;
double TPp, SLp;

//fxdaytrader:
extern bool ModifyTakeProfit = TRUE;
extern bool ModifyStopLoss   = TRUE;
extern int MagicNumber = 0;//0=manual trades
extern bool FilterByMagicNumber = TRUE;
extern bool FilterBySymbol      = TRUE;
double pips2dbl;//fxdaytrader

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init(){}

//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit(){}

//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start() {
 if(OrdersTotal()!=0) TradeManager(Symbol(),MagicNumber);
 return(0);
}// Start()

//////////////////////////////////////////
//fxdaytrader:
void BrokerDigitAdjust(string symbol) {
 int Multiplier = 1;
 int digits=MarketInfo(symbol,MODE_DIGITS);
 if (digits==3 || digits==5) Multiplier = 10;
 if (digits==6) Multiplier = 100;   
 if (digits==7) Multiplier = 1000;
 pips2dbl = Multiplier*MarketInfo(symbol,MODE_POINT);
}

void TradeManager(string symbol,int magicnumber) {
 bool result;
 for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
  if (!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) continue;
  if (FilterBySymbol && OrderSymbol()!=symbol) continue;
  if (FilterByMagicNumber && OrderMagicNumber()!=magicnumber) continue;
   {
    //---
    BrokerDigitAdjust(OrderSymbol());
//--------------Take Profit--------------------------------

 if (ModifyTakeProfit && OrderTakeProfit()==0 && TakeProfitPips !=0.00000) {
  if (OrderType()<=OP_SELL) {
   if(OrderType()==OP_BUY)  TPp = OrderOpenPrice()+TakeProfitPips*pips2dbl;
   if(OrderType()==OP_SELL) TPp = OrderOpenPrice()-TakeProfitPips*pips2dbl;
   result = OrderModify(OrderTicket(),OrderOpenPrice(),OrderStopLoss(),TPp,OrderExpiration(),CLR_NONE);
  }
 } 

//--------------Stop Loss--------------------------------

 if (ModifyStopLoss && OrderStopLoss()==0 && StopLossPips !=0.00000) {
  if (OrderType()<=OP_SELL) {
   if(OrderType()==OP_BUY)  SLp = OrderOpenPrice()-StopLossPips*pips2dbl;
   if(OrderType()==OP_SELL) SLp = OrderOpenPrice()+StopLossPips*pips2dbl;
      result = OrderModify(OrderTicket(),OrderOpenPrice(),SLp,OrderTakeProfit(),OrderExpiration(),CLR_NONE);
  }
 }
    //---
   }
  }//for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
}
Angehängte Dateien
Dateityp: ex4 TPSL-Insert EA mod.ex4 (4,8 KB, 1x aufgerufen)
__________________
krank im Kopf aber sonst ganz nett
build 509 mql4 editor download
  #13 (permalink)  
Alt 02.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ja, der Haken ist aber, dass er händisch die Orders setzt, aber zur Unterscheidung eine MagicNumber benutzen möchte. Das geht aber so nicht wie mit einer EA-gesetzten Order.
Läßt er die MagicNumber auf 0, dann wird zwar TP und SL gesetzt, aber eben keine Diferenzierung nach der MN vorgenommen.
Gibt er wiederum in die Variable MagigNumber einen Integerwert ein, dann wird die Funktion zum Setzen des TP und SL aber nicht durchlaufen.

Also kann er nur in die Kommentarzeile der händisch zu setzenden Order eine MN eingeben, die dann auch im Programm an entsprechender Stelle vorhanden sein muß, um die Funktion zum Setzen des TP und SL durchlaufen zu können.

Code würde bereits gepostet.

traderdoc
  #14 (permalink)  
Alt 02.07.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Also kann er nur in die Kommentarzeile der händisch zu setzenden Order eine MN eingeben, die dann auch im Programm an entsprechender Stelle vorhanden sein muß, um die Funktion zum Setzen des TP und SL durchlaufen zu können.

Code würde bereits gepostet.
jep
Eine andere Alternative: Einfach 2 verschiedene scripte nutzen (und diesen ggf. einen hotkey zuweisen), bspw. BuyScript und SellScript.
Dort könnte er dann magicnumber und lotsize eingeben und eine entsprechende order absetzen. der ea würde dann den Rest (SL/TP) übernehmen ...
__________________
krank im Kopf aber sonst ganz nett
build 509 mql4 editor download
  #15 (permalink)  
Alt 02.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

das was ich will, ist ja im grunde nur folgendes: in ein und denselben währungspaar möchte ich, dass nahezu gleichzeitig mit der one-click-funktion
zwei order abgesetzt werden, eine order mit tp=20pips/sl=15 und eine mit tp=4pips/sl=7pips.

der Vorteil von tpsl-insert ist ja, dass man mit dem one-click-button des mt4 eine order absetzen kann und der ea den rest erledigt. alle lösungen, die nicht mit dem one-click-trading funktionieren, bzw. nur mit einem weiteren zwischenschritt funktionieren, sind nicht mein ziel. ich muss dann eben zur Kenntnis nehmen: es geht eben dann so nicht.

danke traderdoc und fxdaytrader für eure Anregungen.
lg Joe
  #16 (permalink)  
Alt 02.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von josef123456 Beitrag anzeigen
das was ich will, ist ja im grunde nur folgendes: in ein und denselben währungspaar möchte ich, dass nahezu gleichzeitig mit der one-click-funktion
zwei order abgesetzt werden, eine order mit tp=20pips/sl=15 und eine mit tp=4pips/sl=7pips.

der Vorteil von tpsl-insert ist ja, dass man mit dem one-click-button des mt4 eine order absetzen kann und der ea den rest erledigt. alle lösungen, die nicht mit dem one-click-trading funktionieren, bzw. nur mit einem weiteren zwischenschritt funktionieren, sind nicht mein ziel. ich muss dann eben zur Kenntnis nehmen: es geht eben dann so nicht.

danke traderdoc und fxdaytrader für eure Anregungen.
lg Joe
Sollen die auf einem Chart nahezu gleichzeitig abgesetzt werden oder auf zwei Charts mit identischem TimeFrame oder unterschiedlichem TimeFrame?

traderdoc
  #17 (permalink)  
Alt 02.07.14
Benutzerbild von fxdaytrader
Premium Mitglied
 
Registriert seit: Dec 2013
Ort: hier und dort
Beiträge: 433
fxdaytrader befindet sich auf einem aufstrebenden Ast
Standard

Spontan fallen mir da variablen (ggf. auch globalvars) ein welche den aktuellen status halten und dann, sofern die beiden orders modifiziert worden sind, sich jeweils wieder zurücksetzen sodaß der ea "weiß" daß er bei der nächsten order wieder von vorn anfangen muß (bpsw. takeprofit1, takeprofit2)
__________________
krank im Kopf aber sonst ganz nett
build 509 mql4 editor download
  #18 (permalink)  
Alt 02.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Sollen die auf einem Chart nahezu gleichzeitig abgesetzt werden oder auf zwei Charts mit identischem TimeFrame oder unterschiedlichem TimeFrame?

traderdoc
mein Ausgangspunkt sind zwei Charts* desselben währungspaares, egal ob mit unterschiedlichem oder gleichem timeframe. wichtig sind nur die oben erwähnten unterschiedlichen TPSL.
lg Joe

* ich möchte zur Zeit nicht mit teilverkäufen arbeiten, deshalb 2 charts
  #19 (permalink)  
Alt 02.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.873
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von josef123456 Beitrag anzeigen
das was ich will, ist ja im grunde nur folgendes: in ein und denselben währungspaar möchte ich, dass nahezu gleichzeitig mit der one-click-funktion
zwei order abgesetzt werden, eine order mit tp=20pips/sl=15 und eine mit tp=4pips/sl=7pips.

der Vorteil von tpsl-insert ist ja, dass man mit dem one-click-button des mt4 eine order absetzen kann und der ea den rest erledigt. alle lösungen, die nicht mit dem one-click-trading funktionieren, bzw. nur mit einem weiteren zwischenschritt funktionieren, sind nicht mein ziel. ich muss dann eben zur Kenntnis nehmen: es geht eben dann so nicht.

danke traderdoc und fxdaytrader für eure Anregungen.
lg Joe
Die Lösung von mir funktioniert mit dem one-click-trading!
Und es reicht aus, wenn Du in die Kommentarzeile des Auftragsfensters für das eine Chart eine 1 und für das andere Chart eine 2 schreiben würdest.
Vorher einmalig die 1 bzw. 2 in die Variable Magincnummer eintragen (über F7 das Eigenschaftenfenster aufrufen) Fertig!

Und dann brauchst Du wie gesagt nur noch jeweils die 1 oder 2 bei der Orderauslösung eintippen.
Das kann doch nun nicht so aufwändig sein, hättest damit aber Dein Problem gelöst.

Aber ok, mach wie Du denkst.

traderdoc
  #20 (permalink)  
Alt 02.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Die Lösung von mir funktioniert mit dem one-click-trading!
Und es reicht aus, wenn Du in die Kommentarzeile des Auftragsfensters für das eine Chart eine 1 und für das andere Chart eine 2 schreiben würdest.
Vorher einmalig die 1 bzw. 2 in die Variable Magincnummer eintragen (über F7 das Eigenschaftenfenster aufrufen) Fertig!

Und dann brauchst Du wie gesagt nur noch jeweils die 1 oder 2 bei der Orderauslösung eintippen.
Das kann doch nun nicht so aufwändig sein, hättest damit aber Dein Problem gelöst.

Aber ok, mach wie Du denkst.

traderdoc

hallo Traderdoc

also ich habe das jetzt getestet. mit dem one-klick-button hab ich das jedoch nicht hingekriegt. ich muss über die ordermaske (F9), um einen Kommentar eingeben zu können. und dann bin ich nicht bei 1 klick sondern bei 3 Aktionen bei der orderabgabe (F9 + 1 für MN + order senden) und dasselbe nochmals für die zweite order. aber wenn man das so macht, dann werden korrekte unterschiedliche TPSLs gesetzt. also das schaut schonmal sehr gut aus.

um aber nicht 3 aktionen, sondern mit nur einer einzigen Bewegung eine orderaufgabe zu erreichen, liesse sich hier vielleichct der gedanke von fxdaytrader aufgreifen, dies über ein Skript zu lösen.

frage: könnte folgendes Skript funktionieren (am Beispiel buy, lotsize vordefiniert, dasselbe währungpaar)?:

order1:
- in Chart1 befindet sich TPSL-insert.mq4 mit Einstellung A
- Skript wird über chart1 gezogen
- Skript verlangt keine Bestätigung, sondern kauft sofort und
- schreibt in die kommentarzeile MN1 hinein

order2: ein zweites Skript macht dasselbe mit MN2 für Chart2.

wenn das irgendwie geht, dann wäre das tatsächlich one-klick-trading, verbunden mit unterschiedlichen TPSL. und genau das ist mein ziel.

lg Joe
Thema geschlossen

Lesezeichen

Stichworte
magic, magicnumber, magicnummer, mql4, programmierung, programmierung metatrader, tpsl-insert, tpsl-insert.mq4


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 13:36 Uhr.



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