jesse 3.2.0__tar.gz → 3.2.2__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.0/jesse.egg-info → jesse-3.2.2}/PKG-INFO +2 -2
- {jesse-3.2.0 → jesse-3.2.2}/jesse/cli.py +13 -4
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/agent_rules.md +3 -2
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/candle.md +23 -4
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/strategy.md +130 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/strategy_examples.md +78 -1
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/utilities.md +35 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/server.py +10 -2
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/candles.py +9 -3
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/strategy.py +16 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/lsp.py +137 -123
- jesse-3.2.2/jesse/services/lsp_download.py +23 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/trading_hours.py +16 -14
- jesse-3.2.2/jesse/version.py +1 -0
- {jesse-3.2.0 → jesse-3.2.2/jesse.egg-info}/PKG-INFO +2 -2
- {jesse-3.2.0 → jesse-3.2.2}/jesse.egg-info/SOURCES.txt +1 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse.egg-info/requires.txt +1 -1
- {jesse-3.2.0 → jesse-3.2.2}/requirements.txt +1 -1
- {jesse-3.2.0 → jesse-3.2.2}/setup.py +1 -1
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_mcp_resources.py +69 -0
- jesse-3.2.0/jesse/version.py +0 -1
- {jesse-3.2.0 → jesse-3.2.2}/LICENSE +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/MANIFEST.in +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/README.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/candle_pipelines/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/candle_pipelines/base_candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/candle_pipelines/gaussian_noise.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/candle_pipelines/gaussian_resampler.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/candle_pipelines/moving_block_bootstrap.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/config.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/constants.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/ai_model_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/auth_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/backtest_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/candles_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/closed_trade_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/config_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/data_provider_credentials_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/e2e_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/exchange_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/file_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/live_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/lsp_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/monte_carlo_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/notification_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/optimization_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/order_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/period_templates_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/route_templates_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/significance_test_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/strategy_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/system_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/tabs_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/controllers/websocket_controller.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/enums/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/exceptions/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/exchanges/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/exchanges/exchange.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/exchanges/sandbox/Sandbox.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/exchanges/sandbox/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/factories/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/factories/candle_factory.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/factories/order_factory.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/helpers.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/acosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ad.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/adosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/adx.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/adxr.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/alligator.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/alma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ao.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/apo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/aroon.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/aroonosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/atr.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/avgprice.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/bandpass.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/beta.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/bollinger_bands.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/bollinger_bands_width.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/bop.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cci.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cfo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cg.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/chande.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/chop.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cksp.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cmo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/correl.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/correlation_cycle.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cvi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/cwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/damiani_volatmeter.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/dec_osc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/decycler.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/dema.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/devstop.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/di.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/dm.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/donchian.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/dpo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/dti.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/dx.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/edcf.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/efi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ema.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/emd.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/emv.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/epma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/er.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/eri.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/fisher.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/fosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/frama.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/fwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/gatorosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/gauss.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/heikin_ashi_candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/high_pass.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/high_pass_2_pole.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/hma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/hull_suit.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/hurst_exponent.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/hwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ichimoku_cloud.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ichimoku_cloud_seq.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ift_rsi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/itrend.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/jma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/jsa.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/kama.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/kaufmanstop.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/kdj.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/keltner.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/kst.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/kurtosis.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/kvo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/linearreg.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/linearreg_angle.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/linearreg_intercept.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/linearreg_slope.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/lrsi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/maaq.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mab.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/macd.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mama.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/marketfi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mass.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mcginley_dynamic.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mean_ad.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/median_ad.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/medprice.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mfi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/midpoint.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/midprice.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/minmax.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mom.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/mwdx.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/natr.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/nma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/nvi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/obv.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/pfe.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/pivot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/pma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ppo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/pvi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/pwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/qstick.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/reflex.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/roc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rocp.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rocr.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rocr100.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/roofing.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rsi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rsmk.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rsx.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/rvi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/safezonestop.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/sar.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/sinwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/skew.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/sma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/smma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/squeeze_momentum.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/sqwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/srsi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/srwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/stc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/stddev.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/stiffness.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/stochastic.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/stochf.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/supersmoother.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/supersmoother_3_pole.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/supertrend.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/support_resistance_with_break.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/swma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/t3.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/tema.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/trange.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/trendflex.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/trima.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/trix.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/tsf.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/tsi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ttm_squeeze.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ttm_trend.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/typprice.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ui.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/ultosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/var.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vi.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vidya.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vlma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/volume.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vosc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/voss.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vpci.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vpt.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vpwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vwap.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vwma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/vwmacd.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/wad.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/waddah_attr_explosion.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/wclprice.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/wilders.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/willr.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/wma.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/wt.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/zlema.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/indicators/zscore.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/info.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/libs/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/libs/custom_json/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/libs/dynamic_numpy_array/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/USAGE_LIMITS.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/agent_rules.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/manager.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/mcp_config.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/backtest_management.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/backtest_metrics.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/charts.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/configuration.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/credentials.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/indicator.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/monte_carlo.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/optimization.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/position_risk.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/resources/significance_test.md +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/test.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/backtest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/config.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/credentials.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/general.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/indicator.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/monte_carlo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/optimization.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/auth.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/backtest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/config.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/credentials.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/general.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/indicator.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/monte_carlo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/optimization.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/session_config.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/significance_test.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/services/strategy.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/tools/significance_test.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/mcp/usage_limits.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/AiModel.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/BacktestSession.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Candle.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/ClosedTrade.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/DataProviderCredentials.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Exchange.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/ExchangeApiKeys.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/FuturesExchange.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/LiveChart.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/LiveEquitySnapshot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/LiveSession.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Log.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/MonteCarloSession.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/NotificationApiKeys.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/OpenTab.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/OptimizationSession.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Option.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Order.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Orderbook.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/PeriodTemplate.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Position.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Route.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/RouteTemplate.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/SignificanceTestSession.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/SpotExchange.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Ticker.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/Trade.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/models/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/backtest_mode.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/data_provider.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/exchange_api_keys.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/ApexOmniPerpetualTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/apex_omni_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk-arm.dylib +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk-x86.dylib +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk.dylib +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/libzklink_sdk.so +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-arm.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-pc.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk-x86.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.dll +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Apex/omni_files/zklink_sdk.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinanceMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFutures.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinancePerpetualFuturesTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinanceSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/BinanceUSSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Binance/binance_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bitfinex/BitfinexSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bitfinex/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bitfinex/bitfinex_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitSpotTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDCPerpetualTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/BybitUSDTPerpetualTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Bybit/bybit_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Coinbase/CoinbaseSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Coinbase/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Coinbase/coinbase_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateSpotMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateUSDTMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/GateUSDTPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Gate/gate_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/HyperliquidPerpetualTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Hyperliquid/hyperliquid_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetualMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenPerpetualTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/KrakenSpotMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Kraken/kraken_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinFuturesMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinSpot.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinSpotMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/KuCoinUSDTPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/KuCoin/kucoin_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/LighterMain.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/LighterPerpetual.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/LighterPerpetualTestnet.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/lighter_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-darwin-arm64.dylib +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-linux-amd64.so +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-linux-arm64.so +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/Lighter/signer_libs/lighter-signer-windows-amd64.dll +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/import_candles_mode/drivers/interface.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/monte_carlo_mode/MonteCarloRunner.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/monte_carlo_mode/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/notification_api_keys.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/optimize_mode/Optimize.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/optimize_mode/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/optimize_mode/fitness.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/significance_test_mode/SignificanceTestRunner.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/significance_test_mode/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/modes/utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/candle_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/closed_trade_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/data_provider_credentials_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/live_chart_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/live_equity_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/live_session_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/open_tab_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/order_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/period_template_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/repositories/route_template_repository.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/backtest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/import_candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/ml.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/monte_carlo/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/monte_carlo/common.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/monte_carlo/monte_carlo_candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/monte_carlo/monte_carlo_trades.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/optimize/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/rule_significance_testing/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/rule_significance_testing/bootstrap.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/rule_significance_testing/common.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/rule_significance_testing/plots.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/rule_significance_testing/rule_significance.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/research/rule_significance_testing/simulator.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/routes/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/api.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/auth.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/broker.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/cache.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/candle_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/charts.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/closed_trade_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/color.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/custom_candle_import.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/db.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/e2e_database.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/env.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/exchange_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/failure.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/file.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/general_info.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/contracts.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/credential_validation.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/errors.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/massive_stocks.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/providers/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/historical_data/registry.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/installer.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/jesse_trade.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/live_chart_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/logger.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/metrics.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/migrator.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/multiprocessing.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/notifier.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/order_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/position_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/progressbar.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/redis.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/report.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/simulation_assumptions.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/strategy_handler/ExampleStrategy/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/strategy_handler/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/strategy_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/symbol_catalog.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/table.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/transformers.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/validators.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/web.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/services/ws_manager.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/200.html +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/404.html +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/08VXUWAP.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/0ONmXmPL.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/1XVEVF4R.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/1lwvrZu5.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/1uxVtXhK2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/25FdeeAd.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/2IIEA8gg2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/2k_QeT3T.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/32DixAac.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/35Gd1l6b.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/3KuTZQMl2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/43DmfD332.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/4G7pJPwS2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/5eyTD99u.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/6RTg0lbw.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/6d_DINYp2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/6hrdeXKO.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/9SMx-Yg9.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/9SuGUQxQ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/AGOgedFG2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/AsfNJWWT.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B-yKKtcE2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B01W0raW.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B02lME3Q.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B2-f6Wu2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B2OO5cIa2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B2kYdT-M.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B3Tmza7s2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B4Wc4BFL2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B4t1Dpxy.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B5-_aFwp.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B5W6OYN72.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B5e22D9r.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B68TUdTA.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B6UiomQj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B8J7ngcE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B8_r5oP7.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B8rOtbmR.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B8xNgNWT.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B9JPFI3C.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B9MRSN3q2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BAlG784d2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BBjHab7x.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BCixiDKj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BD87b4dR2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BDNMzG2s2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BEEn4gHE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BEtHBSE6.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BG8CfSEZ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BGMtTsN-.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BHWKrbxM.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BI3Y1cOA.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BJzMFF2L.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BKD0O2_Q.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BKFC8tTN.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BKPLz4po2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BKcRqSit.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BKxtCVv1.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BLCaNkgi.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BLhvb9Y-.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BMrGqELX.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BN08jTvb.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BOotOW0E.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BQYoEE-E2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BRSARzao2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BRqV1csJ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BSSBbjzH.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BSWPekZh2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BSt81nX4.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BSu9_R8X2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BT_Y9Qa72.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BTgcbkPe2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BTkZN-kY.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BUvLBkUT2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BVAhOJRw.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BWDSh1SW.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BWPQTe0t.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BXViO-2h.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BYdTN3Ud2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BYgofb2h.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BYsxK_gZ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BZ4HG2rr2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BZCL-v6S.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B_-2JulU.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/B_tTalzw.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Ba7i2nA0.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BacktestTabs.BhkXf2je.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BapWjBt9.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BcJ0KAXG.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bc_sGQ0U.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bdoqq8BI2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BeGwcela.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Beywemwu.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BfbyNUB7.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bh7THQLS2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BhKQO4Px.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BhPF9KW82.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BhjAJghj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BiK3sWoz2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BiX_3ZGn2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BjSKRB-a2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BjshL_xA2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BkmU6oQY.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bkml37m-.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BldMJGpi.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bm3Qr25_2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BmBupKYI2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bmbr8zF3.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BnjxR4X6.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bnr-372i.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bnr-Ft3Y.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bo9Dl7tn.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BoEzQrVW.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BoK4YRpC2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BolyLLo5.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BpBaBBm3.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BpJ9fpSU.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BqJ9I9M42.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bqx3koTc.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bri6UV-V.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BshRgckk.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BsuIFbdf2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bt4sAq3f.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BtUnaqJ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Buu8uHmp2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BvwLaU7c.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BvzEE6Lm.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bw1-c76v.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BwWrilGY2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BwjZg7Kw2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bx1FflLF.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bxkupp3x.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/By-L4I7w.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/By1ptfmn2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Bz4Y3fRF.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/BzMNZVT72.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C-69Y6Pu.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C-LZuMrd.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C-RhCxcP2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C-y9NEjX.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C25aelnV2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C2shJFxU.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C3oCr-8k2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C531GsRP2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C5_-GSwl.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C5kJGiKi2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C7h46wYY.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C8468PWD.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C8Ef5oNN.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C8q3xVCB.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C8r90Shi.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C96bnRGM.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C9St-qHN.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CAWjiWzg2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CC-BCOei.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CC2rA5mh.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CC3Dc58n.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CC8GggWq2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CCUjCBK52.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CD78tava2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CDeNXAV0.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CFAvbRBv.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CFDCSoUG.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CH6Zxsf52.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CHKcdHUs2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CHQ94UKr2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CIPQ_RoX2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CJ3rzSJv2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CJ5SUZOH2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CJNUlr67.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CLIur_dZ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CMC9H7kb.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CMnkeXFt.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CO65HNi2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/COtstiRA2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/COyNsUt6.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CQRhyXHt.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CQUMS8QJ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CRal5XOA2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CRfGWb83.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CRyZUaTi.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CTweb8Dz2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CUKGrt9p2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CUL-_UXV2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CUP8soDG.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CVPISREU.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CVaqCwHa.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CW42rLZD.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CWDvEqlu2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CXHoNUfW.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CXcZYQdg.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CXtmUGW6.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CXuuVbXE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CZ3SG3_I2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CZoCCMwk2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CZsCp6_J.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CZymKofZ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/C_8bwKvT2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CaLoWpdj2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cb4Vim4T2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CbKt6i1F2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cba4tSYP.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CbdYpKc9.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CcEz-6AP2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CcwsVR0C.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cd-sGgPF.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CdkpiU2Y2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Ceyelwdz.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cf85K_3V.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cf9Ao90m2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CfSJPG6W2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cfl0F_Ix.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CfvQ0GVj2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Ci7ol7o5.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cimd5fb32.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CioJR-lb.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CircleProgressbar.DG_Oo3ZB.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CjM6HreG.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CjSZG47B2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Ck9wOcVq.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CkJ3IzwM2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CkN8TU5K.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CkRax0sH.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cl4KV_tk.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/ClCothXP.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/ClamHrr62.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cm7r79vr.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CnscBGsj2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CoKYUvtC.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CoKk4mC0.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Con6PA_2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CopQ2nXW2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CowLSvep.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CpL23Fmb2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CpdwwrfH.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CpzslTdj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cr7JoK-F.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CrVSgIkM2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cs2F2srj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CsQS60Ue2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CsvMBhTu.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cuy4t56v.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CximN0RY2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CyQZr6J2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CyiiZBUN2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/CylTzRX72.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Cz7rf_X82.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Czk_mF82.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D-9WcGfc2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D-V0WHGE2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D-kcNTYM.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D-oSqn_W2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D-ptJ9y-2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D05T4iGw.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D0mw5jGK.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D1yN6wZY2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D24BC_UT2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D2ZwgM9U2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D2mw--Fl2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D2ymy_yS.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D3HTKQgj2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D3hlyOfw2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D4-rlkSU.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D5GhRiPb.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D5ROd09N2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D5Retr0R2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D5Z5IiLY2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D8_NR6i12.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D94iqX0Y2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DB-uxtVd.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DCQb3MpD.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DD7sRF69.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DDPgixDB.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DDe1Q-WN2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DDpmG2fV2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DDwmkQR0.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DEJw_qiA2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DFBbRf0l.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DFfgcuRt.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DFwEHpFD.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DHBI_yxQ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DHpiXF5c.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DIMkf-bt.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DISqw1ZD.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DItLkvgc2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DK0GhfdP.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DKCQ3kY7.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DKSmMEZa2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DLJdWeDZ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DLSXrvMj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DMUM7wLl.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DMnEoi8l.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DNB37k3h2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DOTl9kKz.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DOgf9of5.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DOwBwxAc2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DP8dx3Mz.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DPDvM2ct.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DPJPAjQR.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DPUBG1Sa2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DPZlj92U.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DQ-b8cau.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DQU07tlD.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DQUlB_uC.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DQwYfKfQ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DRFjx7u42.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DSh2HLQt2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DT7zqm-g.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DTj74zXo2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DV17i1UV2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DV3o63ZY.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DVG0V4jx.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DVQuIRkW2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DVvwPJMn2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DWUE7pqF2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DXG-b-1a.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DXgieCCJ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DY43dlCC.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DYlRzrDj.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DZFCIeNp.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DZsh6Vsl2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D_3yiDAS.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D_Lu-MrJ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/D_Sm39l5.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DauUninz2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DaxQctDl.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Db4fpp4X2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DbInun42.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DcUUodPk.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DdJ6paNh.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DdL9SqIa.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/De02G7DS.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/De2hgUGE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DezsRK8O.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Df2xbC6M.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DfC9-Oas2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DgPtEepw2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DgfQ8roX.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DhQhRRFW2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DhmEMT882.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DiQii0fS.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DikR2-RP.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DipiWojk.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DjAgHZrJ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DkmNSMHY.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DkqhCAOL2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dl3pNQBR2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DlW2jO6L2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DljXZpSz.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dm6T-vrV2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DmHpPYUd2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DmNVVboZ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dmf8Y0ON2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DnKPLd6d.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DnToyrRv2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DoT8DRFX.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dp-2asp4.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DpFanUEy.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DpIdnCtC.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DpTtcPZs2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DpW8JRZm.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DqJzYO7Y2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DqT4cj-J.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DqXIJaHE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DrH0SRf22.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Ds29f9ZA.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Ds9iBrvx.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dsw3HnIE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dt39crSB.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dt9aNFbE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DtGle1nz2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DtX02f_x2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DuT2u1M92.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DxSv1ANE2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dxp_UTNE.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DyeqKBoC.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Dyqgk9ID2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/DytYwiiF.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/EUqPIrTm.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/EZH7P6f9.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/EoqKQiEy2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/FIalSC7A.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/FXfnIlgg2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/FvmIjYaQ2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/HSRijeU2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/HclGiUj8.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/HlOV9je9.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Hsn-rFuA.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Hza2DNlp.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/IXshMDJQ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/IliqAppL.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Inter-VariableFont_slnt_wght.Cl4AQHp9.ttf +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/JVoApnG_.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/JaHKEXQh.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/JgXkd7uo2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/JjuYFqoF.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/JpkrmRYq2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/KfYW7BGn.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/KgIFLbLy.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/KhqzbbC32.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/L2jIIa9o.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/LO_BkMJ8.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/LRbiS5Dz.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/LiveTabs.rsQh4sN8.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Mi0eZJ_C2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/NEE52Syq.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/NyRjDEkA2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/O1vzaDvk2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/OaeI3Ulg.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/OfUAv67B2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/ProgressStatusText.BQK0FaGL.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Q6FVf6Zo.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/QTnfLwEv.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/QZfQtQzF2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/QoymgQo0.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/SOo6toE52.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/StrategiesSidebar.DVMKtiGP.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/TradeHistoryChart.Bs0aEPiQ.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/TtSlr_h_2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/VbXTXTou.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/VuUr933P2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/WA2gHESr.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/WF6tEroY2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/WFnVOHr3.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/WZ5HE0X3.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Wy_umkB72.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/YdFKNLmY.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/Z5eAx3Zn2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/_3zCpt1T.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/_7BVYBMY2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/_b8AQjYy.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/_id_.B3a6JG34.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/_id_.BCRDQrek.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/_id_.BRd1elCl.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/aQXfN9KN.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/apGZNcKz.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/atteXEGs.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/bTuwJoIa.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/bjCyB0Gn2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/bpSru2N82.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/ccMIPn_w.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/coSIg_O3.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/codicon.Brq4_Ui5.ttf +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/css.worker-B1A7g9RU.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/dLd1bcTA2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/dnt9x4Qr.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/eDEyLi0S.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/editor.DNwT-hdg.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/entry.CkGiV5Q9.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/error-404.DjFB7pgG.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/error-500.BG9pmads.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/fmXr3nnJ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/foABv0nJ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/fwtXNY1n.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/gEsa7Idh.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/gG0NvZLm2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/gp-XZpBa.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/grryJGmv.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/hBpBmjHp.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/hZRgR8Lc.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/hdxB67uV.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/html.worker-NdFMIQdB.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/i0X4ZdIN.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/ibI1KQep.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/json.worker-Ax0gao5O.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/lP7_xLqx2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/live.BHsUui2i.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/logo-dark.tKoQPl1k.svg +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/logo-light.CS4l4ePq.png +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/mAYmvPyL.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/mnTiCSRt2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/monte-carlo.SA-Jni4T.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/nFMaYfgc.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/nR0dIlKu.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/nr791fC22.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/onAF5SnQ.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/oz_6vUea2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/pQUz-uq3.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/pRr3cFVo.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/paCCX65n.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/pages.Kz8uii-H.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/qBoaT7Fk2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/qpEHnBAB.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/rHIqefrb.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/sB-x3p7T.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/sBoK_t0W.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/significance-test.C3_9t58f.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/sltzmVWM2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/strategies.CZAezJwX.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/toggleHighContrast.DUMOsFrl.css +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/ts.worker-CiiXQ93o.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/u9_Y1g7K2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/uHUmCDd7.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/u_o9HDF2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/uf1cV9ZP.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/uhdI0v042.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/v83TR0fG.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/wbypxrpR.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/xk2_4sNk2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/xse2Sllu2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/y2WM_oP32.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/y_x7m0Ik2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/yjvMp0c6.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/zMsjhnnN2.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/_nuxt/zbKwAOr32.js +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/favicon.ico +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/favicons/android-chrome-192x192.png +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/favicons/android-chrome-512x512.png +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/favicons/apple-touch-icon.png +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/favicons/favicon-16x16.png +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/favicons/favicon-32x32.png +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/index.html +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/static/robots.txt +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_app.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_closed_trades.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_exchanges.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_logs.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_orderbook.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_orders.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_positions.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_tickers.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/store/state_trades.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/CanAddClosedTradeToStore/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/RealStrategyRegression1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/RealStrategyRegression2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/RealStrategyRegression3/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Strategy.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test01/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test02/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test04/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test05/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test06/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test07/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test08/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test09/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test10/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test11/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test12/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test13/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test14/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test15/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test16/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test17/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test18/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test19/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test20/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test21/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test22/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test23/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test24/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test25/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test26/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test27/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test28/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test29/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test30/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test31/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test32/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test33/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test34/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test35/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test36/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test37/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test38/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test39/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test40/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test41/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test44/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test45/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test46/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test47/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/Test48/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestAddHorizontalLineToCandleChart/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestAddHorizontalLineToExtraChart/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestAddLineToCandleChart/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestAddLineToExtraChart/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestAfterMethod/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestAverageEntryPriceProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestBalanceAndFeeReductionWorksCorrectlyInSpotModeInBothBuyAndSellOrders/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestBalancesAreHandledCorrectlyForCancellingOrdersInSpot/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestBaseAndQuoteAssetProperties/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestBeforeMethod/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestBeforeTerminate/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionLong2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanCancelEntryOrdersAfterOpenPositionShort2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanOpenANewPositionImmediatelyAfterClosingViaUpdatePosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanRunWithoutShorting/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanSubmitStopLossOrderWithSizeEqualToCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanSubmitStopLossOrderWithSizeLessThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanSubmitTakeProfitAndStopLossAtSameTimeInSpot/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeEqualToCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCanSubmitTakeProfitOrderWithSizeLessThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCannotSetStopLossOrderInGoLong/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCannotSetTakeProfitOrderInGoLong/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCannotSpendMoreThanAvailableBalance/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCannotSubmitStopLossOrderWithSizeMoreThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCannotSubmitTakeProfitOrderWithSizeMoreThanCurrentPositionQty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCapitalPropertyRaisesNotImplementedError/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestClosedTradeAfterExitingTrade/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCommonWarmupStart/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCurrentRouteIndex1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestCurrentRouteIndex2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestDailyBalanceStoresPortfolioValue/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestDailyBalancesProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestDataRoutes1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestDataRoutes2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestDefaultHyperparameters/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestDnaMethod/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestEmptyStrategy/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestEntryOrdersAndExitOrdersProperties/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestExchangeTypeProperty1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestExchangeTypeProperty2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestFuturesExchangeAvailableMargin/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestGeneratedDataRouteExecutionBTC/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestGeneratedDataRouteExecutionETH/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestHasLongAndShortEntryOrdersPropertiesInFilters/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestHasLongEntryOrdersProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestHasShortEntryOrdersProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestIncreasedAndReducedCount/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestIncreasingShortPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestInsufficientMargin1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestInsufficientMargin2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestInsufficientMargin3/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLeverageProperty1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLeverageProperty2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLiquidationInCrossModeForShortTrade/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLiquidationInIsolatedModeForLongTrade/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLiquidationInIsolatedModeForShortTrade/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLogMethodInStrategyClass/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLongLifecycleAcrossTradingModes/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestLongSparseGap/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMarkPrice/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMarketOrderForLowPriceDifference/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMetrics1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMultiInstrumentReplayA/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMultiInstrumentReplayB/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMultipleEntryOrdersUpdateEntryLongPositions/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestMultipleEntryOrdersUpdateEntryShortPositions/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOnCancelMethod/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOnClosePosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOnRouteOpenPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOnRouteOpenPosition2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOptimizationIsolation/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOrderIsStopLossProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOrderIsTakeProfitProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOrderPriceCannotBeGreaterThanZero/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOrderValueProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOrdersAreSortedBeforeExecution/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestOversizedReduceOnlyExitAccounting/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPortfolioValue/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPortfolioValueIncludesPositionValueAndOpenOrdersValue/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositionExchangeTypeProperty1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositionExchangeTypeProperty2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositionOpenIncreaseReduceCloseEventsInSpot/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositionTotalCostProperty/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositionWithLeverage1/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositionWithLeverage2/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestPositions/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestProperBalanceHanldingInSpotAfterOrderCancellation/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestProtectiveOrdersAcrossTradingModes/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestReduceOnlyMarketOrders/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestRuleSignificanceAlignment/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestRuleSignificanceFailure/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestShortInSpot/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestSparseTimestampRoutes/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceLongPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestStopLossPriceIsReplacedWithMarketOrderForBetterPriceShortPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestStopOrderShouldConsiderExecutedTakeProfitOrdersInSpot/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestStrategyChartsReport/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestStrategyVariablesAreResetBeforeOpeningNewPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientLongPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestTakeProfitPriceIsReplacedWithMarketOrderWhenMoreConvenientShortPosition/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestTerminate/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestTradingHours/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestUsageOfShouldCancelRaisesNotImplementedError/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestVanillaStrategy/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestWalletBalance/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/TestWithoutCancelMethod/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/strategies/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/testing_utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse/utils.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse.egg-info/dependency_links.txt +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse.egg-info/entry_points.txt +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/jesse.egg-info/top_level.txt +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/setup.cfg +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/conftest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/data/__init__.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/data/test_candles_0.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/data/test_candles_1.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/data/test_candles_indicators.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_backtest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_backtest_session_chart_data.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_broker.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_candle_copy.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_candle_service.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_candle_timeframe_filter.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_chart_data_serialization.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_completed_trade.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_config_safety.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_conflicting_orders.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_dynamic_numpy_array.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_e2e_database.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_exchange.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_helpers.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_historical_data_contracts.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_import_and_backtest_request_boundaries.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_import_candle_drivers.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_import_candles.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_import_candles_workflow.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_indicators.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_isolated_backtest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_live_session_chart_data.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_live_strategy_charts.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_lsp.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_mcp_config.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_mcp_credentials.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_mcp_usage_limits.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_metrics.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_optimization_and_monte_carlo_session_failures.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_order.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_parent_strategy.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_position.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_price_gap_backtest.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_progressbar.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_real_strategy_regression.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_research.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_research_monte_carlo.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_research_optimization_isolation.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_research_session_lifecycle.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_router.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_rule_significance_testing.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_session_scoped_configuration.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_significance_test_session.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_simulator_parity.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_spot_mode.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_candle.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_exchanges.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_logs.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_orderbook.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_orders.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_ticker.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_state_trades.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_trading_hours.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/tests/test_trading_mode_contracts.py +0 -0
- {jesse-3.2.0 → jesse-3.2.2}/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.2
|
|
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
|
|
@@ -113,10 +113,11 @@ High-signal Jesse strategy-authoring gotchas (full detail in jesse://strategy):
|
|
|
113
113
|
- Inside `on_open_position`, check `self.is_long` / `self.is_short` before setting `self.stop_loss` / `self.take_profit`.
|
|
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
|
+
- 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.
|
|
116
118
|
|
|
117
119
|
For full structure, lifecycle, and complete runnable examples see jesse://strategy and jesse://strategy_examples.
|
|
118
120
|
|
|
119
|
-
|
|
120
121
|
=== STRATEGY DEVELOPMENT ===
|
|
121
122
|
|
|
122
123
|
Improvement Workflow:
|
|
@@ -4,7 +4,9 @@ This reference covers candle import and management operations in Jesse.
|
|
|
4
4
|
|
|
5
5
|
## Data Requirements
|
|
6
6
|
|
|
7
|
-
Historical candle data is required for backtesting strategies. Import data for
|
|
7
|
+
Historical candle data is required for backtesting strategies. Import data for every route's exchange and symbol before running backtests.
|
|
8
|
+
|
|
9
|
+
Jesse imports and stores **one-minute candles only**, for every source (crypto exchanges, Massive, Custom Data). In backtests, optimization, Monte Carlo, significance tests and research, every other timeframe is generated from those minutes at run time, so a single import per exchange and symbol covers every timeframe a route or `get_candles()` asks for. Live and paper sessions are different: by default each timeframe's candles come from the exchange, and only when the live setting `generate_candles_from_1m` is enabled are bigger timeframes generated locally from one-minute candles. Timeframes are never imported, so when checking coverage only confirm that the symbol's data spans the backtest dates plus warm-up.
|
|
8
10
|
|
|
9
11
|
## Import Process
|
|
10
12
|
|
|
@@ -82,7 +84,7 @@ simulation settings.
|
|
|
82
84
|
currency (`USD` vs `USDT`)
|
|
83
85
|
- `delete_source` (optional, default false): remove the original in the same transaction
|
|
84
86
|
|
|
85
|
-
Rules:
|
|
87
|
+
Rules: the whole stored one-minute series is copied, which is everything a backtest needs for any timeframe; the call is refused (HTTP 409) when the target already
|
|
86
88
|
holds candles, so series are never merged; deleting the source turns the copy into a rename, but
|
|
87
89
|
provider updates only work under the original exchange name, so confirm with the user first.
|
|
88
90
|
|
|
@@ -98,11 +100,28 @@ Imports historical candle data from exchanges.
|
|
|
98
100
|
- `start_date`: Start date in YYYY-MM-DD format
|
|
99
101
|
- `import_id` (optional): Import ID for retrying failed imports
|
|
100
102
|
|
|
101
|
-
**
|
|
102
|
-
|
|
103
|
+
**Timeframes:** the import has no timeframe parameter. One-minute candles are stored, and in
|
|
104
|
+
backtests and the other research modes the timeframes usable in routes and `get_candles()` (1m,
|
|
105
|
+
3m, 5m, 15m, 30m, 45m, 1h, 2h, 3h, 4h, 6h, 8h, 12h, 1D, 3D, 1W, 1M) are all built from them at run
|
|
106
|
+
time. Live sessions fetch each timeframe from the exchange unless `generate_candles_from_1m` is on.
|
|
103
107
|
|
|
104
108
|
**Returns:** Import result with status and import ID
|
|
105
109
|
|
|
110
|
+
## Traditional Markets and Gapped Data
|
|
111
|
+
|
|
112
|
+
Massive sources and Custom Data describe markets that close, so their one-minute series has real
|
|
113
|
+
gaps (nights, weekends, holidays; pre-market and after-hours bars are kept where the provider has
|
|
114
|
+
them). Jesse never fabricates candles for a closure:
|
|
115
|
+
|
|
116
|
+
- Backtests detect gapped data automatically and replay only the candles that exist. Bigger
|
|
117
|
+
timeframes are built from the observed minutes in clock-aligned buckets.
|
|
118
|
+
- Warm-up is counted in **completed observed candles** of the route's timeframe, not calendar
|
|
119
|
+
time, so import noticeably more history than a crypto backtest would need.
|
|
120
|
+
- A resting order crossed by an opening gap fills at the **open price**, not at its own price.
|
|
121
|
+
- Metrics for these sources annualize on 252 observations by default instead of 365.
|
|
122
|
+
- To trade a stock-linked instrument on a 24/7 exchange with matching indicator history, use the
|
|
123
|
+
trading-hours helpers described in `jesse://strategy`.
|
|
124
|
+
|
|
106
125
|
## Usage Examples
|
|
107
126
|
|
|
108
127
|
### Basic Import
|
|
@@ -59,6 +59,7 @@ result = create_strategy("MyStrategy", strategy_code)
|
|
|
59
59
|
|
|
60
60
|
- **before()**: Runs before the strategy logic each candle.
|
|
61
61
|
- **after()**: Runs after the strategy logic each candle.
|
|
62
|
+
- **trading_hours()**: Returns the market schedule dict (or `None`) for strategies that respect a market's hours; feeds `self.is_trading_hours`. See **Trading Hours** below.
|
|
62
63
|
- **update_chart()**: Calculates chart-only values. Runs once per completed candle in backtests and approximately once per second on the forming candle in live/paper sessions. See **jesse://charts**.
|
|
63
64
|
|
|
64
65
|
## Strategy Execution Model (every candle)
|
|
@@ -273,6 +274,7 @@ The `Position` object exposes: `entry_price`, `qty`, `opened_at`, `value`, `type
|
|
|
273
274
|
| `is_spot_trading` / `is_futures_trading` | bool | Market type checks. |
|
|
274
275
|
| `is_backtesting` / `is_livetrading` / `is_papertrading` | bool | Run-mode checks. |
|
|
275
276
|
| `is_live` | bool | True if live **or** paper trading. |
|
|
277
|
+
| `is_trading_hours` | bool | True when `self.time` is inside the schedule returned by `trading_hours()`; always True when that returns `None`. |
|
|
276
278
|
| `hp` | dict | Hyperparameter values keyed by name (see Optimization). |
|
|
277
279
|
| `vars` | dict | Per-strategy scratch dict. |
|
|
278
280
|
| `shared_vars` | dict | Dict shared across all routes (cross-route communication). |
|
|
@@ -287,6 +289,7 @@ The `Position` object exposes: `entry_price`, `qty`, `opened_at`, `value`, `type
|
|
|
287
289
|
| `watch_list()` | Return a list of `(label, value)` tuples surfaced in live/paper monitoring. |
|
|
288
290
|
| `hyperparameters()` | Return the list of optimizable parameters (see Optimization). |
|
|
289
291
|
| `dna()` | Return a DNA string to apply optimized hyperparameters. |
|
|
292
|
+
| `trading_hours()` | Return the market schedule dict, or `None` (default) for no schedule. See Trading Hours. |
|
|
290
293
|
| `filters()` | Return a list of filter **methods** (not called) that must all pass before entry. *Optional — prefer plain `if` conditions in `should_long`/`should_short`; only define when asked.* |
|
|
291
294
|
| `add_line_to_candle_chart(...)` etc. | Interactive chart series and levels. Use them from `update_chart()`; see `jesse://charts`. |
|
|
292
295
|
|
|
@@ -363,6 +366,132 @@ def big_trend(self):
|
|
|
363
366
|
|
|
364
367
|
Lookahead bias is handled internally even across timeframes: the closing price of a higher-timeframe candle is never from the future, so you do not need to manually shift to a previous value.
|
|
365
368
|
|
|
369
|
+
## Trading Hours (market sessions)
|
|
370
|
+
|
|
371
|
+
Use this whenever the user wants entries limited to a market's hours, days or session, wants to
|
|
372
|
+
skip weekends/holidays, or trades a **stock-linked instrument on a 24/7 crypto exchange**. The
|
|
373
|
+
typical reason: stock history used for backtesting has gaps (nights, weekends, holidays), while
|
|
374
|
+
the 24/7 exchange feed does not, so the same indicator would see two different histories.
|
|
375
|
+
|
|
376
|
+
Three building blocks. **The engine enforces nothing**; you place them yourself:
|
|
377
|
+
|
|
378
|
+
```python
|
|
379
|
+
from jesse.strategies import Strategy, cached
|
|
380
|
+
import jesse.indicators as ta
|
|
381
|
+
from jesse import utils
|
|
382
|
+
|
|
383
|
+
def trading_hours(self):
|
|
384
|
+
# dict, or None for "no schedule" (then is_trading_hours is always True and the
|
|
385
|
+
# filter returns its input unchanged)
|
|
386
|
+
return {'timezone': 'America/New_York', 'hours': {'Mon-Fri': '09:30-16:00'}}
|
|
387
|
+
|
|
388
|
+
@property
|
|
389
|
+
@cached
|
|
390
|
+
def session_candles(self):
|
|
391
|
+
return utils.filter_candles_by_hours(self.candles, self.trading_hours())
|
|
392
|
+
|
|
393
|
+
def should_long(self) -> bool:
|
|
394
|
+
if not self.is_trading_hours:
|
|
395
|
+
return False
|
|
396
|
+
return self.close > ta.donchian(self.session_candles[:-1]).upperband
|
|
397
|
+
```
|
|
398
|
+
|
|
399
|
+
Schedule dict keys:
|
|
400
|
+
|
|
401
|
+
| Key | Required | Value |
|
|
402
|
+
|---|---|---|
|
|
403
|
+
| `timezone` | yes | IANA name (`'America/New_York'`, `'Asia/Tokyo'`, `'UTC'`). DST is handled. |
|
|
404
|
+
| `hours` | yes | dict: day spec → `'HH:MM-HH:MM'` or a list of windows. Day specs: `'Mon-Fri'`, `'Sun-Thu'`, `'Mon,Wed,Fri'`, `'Sun'`. **Unlisted days are closed.** |
|
|
405
|
+
| `closed` | no | list of ISO dates (`'2026-11-26'`) treated as closed (holidays). |
|
|
406
|
+
| `overrides` | no | dict: ISO date → window(s) for that one day (early closes). |
|
|
407
|
+
|
|
408
|
+
Windows are half-open (`open <= t < close`), an end earlier than the start wraps past midnight,
|
|
409
|
+
and `'00:00-24:00'` is a whole day. More schedules:
|
|
410
|
+
|
|
411
|
+
```python
|
|
412
|
+
{'timezone': 'Asia/Riyadh', 'hours': {'Sun-Thu': '10:00-15:00'}} # Tadawul
|
|
413
|
+
{'timezone': 'Asia/Tokyo', 'hours': {'Mon-Fri': ['09:00-11:30', '12:30-15:30']}} # lunch break
|
|
414
|
+
{'timezone': 'UTC', 'hours': {'Mon-Fri': '00:00-24:00'}} # crypto, skip weekends
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Rules:
|
|
418
|
+
|
|
419
|
+
- `self.is_trading_hours` is true when `self.time` is inside the schedule. Gate **entries** with it
|
|
420
|
+
(`should_long`/`should_short`). Do **not** gate `update_position()` or exits: stop-loss and
|
|
421
|
+
take-profit stay on the exchange and position management must keep running 24/7.
|
|
422
|
+
- Feed entry indicators the **filtered** candles. Gating entries while still passing raw
|
|
423
|
+
`self.candles` to indicators leaves off-hours candles in the signal.
|
|
424
|
+
- Never assign to `self.candles` and never hand-roll UTC-hour arithmetic (it breaks at DST
|
|
425
|
+
changes). `self.price`, `self.close` and `self.current_candle` always stay live.
|
|
426
|
+
- There are no preset names such as `'NYSE'`; always return the dict. Holidays go in `closed`.
|
|
427
|
+
- `trading_hours()` is a method so it may depend on `self`, e.g. `if self.is_backtesting: return None`
|
|
428
|
+
or a closing hour taken from `self.hp` for optimization. Using the same dict in backtest and
|
|
429
|
+
live makes the indicator history match in both.
|
|
430
|
+
- Unfilled entry at the close is the user's policy: `def should_cancel_entry(self): return not self.is_trading_hours`
|
|
431
|
+
cancels it, returning `False` leaves it working overnight.
|
|
432
|
+
|
|
433
|
+
A complete class is in `jesse://strategy_examples` (SessionBreakout).
|
|
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
|
+
|
|
366
495
|
## Charting Helpers
|
|
367
496
|
|
|
368
497
|
These `Strategy` methods add lines and levels to interactive backtest, paper,
|
|
@@ -466,6 +595,7 @@ def dna(self):
|
|
|
466
595
|
- **No dead variables** — don't compute a `stop_loss`/value you never use. If you only set the stop later in `on_open_position()` and don't use it for sizing, don't define it in `go_long()`.
|
|
467
596
|
- **Check position type in `on_open_position()`** — branch on `self.is_long` / `self.is_short` before setting `stop_loss`/`take_profit`.
|
|
468
597
|
- **`on_close_position` takes two args** — `def on_close_position(self, order, closed_trade) -> None`.
|
|
598
|
+
- **Market hours: gate entries *and* filter candles** — for session-bound or stock-linked instruments use `trading_hours()` + `self.is_trading_hours` + `utils.filter_candles_by_hours(...)`. Don't write manual UTC-hour checks, don't reassign `self.candles`, and don't gate `update_position()`/exits by the schedule.
|
|
469
599
|
|
|
470
600
|
## Utility Functions (used in strategies)
|
|
471
601
|
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
A library of complete, copy-pasteable Jesse strategies that demonstrate real,
|
|
4
4
|
verified API patterns: trend filters, ATR-based stops, partial take-profits,
|
|
5
5
|
trailing stops, lifecycle hooks, multi-timeframe candles, optimization
|
|
6
|
-
hyperparameters, live-monitoring watch lists,
|
|
6
|
+
hyperparameters, live-monitoring watch lists, multi-route pairs trading, and
|
|
7
|
+
market trading hours.
|
|
7
8
|
|
|
8
9
|
These are illustrative reference strategies, NOT financial advice. They exist to
|
|
9
10
|
show *how the API is used*, not to recommend any particular trading approach.
|
|
@@ -1023,3 +1024,79 @@ class PairsTrading2(Strategy):
|
|
|
1023
1024
|
if self.shared_vars["s2-position"] == 0:
|
|
1024
1025
|
self.liquidate()
|
|
1025
1026
|
```
|
|
1027
|
+
|
|
1028
|
+
---
|
|
1029
|
+
|
|
1030
|
+
## Example 9 — SessionBreakout (trading hours)
|
|
1031
|
+
|
|
1032
|
+
A Donchian breakout on a **stock-linked instrument traded on a 24/7 crypto exchange** (spot, long
|
|
1033
|
+
only). Entries are decided only during the US regular session and every entry indicator reads
|
|
1034
|
+
session candles only, so nights, weekends and the drift in between never reach the signal. The
|
|
1035
|
+
position itself is managed around the clock: exits are set in `on_open_position()` (spot rule),
|
|
1036
|
+
stay on the exchange, and the trailing stop in `update_position()` keeps following the live price
|
|
1037
|
+
outside the session.
|
|
1038
|
+
|
|
1039
|
+
Features shown: `trading_hours()`, `self.is_trading_hours` as the entry gate,
|
|
1040
|
+
`utils.filter_candles_by_hours` behind a `@cached` property, the cancel-at-close policy in
|
|
1041
|
+
`should_cancel_entry`, and exits that deliberately ignore the schedule.
|
|
1042
|
+
|
|
1043
|
+
```py
|
|
1044
|
+
from jesse.strategies import Strategy, cached
|
|
1045
|
+
import jesse.indicators as ta
|
|
1046
|
+
from jesse import utils
|
|
1047
|
+
|
|
1048
|
+
# Days are always explicit; unlisted days are closed. Holidays would go in a 'closed' list.
|
|
1049
|
+
US_EQUITIES = {'timezone': 'America/New_York', 'hours': {'Mon-Fri': '09:30-16:00'}}
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
class SessionBreakout(Strategy):
|
|
1053
|
+
def trading_hours(self):
|
|
1054
|
+
# Same schedule in backtest and live so the indicator history matches in both.
|
|
1055
|
+
return US_EQUITIES
|
|
1056
|
+
|
|
1057
|
+
@property
|
|
1058
|
+
@cached
|
|
1059
|
+
def session_candles(self):
|
|
1060
|
+
# The only history the entry indicators see
|
|
1061
|
+
return utils.filter_candles_by_hours(self.candles, self.trading_hours())
|
|
1062
|
+
|
|
1063
|
+
@property
|
|
1064
|
+
def donchian(self):
|
|
1065
|
+
# Previous channel (exclude the current candle)
|
|
1066
|
+
return ta.donchian(self.session_candles[:-1])
|
|
1067
|
+
|
|
1068
|
+
@property
|
|
1069
|
+
def atr(self):
|
|
1070
|
+
return ta.atr(self.session_candles)
|
|
1071
|
+
|
|
1072
|
+
def should_long(self) -> bool:
|
|
1073
|
+
# Never decide an entry outside the session
|
|
1074
|
+
if not self.is_trading_hours:
|
|
1075
|
+
return False
|
|
1076
|
+
return self.close > self.donchian.upperband
|
|
1077
|
+
|
|
1078
|
+
def should_short(self) -> bool:
|
|
1079
|
+
return False
|
|
1080
|
+
|
|
1081
|
+
def should_cancel_entry(self) -> bool:
|
|
1082
|
+
# An entry that did not fill by the close is cancelled, not left working overnight
|
|
1083
|
+
return not self.is_trading_hours
|
|
1084
|
+
|
|
1085
|
+
def go_long(self):
|
|
1086
|
+
qty = utils.size_to_qty(self.balance, self.price, fee_rate=self.fee_rate)
|
|
1087
|
+
self.buy = qty, self.price
|
|
1088
|
+
|
|
1089
|
+
def go_short(self):
|
|
1090
|
+
pass
|
|
1091
|
+
|
|
1092
|
+
def on_open_position(self, order) -> None:
|
|
1093
|
+
if self.is_long:
|
|
1094
|
+
self.stop_loss = self.position.qty, self.position.entry_price - 2 * self.atr
|
|
1095
|
+
self.take_profit = self.position.qty, self.position.entry_price + 3 * self.atr
|
|
1096
|
+
|
|
1097
|
+
def update_position(self):
|
|
1098
|
+
# Runs on every candle, day or night: the exchange never closes, so the stop
|
|
1099
|
+
# trails the live price. Do NOT gate this with is_trading_hours.
|
|
1100
|
+
if self.is_long:
|
|
1101
|
+
self.stop_loss = self.position.qty, max(self.average_stop_loss, self.price - 2 * self.atr)
|
|
1102
|
+
```
|
|
@@ -221,6 +221,41 @@ from jesse.constants import TIMEFRAME_PRIORITY
|
|
|
221
221
|
primary_timeframe = TIMEFRAME_PRIORITY[0] # '1D'
|
|
222
222
|
```
|
|
223
223
|
|
|
224
|
+
## Trading Hours
|
|
225
|
+
|
|
226
|
+
Schedule-aware helpers for markets that close (see the Trading Hours section of `jesse://strategy`
|
|
227
|
+
for the schedule dict: required `timezone` and `hours`, optional `closed` and `overrides`).
|
|
228
|
+
|
|
229
|
+
### filter_candles_by_hours(candles, hours)
|
|
230
|
+
|
|
231
|
+
Returns only the candles whose open time falls inside the schedule, in their original order.
|
|
232
|
+
Pure function: the candle store and `self.candles` are never modified, nothing is resampled.
|
|
233
|
+
|
|
234
|
+
**Parameters:**
|
|
235
|
+
- `candles`: Numpy candle array (`self.candles`, a `self.get_candles(...)` result, research candles)
|
|
236
|
+
- `hours`: Schedule dict, or `None` to return the input unchanged
|
|
237
|
+
|
|
238
|
+
**Returns:** Numpy candle array (rows may be non-contiguous in time)
|
|
239
|
+
|
|
240
|
+
**Example:**
|
|
241
|
+
```python
|
|
242
|
+
@property
|
|
243
|
+
@cached
|
|
244
|
+
def session_candles(self):
|
|
245
|
+
return utils.filter_candles_by_hours(self.candles, self.trading_hours())
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### is_in_trading_hours(timestamp, hours)
|
|
249
|
+
|
|
250
|
+
Whether a UTC-millisecond timestamp falls inside the schedule. Always `True` when `hours` is
|
|
251
|
+
`None`. Inside a strategy prefer `self.is_trading_hours`, which is this applied to `self.time`.
|
|
252
|
+
|
|
253
|
+
**Parameters:**
|
|
254
|
+
- `timestamp`: UTC milliseconds
|
|
255
|
+
- `hours`: Schedule dict, or `None`
|
|
256
|
+
|
|
257
|
+
**Returns:** bool
|
|
258
|
+
|
|
224
259
|
## Precision Helpers
|
|
225
260
|
|
|
226
261
|
### subtract_floats(float1, float2)
|
|
@@ -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
|
|
@@ -131,8 +131,13 @@ def register_candles_tools(mcp):
|
|
|
131
131
|
"failed", or "cancelled". After "finished", optionally verify with
|
|
132
132
|
get_existing_candles(). Use cancel_candle_import(import_id) to stop it.
|
|
133
133
|
|
|
134
|
-
|
|
135
|
-
|
|
134
|
+
Only one-minute candles are imported and stored, for every source. In backtests,
|
|
135
|
+
optimization, Monte Carlo, significance tests and research, all other timeframes
|
|
136
|
+
(3m, 5m, 15m, 30m, 45m, 1h, 2h, 3h, 4h, 6h, 8h, 12h, 1D, 3D, 1W, 1M) are generated
|
|
137
|
+
from them at run time, so one import per exchange and symbol covers every
|
|
138
|
+
timeframe; there is no timeframe parameter. (Live sessions do not rely on imported
|
|
139
|
+
candles for this: they fetch each timeframe from the exchange unless the live
|
|
140
|
+
setting `generate_candles_from_1m` is enabled.)
|
|
136
141
|
|
|
137
142
|
Parameters:
|
|
138
143
|
exchange (str): Exchange name. Supported values:
|
|
@@ -706,7 +711,8 @@ def register_candles_tools(mcp):
|
|
|
706
711
|
Use this when the user wants to backtest data they already imported as if it belonged
|
|
707
712
|
to a different market, for example run Massive Stocks "SPY-USD" under
|
|
708
713
|
"Binance Perpetual Futures" as "SPY-USDT" to use that exchange's futures simulation.
|
|
709
|
-
|
|
714
|
+
The whole stored one-minute series is copied (backtests generate every other timeframe
|
|
715
|
+
from it at run time, so they follow automatically). `target_exchange` must be a backtesting-capable
|
|
710
716
|
exchange name exactly as Jesse lists it, and `target_symbol` defaults to `symbol`;
|
|
711
717
|
set it when the target market quotes in another currency (USD vs USDT).
|
|
712
718
|
|
|
@@ -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
|