Systeemhandel

Burg Extrapolator: Een Krachtige EA voor MetaTrader 5
MetaTrader5
Burg Extrapolator: Een Krachtige EA voor MetaTrader 5

Uitvinder van het idee: Vladimir, mq5 code auteur: barabashkakvn. De Burg Extrapolator is een krachtige Expert Advisor die gebruik maakt van de Burg-methode voor lineaire voorspelling. Dit houdt in dat toekomstige waarden worden bepaald op basis van eerdere prijsbewegingen. Stel je voor dat we de prijsrange x[0]..x[n-1] hebben, waarbij hogere indexen overeenkomen met recentere prijzen. De voorspelling van de toekomstige prijs x[n] wordt als volgt berekend: x[n] = -Sum(a[i]*x[n-i], i=1..p) Hierbij zijn a[i=1..p] de modelverhoudingen en p is de orde van het model. De Burg-methode bepaalt de a[] verhoudingen door de gemiddelde kwadratische fout over de laatste n-p bars te minimaliseren. Invoergegevens MaxRisk - het maximale risico van alle gelijktijdig uitgevoerde trades. ntmax - het maximale aantal trades in één richting. MinProfit - de minimale voorspelde winst om posities te openen. MaxLoss - de maximale voorspelde verlies om posities te sluiten. TakeProfit - de waarde voor Take Profit. StopLoss - de waarde voor Stop Loss. TrailingStop - de functie voor Trailing Stop. PastBars - het aantal vorige bars dat gebruikt wordt om toekomstige waarden te voorspellen. ModelOrder - de orde van het Burg-model als een fractie van het aantal vorige bars (0..1). UseMOM - schakelt detrend van inputdata in: mom(i)=log[p(i)/p(i-1)]. UseROC - schakelt detrend van inputdata in: roc=100*(p(i)/p(i-1)-1). Let op: slechts één van de variabelen UseMOM en UseROC kan waar zijn. Dat wil zeggen, UseMOM=true EN UseROC=true is niet toegestaan. Zoals bij de meeste geoptimaliseerde Expert Advisors geldt, presteert de Burg Extrapolator het beste op trainingsbars. Zonder constante heroptimalisatie zal deze Expert Advisor gestaag geld verliezen.

2017.11.03
Tegenovergestelde Handelsstrategie voor MetaTrader 5
MetaTrader5
Tegenovergestelde Handelsstrategie voor MetaTrader 5

Bij het openen van een positie die tegenovergesteld is aan de gesloten positie, met hetzelfde volume, krijg je een interessante handelsstrategie die voor elk symbool en elke magic number kan worden toegepast. Stel je voor, je hebt een open AUDUSD BUY 0.01 positie. Zodra deze positie wordt gesloten (bijvoorbeeld handmatig), zal de tegenovergestelde handels Expert Advisor onmiddellijk een nieuwe AUDUSD positie openen, maar dit keer als een SELL positie. De volledige code is te vinden in de functie OnTradeTransaction: //+------------------------------------------------------------------+ //| TradeTransaction functie                                        | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans,                         const MqlTradeRequest &request,                         const MqlTradeResult &result)   { //--- krijg het transactie type als enumeratie waarde    ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- als transactie het resultaat is van toevoeging van de transactie in geschiedenis    if(type==TRADE_TRANSACTION_DEAL_ADD)      {       long     deal_type         =-1;       long     deal_entry        =-1;       double   deal_volume       =0.0;       string   deal_symbol       ="";       if(HistoryDealSelect(trans.deal))         {          deal_type         =HistoryDealGetInteger(trans.deal,DEAL_TYPE);          deal_entry        =HistoryDealGetInteger(trans.deal,DEAL_ENTRY);          deal_volume       =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);          deal_symbol       =HistoryDealGetString(trans.deal,DEAL_SYMBOL);         }       else          return;       if(deal_entry==DEAL_ENTRY_OUT)         {          switch((int)deal_type)            {             case  DEAL_TYPE_BUY:                m_trade.Buy(deal_volume,deal_symbol);                break;             case  DEAL_TYPE_SELL:                m_trade.Sell(deal_volume,deal_symbol);                break;             default:                break;            }         }      }   } Hier wachten we op de sluiting van de positie (DEAL_ENTRY_OUT). Zodra deze deal verschijnt, controleren we het dealtype (als we een BUY sluiten, wordt dit een SELL deal, en vice versa) en openen we een nieuwe positie.

