Grupp: Huvudforum

Olika BetSize

0
Ogilla!
6
Gilla!
#0   Av: pq.. » Redigera
2005-09-26 14:50:41
Ladda ned


Satt å fipplade med lite olika metoder att välja storlek på positionerna här under dagen,, iaf skillnaderna är oftast väldigt stora så tänkte lägga in en kodsnutt i easylanguage till lite olika ,,bara att klippa in i toppen på signalscriptet och skriva in UnitsToTrade vid köp/säljvilkoren t.ex (buy UnitsToTrade shares at {nivå} stop;) sen kan man välja mellan 5 olika från chartet,,någon kanske har lite nöje med koden eller lämna gärna förslag på andra varianter..lägger in bild på AA med samma system men med dom olika varianterna..

0: Fixedratio
1: Compounding
2: FixedFractionATR
3: KellyFactor
4: FixedFractionATR Safe

mvh PQ..

{kod under}

Inputs:ATRL(20),PctE(50),Select(1);
Vars:Equity(0);
{FFATR Vars}
vars: fFraction(0),EqPct(0),MarketVolatility(0),AmountToRisk(0),UnitsToTrade(0);
{Kelly Vars}
Vars: WinPct(0),PayOff(0),AvgProf(0),AvgLoss(0),KellyF(0),UnitsToTradeKf(0);
{FixedFractionATR Safe Vars}
Vars: AmountToRiskHalf(0);

{******Position Sizing******}
{PQ.. 2005-09-26}

{******Fixed Ratio******}{Select0}
if Select = 0 then
begin
Equity = 50000;
UnitsToTrade = Round(Equity / close,0);
end;

{******Compund******}{Select1}
if Select = 1 then
begin
Equity = 50000 + netprofit;
UnitsToTrade = Round(Equity / close,0);
end;

{******FixedFractionATR******}{Select2}
if Select = 2 then
begin
fFraction = 1 / 100;
EqPct = PctE / 100;
MarketVolatility = Avgtruerange(ATRL);
Equity = 50000 + netprofit;
AmountToRisk = fFraction * (Equity * EqPct);

if MarketVolatility > 0 then
UnitsToTrade = Round((AmountToRisk / ( MarketVolatility * Bigpointvalue)),0)
else
UnitsToTrade = 0;
end;

{******KellyFactor******}{Select3}
If Select = 3 then
begin
Equity = 50000 + netprofit;
if totaltrades > 30 then
begin
AvgProf = GrossProfit / NumWintrades;
AvgLoss = - GrossLoss / NumLostrades;
WinPct = (NumWinTrades / TotalTrades);
Payoff = (AvgProf/AvgLoss);
KellyF = WinPct - (1-WinPct)/Payoff;
end;
UnitsToTradeKf = Round((Equity * KellyF) / close,0);

if UnitsToTradeKf > 100 then
Unitstotrade = UnitsToTradeKf
else
UnitsToTrade = 100;
end;

{******FixedFractionATR Safe ******}{Select4}
if Select = 4 then
begin
Equity = 50000 + netprofit;
fFraction = 1 / 100;
EqPct = PctE / 100;
MarketVolatility = Avgtruerange(ATRL);
AmountToRisk = fFraction * (Equity * EqPct);
AmountToRiskHalf = fFraction * (Equity * EqPct)/2;
if Positionprofit(1) < 0 then
UnitsToTrade = Round((AmountToRiskHalf / ( MarketVolatility * Bigpointvalue)),0)
else
UnitsToTrade = Round((AmountToRisk / ( MarketVolatility * Bigpointvalue)),0);
end; 

 

Inlägget är redigerat av författaren.

0
Ogilla!
2
Gilla!
2005-09-26 15:00:04

Verkar ju kanon  ..  :)

/Utsikt 

Upp till toppen
Kommentera

 

Tjäna mer pengar på dina aktieaffärer

Bli medlem på Aktieguiden gratis på 30 sekunder.

Som medlem på Aktieguiden kan du:

  • Läsa träffsäkra tips och analyser från duktiga traders
  • Ställa frågor till och chatta med aktieproffs
  • Få gratis tillgång till en över miljon inlägg aktiehandel
  • Skapa egna privata forumgrupper

För att få delta i diskussionerna på Aktieguiden krävs att du verifierar ditt mobilnummer. Läs gärna mer om varför verifiering behövs.

 

Redan medlem? Klicka här för att logga in.