Systemhandel

Multi Arbitration 1.000 - Dein Trading-Assistent für MetaTrader 5
MetaTrader5
Multi Arbitration 1.000 - Dein Trading-Assistent für MetaTrader 5

Kaufe ein Wertpapier (öffne BUY-Positionen) zu einem niedrigeren Preis und verkaufe (öffne SELL-Positionen) zu einem höheren Preis. In der Version 1.000 handelt der Expert Advisor ausschließlich mit einem Symbol (Parameter "Symbol" in den Eingabeparametern). Grundprinzip zum Öffnen von Positionen: Wenn der Gewinn aller BUY-Positionen geringer ist als der Gewinn aller SELL-Positionen, können wir daraus schließen, dass der aktuelle Trend nach unten zeigt und eine SELL-Position eröffnet werden sollte. Wenn der Gewinn aller SELL-Positionen geringer ist als der Gewinn aller BUY-Positionen, deutet dies darauf hin, dass der aktuelle Trend nach oben zeigt und eine BUY-Position eröffnet werden sollte.       if(profit_buys<profit_sells) // Trend abwärts          m_trade.Buy(m_symbol.LotsMin(),m_symbol.Name());       else if(profit_sells<profit_buys) // Trend aufwärts       m_trade.Sell(m_symbol.LotsMin(),m_symbol.Name());       else if(profit_buys==0.0 && profit_sells==0.0)          m_trade.Buy(m_symbol.LotsMin(),m_symbol.Name()); Testergebnisse auf EURUSD, H4: Während langfristiger Trends steigt die Depotbelastung erheblich an. Dieses Problem wurde bisher noch nicht gelöst.

2017.11.03
SaveTicks: Der perfekte Helfer für MetaTrader 5
MetaTrader5
SaveTicks: Der perfekte Helfer für MetaTrader 5

Die Software SaveTicks ist ein nützliches Tool, das speziell für die Erfassung von Tick-Kursen in den Formaten Text (CSV) und Binär (BIN) entwickelt wurde. Die Dateien werden im MQL5\Files Ordner gespeichert. Die Tick-Daten werden mit einer konstanten Abtastrate aufgezeichnet, um eine unkomplizierte Analyse der Ticks in mathematischen Programmen zu ermöglichen. Eingabeparameter Aufzeichnungsintervall - der Zeitraum der Tick-Aufzeichnung in Millisekunden. Auswahl der Symbole - Methode zur Auswahl der Symbole für die Aufzeichnung. Alle Symbole - Aufzeichnung aller vom Broker bereitgestellten Symbole. MarketWatch-Symbole - Aufzeichnung aller Symbole aus der Marktbeobachtung. Liste der Symbole aus Datei laden - die Liste der Symbole wird aus einer Datei geladen. Dateiname mit allen Symbolnamen - der Name der Datei mit der Liste der Symbole, z.B. "InputSymbolList.txt". Aufzeichnungsformat - CSV oder Binär. Zeitformat - Zeiteinstellung. Es kann entweder die Serverzeit oder die Computerzeit sein. Hier ein Beispiel für einen Algorithmus mit der Option "Liste der Symbole aus Datei laden": Starte den Expert Advisor mit beliebigen Parametern und entlade den EA. Die resultierende Datei "\MQL5\Files\AllSymbols_SaveTicks.txt" enthält die Namen aller vom Broker bereitgestellten Symbole. Benenne die Datei um, z.B. in "InputSymbolList.txt". Bearbeite "InputSymbolList.txt" und lasse nur die benötigten Symbole darin. Die erste Zeile sollte die Anzahl der Symbole in der Datei anzeigen. Siehe das Beispiel in der Downloadliste oben auf dieser Seite. Starte den EA erneut mit den erforderlichen Einstellungen, und er wird die Ticks für die Symbole aus der Liste aufzeichnen. Überprüfe den Ordner "\MQL5\Files\*****"; dort sollten Dateien mit Namen wie EURUSD_SaveTicks.csv vorhanden sein.

