Pengestyring:Lot Sizing-mql tutorial

Introduktion

Du har måske allerede hørt dette, men at vælge passende partistørrelse til dit handelssystem er en nøgleingrediens for at udvikle et godt system. Du kan angive en partistørrelse lige så simpelt som at erklære en i en intern variabel som en fast partistørrelse for hver ordre, men vi vil undersøge en simpel metode, der beregner partistørrelsen baseret på en procentdel af din frie margin.

Der er lidt matematik bag kulisserne, men grundlæggende, hvis du vælger en brugerdefineret risikoindstilling på 1, vil du handle 0,01 mikrolot for hver 1K i aktiestørrelse. Med en brugerdefineret risikoindstilling på 2 og en kontostørrelse på 10.000 starter du således med 0,2 partier, og det vil automatisk tilføje/fratrække 0,01 parti for hver $100 i overskud/tab. Denne teknik til automatisk partistørrelse er så enkel som den bliver, men meget effektiv til automatisk at sammensætte dit overskud, udligne dine tab eller automatisk justere for ind- og udbetalinger på kontoen.

Parametre

MM

Bool:Om du vil bruge pengestyring eller ej.

Risiko

Dobbelt:Din foruddefinerede risikoindstilling.

Masser

Dobbelt:Hvis MM er slået fra, er dette den manuelle partistørrelse, du vil bruge.

LotDigits

Dobbelt:Dette er antallet af decimaler for de partier, som din mægler har leveret. De fleste har to decimaler, men nogle har en.

MT4-kodestykker

ekstern bool MM =TRUE;
ekstern dobbelt risiko =2;
ekstern dobbelt Lots =0,1;
ekstern dobbelt LotDigits =2;
double GetLots()

{
double minlot =MarketInfo(Symbol(), MODE_MINLOT);
double maxlot =MarketInfo(Symbol(), MODE_MAXLOT);
double gearing =AccountLeverage();
double lotsize =MarketInfo(Symbol(), MODE_LOTSIZE);
dobbelt stopniveau =MarketInfo(Symbol(), MODE_STOPLEVEL);

dobbelt MinLots =0,01; dobbelte MaximalLots =50,0;

if(MM)
{
dobbelt lot =partier;

double lots =NormalizeDouble(AccountFreeMargin() * Risk/100 / 1000.0, LotDigits);
if(lots if (lots> MaximalLots) lots =MaximalLots;
if (AccountFreeMargin() Print(“Vi har ingen penge. Lots =“, lots,” , Free Margin =“, AccountFreeMargin());
Kommentar ("Vi har ingen penge. Partier =", partier," , Gratis Margin =", AccountFreeMargin());
}}
else lots=NormalizeDouble(Lots,Cifers);
return (masser);
}

Du vil se, at vi først var nødt til at deklarere en række eksterne variabler for at afgøre, om vi skulle have slået ledelsen til (sand) eller fra (falsk) , hvad bliver vores brugerdefinerede risikoindstilling, hvis den er aktiveret, og hvis ikke, hvad bliver standardpartistørrelsen.

LotDigits er, hvor mange decimaler din mægler tillader (hvis den f.eks. tillader mikropartier, såsom 0,01, vil den have 2 cifre eller decimaler).

GetLots() er det navn, vi har givet til vores brugerdefinerede funktion. Så alle o (det kunne have været et hvilket som helst navn), og alt, der er anført mellem dens parenteser, er en beregning af denne funktion. Du skal blot placere GetLots() i den tredje parameter i OrderSend()-funktionen for at kalde på den, og erstatte den faste lot-variabel, der var der før.

Vi opretter en variabel minlot for at referere til MarketInfo() fungere. MarketInfo() funktion er den funktion, vi skal bruge for at hente forskellige markedsdata for den givne valuta, såsom bud- eller udbudsprisen, swap-værdien, antallet af cifre, og til vores formål kan den også fortælle os den mindste partistørrelse for den valuta . Vi vil sikre os, at uanset hvilken lotberegning der udføres, så er den større end mæglerens mindste lotstørrelse, ellers er den mindre end minlot, vil det være minlot.

Hovedberegningen af ​​det automatiske MM-parti sker på én linje:

double lots =NormalizeDouble(AccountEquity() * Risiko/100 / 1000,0, LotDigits);

AccountEquity() er en af ​​mange kontoinformationsfunktioner, der returnerer egenkapitalværdien af ​​den løbende konto. Vi ønsker at returnere kontoens egenkapitalværdi i modsætning til AccountBalance() , fordi egenkapital repræsenterer et mere gyldigt billede af kontoens tilstand (alias nettokontoværdien). Vi ønsker, at egenkapitalværdien skal udføre vores regnestykke på passende partistørrelser. Vi vil gange denne egenkapitalværdi med vores risikoværdi, derefter dividere med 100 og derefter dividere yderligere med 1000 for at bestemme den passende partistørrelse.

Effekten er proportional partistørrelse, baseret på den valgte risikoindstilling:den giver en risikoindstilling på 1 handel 0,01 lot per 1K i egenkapital, en risikoindstilling på 2 handel 0,02 lot per 1K i egenkapital osv. Der er et væld af muligheder , afhængigt af den valgte risikoindstilling. Partier tilføjes eller trækkes fra kontoen, efterhånden som den vokser eller formindskes i størrelse. For eksempel ville en risikoindstilling på 2 handle med 0,2 partier på en 10K-konto og lægge til/fratrække med 0,01 lot for hver $100 gevinst eller tab i egenkapital. Brugeren kan nemt justere en risikoindstilling, der passer til hans eller hendes risikotolerance, EA-handelsstil og kontostørrelse.

Hvis MM er sat til sand, beregner vi partistørrelsen baseret på egenkapitalen og tildeler denne værdi til lotvariablen. Hvis MM er falsk, tildeler vi blot værdien af ​​partier til den faste partistørrelse for partier.

Du kan se, at ovenstående kode er relativt enkel, men den kan gøre en verden til forskel i størrelsen af ​​autopartier baseret på en skiftende egenkapitalstørrelse. Der er mere komplicerede måder at bestemme partistørrelsen på, men nogle gange fungerer de enkleste metoder bedst.


Forretningsstrategi
  1. Regnskab
  2. Forretningsstrategi
  3. Forretning
  4. Administration af kunderelationer
  5. finansiere
  6. Lagerstyring
  7. Personlig økonomi
  8. investere
  9. Virksomhedsfinansiering
  10. budget
  11. Opsparing
  12. forsikring
  13. gæld
  14. gå på pension