jesse 3.2.1__tar.gz → 3.2.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jesse-3.2.1/jesse.egg-info → jesse-3.2.3}/PKG-INFO +2 -2
- {jesse-3.2.1 → jesse-3.2.3}/jesse/cli.py +13 -4
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/agent_rules.md +2 -2
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/strategy.md +60 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/server.py +10 -2
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/strategy.py +16 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/__init__.py +41 -1
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitMain.py +52 -8
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/candle_service.py +20 -36
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/lsp.py +137 -123
- jesse-3.2.3/jesse/services/lsp_download.py +23 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/trading_hours.py +16 -14
- jesse-3.2.3/jesse/version.py +1 -0
- {jesse-3.2.1 → jesse-3.2.3/jesse.egg-info}/PKG-INFO +2 -2
- {jesse-3.2.1 → jesse-3.2.3}/jesse.egg-info/SOURCES.txt +1 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse.egg-info/requires.txt +1 -1
- {jesse-3.2.1 → jesse-3.2.3}/requirements.txt +1 -1
- {jesse-3.2.1 → jesse-3.2.3}/setup.py +12 -2
- jesse-3.2.1/jesse/version.py +0 -1
- {jesse-3.2.1 → jesse-3.2.3}/LICENSE +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/MANIFEST.in +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/README.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/candle_pipelines/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/candle_pipelines/base_candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/candle_pipelines/gaussian_noise.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/candle_pipelines/gaussian_resampler.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/candle_pipelines/moving_block_bootstrap.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/config.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/constants.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/ai_model_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/auth_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/backtest_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/candles_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/closed_trade_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/config_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/data_provider_credentials_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/e2e_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/exchange_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/file_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/live_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/lsp_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/monte_carlo_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/notification_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/optimization_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/order_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/period_templates_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/route_templates_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/significance_test_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/strategy_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/system_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/tabs_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/controllers/websocket_controller.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/enums/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/exceptions/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/exchanges/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/exchanges/exchange.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/exchanges/sandbox/Sandbox.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/exchanges/sandbox/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/factories/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/factories/candle_factory.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/factories/order_factory.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/helpers.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/acosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ad.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/adosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/adx.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/adxr.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/alligator.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/alma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ao.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/apo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/aroon.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/aroonosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/atr.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/avgprice.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/bandpass.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/beta.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/bollinger_bands.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/bollinger_bands_width.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/bop.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cci.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cfo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cg.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/chande.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/chop.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cksp.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cmo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/correl.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/correlation_cycle.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cvi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/cwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/damiani_volatmeter.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/dec_osc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/decycler.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/dema.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/devstop.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/di.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/dm.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/donchian.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/dpo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/dti.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/dx.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/edcf.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/efi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ema.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/emd.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/emv.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/epma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/er.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/eri.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/fisher.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/fosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/frama.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/fwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/gatorosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/gauss.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/heikin_ashi_candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/high_pass.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/high_pass_2_pole.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/hma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/hull_suit.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/hurst_exponent.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/hwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ichimoku_cloud.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ichimoku_cloud_seq.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ift_rsi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/itrend.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/jma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/jsa.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/kama.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/kaufmanstop.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/kdj.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/keltner.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/kst.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/kurtosis.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/kvo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/linearreg.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/linearreg_angle.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/linearreg_intercept.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/linearreg_slope.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/lrsi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/maaq.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mab.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/macd.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mama.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/marketfi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mass.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mcginley_dynamic.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mean_ad.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/median_ad.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/medprice.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mfi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/midpoint.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/midprice.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/minmax.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mom.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/mwdx.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/natr.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/nma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/nvi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/obv.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/pfe.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/pivot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/pma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ppo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/pvi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/pwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/qstick.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/reflex.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/roc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rocp.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rocr.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rocr100.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/roofing.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rsi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rsmk.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rsx.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/rvi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/safezonestop.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/sar.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/sinwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/skew.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/sma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/smma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/squeeze_momentum.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/sqwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/srsi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/srwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/stc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/stddev.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/stiffness.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/stochastic.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/stochf.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/supersmoother.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/supersmoother_3_pole.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/supertrend.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/support_resistance_with_break.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/swma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/t3.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/tema.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/trange.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/trendflex.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/trima.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/trix.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/tsf.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/tsi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ttm_squeeze.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ttm_trend.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/typprice.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ui.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/ultosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/var.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vi.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vidya.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vlma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/volume.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vosc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/voss.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vpci.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vpt.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vpwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vwap.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vwma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/vwmacd.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/wad.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/waddah_attr_explosion.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/wclprice.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/wilders.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/willr.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/wma.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/wt.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/zlema.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/indicators/zscore.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/info.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/libs/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/libs/custom_json/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/libs/dynamic_numpy_array/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/USAGE_LIMITS.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/agent_rules.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/manager.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/mcp_config.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/backtest_management.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/backtest_metrics.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/candle.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/charts.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/configuration.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/credentials.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/indicator.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/monte_carlo.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/optimization.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/position_risk.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/significance_test.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/strategy_examples.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/resources/utilities.md +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/test.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/backtest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/config.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/credentials.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/general.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/indicator.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/monte_carlo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/optimization.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/auth.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/backtest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/config.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/credentials.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/general.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/indicator.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/monte_carlo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/optimization.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/session_config.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/significance_test.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/services/strategy.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/tools/significance_test.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/mcp/usage_limits.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/AiModel.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/BacktestSession.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Candle.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/ClosedTrade.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/DataProviderCredentials.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Exchange.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/ExchangeApiKeys.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/FuturesExchange.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/LiveChart.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/LiveEquitySnapshot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/LiveSession.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Log.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/MonteCarloSession.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/NotificationApiKeys.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/OpenTab.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/OptimizationSession.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Option.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Order.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Orderbook.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/PeriodTemplate.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Position.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Route.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/RouteTemplate.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/SignificanceTestSession.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/SpotExchange.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Ticker.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/Trade.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/models/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/backtest_mode.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/data_provider.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/exchange_api_keys.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/apex_omni_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk-arm.dylib +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk-x86.dylib +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk.dylib +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk.so +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-arm.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-pc.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-x86.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.dll +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/BinanceMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFutures.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFuturesTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/BinanceSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/BinanceUSSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Binance/binance_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bitfinex/BitfinexSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bitfinex/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bitfinex/bitfinex_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitSpotTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetualTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetualTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Bybit/bybit_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Coinbase/CoinbaseSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Coinbase/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Coinbase/coinbase_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Gate/GateSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Gate/GateSpotMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Gate/GateUSDTMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Gate/GateUSDTPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Gate/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Gate/gate_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Hyperliquid/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Hyperliquid/hyperliquid_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetualMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetualTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenSpotMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Kraken/kraken_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinFuturesMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinSpot.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinSpotMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinUSDTPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/KuCoin/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/KuCoin/kucoin_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/LighterMain.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/LighterPerpetual.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/LighterPerpetualTestnet.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/lighter_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-darwin-arm64.dylib +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-linux-amd64.so +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-linux-arm64.so +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-windows-amd64.dll +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/import_candles_mode/drivers/interface.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/monte_carlo_mode/MonteCarloRunner.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/monte_carlo_mode/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/notification_api_keys.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/optimize_mode/Optimize.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/optimize_mode/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/optimize_mode/fitness.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/significance_test_mode/SignificanceTestRunner.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/significance_test_mode/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/modes/utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/candle_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/closed_trade_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/data_provider_credentials_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/live_chart_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/live_equity_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/live_session_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/open_tab_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/order_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/period_template_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/repositories/route_template_repository.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/backtest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/import_candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/ml.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/monte_carlo/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/monte_carlo/common.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/monte_carlo/monte_carlo_candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/monte_carlo/monte_carlo_trades.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/optimize/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/rule_significance_testing/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/rule_significance_testing/bootstrap.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/rule_significance_testing/common.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/rule_significance_testing/plots.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/rule_significance_testing/rule_significance.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/research/rule_significance_testing/simulator.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/routes/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/api.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/auth.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/broker.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/cache.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/charts.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/closed_trade_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/color.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/custom_candle_import.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/db.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/e2e_database.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/env.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/exchange_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/failure.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/file.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/general_info.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/contracts.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/credential_validation.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/errors.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/massive_stocks.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/providers/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/historical_data/registry.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/installer.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/jesse_trade.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/live_chart_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/logger.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/metrics.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/migrator.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/multiprocessing.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/notifier.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/order_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/position_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/progressbar.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/redis.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/report.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/simulation_assumptions.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/strategy_handler/ExampleStrategy/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/strategy_handler/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/strategy_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/symbol_catalog.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/table.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/transformers.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/validators.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/web.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/services/ws_manager.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/200.html +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/404.html +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/08VXUWAP.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/0ONmXmPL.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/1XVEVF4R.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/1lwvrZu5.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/1uxVtXhK2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/25FdeeAd.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/2IIEA8gg2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/2k_QeT3T.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/32DixAac.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/35Gd1l6b.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/3KuTZQMl2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/43DmfD332.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/4G7pJPwS2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/5eyTD99u.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/6RTg0lbw.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/6d_DINYp2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/6hrdeXKO.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/9SMx-Yg9.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/9SuGUQxQ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/AGOgedFG2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/AsfNJWWT.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B-yKKtcE2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B01W0raW.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B02lME3Q.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B2-f6Wu2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B2OO5cIa2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B2kYdT-M.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B3Tmza7s2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B4Wc4BFL2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B4t1Dpxy.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B5-_aFwp.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B5W6OYN72.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B5e22D9r.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B68TUdTA.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B6UiomQj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B8J7ngcE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B8_r5oP7.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B8rOtbmR.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B8xNgNWT.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B9JPFI3C.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B9MRSN3q2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BAlG784d2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BBjHab7x.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BCixiDKj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BD87b4dR2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BDNMzG2s2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BEEn4gHE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BEtHBSE6.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BG8CfSEZ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BGMtTsN-.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BHWKrbxM.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BI3Y1cOA.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BJzMFF2L.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BKD0O2_Q.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BKFC8tTN.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BKPLz4po2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BKcRqSit.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BKxtCVv1.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BLCaNkgi.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BLhvb9Y-.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BMrGqELX.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BN08jTvb.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BOotOW0E.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BQYoEE-E2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BRSARzao2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BRqV1csJ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BSSBbjzH.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BSWPekZh2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BSt81nX4.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BSu9_R8X2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BT_Y9Qa72.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BTgcbkPe2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BTkZN-kY.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BUvLBkUT2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BVAhOJRw.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BWDSh1SW.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BWPQTe0t.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BXViO-2h.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BYdTN3Ud2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BYgofb2h.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BYsxK_gZ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BZ4HG2rr2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BZCL-v6S.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B_-2JulU.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/B_tTalzw.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Ba7i2nA0.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BacktestTabs.BhkXf2je.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BapWjBt9.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BcJ0KAXG.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bc_sGQ0U.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bdoqq8BI2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BeGwcela.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Beywemwu.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BfbyNUB7.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bh7THQLS2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BhKQO4Px.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BhPF9KW82.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BhjAJghj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BiK3sWoz2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BiX_3ZGn2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BjSKRB-a2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BjshL_xA2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BkmU6oQY.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bkml37m-.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BldMJGpi.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bm3Qr25_2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BmBupKYI2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bmbr8zF3.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BnjxR4X6.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bnr-372i.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bnr-Ft3Y.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bo9Dl7tn.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BoEzQrVW.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BoK4YRpC2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BolyLLo5.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BpBaBBm3.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BpJ9fpSU.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BqJ9I9M42.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bqx3koTc.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bri6UV-V.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BshRgckk.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BsuIFbdf2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bt4sAq3f.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BtUnaqJ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Buu8uHmp2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BvwLaU7c.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BvzEE6Lm.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bw1-c76v.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BwWrilGY2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BwjZg7Kw2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bx1FflLF.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bxkupp3x.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/By-L4I7w.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/By1ptfmn2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Bz4Y3fRF.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/BzMNZVT72.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C-69Y6Pu.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C-LZuMrd.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C-RhCxcP2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C-y9NEjX.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C25aelnV2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C2shJFxU.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C3oCr-8k2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C531GsRP2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C5_-GSwl.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C5kJGiKi2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C7h46wYY.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C8468PWD.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C8Ef5oNN.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C8q3xVCB.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C8r90Shi.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C96bnRGM.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C9St-qHN.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CAWjiWzg2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CC-BCOei.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CC2rA5mh.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CC3Dc58n.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CC8GggWq2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CCUjCBK52.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CD78tava2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CDeNXAV0.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CFAvbRBv.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CFDCSoUG.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CH6Zxsf52.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CHKcdHUs2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CHQ94UKr2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CIPQ_RoX2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CJ3rzSJv2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CJ5SUZOH2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CJNUlr67.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CLIur_dZ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CMC9H7kb.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CMnkeXFt.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CO65HNi2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/COtstiRA2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/COyNsUt6.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CQRhyXHt.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CQUMS8QJ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CRal5XOA2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CRfGWb83.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CRyZUaTi.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CTweb8Dz2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CUKGrt9p2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CUL-_UXV2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CUP8soDG.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CVPISREU.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CVaqCwHa.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CW42rLZD.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CWDvEqlu2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CXHoNUfW.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CXcZYQdg.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CXtmUGW6.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CXuuVbXE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CZ3SG3_I2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CZoCCMwk2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CZsCp6_J.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CZymKofZ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/C_8bwKvT2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CaLoWpdj2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cb4Vim4T2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CbKt6i1F2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cba4tSYP.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CbdYpKc9.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CcEz-6AP2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CcwsVR0C.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cd-sGgPF.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CdkpiU2Y2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Ceyelwdz.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cf85K_3V.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cf9Ao90m2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CfSJPG6W2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cfl0F_Ix.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CfvQ0GVj2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Ci7ol7o5.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cimd5fb32.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CioJR-lb.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CircleProgressbar.DG_Oo3ZB.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CjM6HreG.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CjSZG47B2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Ck9wOcVq.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CkJ3IzwM2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CkN8TU5K.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CkRax0sH.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cl4KV_tk.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/ClCothXP.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/ClamHrr62.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cm7r79vr.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CnscBGsj2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CoKYUvtC.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CoKk4mC0.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Con6PA_2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CopQ2nXW2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CowLSvep.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CpL23Fmb2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CpdwwrfH.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CpzslTdj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cr7JoK-F.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CrVSgIkM2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cs2F2srj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CsQS60Ue2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CsvMBhTu.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cuy4t56v.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CximN0RY2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CyQZr6J2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CyiiZBUN2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/CylTzRX72.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Cz7rf_X82.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Czk_mF82.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D-9WcGfc2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D-V0WHGE2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D-kcNTYM.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D-oSqn_W2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D-ptJ9y-2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D05T4iGw.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D0mw5jGK.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D1yN6wZY2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D24BC_UT2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D2ZwgM9U2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D2mw--Fl2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D2ymy_yS.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D3HTKQgj2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D3hlyOfw2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D4-rlkSU.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D5GhRiPb.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D5ROd09N2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D5Retr0R2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D5Z5IiLY2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D8_NR6i12.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D94iqX0Y2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DB-uxtVd.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DCQb3MpD.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DD7sRF69.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DDPgixDB.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DDe1Q-WN2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DDpmG2fV2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DDwmkQR0.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DEJw_qiA2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DFBbRf0l.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DFfgcuRt.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DFwEHpFD.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DHBI_yxQ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DHpiXF5c.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DIMkf-bt.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DISqw1ZD.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DItLkvgc2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DK0GhfdP.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DKCQ3kY7.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DKSmMEZa2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DLJdWeDZ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DLSXrvMj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DMUM7wLl.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DMnEoi8l.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DNB37k3h2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DOTl9kKz.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DOgf9of5.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DOwBwxAc2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DP8dx3Mz.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DPDvM2ct.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DPJPAjQR.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DPUBG1Sa2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DPZlj92U.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DQ-b8cau.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DQU07tlD.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DQUlB_uC.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DQwYfKfQ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DRFjx7u42.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DSh2HLQt2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DT7zqm-g.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DTj74zXo2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DV17i1UV2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DV3o63ZY.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DVG0V4jx.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DVQuIRkW2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DVvwPJMn2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DWUE7pqF2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DXG-b-1a.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DXgieCCJ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DY43dlCC.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DYlRzrDj.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DZFCIeNp.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DZsh6Vsl2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D_3yiDAS.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D_Lu-MrJ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/D_Sm39l5.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DauUninz2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DaxQctDl.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Db4fpp4X2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DbInun42.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DcUUodPk.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DdJ6paNh.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DdL9SqIa.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/De02G7DS.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/De2hgUGE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DezsRK8O.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Df2xbC6M.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DfC9-Oas2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DgPtEepw2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DgfQ8roX.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DhQhRRFW2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DhmEMT882.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DiQii0fS.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DikR2-RP.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DipiWojk.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DjAgHZrJ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DkmNSMHY.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DkqhCAOL2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dl3pNQBR2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DlW2jO6L2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DljXZpSz.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dm6T-vrV2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DmHpPYUd2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DmNVVboZ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dmf8Y0ON2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DnKPLd6d.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DnToyrRv2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DoT8DRFX.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dp-2asp4.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DpFanUEy.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DpIdnCtC.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DpTtcPZs2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DpW8JRZm.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DqJzYO7Y2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DqT4cj-J.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DqXIJaHE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DrH0SRf22.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Ds29f9ZA.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Ds9iBrvx.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dsw3HnIE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dt39crSB.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dt9aNFbE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DtGle1nz2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DtX02f_x2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DuT2u1M92.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DxSv1ANE2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dxp_UTNE.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DyeqKBoC.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Dyqgk9ID2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/DytYwiiF.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/EUqPIrTm.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/EZH7P6f9.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/EoqKQiEy2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/FIalSC7A.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/FXfnIlgg2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/FvmIjYaQ2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/HSRijeU2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/HclGiUj8.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/HlOV9je9.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Hsn-rFuA.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Hza2DNlp.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/IXshMDJQ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/IliqAppL.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Inter-VariableFont_slnt_wght.Cl4AQHp9.ttf +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/JVoApnG_.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/JaHKEXQh.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/JgXkd7uo2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/JjuYFqoF.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/JpkrmRYq2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/KfYW7BGn.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/KgIFLbLy.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/KhqzbbC32.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/L2jIIa9o.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/LO_BkMJ8.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/LRbiS5Dz.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/LiveTabs.rsQh4sN8.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Mi0eZJ_C2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/NEE52Syq.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/NyRjDEkA2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/O1vzaDvk2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/OaeI3Ulg.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/OfUAv67B2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/ProgressStatusText.BQK0FaGL.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Q6FVf6Zo.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/QTnfLwEv.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/QZfQtQzF2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/QoymgQo0.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/SOo6toE52.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/StrategiesSidebar.DVMKtiGP.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/TradeHistoryChart.Bs0aEPiQ.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/TtSlr_h_2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/VbXTXTou.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/VuUr933P2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/WA2gHESr.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/WF6tEroY2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/WFnVOHr3.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/WZ5HE0X3.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Wy_umkB72.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/YdFKNLmY.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/Z5eAx3Zn2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/_3zCpt1T.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/_7BVYBMY2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/_b8AQjYy.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/_id_.B3a6JG34.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/_id_.BCRDQrek.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/_id_.BRd1elCl.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/aQXfN9KN.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/apGZNcKz.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/atteXEGs.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/bTuwJoIa.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/bjCyB0Gn2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/bpSru2N82.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/ccMIPn_w.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/coSIg_O3.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/codicon.Brq4_Ui5.ttf +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/css.worker-B1A7g9RU.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/dLd1bcTA2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/dnt9x4Qr.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/eDEyLi0S.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/editor.DNwT-hdg.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/entry.CkGiV5Q9.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/error-404.DjFB7pgG.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/error-500.BG9pmads.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/fmXr3nnJ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/foABv0nJ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/fwtXNY1n.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/gEsa7Idh.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/gG0NvZLm2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/gp-XZpBa.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/grryJGmv.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/hBpBmjHp.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/hZRgR8Lc.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/hdxB67uV.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/html.worker-NdFMIQdB.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/i0X4ZdIN.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/ibI1KQep.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/json.worker-Ax0gao5O.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/lP7_xLqx2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/live.BHsUui2i.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/logo-dark.tKoQPl1k.svg +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/logo-light.CS4l4ePq.png +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/mAYmvPyL.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/mnTiCSRt2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/monte-carlo.SA-Jni4T.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/nFMaYfgc.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/nR0dIlKu.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/nr791fC22.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/onAF5SnQ.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/oz_6vUea2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/pQUz-uq3.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/pRr3cFVo.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/paCCX65n.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/pages.Kz8uii-H.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/qBoaT7Fk2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/qpEHnBAB.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/rHIqefrb.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/sB-x3p7T.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/sBoK_t0W.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/significance-test.C3_9t58f.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/sltzmVWM2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/strategies.CZAezJwX.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/toggleHighContrast.DUMOsFrl.css +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/ts.worker-CiiXQ93o.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/u9_Y1g7K2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/uHUmCDd7.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/u_o9HDF2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/uf1cV9ZP.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/uhdI0v042.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/v83TR0fG.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/wbypxrpR.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/xk2_4sNk2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/xse2Sllu2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/y2WM_oP32.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/y_x7m0Ik2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/yjvMp0c6.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/zMsjhnnN2.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/_nuxt/zbKwAOr32.js +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/favicon.ico +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/favicons/android-chrome-192x192.png +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/favicons/android-chrome-512x512.png +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/favicons/apple-touch-icon.png +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/favicons/favicon-16x16.png +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/favicons/favicon-32x32.png +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/index.html +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/static/robots.txt +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_app.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_closed_trades.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_exchanges.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_logs.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_orderbook.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_orders.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_positions.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_tickers.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/store/state_trades.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/CanAddClosedTradeToStore/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/RealStrategyRegression1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/RealStrategyRegression2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/RealStrategyRegression3/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Strategy.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test01/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test02/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test04/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test05/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test06/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test07/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test08/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test09/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test10/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test11/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test12/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test13/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test14/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test15/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test16/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test17/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test18/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test19/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test20/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test21/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test22/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test23/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test24/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test25/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test26/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test27/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test28/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test29/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test30/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test31/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test32/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test33/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test34/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test35/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test36/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test37/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test38/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test39/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test40/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test41/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test44/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test45/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test46/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test47/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/Test48/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestAddHorizontalLineToCandleChart/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestAddHorizontalLineToExtraChart/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestAddLineToCandleChart/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestAddLineToExtraChart/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestAfterMethod/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestAverageEntryPriceProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestBaseAndQuoteAssetProperties/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestBeforeMethod/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestBeforeTerminate/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanRunWithoutShorting/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCannotSetStopLossOrderInGoLong/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCannotSetTakeProfitOrderInGoLong/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCannotSpendMoreThanAvailableBalance/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCapitalPropertyRaisesNotImplementedError/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestClosedTradeAfterExitingTrade/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCommonWarmupStart/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCurrentRouteIndex1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestCurrentRouteIndex2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestDailyBalanceStoresPortfolioValue/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestDailyBalancesProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestDataRoutes1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestDataRoutes2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestDefaultHyperparameters/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestDnaMethod/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestEmptyStrategy/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestEntryOrdersAndExitOrdersProperties/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestExchangeTypeProperty1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestExchangeTypeProperty2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestFuturesExchangeAvailableMargin/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestGeneratedDataRouteExecutionBTC/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestGeneratedDataRouteExecutionETH/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestHasLongAndShortEntryOrdersPropertiesInFilters/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestHasLongEntryOrdersProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestHasShortEntryOrdersProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestIncreasedAndReducedCount/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestIncreasingShortPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestInsufficientMargin1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestInsufficientMargin2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestInsufficientMargin3/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLeverageProperty1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLeverageProperty2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLiquidationInCrossModeForShortTrade/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLiquidationInIsolatedModeForLongTrade/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLiquidationInIsolatedModeForShortTrade/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLogMethodInStrategyClass/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLongLifecycleAcrossTradingModes/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestLongSparseGap/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMarkPrice/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMarketOrderForLowPriceDifference/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMetrics1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMultiInstrumentReplayA/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMultiInstrumentReplayB/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMultipleEntryOrdersUpdateEntryLongPositions/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestMultipleEntryOrdersUpdateEntryShortPositions/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOnCancelMethod/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOnClosePosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOnRouteOpenPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOnRouteOpenPosition2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOptimizationIsolation/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOrderIsStopLossProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOrderIsTakeProfitProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOrderPriceCannotBeGreaterThanZero/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOrderValueProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOrdersAreSortedBeforeExecution/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestOversizedReduceOnlyExitAccounting/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPortfolioValue/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPortfolioValueIncludesPositionValueAndOpenOrdersValue/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositionExchangeTypeProperty1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositionExchangeTypeProperty2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositionOpenIncreaseReduceCloseEventsInSpot/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositionTotalCostProperty/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositionWithLeverage1/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositionWithLeverage2/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestPositions/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestProperBalanceHanldingInSpotAfterOrderCancellation/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestProtectiveOrdersAcrossTradingModes/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestReduceOnlyMarketOrders/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestRuleSignificanceAlignment/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestRuleSignificanceFailure/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestShortInSpot/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestSparseTimestampRoutes/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestStrategyChartsReport/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestStrategyVariablesAreResetBeforeOpeningNewPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestTerminate/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestTradingHours/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestUsageOfShouldCancelRaisesNotImplementedError/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestVanillaStrategy/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestWalletBalance/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/TestWithoutCancelMethod/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/strategies/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/testing_utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse/utils.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse.egg-info/dependency_links.txt +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse.egg-info/entry_points.txt +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/jesse.egg-info/top_level.txt +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/setup.cfg +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/conftest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/data/__init__.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/data/test_candles_0.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/data/test_candles_1.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/data/test_candles_indicators.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_backtest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_backtest_session_chart_data.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_broker.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_candle_copy.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_candle_service.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_candle_timeframe_filter.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_chart_data_serialization.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_completed_trade.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_config_safety.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_conflicting_orders.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_dynamic_numpy_array.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_e2e_database.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_exchange.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_helpers.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_historical_data_contracts.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_import_and_backtest_request_boundaries.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_import_candle_drivers.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_import_candles.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_import_candles_workflow.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_indicators.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_isolated_backtest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_live_session_chart_data.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_live_strategy_charts.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_lsp.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_mcp_config.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_mcp_credentials.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_mcp_resources.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_mcp_usage_limits.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_metrics.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_optimization_and_monte_carlo_session_failures.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_order.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_parent_strategy.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_position.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_price_gap_backtest.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_progressbar.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_real_strategy_regression.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_research.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_research_monte_carlo.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_research_optimization_isolation.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_research_session_lifecycle.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_router.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_rule_significance_testing.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_session_scoped_configuration.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_significance_test_session.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_simulator_parity.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_spot_mode.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_candle.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_exchanges.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_logs.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_orderbook.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_orders.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_ticker.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_state_trades.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_trading_hours.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_trading_mode_contracts.py +0 -0
- {jesse-3.2.1 → jesse-3.2.3}/tests/test_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jesse
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.3
|
|
4
4
|
Summary: A trading framework for cryptocurrencies
|
|
5
5
|
Home-page: https://jesse.trade
|
|
6
6
|
Author: Saleh Mir
|
|
@@ -48,7 +48,7 @@ Requires-Dist: ray
|
|
|
48
48
|
Requires-Dist: eth-account~=0.13.5
|
|
49
49
|
Requires-Dist: msgpack~=1.1.0
|
|
50
50
|
Requires-Dist: starkbank-ecdsa~=1.1.0
|
|
51
|
-
Requires-Dist: jesse-rust==1.
|
|
51
|
+
Requires-Dist: jesse-rust==1.3.0
|
|
52
52
|
Requires-Dist: mcp==1.28.1
|
|
53
53
|
Requires-Dist: joblib~=1.5.3
|
|
54
54
|
Requires-Dist: scikit-learn~=1.7.2; python_version < "3.11"
|
|
@@ -40,7 +40,13 @@ def install_live(strict: bool) -> None:
|
|
|
40
40
|
default=False,
|
|
41
41
|
help="Skip syncing the agent rules file (AGENTS.md / CLAUDE.md / mcp-rules.md) in the project directory.",
|
|
42
42
|
)
|
|
43
|
-
|
|
43
|
+
@click.option(
|
|
44
|
+
"--skip-lsp",
|
|
45
|
+
is_flag=True,
|
|
46
|
+
default=False,
|
|
47
|
+
help="Skip the Python Language Server for this run (disables editor code intelligence).",
|
|
48
|
+
)
|
|
49
|
+
def run(skip_agent_rules: bool, skip_lsp: bool) -> None:
|
|
44
50
|
"""Start the Jesse application server."""
|
|
45
51
|
from jesse.services.env import is_test_env
|
|
46
52
|
|
|
@@ -102,11 +108,14 @@ def run(skip_agent_rules: bool) -> None:
|
|
|
102
108
|
time.sleep(sleep_seconds)
|
|
103
109
|
run_migrations()
|
|
104
110
|
|
|
105
|
-
if
|
|
111
|
+
if skip_lsp:
|
|
112
|
+
click.echo("Skipping Python Language Server for this run. Editor code intelligence will be unavailable.")
|
|
113
|
+
|
|
114
|
+
if not is_test_env() and not skip_lsp:
|
|
106
115
|
try:
|
|
107
116
|
from jesse.services.lsp import install_lsp_server
|
|
108
117
|
|
|
109
|
-
install_lsp_server()
|
|
118
|
+
skip_lsp = not install_lsp_server(allow_skip=True)
|
|
110
119
|
except Exception as e:
|
|
111
120
|
print(jh.color(f"Error installing Python Language Server: {str(e)}", "red"))
|
|
112
121
|
pass
|
|
@@ -124,7 +133,7 @@ def run(skip_agent_rules: bool) -> None:
|
|
|
124
133
|
|
|
125
134
|
# Set global Jesse API configuration for MCP and other services
|
|
126
135
|
|
|
127
|
-
if not is_test_env():
|
|
136
|
+
if not is_test_env() and not skip_lsp:
|
|
128
137
|
try:
|
|
129
138
|
from jesse.services.lsp import run_lsp_server
|
|
130
139
|
|
|
@@ -56,7 +56,7 @@ Jesse provides comprehensive documentation through MCP resources.
|
|
|
56
56
|
|
|
57
57
|
Key resources include:
|
|
58
58
|
|
|
59
|
-
- jesse://strategy - Strategy structure and
|
|
59
|
+
- jesse://strategy - Strategy structure, candle-by-candle execution, and Trading Hours workflow for adapting traditional-market research to 24/7 exchanges
|
|
60
60
|
- jesse://strategy_examples - Library of complete, worked example strategies (full, runnable references)
|
|
61
61
|
- jesse://charts - Strategy chart APIs, update_chart lifecycle, and live intrabar behavior
|
|
62
62
|
- jesse://indicator - Step-by-step guide for discovering and using indicators and Essential indicators and candle data access
|
|
@@ -114,10 +114,10 @@ High-signal Jesse strategy-authoring gotchas (full detail in jesse://strategy):
|
|
|
114
114
|
- On **spot**, shorting is unsupported: `should_short()` must return `False`, leverage is always `1`, and `stop_loss`/`take_profit` must be set in `on_open_position()` (not `go_long()`).
|
|
115
115
|
- Size from `self.available_margin` (or balance/capital), price, and `self.fee_rate` via sizing utilities (`size_to_qty`, `risk_to_qty`) — never hardcode a fixed quantity.
|
|
116
116
|
- Market hours, sessions, "skip weekends", or a stock-linked instrument on a 24/7 exchange: define `trading_hours()` returning a dict with `timezone` and `hours` (days always explicit, no preset names), gate entries with `self.is_trading_hours`, and feed entry indicators `utils.filter_candles_by_hours(self.candles, self.trading_hours())`. Never hand-roll UTC-hour math or reassign `self.candles`, and never gate `update_position()`/exits by the schedule. See the Trading Hours section of jesse://strategy.
|
|
117
|
+
- For requests to adapt traditional-market research to 24/7 crypto trading, follow the Trading Hours adaptation workflow in `jesse://strategy`, even when the user does not mention sessions.
|
|
117
118
|
|
|
118
119
|
For full structure, lifecycle, and complete runnable examples see jesse://strategy and jesse://strategy_examples.
|
|
119
120
|
|
|
120
|
-
|
|
121
121
|
=== STRATEGY DEVELOPMENT ===
|
|
122
122
|
|
|
123
123
|
Improvement Workflow:
|
|
@@ -432,6 +432,66 @@ Rules:
|
|
|
432
432
|
|
|
433
433
|
A complete class is in `jesse://strategy_examples` (SessionBreakout).
|
|
434
434
|
|
|
435
|
+
### Adapting traditional-market research to 24/7 execution
|
|
436
|
+
|
|
437
|
+
Use this workflow for requests to prepare, adapt, port or make a strategy live-ready when
|
|
438
|
+
its research used traditional-market candles and its target is a continuously traded
|
|
439
|
+
crypto-exchange instrument. Examples include stock, index, forex or commodity research
|
|
440
|
+
moved to a corresponding tokenized instrument or perpetual. Recognize the intent even
|
|
441
|
+
without the words "trading hours". Ordinary crypto strategies do not acquire a session
|
|
442
|
+
restriction merely because their data came from a CSV.
|
|
443
|
+
|
|
444
|
+
Treat the session adaptation as one coordinated change, even when it needs several edits;
|
|
445
|
+
preserve the trading idea rather than performing unrelated strategy optimization.
|
|
446
|
+
|
|
447
|
+
Reference: [Trading Hours](https://docs.jesse.trade/docs/strategies/trading-hours).
|
|
448
|
+
|
|
449
|
+
1. **Read the strategy and identify the mismatch.** Use MCP to inspect the strategy,
|
|
450
|
+
research settings and available route/data context. Distinguish the historical source
|
|
451
|
+
(for example Massive or Custom Data) from the execution venue and verify the target
|
|
452
|
+
symbol and spot/futures type. Determine the underlying market, timezone and the session
|
|
453
|
+
actually used in research, including regular versus extended hours. Ask for missing
|
|
454
|
+
material details rather than guessing a calendar or silently imposing US equity hours.
|
|
455
|
+
2. **Define the intended schedule.** Implement `trading_hours()` using the dict above and
|
|
456
|
+
an IANA timezone, not fixed UTC offsets. Account for market breaks and overnight windows
|
|
457
|
+
where applicable. `closed` and `overrides` are explicit, year-specific dates: neither
|
|
458
|
+
holidays nor early closes are populated automatically. Do not claim complete holiday
|
|
459
|
+
coverage from a weekday schedule or copy example dates into a different trading year.
|
|
460
|
+
3. **Make the history choice deliberate.** For consistent session selection, use the same
|
|
461
|
+
schedule in backtests and live trading. Imported data can include extended-hours bars;
|
|
462
|
+
it is not automatically regular-session-only. Returning `None` in backtests is an
|
|
463
|
+
intentional alternative when retaining the provider's own session is desired, not a
|
|
464
|
+
default migration shortcut. Revalidate if session selection changes the original research.
|
|
465
|
+
4. **Adapt both entry decisions and their inputs.** Gate each enabled entry direction in
|
|
466
|
+
`should_long()`/`should_short()` with `self.is_trading_hours`. Create a `@property` plus
|
|
467
|
+
`@cached` session-candle accessor using `utils.filter_candles_by_hours(...)`. Trace the
|
|
468
|
+
signal's indicators, direct candle indexing, features and auxiliary `get_candles()`
|
|
469
|
+
inputs; filter the relevant history using the appropriate underlying market's schedule.
|
|
470
|
+
Do not blindly apply a stock calendar to an unrelated crypto input. Preserve existing
|
|
471
|
+
indicator parameters, signal rules and risk sizing. Never overwrite `self.candles`,
|
|
472
|
+
fabricate closure candles, or substitute a historical session close for the live price.
|
|
473
|
+
5. **Check timeframe alignment and warm-up.** Candle filtering uses candle **open times**,
|
|
474
|
+
while the entry gate uses the current **decision time**, `self.time`. A bar opening
|
|
475
|
+
before the session is excluded even if it partly overlaps it. Intraday windows can
|
|
476
|
+
discard every UTC-midnight `1D` bar; use an appropriate full-day calendar for daily
|
|
477
|
+
routes and verify the local date mapping. Filtering does not realign or rebuild bars.
|
|
478
|
+
`warm_up_candles` counts raw candles before filtering: size it for the longest required
|
|
479
|
+
lookback on each relevant input, including weekends/closures, and verify enough retained
|
|
480
|
+
candles remain. Do not assume one fixed multiplier works across timeframes and calendars.
|
|
481
|
+
6. **Keep risk management active.** Do not gate `update_position()`, stop-loss, take-profit
|
|
482
|
+
or exits by market hours, and do not flatten at the close unless requested. Make the
|
|
483
|
+
unfilled-entry policy explicit: cancel at the first execution outside the session or
|
|
484
|
+
retain overnight orders as intended. Preserve other cancellation conditions when adding
|
|
485
|
+
the close condition. Cancellation is evaluated on execution ticks, not guaranteed at
|
|
486
|
+
the exact wall-clock close. Preserve the target venue's spot/futures order rules.
|
|
487
|
+
7. **Verify and explain the adaptation.** Read back the saved code and use MCP backtests
|
|
488
|
+
with the selected session and adequate warm-up. Check session boundaries, weekend gaps
|
|
489
|
+
and relevant date exceptions in the available data. State when target-venue history or
|
|
490
|
+
another required check is unavailable. Matching session selection does not make prices,
|
|
491
|
+
bar alignment, liquidity, fees or fills identical between underlying and tokenized
|
|
492
|
+
instruments. Report the calendar, history choice, cancellation policy and actual
|
|
493
|
+
validation performed; preparing a strategy is not evidence of a running live session.
|
|
494
|
+
|
|
435
495
|
## Charting Helpers
|
|
436
496
|
|
|
437
497
|
These `Strategy` methods add lines and levels to interactive backtest, paper,
|
|
@@ -52,8 +52,16 @@ mcp_config.JESSE_PASSWORD = args.password
|
|
|
52
52
|
mcp_config.MCP_PORT = args.port
|
|
53
53
|
mcp_config.MCP_URL = f"http://localhost:{args.port}/mcp"
|
|
54
54
|
|
|
55
|
-
#
|
|
56
|
-
mcp = FastMCP(
|
|
55
|
+
# Advertise this workflow during initialization, including to clients without local agent rules.
|
|
56
|
+
mcp = FastMCP(
|
|
57
|
+
"Jesse MCP Server", host=MCP_HOST, port=args.port, json_response=True,
|
|
58
|
+
instructions=(
|
|
59
|
+
"When asked to prepare, adapt, port, or deploy a strategy researched on traditional-market "
|
|
60
|
+
"data for a 24/7 crypto exchange (including tokenized or stock-linked instruments), read "
|
|
61
|
+
"jesse://strategy, especially Trading Hours and its adaptation workflow, before editing. "
|
|
62
|
+
"Recognize equivalent requests even when the user does not mention trading hours."
|
|
63
|
+
),
|
|
64
|
+
)
|
|
57
65
|
|
|
58
66
|
# Register all available resources
|
|
59
67
|
from jesse.mcp.resources import register_resources
|
|
@@ -50,6 +50,11 @@ def register_strategy_tools(mcp):
|
|
|
50
50
|
The provided content must be valid Python code following Jesse's Strategy
|
|
51
51
|
class structure with proper imports and method implementations.
|
|
52
52
|
|
|
53
|
+
Traditional-market adaptation:
|
|
54
|
+
When preparing traditional-market research for a 24/7 crypto exchange,
|
|
55
|
+
read the Trading Hours adaptation workflow in `jesse://strategy` first,
|
|
56
|
+
even if the user does not explicitly request session filtering.
|
|
57
|
+
|
|
53
58
|
Parameters:
|
|
54
59
|
name (str): Name for the new strategy class and file
|
|
55
60
|
Requirements: Valid Python identifier, no spaces, unique within Jesse
|
|
@@ -268,6 +273,11 @@ def register_strategy_tools(mcp):
|
|
|
268
273
|
Use after create_strategy() to see the template, or to examine existing
|
|
269
274
|
strategies before modification with write_strategy().
|
|
270
275
|
|
|
276
|
+
Traditional-market adaptation:
|
|
277
|
+
For requests to port research to tokenized instruments or a 24/7 crypto
|
|
278
|
+
exchange, also read the Trading Hours adaptation workflow in `jesse://strategy`.
|
|
279
|
+
Inspect every indicator's candle source and the existing entry/exit policies.
|
|
280
|
+
|
|
271
281
|
Parameters:
|
|
272
282
|
name (str): Exact name of the strategy to read (case-sensitive)
|
|
273
283
|
Must match the class name and filename exactly
|
|
@@ -399,6 +409,12 @@ def register_strategy_tools(mcp):
|
|
|
399
409
|
Use read_strategy() first to get current content, modify it, then save
|
|
400
410
|
with this function. Changes take effect immediately for new backtests.
|
|
401
411
|
|
|
412
|
+
Traditional-market adaptation:
|
|
413
|
+
Follow the Trading Hours adaptation workflow in `jesse://strategy` when
|
|
414
|
+
porting traditional-market research to a 24/7 crypto exchange. Entry gates
|
|
415
|
+
alone are insufficient: use session-filtered history for the relevant
|
|
416
|
+
indicators, verify warm-up, and preserve round-the-clock position management.
|
|
417
|
+
|
|
402
418
|
Parameters:
|
|
403
419
|
name (str): Exact name of the strategy to update (case-sensitive)
|
|
404
420
|
Must match existing strategy name exactly
|
|
@@ -8,6 +8,7 @@ import pydash
|
|
|
8
8
|
|
|
9
9
|
import jesse.helpers as jh
|
|
10
10
|
from jesse.exceptions import CandleNotFoundInExchange
|
|
11
|
+
from jesse.enums import live_session_modes
|
|
11
12
|
from jesse.models.Candle import Candle
|
|
12
13
|
from jesse.modes.import_candles_mode.drivers import (
|
|
13
14
|
build_historical_provider_registry,
|
|
@@ -204,6 +205,35 @@ def _report_import_progress(
|
|
|
204
205
|
_print_import_progressbar(exchange, symbol, percent, remaining_seconds, reached_date)
|
|
205
206
|
|
|
206
207
|
|
|
208
|
+
def _missing_live_candle_ranges(
|
|
209
|
+
exchange: str, symbol: str, start: int, end: int, max_candles: int,
|
|
210
|
+
) -> list[tuple[int, int]]:
|
|
211
|
+
"""Cover absent live minutes with provider-sized pages, preserving sparse observations."""
|
|
212
|
+
ranges = []
|
|
213
|
+
cursor = start
|
|
214
|
+
for candle in candle_repository.fetch_candles_from_db(exchange, symbol, '1m', start, end - 60_000):
|
|
215
|
+
timestamp = int(candle[0])
|
|
216
|
+
if timestamp > cursor:
|
|
217
|
+
ranges.append((cursor, timestamp))
|
|
218
|
+
cursor = timestamp + 60_000
|
|
219
|
+
if cursor < end:
|
|
220
|
+
ranges.append((cursor, end))
|
|
221
|
+
|
|
222
|
+
# Thousands of isolated no-trade minutes must not cause thousands of requests
|
|
223
|
+
# on every restart. Re-reading stored rows is safe because inserts retain them.
|
|
224
|
+
page_span = max_candles * 60_000
|
|
225
|
+
pages = []
|
|
226
|
+
for missing_start, missing_end in ranges:
|
|
227
|
+
if pages and missing_start <= pages[-1][1]:
|
|
228
|
+
page_start, page_end = pages.pop()
|
|
229
|
+
missing_end = max(missing_end, page_end)
|
|
230
|
+
else:
|
|
231
|
+
page_start = missing_start
|
|
232
|
+
page_count = (missing_end - page_start + page_span - 1) // page_span
|
|
233
|
+
pages.append((page_start, min(end, page_start + page_count * page_span)))
|
|
234
|
+
return pages
|
|
235
|
+
|
|
236
|
+
|
|
207
237
|
def run(
|
|
208
238
|
client_id: str,
|
|
209
239
|
exchange: str,
|
|
@@ -270,8 +300,10 @@ def _run(
|
|
|
270
300
|
from jesse.services.db import database
|
|
271
301
|
database.open_connection()
|
|
272
302
|
|
|
273
|
-
end_timestamp = arrow.utcnow().floor('day').int_timestamp * 1000
|
|
274
303
|
provider = build_historical_provider_registry((exchange,)).get(exchange)
|
|
304
|
+
# Crypto startup needs today's closed bars. Provider ranges are half-open, so the
|
|
305
|
+
# current minute is excluded; traditional historical providers retain their daily cutoff.
|
|
306
|
+
end_timestamp = arrow.utcnow().floor('minute' if isinstance(provider, CandleExchange) else 'day').int_timestamp * 1000
|
|
275
307
|
max_candles = provider.capabilities.max_candles_per_request
|
|
276
308
|
if max_candles is None:
|
|
277
309
|
raise ValueError(f'Historical provider {exchange!r} does not declare a request range limit')
|
|
@@ -310,6 +342,14 @@ def _run(
|
|
|
310
342
|
latest_timestamp,
|
|
311
343
|
interval,
|
|
312
344
|
)
|
|
345
|
+
if isinstance(provider, CandleExchange) and mode in (
|
|
346
|
+
live_session_modes.LIVETRADE, live_session_modes.PAPERTRADE,
|
|
347
|
+
):
|
|
348
|
+
# Stored endpoints do not prove live warm-up coverage: WebSocket writes may
|
|
349
|
+
# bracket a downtime gap. Historical imports still preserve intentional sparse gaps.
|
|
350
|
+
import_ranges = _missing_live_candle_ranges(
|
|
351
|
+
exchange, symbol, effective_start_timestamp, end_timestamp, max_candles,
|
|
352
|
+
)
|
|
313
353
|
total_span = end_timestamp - effective_start_timestamp
|
|
314
354
|
work_span = sum(range_end - range_start for range_start, range_end in import_ranges)
|
|
315
355
|
completed_span = total_span - work_span
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import requests
|
|
2
|
+
import time
|
|
2
3
|
from requests.adapters import HTTPAdapter
|
|
3
4
|
from urllib3.util.retry import Retry
|
|
4
5
|
import jesse.helpers as jh
|
|
5
6
|
from jesse.modes.import_candles_mode.drivers.interface import CandleExchange
|
|
6
7
|
from typing import Union
|
|
7
8
|
from jesse import exceptions
|
|
9
|
+
from jesse.services.historical_data.errors import (
|
|
10
|
+
ProviderRateLimitError,
|
|
11
|
+
ProviderRequestError,
|
|
12
|
+
ProviderUnavailableError,
|
|
13
|
+
)
|
|
8
14
|
from .bybit_utils import timeframe_to_interval
|
|
9
15
|
|
|
10
16
|
|
|
@@ -27,6 +33,50 @@ class BybitMain(CandleExchange):
|
|
|
27
33
|
)
|
|
28
34
|
self.session.mount('https://', HTTPAdapter(max_retries=retries, pool_maxsize=100))
|
|
29
35
|
|
|
36
|
+
def _get_kline_data(self, payload: dict) -> list:
|
|
37
|
+
"""Retry transient JSON failures that HTTP-level retries cannot see."""
|
|
38
|
+
# Match the HTTP adapter's three-retry budget. Bybit's 10006 limit uses a
|
|
39
|
+
# rolling one-second window; exponential waits avoid immediately hitting it again.
|
|
40
|
+
for attempt in range(4):
|
|
41
|
+
response = self.session.get(self.endpoint + '/v5/market/kline', params=payload, timeout=10)
|
|
42
|
+
self.validate_response(response)
|
|
43
|
+
data = response.json()
|
|
44
|
+
code = data.get('retCode', 0)
|
|
45
|
+
message = f"{payload['symbol']} on {self.name}: {data['retMsg']} (retCode={code})"
|
|
46
|
+
# Bybit documents 10000 as a server timeout and 10016 as a server error.
|
|
47
|
+
if code in (10006, 10000, 10016):
|
|
48
|
+
error_type = ProviderRateLimitError if code == 10006 else ProviderUnavailableError
|
|
49
|
+
if attempt == 3:
|
|
50
|
+
raise error_type(message)
|
|
51
|
+
delay = float(2 ** attempt)
|
|
52
|
+
reset = response.headers.get('X-Bapi-Limit-Reset-Timestamp') if code == 10006 else None
|
|
53
|
+
if reset:
|
|
54
|
+
try:
|
|
55
|
+
delay = max(delay, float(reset) / 1000 - time.time())
|
|
56
|
+
except ValueError:
|
|
57
|
+
pass # A malformed reset header must not disable the bounded fallback.
|
|
58
|
+
# Do not block startup indefinitely on a bad or unusually distant reset timestamp.
|
|
59
|
+
if delay > 30:
|
|
60
|
+
raise ProviderRateLimitError(
|
|
61
|
+
f"Bybit rate limit for {payload['symbol']} on {self.name}; retry after its limit resets."
|
|
62
|
+
)
|
|
63
|
+
time.sleep(delay)
|
|
64
|
+
continue
|
|
65
|
+
if code != 0 or data['retMsg'] != 'OK':
|
|
66
|
+
# 10001 also covers unrelated parameter errors; only symbol-specific
|
|
67
|
+
# messages (or the explicit invalid-symbol code) mean a missing market.
|
|
68
|
+
invalid_symbol_message = data['retMsg'].lower() in ('symbol invalid', 'invalid symbol')
|
|
69
|
+
if (
|
|
70
|
+
code == 10029
|
|
71
|
+
or (code == 10001 and 'symbol' in data['retMsg'].lower())
|
|
72
|
+
# Retain explicit invalid-symbol errors even when the response omits its code.
|
|
73
|
+
or ('retCode' not in data and invalid_symbol_message)
|
|
74
|
+
):
|
|
75
|
+
raise exceptions.SymbolNotFound(message)
|
|
76
|
+
raise ProviderRequestError(message)
|
|
77
|
+
return data['result']['list']
|
|
78
|
+
raise ProviderRateLimitError(f'Bybit rate limit on {self.name}')
|
|
79
|
+
|
|
30
80
|
def get_starting_time(self, symbol: str) -> Union[int, None]:
|
|
31
81
|
dashless_symbol = jh.dashless_symbol(symbol)
|
|
32
82
|
# Bybit answers `start` in ascending order, so one 1m candle from 2018 is the exact
|
|
@@ -39,9 +89,7 @@ class BybitMain(CandleExchange):
|
|
|
39
89
|
'start': 1514811660000
|
|
40
90
|
}
|
|
41
91
|
|
|
42
|
-
|
|
43
|
-
self.validate_response(response)
|
|
44
|
-
data = response.json()['result']['list']
|
|
92
|
+
data = self._get_kline_data(payload)
|
|
45
93
|
if not data:
|
|
46
94
|
return None
|
|
47
95
|
return int(data[0][0])
|
|
@@ -57,11 +105,7 @@ class BybitMain(CandleExchange):
|
|
|
57
105
|
'limit': self.count
|
|
58
106
|
}
|
|
59
107
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
if response.json()['retMsg'] != 'OK':
|
|
63
|
-
raise exceptions.SymbolNotFound(response.json()['retMsg'])
|
|
64
|
-
data = response.json()['result']['list']
|
|
108
|
+
data = self._get_kline_data(payload)
|
|
65
109
|
# Reverse the data list
|
|
66
110
|
data = data[::-1]
|
|
67
111
|
|
|
@@ -574,6 +574,9 @@ def add_candle(
|
|
|
574
574
|
# initial
|
|
575
575
|
if last_index == -1:
|
|
576
576
|
arr.append(candle)
|
|
577
|
+
# A session with no warm-up still needs its first observed forming bucket.
|
|
578
|
+
if with_generation and timeframe == '1m':
|
|
579
|
+
_generate_bigger_timeframes(candle, exchange, symbol, with_execution)
|
|
577
580
|
return
|
|
578
581
|
|
|
579
582
|
# read the last candle's timestamp once as a plain scalar instead of
|
|
@@ -690,43 +693,17 @@ def _generate_bigger_timeframes(candle: np.ndarray, exchange: str, symbol: str,
|
|
|
690
693
|
if timeframe == '1m':
|
|
691
694
|
continue
|
|
692
695
|
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
number_of_candles = len(get_candles(exchange, symbol, '1m'))
|
|
696
|
-
short_candles = get_candles(exchange, symbol, '1m')[-1 - generate_from_count:]
|
|
697
|
-
|
|
698
|
-
if generate_from_count == -1:
|
|
699
|
-
# it's receiving an slightly older candle than the last one. Ignore it
|
|
700
|
-
return
|
|
701
|
-
|
|
702
|
-
if generate_from_count < 0:
|
|
703
|
-
current_1m = get_current_candle(exchange, symbol, '1m')
|
|
704
|
-
raise ValueError(
|
|
705
|
-
f'generate_from_count cannot be negative! '
|
|
706
|
-
f'generate_from_count:{generate_from_count}, candle[0]:{candle[0]}, '
|
|
707
|
-
f'last_candle[0]:{last_candle[0]}, current_1m:{current_1m[0]}, number_of_candles:{number_of_candles}')
|
|
708
|
-
|
|
709
|
-
if len(short_candles) == 0:
|
|
710
|
-
raise ValueError(
|
|
711
|
-
f'No candles were passed. More info:'
|
|
712
|
-
f'\nexchange:{exchange}, symbol:{symbol}, timeframe:{timeframe}, generate_from_count:{generate_from_count}'
|
|
713
|
-
f'\nlast_candle\'s timestamp: {last_candle[0]}'
|
|
714
|
-
f'\ncurrent timestamp: {jh.now()}'
|
|
715
|
-
)
|
|
716
|
-
|
|
717
|
-
# update latest candle
|
|
718
|
-
generated_candle = generate_candle_from_one_minutes(
|
|
719
|
-
timeframe,
|
|
720
|
-
short_candles,
|
|
721
|
-
accept_forming_candles=True
|
|
722
|
-
)
|
|
723
|
-
|
|
724
|
-
# Fix: force the generated candle's timestamp to the correct period-aligned boundary.
|
|
725
|
-
# Without this, when a live session starts mid-period (e.g. at 10:36 on an hourly
|
|
726
|
-
# timeframe), the 1m store only has that one candle, so generate_candle_from_one_minutes
|
|
727
|
-
# stamps the resulting 1h candle as 10:36 instead of the correct period start 10:00.
|
|
696
|
+
# Elapsed minutes are not row counts when an exchange omits no-trade bars.
|
|
697
|
+
# Select only observations in this candle's UTC bucket, including forming rows.
|
|
728
698
|
timeframe_ms = jh.timeframe_to_one_minutes(timeframe) * 60_000
|
|
729
|
-
|
|
699
|
+
bucket_start = int(candle[0]) - int(candle[0]) % timeframe_ms
|
|
700
|
+
short_candles = get_candles(exchange, symbol, '1m')
|
|
701
|
+
start_index = int(np.searchsorted(short_candles[:, 0], bucket_start, side='left'))
|
|
702
|
+
end_index = int(np.searchsorted(short_candles[:, 0], bucket_start + timeframe_ms, side='left'))
|
|
703
|
+
source_rows = short_candles[start_index:end_index]
|
|
704
|
+
if not len(source_rows):
|
|
705
|
+
continue
|
|
706
|
+
generated_candle = generate_candle_from_observed_minutes(timeframe, source_rows)
|
|
730
707
|
|
|
731
708
|
add_candle(
|
|
732
709
|
generated_candle, exchange, symbol, timeframe, with_execution, with_generation=False
|
|
@@ -847,6 +824,13 @@ def get_current_candle(exchange: str, symbol: str, timeframe: str) -> np.ndarray
|
|
|
847
824
|
else:
|
|
848
825
|
return arr[-1]
|
|
849
826
|
|
|
827
|
+
if jh.is_live():
|
|
828
|
+
# Live stores already hold native exchange bars or clock-aligned locally
|
|
829
|
+
# generated bars. Reconstructing by 1m row count would corrupt sparse history
|
|
830
|
+
# and could override native bars when local generation is disabled.
|
|
831
|
+
arr = store.candles.get_storage(exchange, symbol, timeframe)
|
|
832
|
+
return arr[-1] if len(arr) else np.zeros((0, 6))
|
|
833
|
+
|
|
850
834
|
if store.candles.uses_timestamp_buckets:
|
|
851
835
|
candles = _get_timestamp_bucket_candles(exchange, symbol, timeframe)
|
|
852
836
|
return candles[-1] if len(candles) else np.zeros((0, 6))
|