2017.11.03
Trailing Profit - Ein unverzichtbarer EA für MetaTrader 5
MetaTrader5
Trailing Profit - Ein unverzichtbarer EA für MetaTrader 5

Autor der Idee: Vitaly, Autor des MQL5-Codes: barabashkakvn.Der Expert Advisor (EA) verwaltet alle offenen Positionen im Terminal – egal auf welchen Symbolen und mit welchen Magic Numbers. Wenn der Gesamtgewinn noch nicht das minimum_profit erreicht hat, bleibt der EA inaktiv.Erreicht der Gesamtgewinn jedoch minimum_profit, setzt der EA einen prozentualen Gewinnrückgang und aktiviert das Tracking.Der Parameter percent_of_profit wird in Prozent angegeben. Zum Beispiel: Wenn minimum_profit = 1000 und percent_of_profit = 20, und der Gesamtgewinn aller offenen Positionen erreicht 1000. Fällt der Gewinn auf 800 (1000 - 20%), werden die Positionen geschlossen. Steigt der Gewinn weiter, beispielsweise auf 2000, beträgt der zulässige Rückgang 400 (2000 - 20%). Das bedeutet, dass alle Positionen mit einem Gesamtgewinn von 1600 geschlossen werden. Es gibt kein festes Rückgangslimit, da ich es nicht für sinnvoll halte, absolute Werte zu verwenden.Theoretisch ist es möglich, den Prozentsatz auf 0 zu setzen, was als totaler Take Profit fungiert. Ein Wert von 100 würde als Breakeven fungieren (vergiss nicht, dass beim Schließen einiger Aufträge andere in den Verlustbereich geraten können).Achtung! Der Expert Advisor arbeitet mit einem 3-Sekunden-Intervall:void OnTick()   { //--- erlaubt Arbeiten alle drei Sekunden    static datetime prev_time=0;    datetime time_current=TimeCurrent();    if(time_current-prev_time<3)       return;    prev_time=time_current; //--- }

2017.08.10
ExpertClor_v01: Dein zuverlässiger EA für MetaTrader 5
MetaTrader5
ExpertClor_v01: Dein zuverlässiger EA für MetaTrader 5

Ideengeber — John Smith, Entwickler des MQL5-Codes — barabashkakvn.Der Expert Advisor (EA) ExpertClor_v01 ist dein perfekter Assistent, der ausschließlich für das Schließen von Positionen konzipiert wurde:Positions werden auf Breakeven verschoben, der Stop Loss wird mithilfe des StopATR_auto-Indikators berechnet, und Positionen werden beim Schnittpunkt zweier gleitender Durchschnitte (MAs) geschlossen.Um sicherzustellen, dass der EA reibungslos funktioniert, musst du die kompilierte StopATR_auto-Indikator-Datei in den Ordner MQL5\Indicators\Downloads hinzufügen://+------------------------------------------------------------------+ //| Initialisierungsfunktion des Expert Advisors                                         | //+------------------------------------------------------------------+ int OnInit()   { //--- ... //--- Handle des Indikators iCustom erstellen    handle_iCustom=iCustom(m_symbol.Name(),TimeFrame,"Downloads\StopATR_auto",                           CountBarsForAverage,                           Target                           ); Obwohl dieser Expert Advisor nur Positionen schließt, habe ich einen kleinen Code hinzugefügt, um Positionen zu eröffnen://+------------------------------------------------------------------+ //| Tick-Funktion des Expert Advisors                                             | //+------------------------------------------------------------------+ void OnTick()   { //---    if(MQLInfoInteger(MQL_DEBUG) || MQLInfoInteger(MQL_PROFILER) ||       MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION))      {       static long counter=-50;       static bool trade_buy=true;       if(counter==0)          m_trade.Buy(m_symbol.LotsMin());       else if(counter%1500==0)         {          if(RefreshRates())            {             if(trade_buy)               {                OpenBuy(m_symbol.LotsMin());                trade_buy=false;               }             else               {                OpenSell(m_symbol.LotsMin());                trade_buy=true;               }            }          else             counter=counter-9;         }       counter++;      } //--- Diese Funktion ist nur aktiv, wenn du den Expert Advisor testest oder optimierst. Nach jeweils 1.500 Ticks wird ein Kauf oder Verkauf eröffnet.

2017.08.10
Der perfekte Expert Advisor: RSI, Stochastic und MA für MetaTrader 5
MetaTrader5
Der perfekte Expert Advisor: RSI, Stochastic und MA für MetaTrader 5

Die Autorin der Idee ist Oksana Berenko, und der Autor des mq5-Codes ist barabashkakvn.Dieser Expert Advisor nutzt drei Indikatoren: MA (150), RSI (3) mit den Levels 80 und 20, sowie Stochastic (6, 3, 3) mit den Levels 70 und 30. Du kannst diese Parameter ganz nach deinen Wünschen anpassen.1. Die Handelsrichtung wird anhand des MA (Moving Average) bestimmt. Es wird immer nur ein Trade in eine Richtung eröffnet.Wenn Bid > MA, dann in Kaufrichtung denken.Wenn Ask < MA, dann in Verkaufsrichtung denken.2. Der Positionseintritt erfolgt, wenn die Bedingungen für RSI und Stochastic erfüllt sind.Kaufe, wenn RSI und Stochastic unter dem unteren Level sind, also RSI < 20 und Stochastic < 30.Verkaufe, wenn RSI und Stochastic über dem oberen Level sind, also RSI > 80 und Stochastic > 70.3. Der Ausstieg basiert auf dem Stochastic.Mit Gewinnpunkten aussteigen.(Trailing Stop = 0) Wenn der Trailing Stop auf null gesetzt ist, schließe eine Position, sobald das gegenteilige Stochastic-Level erreicht ist, vorausgesetzt der Trade hat einen gewissen Gewinn in Punkten.b) Schließe BUY, wenn Stochastic > 70 und OpenPrice = Ask(Trailing Stop > 0) Wenn ein Trailing Stop-Wert angegeben ist, wird der Stop Loss beim Erreichen des gegenteiligen Stochastic-Levels bei jeder neuen Kerze nachgezogen, wobei der angegebene Abstand zum Preis beibehalten wird. Beachte, dass in diesem Fall eine Position mit Verlust geschlossen werden kann, da der Stop Loss manchmal nicht sofort auf das Break-even-Niveau verschoben wird.Schließen mit Verlust in Punkten.(allow Loss = 0) Wenn 'allow Loss' auf 0 gesetzt ist, schließe eine Position, sobald das gegenteilige Stochastic-Level erreicht ist, vorausgesetzt der Trade hat einen gewissen Verlust in Punkten.b) Schließe BUY, wenn Stochastic > 70 und OpenPrice > Bids) Schließe SELL, wenn Stochastic < 30 und OpenPrice < Ask(allow Loss > 0) Wenn 'allow Loss' angegeben ist und wir den Bereich für den Positionseintritt gemäß Stochastic verlassen haben, während der Trade einen Verlust in Punkten oder mehr hat, wird die Position geschlossen.b) Schließe BUY, wenn Stochastic > 30 und OpenPrice - Bid >= allow Loss in Punktenb) Schließe SELL, wenn Stochastic < 70 und Ask - OpenPrice >= allow Loss in PunktenTest auf EURUSD, H1:

