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: 3824
Beiträge: 36914
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 16 Stunden
- Spitzmaus
vor 19 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor 2 Tagen
- Crossa
vor 2 Tagen
- snatshit

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 68
Gesamt: 69
Team: 0
Team:  
Benutzer:  fxnoob
Freunde anzeigen

Empfehlungen

Werbung

Like Tree2Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 01.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard 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()
//+------------------------------------------------------------------+
  #2 (permalink)  
Alt 01.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von josef123456 Beitrag anzeigen
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;
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 (OrderMagicNumber() != 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
  #3 (permalink)  
Alt 01.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Viel Erfolg!

traderdoc
danke. ganz lieb.
sind noch weitere verwertbare ansätze im raum?
lg joe
  #4 (permalink)  
Alt 01.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von josef123456 Beitrag anzeigen
danke. ganz lieb.
sind noch weitere verwertbare ansätze im raum?
lg joe
Was sollte denn noch anders werden?
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
  #5 (permalink)  
Alt 01.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Was sollte denn noch anders werden?
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
du traderdoc jetzt muss ich mich aber ziemlich entschuldigen. ich habe gar nicht gecheckt, dass du den code verändert hast! ich dachte, mein anliegen ist so vermessen, dass du mich vergeigen willst...

DANKE zuerst mal fürs coden überhaupt.
ich werds jetzt testen.
lg joe
  #6 (permalink)  
Alt 01.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Was sollte denn noch anders werden?
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
also ich habs jetzt getestet, eine magicnummer kann jetzt eingegeben werden.
es werden aber kein TP und SL gesetzt.
lg joe
  #7 (permalink)  
Alt 01.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von josef123456 Beitrag anzeigen
also ich habs jetzt getestet, eine magicnummer kann jetzt eingegeben werden.
es werden aber kein TP und SL gesetzt.
lg joe
Na ja, der TP und SL kann auch erst gesetzt werden, wenn überhaupt eine Order offen ist.
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
  #8 (permalink)  
Alt 01.07.14
Mitglied
 
Registriert seit: Feb 2012
Beiträge: 168
josef123456 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Na ja, der TP und SL kann auch erst gesetzt werden, wenn überhaupt eine Order offen ist.
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
also, bisher funktioniert TPSL-insert so:
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
  #9 (permalink)  
Alt 01.07.14
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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
  #10 (permalink)  
Alt 01.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 josef123456 Beitrag anzeigen
also, bisher funktioniert TPSL-insert so:
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.
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.
__________________
krank im Kopf aber sonst ganz nett
build 509 mql4 editor download
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:30 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.
-----------------------------------------------------------------------------------------------------------------------------