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: 4973
Beiträge: 43252
Benutzer: 7.220
Aktive Benutzer: 81
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 11 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 3 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 19.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von MA-EA Beitrag anzeigen
Hab aber keine Ahnung, wie man den dann bei OrderSend einbaun soll.
Das ist ja leider das Problem
  #12 (permalink)  
Alt 19.05.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
Ja, dann musst Du halt vor dem OrderSend() Abfragen lassen, ob TP = 0 ist.
Ist das der Fall, dann darf der TP in der OrderSend()-Funktion auch nur 0 sein.
Code:
//SL / TP "deaktivieren" wenn sie 0.0 betragen
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;
Vielen Dank. Scheint zu funktionieren. Jedenfalls steht jetzt überall bei den offenen Order 0.0 tralala bei TP.

Aber kann man das auch irgendwie mit diesem minstoplevel vergleichen? Wenn TP < minstoplevel() dann TP = 0.nix? Hab eigentlich nur in den Parametern oben gerne Zahlen und drunter möglichst bloß Deklarationen und so.

Wie auch immer. Nächster Schritt wär nen Trailing Stop. Scheint immer wieder zu passieren, dass, selbst wenn der Kurs Gewinn bringt, die Indikatoren erst aussteigen wenn der Trend so gut wie vorbei ist. Oder sogar schon in die Gegenrichtung geht und man noch Verlust macht, weil die Indis ja nur stündlich reagieren.
Angehängte Dateien
Dateityp: mq4 Valerius_SLTP_B0B1_RSI_STOCHA_WPR_MT4_EA.mq4 (18,2 KB, 0x aufgerufen)
  #13 (permalink)  
Alt 21.05.17
Premium Mitglied
 
Registriert seit: Apr 2015
Beiträge: 422
Raul0 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Aber kann man das auch irgendwie mit diesem minstoplevel vergleichen? Wenn TP < minstoplevel() dann TP = 0.nix? Hab eigentlich nur in den Parametern oben gerne Zahlen und drunter möglichst bloß Deklarationen und so.
Code:
int STOPLEVEL = MarketInfo(Symbol(), MODE_STOPLEVEL);

if( Takeprofit < STOPLEVEL || Takeprofit == 0 ) dann usw.
Ist halt die Frage ob 4 oder 5 Digit Broker, da Takeprofit noch um eine Kommastelle versetzt wird bei 5 Digit. Vermutlich gibst Du Dein TP bei 30 Pips mit einer 300 ein, dann ist das ok so.
__________________

Easy Trading Assistant
  #14 (permalink)  
Alt 23.05.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Warum korrektes Runden von Stoploss und Takeprofit so wichtig ist | Code4Trading
Code:
extern double Stoploss=0.0;
extern double Takeprofit=0.0;
Code:
//SL / TP Berechnung
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);
Wenn ich den Kram nicht eintrage, nutzt er wie gesagt 0 als Berechnungsgrundlage für den TP. Und ich denke auch mal fürn SL, würde der 0 betragen.
Code:
//SL / TP "deaktivieren" wenn sie 0.0 betragen
if(Stoploss==0.0)buy_SL=0.0;
if(Stoploss==0.0)sell_SL=0.0;
if(Trailing_Stop==0.0)buy_TS=0.0;
if(Trailing_Stop==0.0)sell_TS=0.0;
if(Takeprofit==0.0)buy_TP=0.0;
if(Takeprofit==0.0)sell_TP=0.0;
Jedenfalls scheint er so zu funktionieren.

Jedenfalls soll jetzt nen Trailing Stop rein. Und zwar, indem mit OrderModify der SL immer wieder hinterher gezogen wird. Ist im Großen und Ganzen klar, nur weiß ich nicht, wie man das jetzt berechnet.
Angehängte Dateien
Dateityp: mq4 Valerius_SL_TS_TP_B0B1_RSI_STOCHA_WPR_MT4_EA.mq4 (20,1 KB, 1x aufgerufen)
  #15 (permalink)  
