Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Expert-Advisors

Expert-Advisors Expert-Advisors für Metatrader 4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4972
Beiträge: 43246
Benutzer: 7.216
Aktive Benutzer: 84
Links: 84
Wir begrüßen unseren neuesten Benutzer: bb1107
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Tagen
- bb1107
vor einer Woche
- rg-trader
vor 2 Wochen
- toshistyle
vor 2 Wochen
- Robin
vor 3 Wochen
- mMmaanu

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

Empfehlungen

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 20.11.13
Neues Mitglied
 
Registriert seit: Nov 2013
Beiträge: 1
soundslikeTomek befindet sich auf einem aufstrebenden Ast
Standard "Trailing buy limit"?

Hi,
dies ist mein erster Post hier, deshalb entschuldigt bitte falls ich etwas anfängermäßig rüber komme

Ich habe vor einer Weile angefangen mit mt4 bitcoins zu handeln was mich zu folgender Frage brachte:

Gibt es ein EA, der ähnlich dem trailing stop ein "trailing buy limit" erzeugt, also das buylimit immer eine gewisse Anzahl von pips (bzw. %vom Kurs oder EMA abhängig) mit nach unten zieht wenn der Kurs fällt? Um dann bei steigendem Kurs, also überschreiten dieses Limits zu kaufen und ein vordefiniertes trailingStoploss zu erzeugen. Die ganze Geschichte würde dann umgekehrt laufen.
Könnte mir das gut als eine Art schleife vorstellen, dass der Verkaufskurs für den nächsten Durchlauf wieder als "trailing buy limit" gilt.

Vieleicht gibt es so ein mitlaufendes "trailing buy limit" schon aber ich konnte nichts finden.

Wäre schön wenn ihr mir weiter helfen könntet.

Gruß
Tomek
  #2 (permalink)  
Alt 21.11.13
Mitglied
 
Registriert seit: Sep 2012
Beiträge: 224
pako befindet sich auf einem aufstrebenden Ast
Standard

Code:
if( NormalizeDouble( OrderOpenPrice() - Ask - Offset*Point, Digits ) > 0.0 )
       if(!OrderModify(OrderTicket(), NormalizeDouble( Ask+Offset*Point, Digits ), SL, TP, 0))
        Alert(" MODIFY BUYSTOP ERROR", GetLastError());
so ähnlich

Code:
//+----------------------------------------------------------------------------+
void TrailingOrders() 
{
    double di, pa, pb, pp, sl, tp;
    pp=MarketInfo(OrderSymbol(), MODE_POINT);
    if (OrderType()==OP_SELLLIMIT)
     {
       pa=MarketInfo(OrderSymbol(), MODE_BID);
       if (OrderOpenPrice()-pa>(TrailingStop+TrailingStep-1)*pp) 
         {
          di=OrderOpenPrice()-pa-TrailingStop*pp;
           if (OrderStopLoss()  >0) sl=OrderStopLoss()  -di; else sl=0;
           if (OrderTakeProfit()>0) tp=OrderTakeProfit()-di; else tp=0;
           ModifyOrder(pa+TrailingStop*pp, sl, tp);
         }
     }
  if (OrderType()==OP_BUYLIMIT) 
   {
    pb=MarketInfo(OrderSymbol(), MODE_ASK);
    if (pb-OrderOpenPrice()>(TrailingStop+TrailingStep-1)*pp) 
      {
        di=pb-OrderOpenPrice()-TrailingStop*pp;
         if (OrderStopLoss()  >0) sl=OrderStopLoss()  +di; else sl=0;
         if (OrderTakeProfit()>0) tp=OrderTakeProfit()+di; else tp=0;
        ModifyOrder(pb-TrailingStop*pp, sl, tp);
      }
   }
}
//+------------------------------------------------------------------+

Geändert von pako (21.11.13 um 22:11 Uhr)
  #3 (permalink)  
Alt 22.11.13
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.732
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Hier sollte für einen Anfänger nicht unerwähnt bleiben, dass ohne vorheriges
OrderSelect() nichts geht.
Desweiteren würde der Code nur mit einem 4-Digit-Broker sauber funktionieren. In der Regel werden die Werte in den Variablen in F7 für SL, TP, TrailingStop, TrailingStep etc., immer so angegeben wie gewöhnlich, d.h. 20 Pips sollen dann auch 20 Pips sein. Unter Benutzung eines 5-Digit-Brokers wären das aber dann nur 2 Pips und das ist erstens sicher so nicht gewollt und zweitens kann es Probleme mit dem STOPLEVEL geben, welches in der Erromeldung "Invalid SL/TP" münden würde.

Deshalb muß unbedingt, am besten in der init()-Funktion, folgendes stehen:

multiplier = 1;
digit = MarketInfo(Symbol(), MODE_DIGITS);
if (digit == 3 || digit == 5) multiplier = 10;

//als Beispiel

TrailingStop *= multiplier;

Und dann kann der angepaßte Pipwert für z.B. TrailingStop weiter benutzt werden.

traderdoc
Thema geschlossen

Lesezeichen

Stichworte
bitcoin, bitcoin ea, bitcoin expert advisor, bitcoins, bitcoins ea, bitcoins expert advisor, ea, expert advisor, trailing buy limit, trailingstop

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