NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Trading Analytics for Laravel

Expectancy, drawdown a rizikové pomery

Expectancy

expectancy je očakávaný P&L priemerného uzavretého obchodu: miera výhier × priemerná výhra − miera prehier × priemerná strata, z hrubého P&L. Obchod bez zisku a straty nie je výhra ani prehra — len zriedi obe miery —, preto sa hodnota počíta priamo z realizovaných hrubých súčtov, (hrubý zisk − hrubá strata) / uzavreté obchody, bez zaokrúhlenej miery medzi tým:

$e = $analytics->expectancy;

$e->value;            // '266.66' — (winRate * averageWin) - (lossRate * averageLoss)
$e->averageWin;       // '550.00' — average gross profit of a winner
$e->averageLoss;      // '300.00' — average gross loss of a loser, as a positive amount
$e->winRate;          // '0.6666'
$e->lossRate;         // '0.3333'
$e->winningTrades;    // 2
$e->losingTrades;     // 1
$e->breakEvenTrades;  // 0 — closed at a P&L of exactly 0

Pomer rizika a výnosu

riskRewardRatio delí priemernú výhru priemernou stratou v plnej presnosti a až výsledok oreže na 4 desatinné miesta; priemerná výhra a strata sa riadia škálou behu. Obchod bez zisku a straty priemernú stratu nezriedi. Kým neexistuje víťazný alebo stratový obchod, pomer zostáva 0.0000:

$rr = $analytics->riskRewardRatio;

$rr->value;         // '1.8333' — averageWin / averageLoss
$rr->averageWin;    // '550.00' — at the run's scale
$rr->averageLoss;   // '300.00'

Maximálny drawdown

maxDrawdown sleduje krivku kapitálu uzavretých obchodov v poradí podľa času zatvorenia — priebežný súčet čistého P&L od nuly — a zaznamená najväčší pokles od vrcholu. Percento sa vzťahuje na tento vrchol, delí sa v plnej presnosti a nastaví sa, až keď bol kapitál kladný:

$dd = $analytics->maxDrawdown;

$dd->value;        // '306.00' — the largest drop from a peak
$dd->percentage;   // '30.9090' — that drop as a percent of the peak
$dd->equity;       // '781.00' — final equity: the sum of net realized P&L
$dd->peak;         // '990.00' — the highest equity reached

Sharpe a Sortino

riskAdjustedReturns vezme čistý výnos každého uzavretého obchodu (ako zlomok hodnoty pozície) a po prechode z neho odvodí priemer, populačnú smerodajnú odchýlku a odchýlku smerom nadol. Sharpe delí priemerný nadvýnos smerodajnou odchýlkou, Sortino odchýlkou smerom nadol. Oba sú pomery na obchod — neannualizované — s bezrizikovou sadzbou 0 a pri nulovej odchýlke zostávajú 0.0000:

$r = $analytics->riskAdjustedReturns;

$r->sharpeRatio;         // '0.2271' — mean excess return / standard deviation
$r->sortinoRatio;        // '0.3372' — mean excess return / downside deviation
$r->meanReturn;          // '0.0099301075' — mean net return per trade, as a fraction
$r->standardDeviation;   // '0.0437207547' — population standard deviation of the returns
$r->downsideDeviation;   // '0.0294448637' — deviation of the returns below the risk-free rate
$r->riskFreeRate;        // '0.0000000000'
$r->sampleSize;          // 3 — one return per closed trade, folded into running sums

Séria výnosov sa neukladá: každý realizovaný výnos sa počas prechodu pripočíta k priebežným súčtom (počet, súčet, súčet štvorcov, súčet štvorcov poklesov pod sadzbu) a odchýlky sa z nich odvodia až potom — pamäť tak zostáva stála, nech je história akokoľvek dlhá.

Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

Ďalšie spôsoby podpory vrátane kryptomien

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.