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: 3978
Beiträge: 37909
Benutzer: 6.282
Aktive Benutzer: 381
Links: 80
Wir begrüßen unseren neuesten Benutzer: SimplePlan
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 16 Stunden
- SimplePlan
vor einem Tag
- Robbin
vor 2 Tagen
- forexphong...
vor 3 Tagen
- sunap
vor 4 Tagen
- IInvest84

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

Empfehlungen

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 102
Martin befindet sich auf einem aufstrebenden Ast
Standard simpel buy sell ea

hallo leute ich brauche mal bitte eure hilfen
und zwar suche ich ein ea der gleichzeitig eine buy und sell positon öffnet
und wen eine von beiden geschlossen wird soll er wider eine buy und sell position öfnen

kann mir bitte da jemand weiter helfen habe irgendwie nichs in der richtung gefunden was funktioniert

danke

Gruss Martin
Mit Zitat antworten
  #2 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Arbeite derzeit an Einem.

Allerdings stimmt beim Trailing Stop was nicht. Im MT4 leuchtet SL zwar immer wieder mal auf, aber er ändert sich nicht. Wahrscheinlich irgendwo ein logischer Fehler drin.

Aber er öffnet erst wieder, wenn beide Richtungen geschlossen wurden. Oder soll er zumindest.

Nachtrag: Ich glaube so müsste es richtig sein

Code:
//SL TP Deklarationen und Berechnungen
//ASK & BID
double M_CA=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits);//Mode Current ASK
double M_CB=NormalizeDouble(MarketInfo(Symbol(),MODE_BID),_Digits);//Mode Current BID
//-------------------------------------------------------------------------------------------------------------
//Normaler SL
if(Stoploss>0)double B_SL=NormalizeDouble(M_CA-Stoploss*_Point,_Digits);//einfacher Buy SL, der bei Open Buy gesendet werden soll.
if(Stoploss>0)double S_SL=NormalizeDouble(M_CB+Stoploss*_Point,_Digits);//einfacher Sell SL, der bei Open Sell gesendet werden soll.
//Normaler TP
if(Takeprofit>0)double B_TP=NormalizeDouble(M_CA+Takeprofit*_Point,_Digits);//einfacher Buy TP, der bei Open Buy gesendet werden soll.
if(Takeprofit>0)double S_TP=NormalizeDouble(M_CB-Takeprofit*_Point,_Digits);//einfacher Sell TP, der bei Open Buy gesendet werden soll.
//-------------------------------------------------------------------------------------------------------------
Code:
if(Trailing_Stop=true&&Stoploss>0){
  
  double M_CA_SL_TSS=NormalizeDouble(M_CA_SL-Stoploss-Trailing_Stop_Step*_Point,_Digits);//M_CA = Mode Current Ask
  double M_CB_SL_TSS=NormalizeDouble(M_CB_SL+Stoploss+Trailing_Stop_Step*_Point,_Digits);//M_CB = Mode Current Bid


//Trailing Stop Bedingungen für neuen TS
// ?
  if(B_SL<M_CA_SL_TSS)B_TS=NormalizeDouble(M_CA-Stoploss*_Point,_Digits);
  if(S_SL>M_CB_SL_TSS)S_TS=NormalizeDouble(M_CB+Stoploss*_Point,_Digits);
// ?

}
Angehängte Dateien
Dateityp: mq4 Valerius_MT4_SL_TS_AutoTP_LoSh_EA.mq4 (20,1 KB, 1x aufgerufen)