2017.11.03
Last ZZ50: Een Slimme Strategie voor MetaTrader 5
MetaTrader5
Last ZZ50: Een Slimme Strategie voor MetaTrader 5

De strategie is gebaseerd op de ZigZag-indicator en pending orders. Het idee voor deze code kwam oorspronkelijk naar voren in de forumdiscussie Een strategie gebaseerd op de ZigZag-indicator - "Last ZZ50" (in het Russisch). De bedenker van dit idee is Vitaly Muzichenko, en de auteur van de MQL5-code is Vladimir Karputov. Het algemene principe van de "Last ZZ50" strategie is als volgt: Bij de ZigZag-indicator analyseren we altijd de laatste twee lijnen: AB en BC. De AB lijn is nog niet vastgelegd en kan veranderen (de positie van punt A kan verschuiven). Pending orders worden geplaatst in het midden van de AB en BC lijnen zodat: Het activeren van de pending order op de AB lijn een voortzetting van de trend laat zien die wordt aangegeven door de BC lijn. Het activeren van de pending order op de BC lijn een omkering van de trend laat zien die wordt aangegeven door de BC lijn. Aangezien de AB lijn nog niet vastligt en kan veranderen (de positie van punt A kan verschuiven), wordt de pending order continu aangepast om de prijs in het midden van AB te houden. Open posities worden gemanaged op basis van de volgende regel: we wachten totdat de positie zich ten minste (Trailing Stop + Trailing Step) punten in het winstgebied heeft verplaatst (zonder rekening te houden met commissie en swaps), en pas dan schakelen we de trailing functie in voor deze positie. Het proces van het zoeken naar pieken is geïmplementeerd in deze Expert Advisor: de indicator wordt aan de grafiek toegevoegd, en er worden drie verticale lijnen getrokken door de punten A, B en C:

2017.11.03
OzFx: Jouw Expert voor MetaTrader 5 Signalen
MetaTrader5
OzFx: Jouw Expert voor MetaTrader 5 Signalen

Auteur van het idee: Yuri, mq5 code auteur: barabashkakvn. Beschrijving van de generatie van positie open signalen: Stoh_main_1 - de waarde van de Stochastic Oscillator op bar #1. InpStochasticLevel - invoer voor het Stochastic niveau. AC_1 - de waarde van de Accelerator Oscillator op bar #1. ACPrev_2 - de waarde van de Accelerator Oscillator op bar #2. KOOP signaal - wanneer de Stochastic Oscillator op bar #1 groter is dan de Stochastic niveau invoer en de Accelerator Oscillator op bar #1 groter is dan de Accelerator Oscillator op bar #2. In dit geval moet de Accelerator Oscillator op bar #1 boven nul zijn, en de Accelerator Oscillator op bar #2 onder nul: if(Stoh_main_1>InpStochasticLevel && AC_1>ACPrev_2 && AC_1>0 && ACPrev_2<0 && count_buys==0) ... VERKOOP signaal - wanneer de Stochastic Oscillator op bar #1 kleiner is dan de Stochastic niveau invoer en de Accelerator Oscillator op bar #1 kleiner is dan de Accelerator Oscillator op bar #2. In dit geval moet de Accelerator Oscillator op bar #1 onder nul zijn, en de Accelerator Oscillator op bar #2 boven nul: if(Stoh_main_1<InpStochasticLevel && AC_1<ACPrev_2 && AC_1<0 && ACPrev_2>0 && count_sells==0) ... Een voorbeeld van een VERKOOP signaal: Wanneer een signaal wordt ontvangen, openen we vijf posities met dezelfde lotgrootte. De eerste positie heeft een Stop Loss en Take Profit gelijk aan nul. Alle volgende posities hebben een gelijke Stop Loss en elke heeft een toenemende Take Profit met de stap van de invoer Take Profit (in pips). Testresultaten op alle symbolen op PERIOD_D1:

2017.11.03
Martin - Een Innovatieve Expert Advisor voor MetaTrader 5
MetaTrader5
Martin - Een Innovatieve Expert Advisor voor MetaTrader 5

