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: 36923
Benutzer: 6.079
Aktive Benutzer: 495
Links: 80
Wir begrüßen unseren neuesten Benutzer: Rene1504
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 2 Stunden
- Rene1504
vor 3 Stunden
- ibdafx
vor einem Tag
- Batangenyo
vor einem Tag
- Spitzmaus
vor einem Tag
- juleslesqu...

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 54
Gesamt: 55
Team: 0
Team:  
Benutzer:  Domke01
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #21 (permalink)  
Alt 04.06.17
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 370
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Also persönlich finde ich mql4 einfacher. Mql5 ist technisch klarer definiert und verlangt daher eine konkrete Vorgehensweise.
__________________

Tradertool
  #22 (permalink)  
Alt 05.06.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Wofür genau steht
Code:
double OrderOpenPrice();
https://docs.mql4.com/trading/orderopenprice

Schätze mal, das bedeutet den Kurs, zu dem die Order geöffnet wurde. Aber ist da auch schon Spread drin? Kommission? Was auch immer?
  #23 (permalink)  
Alt 06.06.17
Mitglied
 
Registriert seit: May 2015
Beiträge: 250
next user befindet sich auf einem aufstrebenden Ast
Standard

Richtig, OrderOpenPrice() liefert den Einstiegspreis der selektierten Order.
Der Preis ist bei Marktausführung Ask / Bid, je nachdem welche Richtung ohne "einkalkulierten" Spread.
  #24 (permalink)  
Alt 25.06.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Danke.

Hat noch nie Jemand erlebt, dass ein EA, nach dem der SL benutzt wurde, wieder ne Verlust-Order öffnet, weil das Einstiegssignal noch aktuell ist?

Jetzt mal als Bsp.:
Er öffnet im H1 nen Buy im EURUSD, weil jetzt mal der 50er GD über dem 100er GD ist. Der Kurs geht aber nach unten. Deswegen schließt der SL die Order nach einigen Minuten. Der 50er GD ist aber immer noch über dem 100er GD, so dass der EA gleich wieder nen Long öffnet. Der nach einigen Minuten wieder den SL erreicht und dicht gemacht wird. Die GDs sagen aber immer noch "Du musst long gehn", was er auch macht. Und das geht so weiter, solange der 50er über dem 100er ist. Was kann man dagegen machen?
Angehängte Dateien
Dateityp: mq4 Valerius_SLTP_B0B1_RSI_STOCHA_WPR_MT4_EA.mq4 (18,5 KB, 1x aufgerufen)
  #25 (permalink)  
Alt 26.06.17
Mitglied
 
Registriert seit: May 2015
Beiträge: 250
next user befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hat noch nie Jemand erlebt, dass ein EA, nach dem der SL benutzt wurde, wieder ne Verlust-Order öffnet, weil das Einstiegssignal noch aktuell ist?
Nein. Zum einen würde ich so einen EA nicht für mich traden lassen, zum anderen nutze ich keine EA's fürs automatische Traden.
Zitat:
Zitat von MA-EA Beitrag anzeigen
Die GDs sagen aber immer noch "Du musst long gehn", was er auch macht. Und das geht so weiter, solange der 50er über dem 100er ist. Was kann man dagegen machen?
Nicht, bzw. nicht nur auf Basis der GDe traden?
Falls doch, dann im Code entsprechend Weichen stellen, damit das von dir beschriebene nicht passiert...
Zitat:
Zitat von MA-EA Beitrag anzeigen
Die GDs sagen aber immer noch "Du musst long gehn" ...
Wenn du unbedingt anhand dieser Signale long gehen willst, dann musst du entsprechend auf solche Fehlsignale reagieren.
Oder, ums noch einfacher zu machen, du fragst die Orderhistorie nach den letzten Trades ab, ob die vor kurzem durch deinen EA gesetzt, und durch entsprechendem
"Fehlsignal" geschlossen wurden.

Ich würde es allerdings bei der Quelle angehen, deinen GD und deren Einstellungen. Vielleicht sind diese ja doch nicht so optimal für einen Trade.


Kurz noch zum Code:
Kann es sein, das der großteil der externen Variablen reine Info / Stütze / Hilfe für dich sind und keinen echten Wert im Code haben?

