De Moving Average is een handige tool die je kan helpen bij het genereren van handelsignalen. Deze expert maakt gebruik van één enkele moving average. Posities worden geopend en gesloten wanneer de moving average het prijsniveau raakt bij de recent gevormde bar (bar index gelijk aan 1). De lotgrootte wordt geoptimaliseerd volgens een speciaal algoritme.
Deze expert analyseert de overeenstemming tussen de moving average en de marktprijs. Dit wordt gedaan met de functie CheckForOpen(). Als de moving average de bar raakt en hoger is dan de Open prijs maar lager dan de Close prijs, wordt er een BUY positie geopend. Als de moving average de bar raakt en lager is dan de Open prijs maar hoger dan de Close prijs, wordt er een SELL positie geopend.
Het Money Management dat in deze expert wordt gebruikt, is eenvoudig maar effectief: de controle over de positievolume gebeurt op basis van de resultaten van eerdere transacties. Dit algoritme wordt geïmplementeerd door de functie LotsOptimized(). De basis lotgrootte wordt berekend op basis van het maximale toegestane risico:
lot=NormalizeDouble(AccountFreeMargin()*MaximumRisk/1000.0,1);
De MaximumRisk parameter geeft het basisrisico percentage voor elke transactie weer. Dit ligt meestal tussen 0,01 (1%) en 1 (100%). Stel dat de vrije marge (AccountFreeMargin) $20.500 bedraagt en de regels voor kapitaalbeheer een risico van 2% voorschrijven, dan wordt de basis lotgrootte:
20500 * 0.02 / 1000 = 0.41. Het is cruciaal om de nauwkeurigheid van de lotgrootte te controleren en het resultaat te normaliseren met de toegestane waarden. Normaal gesproken zijn fractionele lots met stappen van 0.1 toegestaan. Een transactie met een volume van 0.41 zal niet worden uitgevoerd. Om te normaliseren, wordt de functie NormalizeDouble() gebruikt met een nauwkeurigheid tot 1 teken na de komma. Dit resulteert in een basis lot van 0.4. Deze aanpak stelt je in staat om de volumes van operaties te vergroten afhankelijk van het succes van de handel, dus je kunt met herinvestering handelen. Dit is de basismechanisme met verplichte kapitaalbeheer voor het verhogen van de handelsresultaten.
De DecreaseFactor geeft aan in welke mate de lotgrootte zal worden verminderd na onrendabele handel. Normale waarden zijn 2, 3, 4, 5. Als de voorgaande transacties onrendabel waren, zullen de volgende volumes met een factor van DecreaseFactor afnemen om te wachten op een betere handelsperiode. Dit is de belangrijkste factor in het kapitaalbeheer algoritme. Het idee is simpel: als de handel succesvol is, werkt de expert met de basis lotgrootte en maakt hij maximaal winst. Na de eerste onrendabele transactie zal de expert "de snelheid verminderen" totdat er een nieuwe positieve transactie wordt gemaakt. Het algoritme maakt het mogelijk om "snelheidsvermindering" uit te schakelen door DecreaseFactor = 0 in te stellen. Het aantal voorgaande onrendabele transacties wordt berekend in de handelsgeschiedenis. De basis lotgrootte zal op basis hiervan worden herberekend:
if(losses>1) lot=NormalizeDouble(lot-lot*losses/DecreaseFactor,1);
Dit algoritme stelt je in staat om het risico als gevolg van een reeks onrendabele transacties effectief te verlagen. De lotgrootte wordt aan het einde van de functie verplicht gecontroleerd op de minimale toegestane lotgrootte, omdat de eerdere berekeningen kunnen resulteren in lot = 0:
if(lot<0.1) lot=0.1;
De expert is voornamelijk bedoeld voor gebruik met dagelijkse periodes en in de testmodus - voor het handelen op slotprijzen. Hij zal alleen handelen bij de opening van een nieuwe bar, daarom zijn de modi voor elke tick simulatie niet nodig.
De testresultaten worden weergegeven in het rapport.
Strategietester Rapport
Moving Average
Symbool EURUSD (Euro vs US Dollar) Periode 1 Uur (H1) 2003.01.08 00:00 - 2003.11.25 00:00 Model Elke tick (gebaseerd op alle beschikbare tijdframes met fractale interpolatie van elke tick) Parameters Lots=0.1; MaximumRisk=0.01; DecreaseFactor=1; MovingPeriod=16; MovingShift=11; Bars in test 19371 Ticks gemodelleerd 656918 Modelleringskwaliteit 25.00% Initiële storting 10000.00 Totaal netto winst 1695.20 Bruto winst 4293.20 Bruto verlies -2598.00 Winstfactor 1.65 Verwachte winst 10.80 Absolute drawdown 40.35 Maximale drawdown (%) 318.50 (3.0%) Totaal aantal transacties 157 Korte posities (gewonnen %) 73 (26.03%) Lange posities (gewonnen %) 84 (32.14%) Winsttransacties (% van totaal) 46 (29.30%) Verliestransacties (% van totaal) 111 (70.70%) Grootste winsttransactie 262.55 verliestransactie -91.00 Gemiddeld winsttransactie 93.33 verliestransactie -23.41 Maximaal opeenvolgende winsten (winst in geld) 2 (387.15) opeenvolgende verliezen (verlies in geld) 7 (-287.25) Maximale opeenvolgende winst (aantal winsten) 387.15 (2) opeenvolgende verlies (aantal verliezen) -287.25 (7) Gemiddeld opeenvolgende winsten 1 opeenvolgende verliezen 3
Gerelateerde berichten
- MQL5 Wizard: Handelsignalen Geïnspireerd Door Morning/Evening Stars + MFI voor MetaTrader 5
- MQL5 Wizard: Handelsignalen Geïnspireerd door Morning/Evening Stars en RSI voor MetaTrader 5
- Handelssignalen met MQL5 Wizard: EMA Crossover Strategie met Tijdfilter
- Handelen met MQL5 Wizard: Signalen op Basis van Prijsoverschrijding met MA en ADX
- MQL5 Wizard: Handelsignalen Gebaseerd op Morning/Evening Stars + Stochastic voor MetaTrader 5