JSON a odpovede API
Inštancia Analytics aj každý výsledkový objekt implementujú kontrakty Arrayable a Jsonable z Laravelu a JsonSerializable z PHP, takže ich môžete priamo vrátiť v odpovediach API:
// In a controller — returns the full result matrix as JSON
return $analytics;
// Or explicitly
return response()->json($analytics);
$analytics->toArray(); // nested array
$analytics->toJson(); // JSON string
json_encode($analytics); // same payload via JsonSerializable
$analytics->expectancy->toJson(); // any single result serializes the same wayKaždý samostatný výsledok (napr. $analytics->expectancy, $analytics->counts) aj hodnotový objekt NumericValueAsString sa serializujú rovnako.
Tvar dát
toArray() obsahuje len metriky, ktoré bežali, pod kľúčmi v snake_case; P&L je pod profit_and_loss.realized a profit_and_loss.unrealized. Sumy a pomery sú reťazce, takže cestou do JSON sa nestratí žiadna presnosť:
array_keys($analytics->toArray());
// ['counts', 'wins', 'volume', 'value', 'commission', 'profit_and_loss',
// 'profit_factor', 'cumulative_return', 'frequency', 'duration', 'streaks',
// 'expectancy', 'risk_reward_ratio', 'win_rate_by_period', 'max_drawdown',
// 'risk_adjusted_returns']
$analytics->toArray()['profit_and_loss']['realized']['net']['pnl']['global']['total'];
// [
// 'total' => '781.00',
// 'average' => '260.33',
// 'highest' => ['value' => '990.00', 'pair' => 'BTC/USD'],
// 'lowest' => ['value' => '-306.00', 'pair' => 'ETH/USD'],
// ]
$analytics->counts->toArray()['per_pair'];
// ['BTC/USD' => ['total' => '1', 'buy' => '1', 'sell' => '0'],
// 'ETH/USD' => ['total' => '2', 'buy' => '1', 'sell' => '1']]- V rozpadoch per_pair, per_base_currency a per_quote_currency výsledky typu počet (counts, wins, streaks) vynechávajú položky s nulovým súčtom, kým agregáty (volume, value, commission, duration, P&L, kumulatívny výnos) uvádzajú každý kľúč, do ktorého prispel obchod — aj pár, ktorého P&L vyjde presne 0 —, a vynechávajú kľúče, ktoré sa len prečítali cez forPair() a podobné metódy.
- wins.win_ratio uvádza každý kľúč s uzavretým obchodom, vrátane pomeru 0.00.
- frequency serializuje každú hodnotu ako celé pole (value, scale, prefix, suffix a formatted), takže jednotka putuje spolu s číslom.
- Formátované reťazce obsahujú predponu alebo príponu, ak je nastavená.
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 kryptomienOdoslaní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.