Code:
extern int MaxSpread=40;
Mit diesem Spread solltest du bei den verschiedenen Digits aufpassen.
===================
Bei
Code:
double OOP=OrderOpenPrice();
dürfte nichts sinnvolles rauskommen, da du keine Order selektiert hast.
===================
Code:
if (Digits<=3)PointSet=0.01;
else PointSet=0.0001;
if (Digits<=1)PointSet=1;
Ist ein bischen unglücklich gewählt, wäre so besser
Code:
if(Digits<=1)PointSet = 1;
else if(Digits<=3)PointSet = 0.01;
else PointSet = 0.0001;
===================
Code:
if (TimeFrame==0)TimeFrame=NULL;
Hmmmm...
===================
Code:
Lots=MathMax(MathMin(Lots,MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT));
Lot soll kleiner als MAXLOT, aber mindestens MINLOT sein. Dafür 4 Funktionsaufrufe und das bei jedem Tick?
===================
Code:
if(Stoploss==0.0)buy_SL=0.0;
if(Stoploss==0.0)sell_SL=0.0;
if(Takeprofit==0.0)buy_TP=0.0;
if(Takeprofit==0.0)sell_TP=0.0;
Doppelt ist nicht notwendig
Code:
if(Stoploss==0.0) {buy_SL=0.0; sell_SL=0.0;}
if(Takeprofit==0.0) {buy_TP=0.0; sell_TP=0.0;}
===================
Code:
datetime F=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Open_Orders_From);
datetime T=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Open_Orders_Till);
Einzelne Buchstaben als Namen sind immer bischen ... naja. Sowas ist eher in Schleifen als Counter üblich.

Bei "Start Indikatoren auslesen" sind die geschweiften Klammern eher ein optischer Block als notwendig.
Die Variable "CloseTicket" nutzt du nicht.

So, kurz mal meinen Senf gegeben
Du und andere mögen es vielleicht, aber ich finde so formatierten Code eher nicht so gut leserlich.

PS: Wieso wechselst du nicht zu der besseren beschreibung "OnTick()"?
  #26 (permalink)  
Alt 18.07.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 565
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Mit SL 150 scheints zu gehn.

Mein Versuch eines Trailing-Stops. Ist der Sch... so zu gebrauchen? Oder überhaupt richtig?
Code:
//Globale Variablen
//Sicherheitsausstieg
extern double Stoploss=150.0;
extern string TS="true=Yes / false=No";
extern bool Use_Trailing_Stop=true;
extern double Takeprofit=0.0;
Code:
//SL TP Deklas
double minstoplevel=MarketInfo(Symbol(),MODE_STOPLEVEL);
double openPrice=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits);
double buy_SL=NormalizeDouble(openPrice-Stoploss*_Point,_Digits);
double buy_TP=NormalizeDouble(openPrice+Takeprofit*_Point,_Digits);
double sell_SL=NormalizeDouble(openPrice+Stoploss*_Point,_Digits);
double sell_TP=NormalizeDouble(openPrice-Takeprofit*_Point,_Digits);
//-------------------------------------------------------------------------------------------------------------

//Trailing Stop
if(Use_Trailing_Stop==true){
  if(Ask>buy_SL)buy_SL=NormalizeDouble(openPrice-Stoploss*_Point,_Digits);
  if(Ask<sell_SL)sell_SL=NormalizeDouble(openPrice+Stoploss*_Point,_Digits);}
  #27 (permalink)  
Alt 18.07.17
Mitglied
 
Registriert seit: May 2015
Beiträge: 250
next user befindet sich auf einem aufstrebenden Ast
Standard

Grundsätzlich würde es funktionieren, aber:

1. Schau dir bitte nochmal etwas genauer an, was es mit Ask & Bid in Bezug auf eine Order auf sich hat.
2. Ich würde dir echt empfehlen einen Abstand zu definieren, in dem der SL nachgezogen wird. So wie du es machst, würde er
bei jeder kleinsten Kursveränderung den SL nachziehen. Mal abgesehen davon, dasss es sinnlos wäre, sehen es auch die
Broker ungerne, wenn quasi "durchgehend" ne OrderModify gesendet wird.
Thema geschlossen

Lesezeichen

Stichworte
mql4, programmierung, programmierung metatrader, programmierung mql4, sl, stoploss, takeprofit, tp


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 18:07 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.
-----------------------------------------------------------------------------------------------------------------------------