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

Čítanie výsledkov

Po calculate() je každá metrika verejnou vlastnosťou inštancie Analytics — null, ak jej kalkulátor nebežal:

VlastnosťKalkulátorKľúč v toArray()Výsledok
countsCountscountsPočet obchodov, otvorených aj uzavretých.
winsWinswinsVíťazné uzavreté obchody a miera výhier: výhry vydelené uzavretými obchodmi.
volumeTradingVolumevolumeAgregáty obchodovaného množstva zo všetkých obchodov.
valueTradingValuevalueAgregáty nominálnej hodnoty (size × vstupná cena) zo všetkých obchodov.
commissionCommissionscommissionPoplatok za obchod; obchod bez poplatku sa počíta ako 0.
unrealizedProfitAndLossUnrealizedGrossProfitAndLoss, UnrealizedNetProfitAndLossprofit_and_loss.unrealizedHrubý a čistý P&L otvorených obchodov (ocenených ich closePrice), spriemerovaný cez ne.
realizedProfitAndLossRealizedGrossProfitAndLoss, RealizedNetProfitAndLossprofit_and_loss.realizedHrubý a čistý P&L uzavretých obchodov, spriemerovaný cez ne.
profitFactorProfitFactorprofit_factorRealizovaný hrubý zisk vydelený realizovanou hrubou stratou (0, ak strata nie je).
cumulativeReturnGrossCumulativeReturn, NetCumulativeReturncumulative_returnZložený výnos v percentách, hrubý aj čistý, jeho geometrický priemer na obchod a najvyšší / najnižší priebežný výnos.
frequencyTradingFrequencyfrequencyAko často sa obchody otvárajú, za rozpätie časov otvorenia.
durationTradesDurationdurationAko dlho boli uzavreté obchody otvorené, v sekundách.
streaksStreaksstreaksNajdlhšie série víťazných a stratových uzavretých obchodov.
expectancyExpectancyexpectancyOčakávaný P&L priemerného uzavretého obchodu.
riskRewardRatioRiskRewardRatiorisk_reward_ratioPriemerná výhra vydelená priemernou stratou.
winRateByPeriodWinRateByPeriodwin_rate_by_periodMiera výhier uzavretých obchodov podľa dňa, týždňa alebo mesiaca ich otvorenia.
maxDrawdownMaxDrawdownmax_drawdownNajväčší prepad realizovanej (čistej) krivky kapitálu od vrcholu po dno.
riskAdjustedReturnsRiskAdjustedReturnsrisk_adjusted_returnsSharpeho a Sortinov pomer realizovaných čistých výnosov.

Komentáre v príkladoch ukazujú reťazcovú podobu každej hodnoty pre tri ukážkové obchody zo sekcie Spustenie enginu, s ->scale(2).

Rozpady

Kde to dáva zmysel, metrika poskytuje globálnu hodnotu ->global a rozpady ->forPair(), ->forBaseCurrency() a ->forQuoteCurrency(), každý rozdelený na total, buy a sell. Páry sa zapisujú ako ZÁKLAD/KÓTA, presne tak, ako ich vracia Trade::pair():

// Every level splits into total, buy and sell
$analytics->counts->global->total;                  // '3' — every trade
$analytics->counts->global->buy;                    // '2'
$analytics->counts->global->sell;                   // '1'

$analytics->counts->forPair('ETH/USD')->total;      // '2'
$analytics->counts->forBaseCurrency('ETH')->sell;   // '1'
$analytics->counts->forQuoteCurrency('USD')->total; // '3'

Agregáty

Metriky typu suma — volume, value, commission, duration, P&L a kumulatívny výnos — majú na každej úrovni agregát aj s párom, ktorý určil krajné hodnoty. Každý agregát nesie aj count — počet obchodov, z ktorých vznikol — a jeho priemer delí presne týmto počtom: realizované hodnoty uzavretými obchodmi, nerealizované otvorenými:

$pnl = $analytics->realizedProfitAndLoss->net->global->total;

$pnl->total;        // '781.00' — the sum
$pnl->count;        // 3 — the trades that fed it: here, the closed trades
$pnl->average;      // '260.33' — the total divided by that count
$pnl->highest;      // '990.00' — the best single trade
$pnl->highestPair;  // 'BTC/USD'
$pnl->lowest;       // '-306.00' — the worst single trade
$pnl->lowestPair;   // 'ETH/USD'

Obchody bez zisku a straty a prázdne hodnoty

  • Obchod s P&L presne 0 je uzavretý obchod, ktorý nevyhral ani neprehral: započíta sa do menovateľa miery výhier aj do expectancy, ale nie do priemernej straty pomeru rizika a výnosu, a ukončí sériu výhier aj prehier.
  • Menej ako dva obchody alebo obchody otvorené v tej istej sekunde nechajú frekvenciu na 0 bez jednotky.
  • Hodnota, ktorú nie je čím deliť — bez straty pri profit factore či pomere rizika a výnosu, bez odchýlky pri Sharpeho či Sortinovom pomere —, zostáva 0.

Tvary výsledkov

VýsledkyCesta k hodnotePoznámka
counts, wins, wins->closed, wins->winRatio, streaks->wins, streaks->losses->global, ->forPair(), ->forBaseCurrency(), ->forQuoteCurrency() → ->total, ->buy, ->sellKaždá koncová hodnota je NumericValueAsString.
volume, value, commission, duration, P&L gross / net, cumulativeReturn gross / net->global, ->forPair(), … → ->total, ->buy, ->sell → ->total, ->count, ->average, ->highest, ->highestPair, ->lowest, ->lowestPaircount je int — počet obchodov, z ktorých agregát vznikol; highestPair a lowestPair sú obyčajné reťazce.
profitFactor, frequency, P&L grossProfits / grossLosses / netProfits / netLosses->total, ->forPair(), ->forBaseCurrency(), ->forQuoteCurrency()Bez rozdelenia na nákupy a predaje.

Prechádzanie rozpadov

Verejné polia perPair, perBaseCurrency a perQuoteCurrency obsahujú všetky rozpady z behu, s kľúčom podľa páru alebo meny:

foreach ($analytics->realizedProfitAndLoss->net->perPair as $pair => $pnl) {
    echo $pair, ': ', $pnl->total->total, PHP_EOL;
}
// BTC/USD: 990.00
// ETH/USD: -209.00

array_keys($analytics->counts->perBaseCurrency);  // ['BTC', 'ETH']
array_keys($analytics->counts->perQuoteCurrency); // ['USD']

forPair() a ďalšie metódy rozpadov vrátia pre pár alebo menu bez obchodov nulové hodnoty — nikdy null.

Viac kótovaných mien

Globálne súčty sčítajú sumy zo všetkých kótovaných mien tak, ako sú. Ak obchodujete voči viacerým kótovaným menám, sumy čítajte po menách cez forQuoteCurrency().

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.