2017.08.10
Nevalyashka_BreakdownLevel: Dein Expert Advisor für MetaTrader 5
MetaTrader5
Nevalyashka_BreakdownLevel: Dein Expert Advisor für MetaTrader 5

Ideengeber — Vladimir Khlystov, Autor des MQL5-Codes — barabashkakvn. Die Trading-Strategie des Nevalyashka_EA beruht auf dem Durchbruch von Hochs und Tiefs innerhalb eines festgelegten Zeitraums. Um verlustbringende Positionen auszugleichen, verwendet der EA die Nevalyashka-Strategie in Kombination mit einer Martingale-Technik zur Erhöhung des Lot-Volumens. Der EA berechnet die Hoch- und Tiefpreise im angegebenen Zeitintervall von Startzeit bis Endzeit: Wenn der Preis das Hoch dieses Zeitraums übersteigt, wird eine BUY-Position eröffnet. Liegt der Preis unter dem Tief, wird eine SELL-Position eröffnet. Der StopLoss wird an der gegenüberliegenden Grenze des Zeitraums gesetzt, also beim Tiefpreis für BUY-Positionen und beim Hochpreis für SELL-Positionen. Der TakeProfit wird basierend auf der Höhe des Kontrollzeitraums festgelegt. Ist die Option Zeit schließen auf wahr gesetzt, wird der Parameter Zeit schließen (Zeit zum Schließen aller Positionen) aktiv. Für die Parameter Startzeit, Endzeit und Zeit schließen werden nur Stunden und Minuten berücksichtigt. Die Überwachung des StopLoss erfolgt in OnTradeTransaction. Wenn "DEAL_ENTRY_OUT" gefunden wird, überprüfe das Kommentarfeld des Deals. Wenn das Kommentar "sl" enthält, bedeutet das, dass der Deal durch StopLoss geschlossen wurde: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(deal_symbol==m_symbol.Name() &amp;&amp; deal_magic==m_magic) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(deal_entry==DEAL_ENTRY_OUT) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MqlDateTime str1; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeToStruct(TimeCurrent(),str1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- es besteht die Möglichkeit, dass dies eine Schließung beim TakeProfit war &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(StringFind(deal_comment,"tp",0)!=-1 || deal_profit&gt;=0.0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TradeDey=str1.day; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- es besteht die Möglichkeit, dass dies eine Schließung beim StopLoss war &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(StringFind(deal_comment,"sl",0)!=-1) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(TradeDey!=str1.day) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Print("Eine StopLoss-Schließung wurde erkannt!"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double loss=MathAbs(deal_profit/m_symbol.TickValue()/deal_volume); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(deal_type==DEAL_TYPE_SELL) // die Kaufposition wurde geschlossen &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double SL=m_symbol.Bid()+loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double TP=m_symbol.Bid()-loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double Lot=LotCheck(deal_volume*InpK_martin); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Lot==0.0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenSell(SL,TP,Lot,"Nevalyashka"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(deal_type==DEAL_TYPE_BUY) // die Verkaufsposition wurde geschlossen &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double SL=m_symbol.Ask()-loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double TP=m_symbol.Ask()+loss*m_symbol.Point(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;double Lot=LotCheck(deal_volume*InpK_martin); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(Lot==0.0) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OpenBuy(SL,TP,Lot,"Nevalyashka"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} Es wird eine Position eröffnet, die der geschlossenen Position entgegensteht (wenn der Deal-Typ "DEAL_TYPE_SELL" war, dann wurde eine BUY-Position geschlossen; "DEAL_TYPE_BUY" bedeutet, dass eine SELL-Position geschlossen wurde), mit einem erhöhten Lot, multipliziert mit K. martin. Wurde eine Position mit einem positiven Gewinn geschlossen, wartet der Expert Advisor auf den Startzeitpunkt des nächsten Zeitraums "Endzeit", und wiederholt die oben beschriebene Prozedur. Der Parameter "Kein Verlust" bedeutet, dass der StopLoss auf den Eröffnungspreis der Position verschoben wird, sobald die Hälfte des Positionsertrags erreicht ist. Beispiel für einen Test auf EURUSD, M30:

2017.08.10
DoubleZigZag: Der Trading-Assistent für MetaTrader 5
MetaTrader5
DoubleZigZag: Der Trading-Assistent für MetaTrader 5

Der Ideenentwickler ist Maksim, während der Autor des mq5-Codes barabashkakvn ist.Dieser Expert Advisor nutzt zwei ZigZag-Indikatoren zur Analyse: einen kleineren ZigZag mit den Parametern (13,5,3) und einen größeren ZigZag mit den Parametern, die mit acht multipliziert sind: (13*8,5*8,3*8).//--- Handle des Indikators iCustom erstellen &nbsp;&nbsp; handle_iCustom=iCustom(Symbol(),Period(),"Examples\ZigZag",13,5,3); //--- Wenn das Handle nicht erstellt werden kann &nbsp;&nbsp; if(handle_iCustom==INVALID_HANDLE) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- Fehlermeldung ausgeben &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintFormat("Fehler beim Erstellen des Handles des iCustom-Indikators für das Symbol %s/%s, Fehlercode %d", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Symbol(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnumToString(Period()), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- Der Indikator wird vorzeitig beendet &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(INIT_FAILED); &nbsp;&nbsp;&nbsp;&nbsp; } //--- Handle des iCustomX8-Indikators erstellen &nbsp;&nbsp; handle_iCustomX8=iCustom(Symbol(),Period(),"Examples\ZigZag",13*8,5*8,3*8); //--- Wenn das Handle nicht erstellt werden kann &nbsp;&nbsp; if(handle_iCustomX8==INVALID_HANDLE) &nbsp;&nbsp;&nbsp;&nbsp; { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- Fehlermeldung ausgeben &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintFormat("Fehler beim Erstellen des Handles des iCustomX8-Indikators für das Symbol %s/%s, Fehlercode %d", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Symbol(), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EnumToString(Period()), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetLastError()); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//--- Der Indikator wird vorzeitig beendet &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(INIT_FAILED); &nbsp;&nbsp;&nbsp;&nbsp; } Um eine Handelsentscheidung zu treffen, werden die beiden Beine des letzten Peaks des größeren ZigZags (13*8,5*8,3*8) analysiert, während die Anzahl der Peaks des kleineren ZigZags (13,5,3) in diesen beiden Beinen gezählt wird.Wenn ein Signal zum Öffnen einer BUY-Position empfangen wird, werden alle SELL-Positionen geschlossen. Umgekehrt: Wenn ein Signal zum Öffnen einer SELL-Position empfangen wird, werden alle BUY-Positionen geschlossen.Parameter des Expert Advisors:k ist das Verhältnis der Anzahl der Peaks des kleineren ZigZags in den Beinen des größeren ZigZagsk2 ist das Verhältnis der Preisunterschiede in den Peaks des größeren ZigZagsBeispiel:Der größere ZigZag (13*8,5*8,3*8) wird in Rot angezeigt, der kleinere ZigZag (13,5,3) in Gelb.Die Peaks ABC sind die Spitzen des größeren ZigZags (13*8,5*8,3*8).Die Beine AB und AC enthalten neun Peaks des kleineren ZigZags (13,5,3).Testresultate auf EURUSD,M1:

2017.08.10
Exp_XROC2_VG_X2: Das Trendfolgesystem für MetaTrader 5
MetaTrader5
Exp_XROC2_VG_X2: Das Trendfolgesystem für MetaTrader 5

Das Exp_XROC2_VG_X2 Trendfolgesystem basiert auf den Signalen, die von zwei XROC2_VG Indikatoren generiert werden. Der erste Indikator ermittelt die Richtung des langsamen Trends basierend auf der Position der Haupt- und Signal-Linien. Der zweite Indikator gibt den Moment für den Handelsbeginn an, wenn die Linien sich kreuzen oder berühren. Ein Einstiegssignal wird am Ende einer Kerze generiert, wenn die folgenden zwei Bedingungen erfüllt sind: Die Signale des schnellen und langsamen Trends stimmen überein; Der schnelle Trend hat seine Richtung geändert. EA-Eingabewerte: //+-------------------------------------------------+ //| Eingabeparameter des EA-Indikators | //+-------------------------------------------------+ input string Trade="Handelsmanagement";&nbsp;&nbsp;&nbsp;&nbsp;//+================ HANDELSMANAGEMENT ================+ input double MM=0.1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Anteil eines Deposits in einem Deal input MarginMode MMMode=LOT;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Methode zur Erkennung des Lotwerts input uint&nbsp;&nbsp;&nbsp;&nbsp;StopLoss_=1000;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Stop Loss in Punkten input uint&nbsp;&nbsp;&nbsp;&nbsp;TakeProfit_=2000;&nbsp;&nbsp;&nbsp;&nbsp;//Take Profit in Punkten input string MustTrade="Handelsberechtigungen";&nbsp;&nbsp;&nbsp;&nbsp;//+=============== HANDELSBERECHTIGUNGEN ===============+ input int&nbsp;&nbsp;&nbsp;&nbsp;Deviation_=10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Maximale Preisabweichung in Punkten input bool&nbsp;&nbsp; BuyPosOpen=true;&nbsp;&nbsp;&nbsp;&nbsp; //Erlaubnis für den Einstieg in Long-Positionen input bool&nbsp;&nbsp; SellPosOpen=true;&nbsp;&nbsp;&nbsp;&nbsp;//Erlaubnis für den Einstieg in Short-Positionen //+-------------------------------------------------+ //| Eingabeparameter des Filterindikators | //+-------------------------------------------------+ input string Filter="LANGSAMER TREND PARAMETER";&nbsp;&nbsp;&nbsp;&nbsp;//+============== TREND-PARAMETER ==============+ input ENUM_TIMEFRAMES TimeFrame=PERIOD_H6;&nbsp;&nbsp;//1 Chartzeitraum für den Trend input uint ROCPeriod1=8; input Smooth_Method MA_Method1=MODE_JJMA;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Methode der Glättung des ersten Indikators input uint Length1=5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Die Tiefe der ersten Glättung input int Phase1=15;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Der Parameter der ersten Glättung input uint ROCPeriod2=14; input Smooth_Method MA_Method2=MODE_JJMA;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Methode der Glättung des zweiten Indikators input uint Length2 = 5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Die Tiefe der zweiten Glättung input int Phase2=15;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Der Parameter der zweiten Glättung input ENUM_TYPE ROCType=MOM; input uint SignalBar=1; //Bar-Index zum Empfang des Einstiegssignals input bool&nbsp;&nbsp; BuyPosClose=true;&nbsp;&nbsp;&nbsp;&nbsp; //Erlaubnis zum Ausstieg aus Long-Positionen input bool&nbsp;&nbsp; SellPosClose=true;&nbsp;&nbsp;&nbsp;&nbsp;//Erlaubnis zum Ausstieg aus Short-Positionen //+-------------------------------------------------+ //| Eingabeparameter des Einstieg-Indikators | //+-------------------------------------------------+ input string Input="EINSTIEGSPARAMETER";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //+=============== EINSTIEGSPARAMETER ==============+ input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30;&nbsp;&nbsp;//2 Chartzeitraum für den Einstieg input uint ROCPeriod1_=8; input Smooth_Method MA_Method1_=MODE_JJMA;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Methode der Glättung des ersten Indikators input uint Length1_=5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Die Tiefe der ersten Glättung input int Phase1_=15;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Der Parameter der ersten Glättung input uint ROCPeriod2_=14; input Smooth_Method MA_Method2_=MODE_JJMA;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Methode der Glättung des zweiten Indikators input uint Length2_ = 5;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Die Tiefe der zweiten Glättung input int Phase2_=15;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Der Parameter der zweiten Glättung input ENUM_TYPE ROCType_=MOM; input uint SignalBar_=1;//Bar-Index zum Empfang eines Einstiegssignals input bool&nbsp;&nbsp; BuyPosClose_=false;&nbsp;&nbsp;&nbsp;&nbsp; //Erlaubnis zum Ausstieg aus Long-Positionen input bool&nbsp;&nbsp; SellPosClose_=false;&nbsp;&nbsp;&nbsp;&nbsp;//Erlaubnis zum Ausstieg aus Short-Positionen Die String-Variable, die den Text in den Eingabeparametern enthält, wird nur zur besseren Visualisierung des EA-Eingabewertefensters verwendet. Die XROC2_VG_HTF Indikatoren im EA dienen nur zur bequemeren Visualisierung von Trends im Strategietester; in anderen Betriebsarten sind sie inaktiv. Um den ordnungsgemäßen Betrieb des kompilierten Expert Advisors zu gewährleisten, sollten Sie die kompilierten XROC2_VG.ex5 und XROC2_VG_HTF.ex5 Indikator-Dateien in den Ordner &lt;terminal_data_folder&gt;\MQL5\Indicators einfügen. Bitte beachten Sie, dass die TradeAlgorithms.mqh Bibliotheksdatei die Verwendung von Expert Advisors mit Brokern ermöglicht, die nicht null Spread anbieten und die Möglichkeit, Stop Loss und Take Profit während der Positionsöffnung festzulegen. Weitere Varianten der Bibliothek sind unter folgendem Link verfügbar: Handelsalgorithmen. Bei den unten dargestellten Tests wurden die Standard-Eingabewerte des Expert Advisors verwendet. Stop Loss und Take Profit wurden während der Tests nicht verwendet. Abb. 1. Beispiele für Deals im Chart Testergebnisse für 2015 auf AUDUSD, langsamer Trend auf H6, Einstieg durch schnellen Trend auf M30: Abb. 2. Testergebnisse im Chart

2017.08.10
Exp_XROC2_VG_Tm: Ein leistungsstarker EA für MetaTrader 5
MetaTrader5
Exp_XROC2_VG_Tm: Ein leistungsstarker EA für MetaTrader 5

Der Exp_XROC2_VG_Digit_Tm Expert Advisor handelt basierend auf Signalen, die vom XROC2_VG Oszillator erzeugt werden. Zudem besteht die Möglichkeit, ein striktes Handelszeitfenster festzulegen. Ein Handelssignal entsteht, wenn eine Kerze schließt und sich die Farbe des Indikators ändert (die Hauptindikatorlinie hat die Signallinie gekreuzt). Es ist möglich, die Handelszeiten über die Eingabeparameter festzulegen, um in einem bestimmten Zeitrahmen zu traden: input bool&nbsp;&nbsp; TimeTrade=true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Erlaubt Handel im festgelegten Intervall input HOURS&nbsp;&nbsp;StartH=ENUM_HOUR_0;&nbsp;&nbsp;//Handelsbeginn (Stunden) input MINUTS StartM=ENUM_MINUT_0; //Handelsbeginn (Minuten) input HOURS&nbsp;&nbsp;EndH=ENUM_HOUR_23;&nbsp;&nbsp; //Handelsende (Stunden) input MINUTS EndM=ENUM_MINUT_59;&nbsp;&nbsp;//Handelsende (Minuten) Für den Handelsstart stehen zwei Variablen (Stunden und Minuten) zur Verfügung, und zwei ähnliche Variablen für das Handelsende. Die Standardeinstellungen ermöglichen es dem Expert Advisor, die gesamte Handelszeit von 0:00 bis 23:59 zu traden, wobei alle Positionen um 23:59 geschlossen werden. Wenn die Startzeit später als die festgelegte Endzeit ist, schließt der Expert Advisor die Positionen am nächsten Tag zur angegebenen Zeit. Für den korrekten Betrieb des Expert Advisors sollte die kompilierte Indikatordatei XROC2_VG.ex5 im Verzeichnis &lt;terminal_data_folder&gt;\MQL5\Indicators gespeichert werden. Beachten Sie, dass die TradeAlgorithms.mqh Bibliotheksdatei die Verwendung von Expert Advisors bei Brokern ermöglicht, die Spread anbieten und die Möglichkeit haben, Stop Loss und Take Profit während der Eröffnung von Positionen festzulegen. Weitere Varianten der Bibliothek finden Sie hier: Trade Algorithms. Bei den unten gezeigten Tests wurden die Standard-Eingabeparameter des Expert Advisors verwendet. Während der Tests wurden kein Stop Loss und kein Take Profit verwendet. Abbildung 1. Beispiele für Geschäfte im Chart Testergebnisse für 2015 bei XAUUSD H4: Abbildung 2. Testergebnisse Chart

2017.08.10
Erste Vorherige 24 25 26 27 28 29 30 31 32 33 34 Nächste Letzte