Systemhandel

Strategie für mehr Trades nach Break Even – Expert Advisor für MetaTrader 4
MetaTrader4
Strategie für mehr Trades nach Break Even – Expert Advisor für MetaTrader 4

Hallo Trader-Kollegen! Heute möchte ich euch eine spannende Strategie vorstellen, die es euch ermöglicht, nach einem Break Even noch mehr Trades zu generieren. Im Mittelpunkt steht dabei unser kleiner Expert Advisor (EA), der eine praktische Bestellzählfunktion integriert hat. Die Bestellzählfunktion im Detail Die Meisterleistung dieses kleinen EAs liegt in der Funktion zur Zählung der offenen Orders: int OrdersCounter()   {    int counter=0; //---    for(int i=OrdersTotal()-1; i>=0; i--)       if(OrderSelect(i,SELECT_BY_POS))          if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) // Prüfen, ob die Order von diesem EA geöffnet wurde            { //--- Überprüfen, ob Break Even erfolgt ist    /* Für Käufe gilt: StopLoss muss gleich oder über dem Eröffnungspreis liegen. Diese Implementierung eignet sich nicht für Pending Orders, sondern nur für Käufe und Verkäufe*/             double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();             if(!XBreakeven) // Wenn nur Break Even und kein Trailing Stop aktiv ist               {                counter++; // Zähle die Position               }            }    return counter;   } Wir zählen also nur die Orders, die KEINEN StopLoss über oder gleich ihrem Eröffnungspreis für Käufe bzw. unter ihrem Eröffnungspreis für Verkäufe haben. Kurz gesagt, wir zählen alle Orders, bei denen kein Break Even erreicht wurde oder der Trailing Stop nicht den Eröffnungspreis schützt. double XBreakeven = OrderType()==OP_BUY ? OrderStopLoss() >= OrderOpenPrice() : OrderStopLoss() <= OrderOpenPrice();             if(!XBreakeven) // Wenn nur Break Even und kein Trailing Stop aktiv ist Durch diese Zählung erstellen wir einen Zähler, der den Wert zurückgibt, den wir nutzen, um unsere maximale Position zu begrenzen. In diesem Fall haben wir sie auf 1 Order gleichzeitig festgelegt.    if(OrdersCounter()<MaximumOrders) Immer wenn ein Break Even eintritt, ignoriert diese Funktion die Zählung. Da wir in diesem Beispiel nur eine Position hatten, wird sie null zurückgeben, und zack – wir öffnen eine weitere Verkaufsorder, und der Prozess geht weiter. Das wäre auch nicht möglich, wenn ich nicht eine Break Even-Funktion erstellt hätte. void BreakEvenFunction()   { //---    for(int i=OrdersTotal()-1; i>=0; i--)       if(OrderSelect(i,SELECT_BY_POS))          if(OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol())            { // Für Käufe: Bid über dem Eröffnungspreis + Break Even Pips, umgekehrt für Verkäufe             double xHybrid = OrderType()==OP_BUY ? (Bid>OrderOpenPrice()+BreakevenPips*_Point && OrderStopLoss()<OrderOpenPrice()) : (Ask<OrderOpenPrice()-BreakevenPips*_Point && OrderStopLoss()>OrderOpenPrice());             /* Für Käufe gilt: StopLoss muss gleich oder über dem Eröffnungspreis liegen, umgekehrt für Verkäufe */             if(xHybrid)               {                bool modfy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,clrNONE);               }            }   } Habt ihr Lust, es auszuprobieren?

2021.07.13
Validate Me Framework – Der perfekte Trading-Roboter für MetaTrader 4
MetaTrader4
Validate Me Framework – Der perfekte Trading-Roboter für MetaTrader 4

Das Validate Me Framework In diesem Artikel möchte ich meine Sichtweise teilen, wie man einen Trading-Roboter programmiert, der mithilfe von Markt-Kauf- und Verkaufsaufträgen die Marktvalidierung meistert. Dieses Framework kümmert sich um die Prüfungen, die ein Trading-Roboter bestehen muss, bevor er auf dem Markt veröffentlicht wird. Dies dient zu Bildungszwecken. Codebeispiel für einen Kaufauftrag ask=MarketInfo(_Symbol,MODE_ASK);          bid=MarketInfo(_Symbol,MODE_BID);          sl=(OrderStopPips==0)?0.0:bid-ExtOrderStop;          if(sl!=0.0 && ExtOrderStop<StopLevel)             sl=bid-StopLevel;          tp=(OrderTakePips==0)?0.0:ask+ExtOrderTake;          if(tp!=0.0 && ExtOrderTake<StopLevel)             tp=ask+StopLevel;          GetLot=CheckVolumeValue(Lots);          if(!CheckStopLoss_Takeprofit(OP_BUY,ExtOrderStop,ExtOrderTake))             return;          if(CheckMoneyForTrade(GetLot,OP_BUY))             order=OrderSend(_Symbol,OP_BUY,GetLot,ask,10,sl,tp,"FrameWork",678,0,Blue); Eingaben für das Framework

2021.06.22
Duale Stop-Loss-Strategien: Versteckter und regulärer Stop-Loss für MetaTrader 4
MetaTrader4
Duale Stop-Loss-Strategien: Versteckter und regulärer Stop-Loss für MetaTrader 4

Wenn du eine neue Handelsposition eröffnest, ist Geldmanagement meist das erste, was du im Kopf haben solltest. Eine gängige Methode, um dein Risiko zu kontrollieren und dein Kapital zu managen, ist es, einen bestimmten Marginverlust für deine Positionen festzulegen. Viele Trader glauben, dass, sobald sie einen Stop-Loss (oder auch Take Profit) für eine Position setzen und diesen Preis im Positionsänderungsfenster eingeben, der Broker verpflichtet ist, ihre Position sofort zu schließen, sobald der Preis dieses Limit erreicht. Aber das ist so nicht ganz richtig. Es hängt von der Art des Kontos ab, das du bei deinem Broker hast. Es ist wichtig zu wissen, dass bei ECN-Konten der Broker deine Position zum ersten verfügbaren Preis schließt, nachdem der Preis dein Limit erreicht hat. Wenn du damit nicht einverstanden bist, schau dir deine Handelsgeschichte genauer an. Du wirst feststellen, dass einige deiner Aufträge zu einem anderen Preis geschlossen werden, als du festgelegt hast, was zu höheren Verlusten oder auch unerwarteten Gewinnen führen kann. Das nennt man SLIPPAGE. Darüber hinaus glauben manche Trader, dass der Verlustlimit nicht genau für den Broker angegeben werden sollte. Der VERSTECKTE Stop-Loss ist aus dieser Denkweise entstanden, und dieser Roboter ist genau für diesen Zweck konzipiert. Ab jetzt kannst du sowohl VERSTECKTE als auch REGULÄRE Stop-Loss gemeinsam nutzen. Du kannst wie gewohnt ganz einfach einen REGULÄREN Stop-Loss für deine Positionen setzen. Es spielt keine Rolle, ob du mit Robotern handelst oder manuell tradest. Starte einfach diesen Roboter in einem neuen, separaten Chart (beliebig), um deine gesamten Positionen zu verwalten. Der Eingabewert bestimmt den Abstand zwischen dem VERSTECKTEN und dem REGULÄREN Stop-Loss. Beachte, dass dieser Wert in Punkten und nicht in Pips definiert ist.

2021.04.23
Scalper-Assistent v1.0 – Dein perfekter Trading-Partner für MetaTrader 4
MetaTrader4
Scalper-Assistent v1.0 – Dein perfekter Trading-Partner für MetaTrader 4

Scalping gehört zu den beliebtesten Handelsstrategien, die die meisten Trader mindestens einmal ausprobiert haben. Da ein Scalper in der Regel mehr als 10 Trades pro Tag tätigt, kann das Setzen von Stop Loss und Take Profit für jeden einzelnen Trade ganz schön lästig werden. Wenn deine Strategie darin besteht, auf mehreren Finanzinstrumenten zu handeln und zudem den Break Even zu erreichen, kann die Verwaltung all dieser Aufträge schnell zur Geduldsprobe werden und oft mit Fehlern einhergehen. Gerade wenn du in kürzeren Zeitrahmen und über mehrere Währungspaare tradest, kann es passieren, dass sich der Preis rasant bewegt, während du dir gerade eine Tasse Tee holst. Dann verpasst du womöglich die Chance, deine Position ins Break Even zu bringen. Die Vorstellung, dass eine schnelle Kurskorrektur einen profitablen Trade in einen Verlust verwandeln könnte, schwirrt immer im Hinterkopf mit. Mit diesem Expert Advisor kannst du ganz einfach den Betrag für Stop Loss und Take Profit festlegen. Direkt nach dem Öffnen eines Trades werden die Anfangswerte automatisch gesetzt. Wenn sich der Preis ausreichend in die gewünschte Richtung bewegt, wird der Trade risikofrei oder auf Break Even gesetzt. Alle Eingabewerte werden in Punkten (nicht in Pips) angegeben. extern double WhenToMoveToBE; // Du legst fest, wie viele Punkte der Preis vom Einstiegspunkt entfernt sein muss, damit der EA den Auftrag auf Break Even setzen kann. extern double BEAmount; // Hier legst du den Abstand des Stop Loss zum Einstiegspunkt fest.

2021.04.23
AutoTrading Scheduler: Der perfekte Helfer für MetaTrader 4 und 5
MetaTrader4
AutoTrading Scheduler: Der perfekte Helfer für MetaTrader 4 und 5

Herzlich willkommen, Trader-Kollegen! Heute möchte ich euch einen ganz besonderen Expert Advisor vorstellen: den AutoTrading Scheduler für MetaTrader 4 und 5 von EarnForex.com. Mit dem AutoTrading Scheduler könnt ihr die Zeiträume steuern, in denen das AutoTrading in eurem MetaTrader aktiviert oder deaktiviert ist. Das bedeutet, ihr habt die volle Kontrolle darüber, wann eure Handelsstrategien zum Einsatz kommen. Ihr könnt individuelle Zeitfenster für jeden Wochentag festlegen. Dadurch wird das AutoTrading außerhalb dieser festgelegten Zeiten automatisch deaktiviert. So vermeidet ihr unerwünschte Handelsaktivitäten während unpassender Marktzeiten. Zusätzlich hat der Scheduler die Möglichkeit, alle offenen Positionen und Pending Orders zu schließen, bevor das AutoTrading deaktiviert wird. Das ist besonders praktisch, wenn ihr sicherstellen möchtet, dass ihr keine offenen Trades in einer unkontrollierten Marktphase lasst. Kontrollierte Handelszeiten: Legt fest, wann euer Trading aktiv sein soll. Automatisches Deaktivieren: Verhindert ungewollte Trades außerhalb der festgelegten Zeiten. Schließen von Positionen: Sorgt dafür, dass alle Trades vor der Deaktivierung geschlossen werden. Wenn ihr also auf der Suche nach einer effizienten Möglichkeit seid, euer Trading zu automatisieren und gleichzeitig die Kontrolle zu behalten, dann ist der AutoTrading Scheduler genau das richtige Tool für euch!

2021.04.01
Orders schließen: Gewinnziele erreichen oder Verluste begrenzen mit MetaTrader 4
MetaTrader4
Orders schließen: Gewinnziele erreichen oder Verluste begrenzen mit MetaTrader 4

In der Welt des Tradings ist es entscheidend, die Kontrolle über unsere Positionen zu behalten. Ein hilfreiches Tool, das dabei unterstützen kann, ist dieser Expert Advisor (EA). Er hilft uns, Orders entweder bei Erreichen des Gewinnziels oder beim Erreichen der Verlustgrenze automatisch zu schließen. Der EA benötigt drei Eingaben: Gewinnziel Verlustgrenze Magic Number extern    double         inTargetProfitMoney     = 10;       //Gewinnziel in Euro extern    double         inCutLossMoney          = 0.0      //Verlustgrenze in Euro extern    int            inMagicNumber           = 0        //Magic Number Wenn dieser EA ausgeführt wird, wird zunächst die Funktion OnInit() aufgerufen. Hier überprüfen wir die Eingaben und initialisieren die Variablen. int OnInit()   { //---    if(inTargetProfitMoney <= 0)      {       Alert("Ungültige Eingabe");       return(INIT_PARAMETERS_INCORRECT);      }    inCutLossMoney = MathAbs(inCutLossMoney) * -1; //---    return(INIT_SUCCEEDED);   } Bei jeder Preisbewegung (Tick) wird dann die Funktion OnTick() aufgerufen. void OnTick()   { //---    double   tFloating = 0.0;    int tOrder  = OrdersTotal();    for(int i=tOrder-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber)            {             tFloating   += OrderProfit()+OrderCommission() + OrderSwap();            }         }      }    if(tFloating >= inTargetProfitMoney || (tFloating <= inCutLossMoney && inCutLossMoney < 0))      {       fCloseAllOrders();      }   } In der OnTick-Funktion wird der gesamte Gewinn oder Verlust berechnet. Wenn das Ziel erreicht oder die Verlustgrenze überschritten wird, schließt der EA alle entsprechenden Orders. void fCloseAllOrders()   {    double   priceClose = 0.0;    int tOrders = OrdersTotal();    for(int i=tOrders-1; i>=0; i--)      {       if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))         {          if(OrderMagicNumber() == inMagicNumber && (OrderType() == OP_BUY || OrderType() == OP_SELL))            {             priceClose = (OrderType()==OP_BUY)?MarketInfo(OrderSymbol(), MODE_BID):MarketInfo(OrderSymbol(), MODE_ASK);             if(!OrderClose(OrderTicket(), OrderLots(), priceClose, slippage, clrGold))               {               Print("WARNUNG: Schließen fehlgeschlagen");               }            }         }      }   } Für detailliertere Informationen und den Austausch von MQL4-Code-Bildungen, schau doch mal in unseren Telegram-Kanal vorbei!

2021.03.31
Trailing Stop im MetaTrader 4: So sichern Sie Ihre Gewinne ab
MetaTrader4
Trailing Stop im MetaTrader 4: So sichern Sie Ihre Gewinne ab

Ein Trailing Stop ist ein äußerst nützliches Werkzeug, um beim Trading Gewinne abzusichern. Er verschiebt den Stop-Loss automatisch in den Gewinnbereich und hilft so, Ihre Positionen abzusichern, während Sie gleichzeitig von weiteren Kursgewinnen profitieren können. In diesem Artikel zeigen wir Ihnen, wie Sie die entsprechenden Parameter für den Trailing Stop im MetaTrader 4 festlegen können. input    bool     isTrailingStop = true;  // Trailing Stop aktivieren input    int      trailingStart  = 15;    // Trailing Start (Pips) input    int      trailingStep   = 5;    // Trailing Schritt (Pips) input    int      MagicNumber = 0;        // Magic Number Globale Variable // Globale Variable double   myPoint    = 0.0; Wenn wir diesen Expert Advisor (EA) starten, wird die OnInit()-Funktion als Erstes ausgeführt. In dieser Funktion validieren und initialisieren wir die Eingangsvariablen. int OnInit()   {       if (isTrailingStop && trailingStart <= 0){       Alert ("Parameter sind inkorrekt");       return(INIT_PARAMETERS_INCORRECT);    }       myPoint     = GetPipPoint(Symbol());       return(INIT_SUCCEEDED);   } Jedes Mal, wenn eine Preisbewegung (Tick) im Chart auftritt, wird die OnTick()-Funktion aufgerufen. Innerhalb dieser Funktion wird die setTrailingStop()-Funktion aufgerufen. void OnTick()   { //---    setTrailingStop(MagicNumber);      } Funktion setTrailingStop() void setTrailingStop(int magicNumber=0){    if (isTrailingStop==false) return;       int      tOrder = 0;    string   pair = "";    double   sl = 0.0, tp = 0.0;       pair = Symbol();       tOrder = OrdersTotal();    for (int i=tOrder-1; i>=0; i--){       bool hrsSelect = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);       if (OrderMagicNumber() == magicNumber && StringFind(OrderSymbol(), pair, 0) == 0 ){          if (OrderType() == OP_BUY){             if ( (Bid - (trailingStart * myPoint)) >= OrderOpenPrice()                   && (Bid - ((trailingStart+trailingStep) * myPoint) >= OrderStopLoss() )                 ){                sl = NormalizeDouble(Bid - (trailingStart * myPoint), Digits());                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " konnte SL nicht aktualisieren");                }             }          }                   if (OrderType() == OP_SELL){             if ( (Ask + (trailingStart * myPoint)) <= OrderOpenPrice()                   && ( (Ask + ((trailingStart+trailingStep) * myPoint) <= OrderStopLoss() ) || OrderStopLoss() == 0.0)                )             {                sl = NormalizeDouble(Ask + (trailingStart * myPoint), Digits() );                if (!OrderModify(OrderTicket(), OrderOpenPrice(), sl, OrderTakeProfit(), 0, clrBlue)){                   Print ("#", OrderTicket(), " konnte SL nicht aktualisieren");                }             }          }       } // Ende der Überprüfung des MagicNumbers    }// Ende der Schleife } Eine weitere wichtige Funktion, die benötigt wird, ist GetPipPoint(). // Funktion GetPipPoint double GetPipPoint(string pair) {    double point= 0.0;    int digits = (int) MarketInfo(pair, MODE_DIGITS);    if(digits == 2 || digits== 3) point= 0.01;    else if(digits== 4 || digits== 5) point= 0.0001;    return(point); } Wenn Sie Fragen haben, hinterlassen Sie bitte einen Kommentar oder treten Sie unserer Gruppe bei, um sich mit anderen Tradern auszutauschen. Sie können uns auch auf t.me/codeMQL finden. Wir bieten auch die SignalForex App an. Unterstützen Sie uns, indem Sie die SignalForex App herunterladen und weiterhin nutzen, um Ihre Trading-Ergebnisse zu verbessern. Jetzt herunterladen

2021.03.30
Erste Vorherige 1 2 3 4 5 6 7 8 9 10 11 Nächste Letzte