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

P&L a ROI jedného obchodu

Každý Trade si vypočíta vlastné hodnoty — tie isté, ktoré engine agreguje. Každé číslo sa vracia ako NumericValueAsString; komentáre ukazujú jeho reťazcovú podobu:

$trade = Trade::make(
    baseCurrency: 'BTC',
    quoteCurrency: 'USD',
    openPrice: '40000',
    closePrice: '42000',
    size: '0.5',
    direction: 'buy',
    openTime: '2024-03-01 09:00',
    commission: '10',
    closeTime: '2024-03-01 15:00',
);

$trade->pair();         // 'BTC/USD'
$trade->isRealized();   // true — it has a close time
$trade->isOpen();       // false

$trade->profitAndLoss();                           // '1000.0000000000' — gross
$trade->profitAndLoss(subtractCommissions: true);  // '990.0000000000' — net

$trade->roi();                           // '5.00' — percent, 2 decimals
$trade->roi(subtractCommissions: true);  // '4.95'
$trade->roi(asPercentage: false);        // '0.0500000000' — a fraction
  • P&L nákupu je (výstupná cena − vstupná cena) × veľkosť; pri predaji (vstupná cena − výstupná cena) × veľkosť.
  • subtractCommissions: true odpočíta poplatok obchodu, ak ho má.
  • ROI delí P&L hodnotou pozície (vstupná cena × veľkosť). Predvolene je to percento zaokrúhlené na 2 desatinné miesta; asPercentage: false vráti surový zlomok.

Ako pole

toArray() obsahuje stavové príznaky a obe varianty P&L aj ROI:

$trade->toArray();
// [
//     'base_currency' => 'BTC',
//     'quote_currency' => 'USD',
//     'open_price' => '40000.0000000000',
//     'close_price' => '42000.0000000000',
//     'size' => '0.5000000000',
//     'direction' => 'buy',
//     'open_time' => '2024-03-01 09:00:00',
//     'close_time' => '2024-03-01 15:00:00',
//     'commission' => '10.0000000000',
//     'is_realized' => true,
//     'is_open' => false,
//     'pnl' => ['gross' => '1000.0000000000', 'net' => '990.0000000000'],
//     'roi' => ['gross' => '5.00', 'net' => '4.95'],
// ]

Trade implementuje aj Jsonable a JsonSerializable, takže toJson() aj json_encode() vrátia rovnaké dáta.

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.