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

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 24.02.14
Neues Mitglied
 
Registriert seit: Feb 2013
Beiträge: 9
uagnet befindet sich auf einem aufstrebenden Ast
Red face EA für Trailing Stop

Hi Leute, ich bin echt am verzweifeln. Ich habe jetzt schon sämtliche EA's versucht die einen Trailing Stop tätigen. Leider ist nichts passendes dabei.
Ich hoffe Ihr könnt mir helfen. ich erkläre mal kurz den Bedarf:

Der EA soll in mehreren Steps den SL nachziehen (3-4 Steps), also nicht wie beim Trailing Stop, wo der SL ständig nachgezogen wird, sondern nach einem bestimmten erreichten + Pips

Also so z.B:

1. Step: wenn Gewinn bei + 10 Pips liegt zieht der EA den SL auf +1 Pips
2. Step: wenn Gewinn bei + 30 Pips liegt zieht der EA den SL auf +20 Pips
3. Step: wenn Gewinn bei + 50 Pips liegt zieht der EA den SL auf +40 Pips
4. Step: wenn Gewinn bei + 100 Pips liegt zieht der EA den SL auf +90 Pips

Ich hoffe ihr versteht mich, wie ich das meine und kann mir etwas empfehlen oder programmieren (ich zahle auch)

Danke
  #2 (permalink)  
Alt 25.02.14
Neues Mitglied
 
Registriert seit: Mar 2013
Beiträge: 19
steve468 befindet sich auf einem aufstrebenden Ast
Standard

Hallo Uagnet,

für Step1 könntest Du eine Braekeven Routine nutzen und für Step 2-4 TrailingStop mit TrailingStep, dadurch wird der SL Immer nur in einen bestimmten Step hinter her gezogen.

Gruß Steve
  #3 (permalink)  
Alt 25.02.14
Neues Mitglied
 
Registriert seit: Feb 2013
Beiträge: 9
uagnet befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von steve468 Beitrag anzeigen
Hallo Uagnet,

für Step1 könntest Du eine Braekeven Routine nutzen und für Step 2-4 TrailingStop mit TrailingStep, dadurch wird der SL Immer nur in einen bestimmten Step hinter her gezogen.

Gruß Steve
Hallo, vielen dank für deine Rückantwort. 2 Fragen habe ich noch zu deiner Umsetzungsvariante.

1. Breakeven Routine ? Gibt es da einen EA oder indikator oder kann ich das im MT4 eistellen ?

2. ich habe in meinem MT4 nur den Standard Trailingstop ! Gibt es wo einen Trailingstop mit trailingstep ? habe auch schon mal im Web danach gesucht aber leider keinen gefunden.

Sorry für meine Unwissenheit :-(
  #4 (permalink)  
Alt 25.02.14
Neues Mitglied
 
Registriert seit: Mar 2013
Beiträge: 19
steve468 befindet sich auf einem aufstrebenden Ast
Standard

Also für Breakeven wirst Du sicher im Netz was finden.
Sieht in etwa so aus :

void MoveBreakEven()
{
int cnt,total=OrdersTotal();
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
if(OrderType()<=OP_SELL&&OrderSymbol()==Symbol()&& OrderMagicNumber()==MagicNumber)
{
if(OrderType()==OP_BUY)
{
if(BreakEven>0)
{
if(NormalizeDouble((Bid-OrderOpenPrice()),Digits)>BreakEven*Point)
{
if(NormalizeDouble((OrderStopLoss()-OrderOpenPrice()),Digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(OrderOpenPrice()+0*Point,Digits),OrderTak eProfit(),0,Blue);
return(0);
}
}
}
}
else
{
if(BreakEven>0)
{
if(NormalizeDouble((OrderOpenPrice()-Ask),Digits)>BreakEven*Point)
{
if(NormalizeDouble((OrderOpenPrice()-OrderStopLoss()),Digits)<0)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(OrderOpenPrice()-0*Point,Digits),OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
}

Und für TrailingStep etwa so:

void TrailingPositions(int trailingStopLoss, int trailingStep, int magicNumber) {
double bid = 0;
double ask = 0;
for (int i = 0; i < OrdersTotal(); i++) {
if (!(OrderSelect(i, SELECT_BY_POS)) || OrderSymbol() != Symbol() || OrderMagicNumber() != magicNumber) {
continue;
}

bid = MarketInfo(OrderSymbol(), MODE_BID);
ask = MarketInfo(OrderSymbol(), MODE_ASK);

if (OrderType() == OP_BUY) {
if (bid - OrderOpenPrice() > trailingStopLoss * Point) {
if (OrderStopLoss() < bid - (trailingStopLoss + trailingStep) * Point || OrderStopLoss() == 0) {
OrderModify(OrderTicket(), OrderOpenPrice(), bid - trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration());

}
}
} else if (OrderType() == OP_SELL) {
if (OrderOpenPrice() - ask > trailingStopLoss * Point) {
if (OrderStopLoss() > ask + (trailingStopLoss + trailingStep) * Point || OrderStopLoss() == 0) {
OrderModify(OrderTicket(), OrderOpenPrice(), ask + trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration());

}
}
}
}
}

Falls Du hilfe brauchst, dann gib bescheid.
  #5 (permalink)  
Alt 25.02.14
Neues Mitglied
 
Registriert seit: Feb 2013
Beiträge: 9
uagnet befindet sich auf einem aufstrebenden Ast
Standard

danke dir, werde das gleich mal testen
  #6 (permalink)  
Alt 10.04.14
Neues Mitglied
 
Registriert seit: Apr 2014
Beiträge: 2
madmike90 befindet sich auf einem aufstrebenden Ast
Standard

Hallo, ich habe mir auch mal die Freiheit genommen den Trailing Stop auszuprobieren. Ich bekomme aber immer die Warnung :


"return value of 'OrderModify' should be checked"
bei der Zeile:

OrderModify(OrderTicket(), OrderOpenPrice(), bid - trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration());

sowie

OrderModify(OrderTicket(), OrderOpenPrice(), ask + trailingStopLoss * Point, OrderTakeProfit(), OrderExpiration());



kann mir jemand einen Tipp geben wie ich das beheben kann?

liegt das vielleicht an der neuen Version des MetaEditors?

vielen Dank schon mal
mike
  #7 (permalink)  
Alt 10.04.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

bool result;

result = OrderModify...

result = OrderModify...
  #8 (permalink)  
Alt 10.04.14
Neues Mitglied
 
Registriert seit: Apr 2014
Beiträge: 2
madmike90 befindet sich auf einem aufstrebenden Ast
Standard

klasse! danke für die schnelle Antwort
Thema geschlossen

Lesezeichen

Stichworte
ea, expert adviosor, mql4, programmierung, programmierung metatrader, trailing stop

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 15:06 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.
-----------------------------------------------------------------------------------------------------------------------------