Geldbeheer:zelfstudie Lot Sizing-mql

Inleiding

Je hebt dit misschien al gehoord, maar het kiezen van de juiste partijgrootte voor je handelssysteem is een belangrijk ingrediënt voor het ontwikkelen van een goed systeem. U kunt een partijgrootte zo eenvoudig specificeren door er een in een interne variabele te declareren als een vaste partijgrootte voor elke bestelling, maar we zullen een eenvoudige methode onderzoeken die de partijgrootte berekent op basis van een percentage van uw vrije marge.

Er is een beetje wiskunde achter de schermen, maar in principe, als u een aangepaste risico-instelling van 1 kiest, verhandelt u 0,01 microlot voor elke 1K aan aandelengrootte. Dus, met een aangepaste risico-instelling van 2 en een accountgrootte van 10K, begint u met 0,2 lots, en het zal automatisch 0,01 lot optellen/aftrekken voor elke $100 winst/verlies. Deze automatische lotbepalingstechniek is zo eenvoudig als het kan, maar zeer effectief voor het automatisch samenstellen van uw winsten, het opheffen van uw verliezen of het automatisch aanpassen van stortingen en opnames op de rekening.

Parameters

MM

Bool:Of je geldbeheer wel of niet gaat gebruiken.

Risico

Dubbel:uw vooraf gedefinieerde risico-instelling.

Veel

Dubbel:als MM is uitgeschakeld, is dit de handmatige partijgrootte die u gaat gebruiken.

LotDigits

Dubbel:Dit is het aantal decimalen voor de kavels die door uw makelaar zijn verstrekt. De meeste hebben twee decimalen, maar sommige hebben er één.

MT4-codefragmenten

extern bool MM =TRUE;
extern dubbel risico =2;
extern dubbele lots =0,1;
extern dubbel LotDigits =2;
dubbel GetLots()

{
dubbele minlot =MarketInfo(Symbol(), MODE_MINLOT);
dubbele maxlot =MarketInfo(Symbol(), MODE_MAXLOT);
dubbele hefboomwerking =AccountLeverage();
dubbele lotgrootte =MarketInfo(Symbool(), MODE_LOTSIZE);
dubbel stopniveau =MarketInfo(Symbool(), MODE_STOPLEVEL);

dubbele MinLots =0,01; dubbele MaximalLots =50.0;

if(MM)
{
dubbele kavels =kavels;

double lots =NormalizeDouble(AccountFreeMargin() * Risk/100 / 1000.0, LotDigits);
if(lots if (lots> MaximalLots) lots =MaximalLots;
if (AccountFreeMargin() Print(“We hebben geen geld. Lots =“, lots,” , Free Margin =“, AccountFreeMargin());
Commentaar ("We hebben geen geld. Lots =", lots," , Free Margin =", AccountFreeMargin());
}}
else lots=NormalizeDouble(Lots,Digits);
retour (partijen);
}

Je zult zien dat we eerst een aantal externe variabelen moesten declareren om te bepalen of we het beheer op (true) hadden moeten zetten of uit (false) , wat wordt onze aangepaste risico-instelling als deze is ingeschakeld, en zo niet, wat wordt de standaard partijgrootte.

LotDigits is hoeveel decimalen uw makelaar toestaat (als het bijvoorbeeld microlots toestaat, zoals 0,01, zou het 2 cijfers of decimalen hebben).

GetLots() is de naam die we aan onze aangepaste functie hebben gegeven. Dus alle o (het had elke naam kunnen zijn), en alles wat tussen de haakjes is geplaatst, is een berekening van deze functie. U plaatst eenvoudig GetLots() in de derde parameter van de functie OrderSend() om deze aan te roepen, ter vervanging van de vaste lotsvariabele die er eerder was.

We maken een variabele minlot om te verwijzen naar de MarketInfo() functie. De MarketInfo() functie is de functie die we nodig hebben om verschillende marktgegevens van de gegeven valuta op te halen, zoals de bied- of laatprijs, de swapwaarde, het aantal cijfers, en voor onze doeleinden kan het ons ook de minimale lotgrootte voor die valuta vertellen . We willen ervoor zorgen dat welke lotberekening ook wordt uitgevoerd, deze groter is dan de minimale lotgrootte van de makelaar, anders is het minder dan minlot, dan wordt het de minlot.

De hoofdberekening van het automatische MM-lot gebeurt in één regel:

dubbele lots =NormalizeDouble(AccountEquity() * Risk/100 / 1000.0, LotDigits);

AccountEquity() is een van de vele rekeninginformatiefuncties die de eigenvermogenswaarde van de lopende rekening retourneert. We willen de waarde van het eigen vermogen van de rekening teruggeven, in tegenstelling tot de AccountBalance() , omdat het eigen vermogen een meer valide beeld geeft van de staat van de rekening (ook wel de nettorekeningwaarde genoemd). We willen dat de waarde van het eigen vermogen onze berekening uitvoert op de juiste partijgrootte. We gaan deze aandelenwaarde vermenigvuldigen met onze risicowaarde, dan delen door 100, en dan verder delen door 1000, om de juiste partijgrootte te bepalen.

Het effect is een proportionele lotgrootte, gebaseerd op de gekozen risico-instelling:het maakt een risico-instelling van 1 transactie 0,01 lots per 1K in equity, een risico-instelling van 2 trade 0,02 lots per 1K in equity, enz. Er is een groot aantal mogelijkheden , afhankelijk van de gekozen risico-instelling. Er worden kavels toegevoegd aan of afgetrokken van de rekening naarmate deze groter of kleiner wordt. Een risico-instelling van 2 zou bijvoorbeeld 0,2 lots verhandelen op een 10K-account, en optellen/aftrekken met 0,01 lot voor elke winst of verlies van $ 100 in eigen vermogen. De gebruiker kan eenvoudig een risico-instelling aanpassen die geschikt is voor zijn of haar risicotolerantie, EA-handelsstijl en accountgrootte.

Als MM is ingesteld op true, zullen we de partijgrootte berekenen op basis van het eigen vermogen en die waarde toewijzen aan de lotsvariabele. Als MM onwaar is, wijzen we de waarde van kavels eenvoudig toe aan de vaste kavelgrootte van kavels.

U kunt zien dat de bovenstaande code relatief eenvoudig is, maar het kan een wereld van verschil maken in automatische lotgrootte op basis van een veranderende aandelengrootte. Er zijn meer gecompliceerde manieren om de grootte van een partij te bepalen, maar soms werken de eenvoudigste methoden het beste.


Bedrijfsstrategie
  1. boekhouding
  2.   
  3. Bedrijfsstrategie
  4.   
  5. Bedrijf
  6.   
  7. Klantrelatiebeheer
  8.   
  9. financiën
  10.   
  11. Aandelen beheer
  12.   
  13. Persoonlijke financiën
  14.   
  15. investeren
  16.   
  17. Bedrijfsfinanciering
  18.   
  19. begroting
  20.   
  21. Besparingen
  22.   
  23. verzekering
  24.   
  25. schuld
  26.   
  27. met pensioen gaan