Geändert von MA-EA (vor 2 Wochen um 21:17 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Waren ein paar Fehler drin. Müsste jetzt funktionieren.
Angehängte Dateien
Dateityp: mq4 Valerius_MT4_SL_TS_AutoTP_LoSh_EA.mq4 (20,1 KB, 0x aufgerufen)
Mit Zitat antworten
  #4 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Sorry, musste was ergänzen. Mach schließlich nicht jeden Tag nen automatischen Takeprofit.

Vergesst die beiden Vers. vor diesem Post. Leider kann ich die nicht mehr entfernen...

Meine größte Sorge ist der Trailing Stop. Weiß nicht, ob das so funktioniert:
Code:
extern bool Trailing_Stop=true;
extern int Trailing_Stop_Step=5;
Code:
//SL TP Deklarationen und Berechnungen
//ASK & BID
double M_CA=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits);//Mode Current ASK
double M_CB=NormalizeDouble(MarketInfo(Symbol(),MODE_BID),_Digits);//Mode Current BID
//-------------------------------------------------------------------------------------------------------------
//Normaler SL
if(Stoploss>0)double B_SL=NormalizeDouble(M_CA-Stoploss*_Point,_Digits);//einfacher Buy SL, der bei Open Buy gesendet werden soll.
if(Stoploss>0)double S_SL=NormalizeDouble(M_CB+Stoploss*_Point,_Digits);//einfacher Sell SL, der bei Open Sell gesendet werden soll.
//Normaler TP
if(Takeprofit>0)double B_TP=NormalizeDouble(M_CA+Takeprofit*_Point,_Digits);//einfacher Buy TP, der bei Open Buy gesendet werden soll.
if(Takeprofit>0)double S_TP=NormalizeDouble(M_CB-Takeprofit*_Point,_Digits);//einfacher Sell TP, der bei Open Buy gesendet werden soll.
Code:
if(Trailing_Stop=true&&Stoploss>0){
  
  double M_CA_SL_TSS=NormalizeDouble(M_CA-Stoploss-Trailing_Stop_Step*_Point,_Digits);//M_CA = Mode Current Ask
  double M_CB_SL_TSS=NormalizeDouble(M_CB+Stoploss+Trailing_Stop_Step*_Point,_Digits);//M_CB = Mode Current Bid


//Trailing Stop Bedingungen für neuen TS
// ?
  if(B_SL<M_CA_SL_TSS)double B_TS=NormalizeDouble(M_CA-Stoploss*_Point,_Digits);
  if(S_SL>M_CB_SL_TSS)double S_TS=NormalizeDouble(M_CB+Stoploss*_Point,_Digits);
// ?

 }
Code:
//Modify Orders (Trailing Stop nach ziehen)
if(Trailing_Stop==true&&Stoploss>0){// ganz oben Bedingungen für OrderModify eintragen müsste reichen...
for(i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i,SELECT_BY_POS)){

if(OrderType()==OP_BUY&&OrderMagicNumber()==Buy_MagicNumber&&OrderSymbol()==Symbol()){//modify Buy
if(B_SL<M_CA_SL_TSS)OrderModify(OrderTicket(),price,B_TS,OrderTakeProfit(),0,Blue);}// ?

if(OrderType()==OP_SELL&&OrderMagicNumber()==Sell_MagicNumber&&OrderSymbol()==Symbol()){//modify Sell
if(S_SL>M_CB_SL_TSS)OrderModify(OrderTicket(),price,S_TS,OrderTakeProfit(),0,Red);}}}}// ?
Angehängte Dateien
Dateityp: mq4 Valerius_MT4_SL_TS_AutoTP_LoSh_EA.mq4 (18,3 KB, 1x aufgerufen)
Mit Zitat antworten
  #5 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Moin.

Im Anhang der Versuch einer Art Hedge EA. Öffnet und schließt Buy und Sell entsprechend der Einstellungen.

Hab versucht den SL automatisch über den Spread zu berechnen.

Der Trailing Stop müsste in 5er Schritten die SLs nach ziehen. Jedenfalls wenn ichs richtig geproggt habe.

Der TP sollte automatisch über die Spreads und vorrausichtlichen Verlust einer Richtung berechnet werden.

Wär dankbar, wenn Jemand damit ein paar (Back)Tests machen könnte. Bei mir heißt es immer nur "Order Close Error".

Viel Spass.
Angehängte Dateien
Dateityp: ex4 Valerius_MT4_AutoSL_TS_AutoTP_LoSh_EA.ex4 (25,3 KB, 1x aufgerufen)
Mit Zitat antworten
  #6 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 102