Bedacht door — Vladimir Khlystov, mq5 code auteur — barabashkakvn. Beschrijving van de bedenker: Wat is Martin? De Expert Advisor is ontwikkeld op verzoek van een forumdeelnemer. Een reactie van vvx080: Het idee is om een grid van stoporders te creëren. We beginnen bijvoorbeeld met twee orders: een verkoop- en een kooporder. Zodra één van de orders wordt geactiveerd, wordt de andere geannuleerd. Als de trade verliesgevend is, openen we na 10 punten een tegenovergestelde order met een verdubbelde lotgrootte. Als dat opnieuw verliesgevend is, openen we na 20 punten weer een tegenovergestelde order die twee keer zo groot is als de vorige. Dit herhalen we na 30 punten, enzovoort. Onder deze omstandigheden moet er veel samenkomen om het saldo volledig te verliezen. Bij positieve koersbewegingen gebruiken we een goede trailing om maximaal 300 winstpunten te vangen. Er worden geen stop loss of take profit gebruikt; de trades worden gesloten bij een gezamenlijke winst. Deze strategie is niet bang voor trends of zijwaartse bewegingen. Tijdens een trend wordt de totale winst gevolgd. Hier is de voorlopige berekening van lots en saldo: verkoop 0.1 -10p = -1, koop 0.2 -20p = -3, verkoop 0.4 -30p = -12, koop 0.8 -40p = -32, verkoop 1.6 -50p = -87, koop 3.2 -60p = -213, verkoop 6.4 -70p = -514, koop 12.8 -80p = -1194, verkoop 25.6 -90p = -2886. Ik denk dat een saldo van 3000 voldoende zou moeten zijn, maar de strategie zal waarschijnlijk niet verder komen dan de 8ste of 9de order. Ik kan fout zitten, maar dit is het idee. De Expert Advisor zal preciezer zijn. De EA gebruikt een verhoging van de lotgrootte, maar het kan niet als een pure martingale worden beschouwd. Bovendien komt de EA uit zijwaartse bewegingen, terwijl veel martingales dat niet kunnen. Voeg alstublieft uw opmerkingen en ideeën toe om de strategie te verbeteren. Plaats echter geen reacties als ‘martingale is slecht’ zonder de EA eerst op een demo te hebben getest en zonder het werkingsprincipe te begrijpen. Parameters van de Expert Advisor InpStep - stapgrootte tussen posities. InpProfitClose - minimale winst waarop alle posities worden gesloten. InpLot - positievolume. Testresultaten op EURUSD:

2017.11.03
iCCI iMA: Optimaliseer Je Trading met MetaTrader 5
MetaTrader5
iCCI iMA: Optimaliseer Je Trading met MetaTrader 5

De auteur van dit idee is Andrey, terwijl de auteur van de MQL5 code barabashkakvn is. Bereken de Moving Average met behulp van gegevens van de Commodity Channel Index: //--- creëer handle van de indicator iMA    handle_iMA=iMA(m_symbol.Name(),Period(),15,0,MODE_EMA,handle_iCCI); //--- als de handle niet is aangemaakt    if(handle_iMA==INVALID_HANDLE)      {       //--- meld de fout en geef de foutcode weer       PrintFormat("Mislukt om handle van de iMA indicator te creëren voor het symbool %s/%s, foutcode %d",                   m_symbol.Name(),                   EnumToString(Period()),                   GetLastError());       //--- de indicator stopt vroeg       return(INIT_FAILED);      } Dit is vergelijkbaar met het starten van de Moving Average indicator in het Commodity Channel Index venster, met "Vorige Indicator Gegevens" geselecteerd in de opties (pas de indicator toe op gegevens van een andere indicator). Principes voor het openen en sluiten van posities: Als de Moving Average, berekend op basis van de Commodity Channel Index, naar beneden kruist met de algemene Commodity Channel Index, wordt er een KOPEN-positie geopend. Als de Moving Average naar boven kruist met de algemene Commodity Channel Index, wordt er een VERKOPEN-positie geopend. Als de Moving Average naar boven kruist met de algemene Commodity Channel Index, wordt een KOPEN-positie gesloten. Als de Moving Average naar beneden kruist met de algemene Commodity Channel Index, wordt een VERKOPEN-positie gesloten. Testen op EURUSD, H1:

