Každá výnimka dedí z RoundlyConsulting\TradingAnalytics\Exceptions\TradingAnalyticsException (RuntimeException), takže ich zachytíte všetky jedným catch:
use RoundlyConsulting\TradingAnalytics\Exceptions\TradingAnalyticsException;
use RoundlyConsulting\TradingAnalytics\Facades\TradingAnalytics;
try {
$analytics = TradingAnalytics::for($rows)->scale($scale)->calculate();
} catch (TradingAnalyticsException $e) {
// an invalid trade row, an unordered source, a chunk size below 1, a negative scale,
// a non-numeric value, a division by zero, an unknown calculator or engine
report($e);
}| Výnimka | Pomenované konštruktory | Kedy nastane |
|---|---|---|
InvalidTradeException | emptyCurrency, closeBeforeOpen, missingField, invalidField, invalidDirection | Prázdna základná alebo kótovaná mena, čas zatvorenia pred časom otvorenia, chýbajúce alebo nullové povinné pole, pole nesprávneho typu alebo smer iný ako buy / sell. |
UnorderedTradeSourceException | for, outOfOrder | Dopyt odovzdaný ako zdroj obchodov bez orderBy alebo realizovaný obchod, ktorý príde po obchode uzavretom neskôr. |
InvalidChunkSizeException | tooSmall | Hodnota chunk menšia ako 1. |
InvalidScaleException | negative | Záporná škála (scale). |
InvalidNumericOperationException | nonNumericValue, outOfRange, fractionalExponent | Nečíselný vstup (vrátane INF a NAN), exponent nad 1000 alebo neceločíselný exponent v pow(). |
DivisionByZeroException | make | Delenie nulou. |
UnknownCalculatorException | notACalculator | only() / except() / calculate(only: …) dostali triedu, ktorá nie je registrovaný kalkulátor. |
InvalidEngineException | notAnAnalyticsEngine | TradingAnalytics::using() dostala triedu, ktorá nie je Analytics ani jej podtrieda. |
Trade::collect() je lenivé: neplatný riadok alebo obchod mimo poradia vyhodí výnimku až vtedy, keď ho spracúva calculate(), nie pri vytvorení kolekcie. Dopyt bez orderBy a chunk menší ako 1 vyhodia výnimku hneď pri odovzdaní zdroja.
Jedinou výnimkou mimo tejto rodiny je chybná konfigurácia scale alebo win_rate_period: hneď pri vytvorení enginu vyhodí InvalidConfigurationException z package-toolkit s názvom kľúča.
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.