Martin befindet sich auf einem aufstrebenden Ast
Standard

danke für die antwort werd mal teste ob er das kann was ich möchte
Mit Zitat antworten
  #7 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Er öffnet nur, wenn gar keine Order offen ist.

Warum soll er gleich wieder Eine öffnen, wenn eine geschlossen wurde?

Falls Du Deinem Nick entsprechend Martin Gale versuchen willst, lass es. So ein System kann eigentlich nur früher oder später schief gehn.

https://de.wikipedia.org/wiki/Martingalespiel


Hat mal Jemand getestet, ob der SL alle (ich glaube) 5 Pips nach gezogen wird?
Mit Zitat antworten
  #8 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Moin.

Jetzt brauch wirklich mal die Hilfe von ein paar Proggern die sich richtig auskennen.

Ich will für winzige Spreads auch einen winzigen, alternativen Trailing Stop Schritt einrichten. Find aber nix zum Normalize.

So soll das werden:
Code:
extern bool Trailing_Stop=true;
extern int Trailing_Stop_Step=5;
extern string ATSS1="If Spread <";
extern string ATSS2="Trailing Stop Step";
extern int Alternative_TSS=3;
extern string ATSS3="If Spread <";
extern string ATSS4="Alternative Trailing"; 
extern string ATSS5="Stop Step";
 extern string ATSS6="TSS = 0";
Code:
//Falls Spread kleiner als Trailing Stop Step (5) ist, soll TSS = Alternative_TSS (3) sein
   if(NormalizeDouble(C_SPR<Trailing_Stop_Step*_Point,_Digits))Trailing_Stop_Step=NormalizeDouble(Alternative_TSS*_Point,_Digits);

//Falls Spread auch kleiner als Altervativer Trailing Stop Step (3) ist, soll TSS = 0 sein
  if(NormalizeDouble(C_SPR<Alternative_TSS*_Point,_Digits))Trailing_Stop_Step=NormalizeDouble(0*_Point,_Digits);
Muss da jetzt Alles normalized werden? Oder nur die neuen int Werte? Oder wie oder was?
Mit Zitat antworten
  #9 (permalink)  
Alt vor 2 Wochen
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 591
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Funktioniert das so ordnungsgemäß?

//Falls Spread kleiner als Trailing Stop Step (5) ist, soll TSS = Alternative_TSS (3) sein
if(NormalizeDouble(C_SPR<Trailing_Stop_Step*_Point ,_Digits))NormalizeDouble(Trailing_Stop_Step=Alter native_TSS*_Point,_Digits);

//Falls Spread auch kleiner als Altervativer Trailing Stop Step (3) ist, soll TSS = 0 sein
if(NormalizeDouble(C_SPR<Alternative_TSS*_Point,_D igits))NormalizeDouble(Trailing_Stop_Step=0*_Point ,_Digits);
Mit Zitat antworten
  #10 (permalink)  
Alt vor 2 Wochen
Mitglied
 
Registriert seit: Mar 2013
Beiträge: 102
Martin befindet sich auf einem aufstrebenden Ast
Standard

nein kein marginal die lot grösse soll immer die selbe sein ich hab da eine idee die ich gerne mal testen möchte
wäre es den viel arbeit für dich den ea so zu endern wie ich das beschriben habe?
also das er gleich wider zwei neue aufmacht wen einer geschlossen ist ?

Zitat:
Zitat von MA-EA Beitrag anzeigen
Er öffnet nur, wenn gar keine Order offen ist.

Warum soll er gleich wieder Eine öffnen, wenn eine geschlossen wurde?

Falls Du Deinem Nick entsprechend Martin Gale versuchen willst, lass es. So ein System kann eigentlich nur früher oder später schief gehn.

https://de.wikipedia.org/wiki/Martingalespiel


Hat mal Jemand getestet, ob der SL alle (ich glaube) 5 Pips nach gezogen wird?
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
buy, ea, sell/buy


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 +2. Es ist jetzt 12:25 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 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.
-----------------------------------------------------------------------------------------------------------------------------