2017.11.03
Stop Loss en Take Profit: Een Gids voor MetaTrader 5
MetaTrader5
Stop Loss en Take Profit: Een Gids voor MetaTrader 5

Als een trade wordt afgesloten door een Stop Loss, wordt het volume verdubbeld; als het wordt afgesloten door een Take Profit, wordt het minimale volume gebruikt. De functie OnTradeTransaction wordt gebruikt om te bepalen of een trade is uitgevoerd na de activatie van Stop Loss of Take Profit. In build 1625 is de uitstekende enumeratie ENUM_DEAL_REASON toegevoegd: ENUM_DEAL_REASON Omschrijving van de reden ... ... DEAL_REASON_SL De operatie is uitgevoerd als gevolg van de activatie van Stop Loss DEAL_REASON_TP De operatie is uitgevoerd als gevolg van de activatie van Take Profit ... ... Dit kan worden gecontroleerd in OnTradeTransaction. Met andere woorden, het is een zeer eenvoudige en betrouwbare manier om te bepalen of een trade het resultaat was van Take Profit of Stop Loss. Op dit moment (build 1626) kan deze Expert Advisor alleen in een live test worden gecontroleerd - door het te starten op een grafiek of in de debugmodus met echte data (F5 in de MetaEditor). Ik heb de volgende omweg gebruikt: In OnTradeTransaction hebben we bepaald of Take Profit of Stop Loss is geactiveerd:       if(deal_symbol==m_symbol.Name() && deal_magic==m_magic)          if(deal_entry==DEAL_ENTRY_OUT)            {             if(deal_reason==DEAL_REASON_SL)                ExtLot*=2.0;             else if(deal_reason==DEAL_REASON_TP)                ExtLot=m_symbol.LotsMin();            }

2017.11.03
Multi Arbitration 1.1xx - Geavanceerd Systeem voor MetaTrader 5
MetaTrader5
Multi Arbitration 1.1xx - Geavanceerd Systeem voor MetaTrader 5

Welkom bij een nieuwe update van Multi Arbitration 1.000! Deze versie, 1.1xx, brengt enkele spannende verbeteringen voor traders die MetaTrader 5 gebruiken. Wat is er veranderd ten opzichte van versie 1.000? De EA draait nu uitsluitend op de tijdseenheid PERIOD_M1 (zie de uitleg hieronder bij parameter Time frame). Deze versie handelt nu met twee symbolen tegelijk. Het tweede symbool komt uit de ExtArrSymbols statische array: string         ExtArrSymbols[20]=   {    "EURUSD","GBPUSD","USDCHF","USDJPY","USDCAD",    "AUDUSD","AUDNZD","AUDCAD","AUDCHF","AUDJPY",    "CHFJPY","EURGBP","EURAUD","EURCHF","EURJPY",    "EURNZD","EURCAD","GBPCHF","GBPJPY","CADCHF"   }; //+------------------------------------------------------------------+ //| Expert initialisatie functie                                   | //+------------------------------------------------------------------+ int OnInit() Het principe voor het openen van posities is veranderd: Een nieuwe BUY positie kan nu alleen worden geopend wanneer de huidige prijs onder de laagste BUY positie ligt. Een nieuwe SELL positie kan alleen worden geopend wanneer de huidige prijs boven de hoogste SELL positie ligt. De nieuwe parameter Time frame maakt het mogelijk om de EA te optimaliseren op elke grafiek. De Expert Advisor werkt wanneer er een nieuwe bar van het hoofd symbool verschijnt (dat is het symbool van de grafiek waarop de EA draait): //+------------------------------------------------------------------+ //| Expert tick functie                                             | //+------------------------------------------------------------------+ void OnTick()   { //--- we werken alleen op het moment van de geboorte van een nieuwe bar    static datetime prevtime=0;    datetime time_0=iTime(0,m_symbol_one.Name(),InpTimeFrame);    if(time_0==prevtime)       return;    prevtime=time_0; Hier is de InpTimeFrame variabele onze Time frame invoer. Afhankelijk van de Time frame invoer, kunnen we de EA op elke tijdseenheid laten werken! Testresultaten op EURUSD:

2017.11.03
Eerste Vorige 23 24 25 26 27 28 29 30 31 32 33 Volgende Laatste