Alt 23.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Na das sieht ja schon nach was aus!
Kleine Korrektur: Du brauchst sowohl Ask als auch Bid.
Code:
double openAsk=NormalizeDouble(MarketInfo(Symbol(),MODE_ASK),_Digits);
double openBid=NormalizeDouble(MarketInfo(Symbol(),MODE_BID),_Digits);
double buy_SL =NormalizeDouble(openAsk-Stoploss  *_Point,_Digits);
double buy_TP =NormalizeDouble(openAsk+Takeprofit*_Point,_Digits);
double sell_SL=NormalizeDouble(openBid+Stoploss  *_Point,_Digits);
double sell_TP=NormalizeDouble(openBid-Takeprofit*_Point,_Digits);
Sieht bei mir sehr ähnlich aus:
Code:
//+------------------------------------------------------------------+
//| Calculate SL, TS, TP                                             |
//+------------------------------------------------------------------+
void CalcStopsLong ()
{
   if(SL>0) SL_Buy =NormalizeDouble(Ask-SL*_Point,_Digits);
   if(TS>0) TS_Buy =NormalizeDouble(Ask-TS*_Point,_Digits);
   if(TP>0) TP_Buy =NormalizeDouble(Ask+TP*_Point,_Digits);
}

void CalcStopsShort()
{
   if(SL>0) SL_Sell=NormalizeDouble(Bid+SL*_Point,_Digits);
   if(TS>0) TS_Sell=NormalizeDouble(Bid+TS*_Point,_Digits);
   if(TP>0) TP_Sell=NormalizeDouble(Bid-TP*_Point,_Digits);
}
Den Trailingstop aktualisierst du laufend, und wenn die Position im Gewinn ist und der TS über dem Einkaufspreis (jetzt für eine Long Order), änderst du mit OrderModify(...) den StopLoss Level.
Eine Schrittweite bzw ein Schwellwert (zb OrderStep) sollte auch noch definiert und geprüft werden, damit OrderModify() nicht bei jeder minimalsten Änderung ausgelöst wird.

Ich hoffe dir weitergeholfen zu haben.
  #16 (permalink)  
Alt 23.05.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

@Kronenchakra, da gehst Du aber bei Dir stillschweigend davon aus, dass die Werte der Variablen SL, TS und TP bereits ggf. auf den 5-Digit-Modus angepasst wurden.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #17 (permalink)  
Alt 24.05.17
Gesperrter Benutzer
 
Registriert seit: Feb 2016
Ort: 2100 Österreich
Beiträge: 313
Kronenchakra befindet sich auf einem aufstrebenden Ast
Standard

Ja klar, ich verkauf das ja nicht und ich habe meinen Broker.
Warum soll ich es mir dann komplizierter machen
LG Otto
  #18 (permalink)  
Alt 24.05.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Das ist auch klar. Als Lehrbeispiel sollte man da evtl. doch darauf verweisen, für die nicht so Sattelfesten.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
  #19 (permalink)  
Alt 25.05.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Abend.

Es passiert immer wieder, was ich ein wenig befürchtet hatte. Er richtet sich im H1 nach Bar 1. Wenn die nen Signal gibt, steigt er ein. Das auch, wenn der Kurs gerade in die andere Richtung gedreht hat und in den Verlust geht. Er geht durch den SL, Bar 1 gibt aber immer noch für den Rest der Stunde das Einstiegssignal. Welches er auch fröhlich befolgt bis zum Sankt Nimmerleinstag...

Hatte in einer Vers. zwar auch die Indis auf Bar 0 angesetzt. Allerdings könnten die ja wieder für nen viel zu späten Einstieg sorgen, wenn der Trend schon wieder vorbei ist und nix als Spesen bleiben...

Vielleicht den SL höher einstellen? Steht derzeit auf 80.0 .
Angehängte Dateien
Dateityp: mq4 Valerius_SLTP_B0B1_RSI_STOCHA_WPR_MT4_EA.mq4 (18,1 KB, 2x aufgerufen)
  #20 (permalink)  
Alt 03.06.17
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Wollt mir erst wieder hochwissenschaftlich das Hirn verrenken, aber: Geht der ganze Mist mit mql5 vielleicht einfacher? Bzw. sollte man grundsätzlich auf mql5 umsteigen?
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 09:25 Uhr.





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