In TPSL-insert
hallo
unten ist der code von TPSL-insert.mq4. Er macht was er soll recht gut und setzt TP und SL sofort nach einer order. mein Anliegen: kann mir da bitte jemand eine Magicnummer einbauen, damit ich den EA im selben Währungspaar mit verschiedenen Settings betreiben kann? lg Joe hier ist der code: //+------------------------------------------------------------------+ //| TPSL-Insert.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright "" #property link "" //---- input parameters extern double TakeProfitPips=100; extern double StopLossPips=150; int Faktor, Digt, cnt; double TPp, SLp; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init(){} //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit(){} //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(Close[0]>10) {Faktor=1000; Digt=3;} else if(Close[0]<10) {Faktor=100000; Digt=5;} if(OrdersTotal()!=0) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); //--------------Take Profit-------------------------------- if(OrderTakeProfit()==0 && TakeProfitPips !=0) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) {TPp = OrderOpenPrice()+TakeProfitPips/Faktor;} if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) {TPp = OrderOpenPrice()-TakeProfitPips/Faktor;} } else TPp = OrderTakeProfit(); //--------------Stop Loss-------------------------------- if(OrderStopLoss()==0 && StopLossPips !=0) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) {SLp = OrderOpenPrice()-StopLossPips/Faktor;} if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) {SLp = OrderOpenPrice()+StopLossPips/Faktor;} } else SLp = OrderStopLoss(); //---------------Modify Order-------------------------- if (OrderType()==OP_BUY || OrderType()==OP_SELL) OrderModify(OrderTicket(),OrderOpenPrice(),SLp,TPp ,0); //----------------------------------------------------- } // for cnt }//if OrdersTotal return(0); }// Start() //+------------------------------------------------------------------+ |
Zitat:
Viel Erfolg! traderdoc |
Zitat:
sind noch weitere verwertbare ansätze im raum? lg joe |
Zitat:
Weniger als zwei zusätzliche Programmzeilen werden nur noch von 1 getoppt. Das geht aber nicht, weil Du erstens eine Magicnummer eingeben mußt und zweitens diese in der zweiten Zeile abgefragt wird. traderdoc |
Zitat:
DANKE zuerst mal fürs coden überhaupt. ich werds jetzt testen. lg joe |
Zitat:
es werden aber kein TP und SL gesetzt. lg joe |
Zitat:
Mit diesem Code wird bisher auch keine Order geöffnet, sondern nur der TP und SL berechnet und mittels OrderModify() dann eine bestehende Order bzgl. TP und SL geändert. D.h. das fehlt der Teil der initialen Orderöffnung. traderdoc |
Zitat:
zuerst wirde der EA wie gewohnt über den Chart gezogen. dann wird über den one-click-trading-button wird eine beliebige order eröffnet und beim nächsten tick werden TP und SL gesetzt. so habe ich mir das nun auch hier vorgestellt, nur eben mit Magicnummer. Das funktioniert aber noch nicht. Nach der Ordereröffnung wird kein TPSL gesetzt. wie könnte man dies nun realisieren? lg joe |
Na ja, das geht dann nicht so einfach, weil die MagigNumber per EA!!! beim Orderöffnen mittels OrderSend() gesetzt werden müßte.
Wenn Du jetzt händisch!!! über das One-Click-Trading gehst, kannst Du keine MagicNumber an die Order koppeln. Es gibt einen kleinen Umweg über die Zeile "Kommentar:" im Fenster des Auftrages, wenn Du über das One-Click-Trading gehst. In diese Kommentarzeile mußt Du dann die Magicnummer schreiben, aber auch in die Variable Magicnummer am Codeanfang. Der EA wird dann den Kommentar der Order auslesen und mit der im Code oben angegebenen Magicnummer vergleichen und bei Identität den TP und SL setzen. //+------------------------------------------------------------------+ //| TPSL-Insert.mq4 | //| | //| | //+------------------------------------------------------------------+ #property copyright "" #property link "" //---- input parameters extern double TakeProfitPips=100; extern double StopLossPips=150; extern int Magicnummer = 100; int Faktor, Digt, cnt; double TPp, SLp; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init(){} //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit(){} //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if(Close[0]>10) {Faktor=1000; Digt=3;} else if(Close[0]<10) {Faktor=100000; Digt=5;} if(OrdersTotal()!=0) { for(cnt=0; cnt<OrdersTotal(); cnt++) { OrderSelect(cnt,SELECT_BY_POS); if (StringToInteger(OrderComment()) != Magicnummer) continue; //--------------Take Profit-------------------------------- if(OrderTakeProfit()==0 && TakeProfitPips !=0) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) {TPp = OrderOpenPrice()+TakeProfitPips/Faktor;} if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) {TPp = OrderOpenPrice()-TakeProfitPips/Faktor;} } else TPp = OrderTakeProfit(); //--------------Stop Loss-------------------------------- if(OrderStopLoss()==0 && StopLossPips !=0) { if(OrderType()==OP_BUY && OrderSymbol()==Symbol()) {SLp = OrderOpenPrice()-StopLossPips/Faktor;} if(OrderType()==OP_SELL && OrderSymbol()==Symbol()) {SLp = OrderOpenPrice()+StopLossPips/Faktor;} } else SLp = OrderStopLoss(); //---------------Modify Order-------------------------- if (OrderType()==OP_BUY || OrderType()==OP_SELL) OrderModify(OrderTicket(),OrderOpenPrice(),SLp,TPp ,0); //----------------------------------------------------- } // for cnt }//if OrdersTotal return(0); }// Start() //+------------------------------------------------------------------+ Viel Erfolg! traderdoc |
Zitat:
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. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:26 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