diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ecdbe9d8a..906666552 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,6 +1,8 @@ version: 2 updates: - package-ecosystem: docker + cooldown: + default-days: 4 directories: - "/" - "/docker" @@ -11,8 +13,20 @@ updates: update-types: ["version-update:semver-major"] open-pull-requests-limit: 10 +- package-ecosystem: devcontainers + directory: "/" + cooldown: + default-days: 4 + schedule: + interval: daily + open-pull-requests-limit: 10 + - package-ecosystem: pip directory: "/" + cooldown: + default-days: 4 + exclude: + - ccxt schedule: interval: weekly time: "03:00" @@ -36,6 +50,8 @@ updates: - package-ecosystem: "github-actions" directory: "/" + cooldown: + default-days: 4 schedule: interval: "weekly" open-pull-requests-limit: 10 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7fbfbc735..d03d6ecb3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,7 +38,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@b75a909f75acd358c2196fb9a5f1299a9a8868a4 # v6.7.0 + uses: astral-sh/setup-uv@3259c6206f993105e3a61b142c2d97bf4b9ef83d # v7.1.0 with: activate-environment: true enable-cache: true @@ -248,7 +248,7 @@ jobs: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@b75a909f75acd358c2196fb9a5f1299a9a8868a4 # v6.7.0 + uses: astral-sh/setup-uv@3259c6206f993105e3a61b142c2d97bf4b9ef83d # v7.1.0 with: activate-environment: true enable-cache: true @@ -265,7 +265,7 @@ jobs: - name: Tests incl. ccxt compatibility tests env: - CI_WEB_PROXY: http://152.67.78.211:13128 + CI_WEB_PROXY: http://152.67.66.8:13128 run: | pytest --random-order --longrun --durations 20 -n auto diff --git a/.github/workflows/devcontainer-build.yml b/.github/workflows/devcontainer-build.yml index 06f1e0531..9946af5e9 100644 --- a/.github/workflows/devcontainer-build.yml +++ b/.github/workflows/devcontainer-build.yml @@ -28,7 +28,7 @@ jobs: with: persist-credentials: false - name: Login to GitHub Container Registry - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: registry: ghcr.io username: ${{ github.actor }} diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 1fc50315b..08dcfd9bd 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -42,7 +42,7 @@ jobs: uses: ./.github/actions/docker-tags - name: Login to Docker Hub - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} @@ -161,13 +161,13 @@ jobs: uses: ./.github/actions/docker-tags - name: Login to Docker Hub - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to github - uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 with: registry: ghcr.io username: ${{ github.actor }} diff --git a/.github/workflows/docker-update-readme.yml b/.github/workflows/docker-update-readme.yml index 23efa0cd9..a510aadf6 100644 --- a/.github/workflows/docker-update-readme.yml +++ b/.github/workflows/docker-update-readme.yml @@ -16,7 +16,7 @@ jobs: persist-credentials: false - name: Docker Hub Description - uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2 + uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml index e3caca64b..6b9308bf9 100644 --- a/.github/workflows/zizmor.yml +++ b/.github/workflows/zizmor.yml @@ -21,7 +21,7 @@ jobs: # actions: read # only needed for private repos steps: - name: Checkout repository - uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4.2.2 + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: persist-credentials: false diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2d4a8e5ea..fe0b9827f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -26,17 +26,17 @@ repos: - id: mypy exclude: build_helpers additional_dependencies: - - types-cachetools==6.2.0.20250827 + - types-cachetools==6.2.0.20251022 - types-filelock==3.2.7 - types-requests==2.32.4.20250913 - types-tabulate==0.9.0.20241207 - - types-python-dateutil==2.9.0.20250822 - - scipy-stubs==1.16.2.0 - - SQLAlchemy==2.0.43 + - types-python-dateutil==2.9.0.20251008 + - scipy-stubs==1.16.2.4 + - SQLAlchemy==2.0.44 # stages: [push] - repo: https://github.com/pycqa/isort - rev: "6.0.1" + rev: "7.0.0" hooks: - id: isort name: isort (python) @@ -44,7 +44,7 @@ repos: - repo: https://github.com/charliermarsh/ruff-pre-commit # Ruff version. - rev: 'v0.13.1' + rev: 'v0.14.2' hooks: - id: ruff - id: ruff-format @@ -70,7 +70,7 @@ repos: )$ - repo: https://github.com/stefmolin/exif-stripper - rev: 1.1.0 + rev: 1.2.0 hooks: - id: strip-exif @@ -83,6 +83,6 @@ repos: # Ensure github actions remain safe - repo: https://github.com/woodruffw/zizmor-pre-commit - rev: v1.13.0 + rev: v1.16.0 hooks: - id: zizmor diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 62d823316..6423da5ce 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -127,7 +127,7 @@ Exceptions: Contributors may be given commit privileges. Preference will be given to those with: -1. Past contributions to Freqtrade and other related open-source projects. Contributions to Freqtrade include both code (both accepted and pending) and friendly participation in the issue tracker and Pull request reviews. Both quantity and quality are considered. +1. Past contributions to Freqtrade and other related open source projects. Contributions to Freqtrade include both code (both accepted and pending) and friendly participation in the issue tracker and Pull request reviews. Both quantity and quality are considered. 1. A coding style that the other core committers find simple, minimal, and clean. 1. Access to resources for cross-platform development and testing. 1. Time to devote to the project regularly. diff --git a/Dockerfile b/Dockerfile index 81ba55aaf..6ad49624c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13.7-slim-bookworm AS base +FROM python:3.13.8-slim-bookworm AS base # Setup env ENV LANG=C.UTF-8 diff --git a/README.md b/README.md index 80ccd871a..fcf28efe4 100644 --- a/README.md +++ b/README.md @@ -27,8 +27,9 @@ hesitate to read the source code and understand the mechanism of this bot. Please read the [exchange specific notes](docs/exchanges.md) to learn about eventual, special configurations needed for each exchange. - [X] [Binance](https://www.binance.com/) -- [X] [Bitmart](https://bitmart.com/) - [X] [BingX](https://bingx.com/invite/0EM9RX) +- [X] [Bitget](https://www.bitget.com/) +- [X] [Bitmart](https://bitmart.com/) - [X] [Bybit](https://bybit.com/) - [X] [Gate.io](https://www.gate.io/ref/6266643) - [X] [HTX](https://www.htx.com/) @@ -41,6 +42,7 @@ Please read the [exchange specific notes](docs/exchanges.md) to learn about even ### Supported Futures Exchanges (experimental) - [X] [Binance](https://www.binance.com/) +- [X] [Bitget](https://www.bitget.com/) - [X] [Gate.io](https://www.gate.io/ref/6266643) - [X] [Hyperliquid](https://hyperliquid.xyz/) (A decentralized exchange, or DEX) - [X] [OKX](https://okx.com/) diff --git a/build_helpers/schema.json b/build_helpers/schema.json index b644bc2f9..42beb45ca 100644 --- a/build_helpers/schema.json +++ b/build_helpers/schema.json @@ -268,7 +268,8 @@ "day", "week", "month", - "year" + "year", + "weekday" ] } }, @@ -1461,6 +1462,11 @@ "type": "boolean", "default": false }, + "override_exchange_check": { + "description": "Override the exchange check to force FreqAI to use exchanges that may not have enough historic data. Turn this to True if you know your FreqAI model and strategy do not require historical data.", + "type": "boolean", + "default": false + }, "feature_parameters": { "description": "The parameters used to engineer the feature set", "type": "object", diff --git a/build_helpers/ta_lib-0.6.7-cp311-cp311-manylinux_2_31_armv7l.whl b/build_helpers/ta_lib-0.6.7-cp311-cp311-manylinux_2_31_armv7l.whl deleted file mode 100644 index 0968e5276..000000000 Binary files a/build_helpers/ta_lib-0.6.7-cp311-cp311-manylinux_2_31_armv7l.whl and /dev/null differ diff --git a/build_helpers/ta_lib-0.6.8-cp311-cp311-manylinux_2_31_armv7l.whl b/build_helpers/ta_lib-0.6.8-cp311-cp311-manylinux_2_31_armv7l.whl new file mode 100644 index 000000000..22cb88ef2 Binary files /dev/null and b/build_helpers/ta_lib-0.6.8-cp311-cp311-manylinux_2_31_armv7l.whl differ diff --git a/build_helpers/ta_lib-0.6.8-cp313-cp313-manylinux_2_31_armv7l.whl b/build_helpers/ta_lib-0.6.8-cp313-cp313-manylinux_2_31_armv7l.whl new file mode 100644 index 000000000..1fc7d0a21 Binary files /dev/null and b/build_helpers/ta_lib-0.6.8-cp313-cp313-manylinux_2_31_armv7l.whl differ diff --git a/docs/advanced-setup.md b/docs/advanced-setup.md index 88afbef94..72c74dcd6 100644 --- a/docs/advanced-setup.md +++ b/docs/advanced-setup.md @@ -134,10 +134,10 @@ The following systems have been tested and are known to work with freqtrade: ### PostgreSQL Installation: -`pip install psycopg2-binary` +`pip install "psycopg[binary]"` Usage: -`... --db-url postgresql+psycopg2://:@localhost:5432/` +`... --db-url postgresql+psycopg://:@localhost:5432/` Freqtrade will automatically create the tables necessary upon startup. diff --git a/docs/commands/backtesting-show.md b/docs/commands/backtesting-show.md index eb9c7137b..31d1d44fd 100644 --- a/docs/commands/backtesting-show.md +++ b/docs/commands/backtesting-show.md @@ -4,7 +4,7 @@ usage: freqtrade backtesting-show [-h] [-v] [--no-color] [--logfile FILE] [-V] [--backtest-filename PATH] [--backtest-directory PATH] [--show-pair-list] - [--breakdown {day,week,month,year} [{day,week,month,year} ...]] + [--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]] options: -h, --help show this help message and exit @@ -18,9 +18,9 @@ options: Directory to use for backtest results. Example: `--export-directory=user_data/backtest_results/`. --show-pair-list Show backtesting pairlist sorted by profit. - --breakdown {day,week,month,year} [{day,week,month,year} ...] + --breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...] Show backtesting breakdown per [day, week, month, - year]. + year, weekday]. Common arguments: -v, --verbose Verbose mode (-vv for more, -vvv to get all messages). diff --git a/docs/commands/backtesting.md b/docs/commands/backtesting.md index 925b29da6..2383c3614 100644 --- a/docs/commands/backtesting.md +++ b/docs/commands/backtesting.md @@ -17,7 +17,7 @@ usage: freqtrade backtesting [-h] [-v] [--no-color] [--logfile FILE] [-V] [--export {none,trades,signals}] [--backtest-filename PATH] [--backtest-directory PATH] - [--breakdown {day,week,month,year} [{day,week,month,year} ...]] + [--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]] [--cache {none,day,week,month}] [--freqai-backtest-live-models] [--notes TEXT] @@ -77,9 +77,9 @@ options: --backtest-directory PATH, --export-directory PATH Directory to use for backtest results. Example: `--export-directory=user_data/backtest_results/`. - --breakdown {day,week,month,year} [{day,week,month,year} ...] + --breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...] Show backtesting breakdown per [day, week, month, - year]. + year, weekday]. --cache {none,day,week,month} Load a cached backtest result no older than specified age (default: day). diff --git a/docs/commands/hyperopt-show.md b/docs/commands/hyperopt-show.md index 5cd114c17..354a3afcf 100644 --- a/docs/commands/hyperopt-show.md +++ b/docs/commands/hyperopt-show.md @@ -4,7 +4,7 @@ usage: freqtrade hyperopt-show [-h] [-v] [--no-color] [--logfile FILE] [-V] [--profitable] [-n INT] [--print-json] [--hyperopt-filename FILENAME] [--no-header] [--disable-param-export] - [--breakdown {day,week,month,year} [{day,week,month,year} ...]] + [--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]] options: -h, --help show this help message and exit @@ -18,9 +18,9 @@ options: --no-header Do not print epoch details header. --disable-param-export Disable automatic hyperopt parameter export. - --breakdown {day,week,month,year} [{day,week,month,year} ...] + --breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...] Show backtesting breakdown per [day, week, month, - year]. + year, weekday]. Common arguments: -v, --verbose Verbose mode (-vv for more, -vvv to get all messages). diff --git a/docs/configuration.md b/docs/configuration.md index 51c717da2..e046f52d6 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -571,9 +571,7 @@ Commonly used time in force are: **GTC (Good Till Canceled):** -This is most of the time the default time in force. It means the order will remain -on exchange till it is cancelled by the user. It can be fully or partially fulfilled. -If partially fulfilled, the remaining will stay on the exchange till cancelled. +This is most of the time the default time in force. It means the order will remain on exchange till it is cancelled by the user. It can be fully or partially fulfilled. If partially fulfilled, the remaining will stay on the exchange till cancelled. **FOK (Fill Or Kill):** @@ -581,8 +579,9 @@ It means if the order is not executed immediately AND fully then it is cancelled **IOC (Immediate Or Canceled):** -It is the same as FOK (above) except it can be partially fulfilled. The remaining part -is automatically cancelled by the exchange. +It is the same as FOK (above) except it can be partially fulfilled. The remaining part is automatically cancelled by the exchange. + +Not necessarily recommended, as this can lead to partial fills below the minimum trade size. **PO (Post only):** diff --git a/docs/exchanges.md b/docs/exchanges.md index 859a6cbaf..61d0628ec 100644 --- a/docs/exchanges.md +++ b/docs/exchanges.md @@ -298,7 +298,14 @@ Without these permissions, the bot will not start correctly and show errors like Bybit supports [time_in_force](configuration.md#understand-order_time_in_force) with settings "GTC" (good till cancelled), "FOK" (full-or-cancel), "IOC" (immediate-or-cancel) and "PO" (Post only) settings. -Futures trading on bybit is currently supported for isolated futures mode. +!!! Warning "Unified accounts" + Freqtrade assumes accounts to be dedicated to the bot. + We therefore recommend the usage of one subaccount per bot. This is especially important when using unified accounts. + Other configurations (multiple bots on one account, manual non-bot trades on the bot account) are not supported and may lead to unexpected behavior. + +### Bybit Futures + +Futures trading on bybit is supported for isolated futures mode. On startup, freqtrade will set the position mode to "One-way Mode" for the whole (sub)account. This avoids making this call over and over again (slowing down bot operations), but means that manual changes to this setting may result in exceptions and errors. @@ -312,10 +319,6 @@ API Keys for live futures trading must have the following permissions: We do strongly recommend to limit all API keys to the IP you're going to use it from. -!!! Warning "Unified accounts" - Freqtrade assumes accounts to be dedicated to the bot. - We therefore recommend the usage of one subaccount per bot. This is especially important when using unified accounts. - Other configurations (multiple bots on one account, manual non-bot trades on the bot account) are not supported and may lead to unexpected behavior. ## Bitmart @@ -355,6 +358,12 @@ Bitget supports [time_in_force](configuration.md#understand-order_time_in_force) Bitget supports `stoploss_on_exchange` and can use both stop-loss-market and stop-loss-limit orders. It provides great advantages, so we recommend to benefit from it. You can use either `"limit"` or `"market"` in the `order_types.stoploss` configuration setting to decide which type of stoploss shall be used. +### Bitget Futures + +Futures trading on bitget is supported for isolated futures mode. + +On startup, freqtrade will set the position mode to "One-way Mode" for the whole (sub)account. This avoids making this call over and over again (slowing down bot operations), but means that manual changes to this setting may result in exceptions and errors. + ## Hyperliquid !!! Tip "Stoploss on Exchange" @@ -478,3 +487,5 @@ For example, to test the order type `FOK` with Kraken, and modify candle limit t !!! Warning Please make sure to fully understand the impacts of these settings before modifying them. + Using `_ft_has_params` overrides may lead to unexpected behavior, and may even break your bot. + We will not be able to provide support for issues caused by custom settings in `_ft_has_params`. diff --git a/docs/freqai-parameter-table.md b/docs/freqai-parameter-table.md index 3bb289313..5a493dd83 100644 --- a/docs/freqai-parameter-table.md +++ b/docs/freqai-parameter-table.md @@ -79,7 +79,7 @@ Mandatory parameters are marked as **Required** and have to be set in one of the | `model_type` | Model string from stable_baselines3 or SBcontrib. Available strings include: `'TRPO', 'ARS', 'RecurrentPPO', 'MaskablePPO', 'PPO', 'A2C', 'DQN'`. User should ensure that `model_training_parameters` match those available to the corresponding stable_baselines3 model by visiting their documentation. [PPO doc](https://stable-baselines3.readthedocs.io/en/master/modules/ppo.html) (external website)
**Datatype:** string. | `policy_type` | One of the available policy types from stable_baselines3
**Datatype:** string. | `max_training_drawdown_pct` | The maximum drawdown that the agent is allowed to experience during training.
**Datatype:** float.
Default: 0.8 -| `cpu_count` | Number of threads/cpus to dedicate to the Reinforcement Learning training process (depending on if `ReinforcementLearning_multiproc` is selected or not). Recommended to leave this untouched, by default, this value is set to the total number of physical cores minus 1.
**Datatype:** int. +| `cpu_count` | Number of threads/cpus to dedicate to the Reinforcement Learning training process (depending on if `ReinforcementLearner_multiproc` is selected or not). Recommended to leave this untouched, by default, this value is set to the total number of physical cores minus 1.
**Datatype:** int. | `model_reward_parameters` | Parameters used inside the customizable `calculate_reward()` function in `ReinforcementLearner.py`
**Datatype:** int. | `add_state_info` | Tell FreqAI to include state information in the feature set for training and inferencing. The current state variables include trade duration, current profit, trade position. This is only available in dry/live runs, and is automatically switched to false for backtesting.
**Datatype:** bool.
Default: `False`. | `net_arch` | Network architecture which is well described in [`stable_baselines3` doc](https://stable-baselines3.readthedocs.io/en/master/guide/custom_policy.html#examples). In summary: `[, dict(vf=[], pi=[])]`. By default this is set to `[128, 128]`, which defines 2 shared hidden layers with 128 units each. diff --git a/docs/freqai.md b/docs/freqai.md index c3d3a4ec3..5fb099949 100644 --- a/docs/freqai.md +++ b/docs/freqai.md @@ -7,7 +7,7 @@ FreqAI is a software designed to automate a variety of tasks associated with training a predictive machine learning model to generate market forecasts given a set of input signals. In general, FreqAI aims to be a sandbox for easily deploying robust machine learning libraries on real-time data ([details](#freqai-position-in-open-source-machine-learning-landscape)). !!! Note - FreqAI is, and always will be, a not-for-profit, open-source project. FreqAI does *not* have a crypto token, FreqAI does *not* sell signals, and FreqAI does not have a domain besides the present [freqtrade documentation](https://www.freqtrade.io/en/latest/freqai/). + FreqAI is, and always will be, a not-for-profit, open source project. FreqAI does *not* have a crypto token, FreqAI does *not* sell signals, and FreqAI does not have a domain besides the present [freqtrade documentation](https://www.freqtrade.io/en/latest/freqai/). Features include: @@ -81,9 +81,9 @@ If you are using docker, a dedicated tag with FreqAI dependencies is available a !!! note "docker-compose-freqai.yml" We do provide an explicit docker-compose file for this in `docker/docker-compose-freqai.yml` - which can be used via `docker compose -f docker/docker-compose-freqai.yml run ...` - or can be copied to replace the original docker file. This docker-compose file also contains a (disabled) section to enable GPU resources within docker containers. This obviously assumes the system has GPU resources available. -### FreqAI position in open-source machine learning landscape +### FreqAI position in open source machine learning landscape -Forecasting chaotic time-series based systems, such as equity/cryptocurrency markets, requires a broad set of tools geared toward testing a wide range of hypotheses. Fortunately, a recent maturation of robust machine learning libraries (e.g. `scikit-learn`) has opened up a wide range of research possibilities. Scientists from a diverse range of fields can now easily prototype their studies on an abundance of established machine learning algorithms. Similarly, these user-friendly libraries enable "citizen scientists" to use their basic Python skills for data exploration. However, leveraging these machine learning libraries on historical and live chaotic data sources can be logistically difficult and expensive. Additionally, robust data collection, storage, and handling presents a disparate challenge. [`FreqAI`](#freqai) aims to provide a generalized and extensible open-sourced framework geared toward live deployments of adaptive modeling for market forecasting. The `FreqAI` framework is effectively a sandbox for the rich world of open-source machine learning libraries. Inside the `FreqAI` sandbox, users find they can combine a wide variety of third-party libraries to test creative hypotheses on a free live 24/7 chaotic data source - cryptocurrency exchange data. +Forecasting chaotic time-series based systems, such as equity/cryptocurrency markets, requires a broad set of tools geared toward testing a wide range of hypotheses. Fortunately, a recent maturation of robust machine learning libraries (e.g. `scikit-learn`) has opened up a wide range of research possibilities. Scientists from a diverse range of fields can now easily prototype their studies on an abundance of established machine learning algorithms. Similarly, these user-friendly libraries enable "citizen scientists" to use their basic Python skills for data exploration. However, leveraging these machine learning libraries on historical and live chaotic data sources can be logistically difficult and expensive. Additionally, robust data collection, storage, and handling presents a disparate challenge. [`FreqAI`](#freqai) aims to provide a generalized and extensible open-sourced framework geared toward live deployments of adaptive modeling for market forecasting. The `FreqAI` framework is effectively a sandbox for the rich world of open source machine learning libraries. Inside the `FreqAI` sandbox, users find they can combine a wide variety of third-party libraries to test creative hypotheses on a free live 24/7 chaotic data source - cryptocurrency exchange data. ### Citing FreqAI diff --git a/docs/includes/exchange-features.md b/docs/includes/exchange-features.md index 5d84f763b..6833818b7 100644 --- a/docs/includes/exchange-features.md +++ b/docs/includes/exchange-features.md @@ -5,13 +5,15 @@ | [Binance](exchanges.md#binance) | futures | isolated, cross | market, limit | | [Bingx](exchanges.md#bingx) | spot | | market, limit | | [Bitmart](exchanges.md#bitmart) | spot | | ❌ (not supported) | +| [Bitget](exchanges.md#bitget) | spot | | market, limit | +| [Bitget](exchanges.md#bitget) | futures | isolated | market, limit | | [Bybit](exchanges.md#bybit) | spot | | ❌ (not supported) | | [Bybit](exchanges.md#bybit) | futures | isolated | market, limit | | [Gate.io](exchanges.md#gateio) | spot | | limit | | [Gate.io](exchanges.md#gateio) | futures | isolated | limit | | [HTX](exchanges.md#htx) | spot | | limit | | [Hyperliquid](exchanges.md#hyperliquid) | spot | | ❌ (not supported) | -| [Hyperliquid](exchanges.md#hyperliquid) | futures | isolated | limit | +| [Hyperliquid](exchanges.md#hyperliquid) | futures | isolated, cross | limit | | [Kraken](exchanges.md#kraken) | spot | | market, limit | | [OKX](exchanges.md#okx) | spot | | limit | | [OKX](exchanges.md#okx) | futures | isolated | limit | diff --git a/docs/index.md b/docs/index.md index 7276432da..a97e43365 100644 --- a/docs/index.md +++ b/docs/index.md @@ -39,6 +39,7 @@ Please read the [exchange specific notes](exchanges.md) to learn about eventual, - [X] [Binance](https://www.binance.com/) - [X] [BingX](https://bingx.com/invite/0EM9RX) +- [X] [Bitget](https://www.bitget.com/) - [X] [Bitmart](https://bitmart.com/) - [X] [Bybit](https://bybit.com/) - [X] [Gate.io](https://www.gate.io/ref/6266643) @@ -52,6 +53,7 @@ Please read the [exchange specific notes](exchanges.md) to learn about eventual, ### Supported Futures Exchanges (experimental) - [X] [Binance](https://www.binance.com/) +- [X] [Bitget](https://www.bitget.com/) - [X] [Bybit](https://bybit.com/) - [X] [Gate.io](https://www.gate.io/ref/6266643) - [X] [Hyperliquid](https://hyperliquid.xyz/) (A decentralized exchange, or DEX) diff --git a/docs/installation.md b/docs/installation.md index 3efe6593f..583d3969a 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -24,7 +24,7 @@ The easiest way to install and run Freqtrade is to clone the bot Github reposito The `stable` branch contains the code of the last release (done usually once per month on an approximately one week old snapshot of the `develop` branch to prevent packaging bugs, so potentially it's more stable). !!! Note - Python3.11 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository. + Either [uv](https://docs.astral.sh/uv/), or Python3.11 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository. Also, python headers (`python-dev` / `python-devel`) must be available for the installation to complete successfully. !!! Warning "Up-to-date clock" diff --git a/docs/leverage.md b/docs/leverage.md index d1517e2d3..c96dd714f 100644 --- a/docs/leverage.md +++ b/docs/leverage.md @@ -17,7 +17,7 @@ If you already have an existing strategy, please read the [strategy migration gu ## Shorting -Shorting is not possible when trading with [`trading_mode`](#leverage-trading-modes) set to `spot`. To short trade, `trading_mode` must be set to `margin`(currently unavailable) or [`futures`](#futures), with [`margin_mode`](#margin-mode) set to `cross`(currently unavailable) or [`isolated`](#isolated-margin-mode) +Shorting is not possible when trading with [`trading_mode`](#leverage-trading-modes) set to `spot`. To short trade, `trading_mode` must be set to `margin`(currently unavailable) or [`futures`](#futures), with [`margin_mode`](#margin-mode) set to [`cross`](#cross-margin-mode) or [`isolated`](#isolated-margin-mode) For a strategy to short, the strategy class must set the class variable `can_short = True` @@ -72,7 +72,7 @@ A futures pair will therefore have the naming of `base/quote:settle` (e.g. `ETH/ On top of `trading_mode` - you will also have to configure your `margin_mode`. While freqtrade currently only supports one margin mode, this will change, and by configuring it now you're all set for future updates. -The possible values are: `isolated`, or `cross`(*currently unavailable*). +The possible values are: `isolated`, or `cross`. #### Isolated margin mode @@ -92,6 +92,11 @@ One account is used to share collateral between markets (trading pairs). Margin Please read the [exchange specific notes](exchanges.md) for exchanges that support this mode and how they differ. +!!! Warning "Increased risk of liquidation" + Cross margin mode increases the risk of full account liquidation, as all trades share the same collateral. + A loss on one trade can affect the liquidation price of other trades. + Also, cross-position influence may not be fully simulated in dry-run or backtesting mode. + ## Set leverage to use Different strategies and risk profiles will require different levels of leverage. diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index 8b9a40a03..05a8699df 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,6 +1,6 @@ markdown==3.9 mkdocs==1.6.1 -mkdocs-material==9.6.20 +mkdocs-material==9.6.22 mdx_truly_sane_lists==1.3 pymdown-extensions==10.16.1 jinja2==3.1.6 diff --git a/docs/strategy-callbacks.md b/docs/strategy-callbacks.md index 86219c0d9..5853d23e1 100644 --- a/docs/strategy-callbacks.md +++ b/docs/strategy-callbacks.md @@ -1253,9 +1253,13 @@ The plot annotations callback is called whenever freqUI requests data to display This callback has no meaning in the trade cycle context and is only used for charting purposes. The strategy can then return a list of `AnnotationType` objects to be displayed on the chart. -Depending on the content returned - the chart can display horizontal areas, vertical areas, or boxes. +Depending on the content returned - the chart can display horizontal areas, vertical areas, boxes or lines. -The full object looks like this: +### Annotation types + +Currently two types of annotations are supported, `area` and `line`. + +#### Area ``` json { @@ -1270,6 +1274,24 @@ The full object looks like this: } ``` +#### Line + +``` json +{ + "type": "line", // Type of the annotation, currently only "line" is supported + "start": "2024-01-01 15:00:00", // Start date of the line + "end": "2024-01-01 16:00:00", // End date of the line + "y_start": 94000.2, // Price / y axis value + "y_end": 98000, // Price / y axis value + "color": "", + "z_level": 5, // z-level, higher values are drawn on top of lower values. Positions relative to the Chart elements need to be set in freqUI. + "label": "some label", + "width": 2, // Optional, line width in pixels. Defaults to 1 + "line_style": "dashed", // Optional, can be "solid", "dashed" or "dotted". Defaults to "solid" + +} +``` + The below example will mark the chart with areas for the hours 8 and 15, with a grey color, highlighting the market open and close hours. This is obviously a very basic example. @@ -1337,7 +1359,7 @@ Entries will be validated, and won't be passed to the UI if they don't correspon while start_dt < end_date: start_dt += timedelta(hours=1) if (start_dt.hour % 4) == 0: - mark_areas.append( + annotations.append( { "type": "area", "label": "4h", @@ -1348,7 +1370,7 @@ Entries will be validated, and won't be passed to the UI if they don't correspon ) elif (start_dt.hour % 2) == 0: price = dataframe.loc[dataframe["date"] == start_dt, ["close"]].mean() - mark_areas.append( + annotations.append( { "type": "area", "label": "2h", diff --git a/docs/trade-object.md b/docs/trade-object.md index 9843d8524..b21c447ec 100644 --- a/docs/trade-object.md +++ b/docs/trade-object.md @@ -14,11 +14,20 @@ The following attributes / properties are available for each individual trade - | Attribute | DataType | Description | |------------|-------------|-------------| | `pair` | string | Pair of this trade. | +| `safe_base_currency` | string | Compatibility layer for base currency . | +| `safe_quote_currency` | string | Compatibility layer for quote currency. | | `is_open` | boolean | Is the trade currently open, or has it been concluded. | +| `exchange` | string | Exchange where this trade was executed. | | `open_rate` | float | Rate this trade was entered at (Avg. entry rate in case of trade-adjustments). | +| `open_rate_requested` | float | The rate that was requested when the trade was opened. | +| `open_trade_value` | float | Value of the open trade including fees. | | `close_rate` | float | Close rate - only set when is_open = False. | +| `close_rate_requested` | float | The close rate that was requested. | +| `safe_close_rate` | float | Close rate or `close_rate_requested` or 0.0 if neither is available. Only makes sense once the trade is closed. | | `stake_amount` | float | Amount in Stake (or Quote) currency. | +| `max_stake_amount` | float | Maximum stake amount that was used in this trade (sum of all filled Entry orders). | | `amount` | float | Amount in Asset / Base currency that is currently owned. Will be 0.0 until the initial order fills. | +| `amount_requested` | float | Amount that was originally requested for this trade as part of the first entry order. | | `open_date` | datetime | Timestamp when trade was opened **use `open_date_utc` instead** | | `open_date_utc` | datetime | Timestamp when trade was opened - in UTC. | | `close_date` | datetime | Timestamp when trade was closed **use `close_date_utc` instead** | @@ -28,15 +37,47 @@ The following attributes / properties are available for each individual trade - | `realized_profit` | float | Absolute already realized profit (in stake currency) while the trade is still open. | | `leverage` | float | Leverage used for this trade - defaults to 1.0 in spot markets. | | `enter_tag` | string | Tag provided on entry via the `enter_tag` column in the dataframe. | +| `exit_reason` | string | Reason why the trade was exited. | +| `exit_order_status` | string | Status of the exit order. | +| `strategy` | string | Strategy name that was used for this trade. | +| `timeframe` | int | Timeframe used for this trade. | | `is_short` | boolean | True for short trades, False otherwise. | | `orders` | Order[] | List of order objects attached to this trade (includes both filled and cancelled orders). | | `date_last_filled_utc` | datetime | Time of the last filled order. | +| `date_entry_fill_utc` | datetime | Date of the first filled entry order. | | `entry_side` | "buy" / "sell" | Order Side the trade was entered. | | `exit_side` | "buy" / "sell" | Order Side that will result in a trade exit / position reduction. | | `trade_direction` | "long" / "short" | Trade direction in text - long or short. | +| `max_rate` | float | Highest price reached during this trade. Not 100% accurate. | +| `min_rate` | float | Lowest price reached during this trade. Not 100% accurate. | | `nr_of_successful_entries` | int | Number of successful (filled) entry orders. | | `nr_of_successful_exits` | int | Number of successful (filled) exit orders. | +| `has_open_position` | boolean | True if there is an open position (amount > 0) for this trade. Only false while the initial entry order is unfilled. | | `has_open_orders` | boolean | Has the trade open orders (excluding stoploss orders). | +| `has_open_sl_orders` | boolean | True if there are open stoploss orders for this trade. | +| `open_orders` | Order[] | All open orders for this trade excluding stoploss orders. | +| `open_sl_orders` | Order[] | All open stoploss orders for this trade. | +| `fully_canceled_entry_order_count` | int | Number of fully canceled entry orders. | +| `canceled_exit_order_count` | int | Number of canceled exit orders. | + +### Stop Loss related attributes + +| Attribute | DataType | Description | +|------------|-------------|-------------| +| `stop_loss` | float | Absolute value of the stop loss. | +| `stop_loss_pct` | float | Relative value of the stop loss. | +| `initial_stop_loss` | float | Absolute value of the initial stop loss. | +| `initial_stop_loss_pct` | float | Relative value of the initial stop loss. | +| `stoploss_last_update_utc` | datetime | Timestamp of the last stoploss on exchange order update. | +| `stoploss_or_liquidation` | float | Returns the more restrictive of stoploss or liquidation price and corresponds to the price a stoploss would trigger at. | + +### Futures/Margin trading attributes + +| Attribute | DataType | Description | +|------------|-------------|-------------| +| `liquidation_price` | float | Liquidation price for leveraged trades. | +| `interest_rate` | float | Interest rate for margin trades. | +| `funding_fees` | float | Total funding fees for futures trades. | ## Class methods @@ -102,6 +143,10 @@ from freqtrade.persistence import Trade profit = Trade.total_open_trades_stakes() ``` +## Class methods not supported in backtesting/hyperopt + +The following class methods are not supported in backtesting/hyperopt mode. + ### get_overall_performance Retrieve the overall performance - similar to the `/performance` telegram command. @@ -120,6 +165,17 @@ Sample return value: ETH/BTC had 5 trades, with a total profit of 1.5% (ratio of {"pair": "ETH/BTC", "profit": 0.015, "count": 5} ``` +### get_trading_volume + +Get total trading volume based on orders. + +``` python +from freqtrade.persistence import Trade + +# ... +volume = Trade.get_trading_volume() +``` + ## Order Object An `Order` object represents an order on the exchange (or a simulated order in dry-run mode). @@ -135,6 +191,10 @@ Most properties here can be None as they are dependent on the exchange response. | `trade` | Trade | Trade object this order is attached to | | `ft_pair` | string | Pair this order is for | | `ft_is_open` | boolean | is the order still open? | +| `ft_order_side` | string | Order side ('buy', 'sell', or 'stoploss') | +| `ft_cancel_reason` | string | Reason why the order was canceled | +| `ft_order_tag` | string | Custom order tag | +| `order_id` | string | Exchange order ID | | `order_type` | string | Order type as defined on the exchange - usually market, limit or stoploss | | `status` | string | Status as defined by [ccxt's order structure](https://docs.ccxt.com/#/README?id=order-structure). Usually open, closed, expired, canceled or rejected | | `side` | string | buy or sell | @@ -143,12 +203,20 @@ Most properties here can be None as they are dependent on the exchange response. | `amount` | float | Amount in base currency | | `filled` | float | Filled amount (in base currency) (use `safe_filled` instead) | | `safe_filled` | float | Filled amount (in base currency) - guaranteed to not be None | +| `safe_amount` | float | Amount - falls back to ft_amount if None | +| `safe_price` | float | Price - falls back through average, price, stop_price, ft_price | +| `safe_placement_price` | float | Price at which the order was placed | | `remaining` | float | Remaining amount (use `safe_remaining` instead) | | `safe_remaining` | float | Remaining amount - either taken from the exchange or calculated. | -| `cost` | float | Cost of the order - usually average * filled (*Exchange dependent on futures, may contain the cost with or without leverage and may be in contracts.*) | -| `stake_amount` | float | Stake amount used for this order. *Added in 2023.7.* | -| `stake_amount_filled` | float | Filled Stake amount used for this order. *Added in 2024.11.* | +| `safe_cost` | float | Cost of the order - guaranteed to not be None | +| `safe_fee_base` | float | Fee in base currency - guaranteed to not be None | +| `safe_amount_after_fee` | float | Amount after deducting fees | +| `cost` | float | Cost of the order - usually average * filled (*Exchange dependent on futures trading, may contain the cost with or without leverage and may be in contracts.*) | +| `stop_price` | float | Stop price for stop orders. Empty for non-stoploss orders. | +| `stake_amount` | float | Stake amount used for this order. | +| `stake_amount_filled` | float | Filled Stake amount used for this order. | | `order_date` | datetime | Order creation date **use `order_date_utc` instead** | | `order_date_utc` | datetime | Order creation date (in UTC) | -| `order_fill_date` | datetime | Order fill date **use `order_fill_utc` instead** | -| `order_fill_date_utc` | datetime | Order fill date | +| `order_filled_date` | datetime | Order fill date **use `order_filled_utc` instead** | +| `order_filled_utc` | datetime | Order fill date | +| `order_update_date` | datetime | Last order update date | diff --git a/freqtrade/__init__.py b/freqtrade/__init__.py index f6aba8ffd..62ea7c4c5 100644 --- a/freqtrade/__init__.py +++ b/freqtrade/__init__.py @@ -1,6 +1,6 @@ """Freqtrade bot""" -__version__ = "2025.9.1" +__version__ = "2025.10" if "dev" in __version__: from pathlib import Path diff --git a/freqtrade/commands/arguments.py b/freqtrade/commands/arguments.py index 6f60e6f86..e6805ed5a 100755 --- a/freqtrade/commands/arguments.py +++ b/freqtrade/commands/arguments.py @@ -64,7 +64,6 @@ ARGS_BACKTEST = [ ARGS_HYPEROPT = [ *ARGS_COMMON_OPTIMIZE, - "hyperopt", "hyperopt_path", "position_stacking", "enable_protections", diff --git a/freqtrade/commands/cli_options.py b/freqtrade/commands/cli_options.py index 9df2c3128..3898305af 100755 --- a/freqtrade/commands/cli_options.py +++ b/freqtrade/commands/cli_options.py @@ -2,7 +2,7 @@ Definition of cli arguments used in arguments.py """ -from argparse import SUPPRESS, ArgumentTypeError +from argparse import ArgumentTypeError from freqtrade import constants from freqtrade.constants import HYPEROPT_LOSS_BUILTIN @@ -245,7 +245,7 @@ AVAILABLE_CLI_OPTIONS = { ), "backtest_breakdown": Arg( "--breakdown", - help="Show backtesting breakdown per [day, week, month, year].", + help="Show backtesting breakdown per [day, week, month, year, weekday].", nargs="+", choices=constants.BACKTEST_BREAKDOWNS, ), @@ -256,12 +256,6 @@ AVAILABLE_CLI_OPTIONS = { choices=constants.BACKTEST_CACHE_AGE, ), # Hyperopt - "hyperopt": Arg( - "--hyperopt", - help=SUPPRESS, - metavar="NAME", - required=False, - ), "hyperopt_path": Arg( "--hyperopt-path", help="Specify additional lookup path for Hyperopt Loss functions.", diff --git a/freqtrade/config_schema/config_schema.py b/freqtrade/config_schema/config_schema.py index 8274c161b..c9425d6cb 100644 --- a/freqtrade/config_schema/config_schema.py +++ b/freqtrade/config_schema/config_schema.py @@ -1142,6 +1142,15 @@ CONF_SCHEMA = { "type": "boolean", "default": False, }, + "override_exchange_check": { + "description": ( + "Override the exchange check to force FreqAI to use exchanges " + "that may not have enough historic data. Turn this to True if " + "you know your FreqAI model and strategy do not require historical data." + ), + "type": "boolean", + "default": False, + }, "feature_parameters": { "description": "The parameters used to engineer the feature set", "type": "object", diff --git a/freqtrade/configuration/configuration.py b/freqtrade/configuration/configuration.py index 4b95d004d..c544e47b5 100644 --- a/freqtrade/configuration/configuration.py +++ b/freqtrade/configuration/configuration.py @@ -12,7 +12,7 @@ from typing import Any from freqtrade import constants from freqtrade.configuration.deprecated_settings import process_temporary_deprecated_settings from freqtrade.configuration.directory_operations import create_datadir, create_userdata_dir -from freqtrade.configuration.environment_vars import enironment_vars_to_dict +from freqtrade.configuration.environment_vars import environment_vars_to_dict from freqtrade.configuration.load_config import load_file, load_from_files from freqtrade.constants import Config from freqtrade.enums import ( @@ -80,7 +80,7 @@ class Configuration: from freqtrade.commands.arguments import NO_CONF_ALLOWED if self.args.get("command") not in NO_CONF_ALLOWED: - env_data = enironment_vars_to_dict() + env_data = environment_vars_to_dict() config = deep_merge_dicts(env_data, config) # Normalize config @@ -336,7 +336,6 @@ class Configuration: # Hyperopt section configurations = [ - ("hyperopt", "Using Hyperopt class name: {}"), ("hyperopt_path", "Using additional Hyperopt lookup path: {}"), ("hyperoptexportfilename", "Using hyperopt file: {}"), ("lookahead_analysis_exportfilename", "Saving lookahead analysis results into {} ..."), diff --git a/freqtrade/configuration/environment_vars.py b/freqtrade/configuration/environment_vars.py index e5eb031e7..c4ada51b9 100644 --- a/freqtrade/configuration/environment_vars.py +++ b/freqtrade/configuration/environment_vars.py @@ -73,7 +73,7 @@ def _flat_vars_to_nested_dict(env_dict: dict[str, Any], prefix: str) -> dict[str return relevant_vars -def enironment_vars_to_dict() -> dict[str, Any]: +def environment_vars_to_dict() -> dict[str, Any]: """ Read environment variables and return a nested dict for relevant variables Relevant variables must follow the FREQTRADE__{section}__{key} pattern diff --git a/freqtrade/constants.py b/freqtrade/constants.py index 6ce87793a..75d267130 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -61,7 +61,7 @@ AVAILABLE_PAIRLISTS = [ "VolatilityFilter", ] AVAILABLE_DATAHANDLERS = ["json", "jsongz", "feather", "parquet"] -BACKTEST_BREAKDOWNS = ["day", "week", "month", "year"] +BACKTEST_BREAKDOWNS = ["day", "week", "month", "year", "weekday"] BACKTEST_CACHE_AGE = ["none", "day", "week", "month"] BACKTEST_CACHE_DEFAULT = "day" DRY_RUN_WALLET = 1000 diff --git a/freqtrade/data/btanalysis/bt_fileutils.py b/freqtrade/data/btanalysis/bt_fileutils.py index ea9c993fb..e1c0ea64c 100644 --- a/freqtrade/data/btanalysis/bt_fileutils.py +++ b/freqtrade/data/btanalysis/bt_fileutils.py @@ -511,8 +511,8 @@ def trade_list_to_dataframe(trades: list[Trade] | list[LocalTrade]) -> pd.DataFr """ df = pd.DataFrame.from_records([t.to_json(True) for t in trades], columns=BT_DATA_COLUMNS) if len(df) > 0: - df["close_date"] = pd.to_datetime(df["close_date"], utc=True) - df["open_date"] = pd.to_datetime(df["open_date"], utc=True) + df["close_date"] = pd.to_datetime(df["close_timestamp"], unit="ms", utc=True) + df["open_date"] = pd.to_datetime(df["open_timestamp"], unit="ms", utc=True) df["close_rate"] = df["close_rate"].astype("float64") return df diff --git a/freqtrade/exchange/__init__.py b/freqtrade/exchange/__init__.py index 031a6e897..667bbfe42 100644 --- a/freqtrade/exchange/__init__.py +++ b/freqtrade/exchange/__init__.py @@ -11,6 +11,7 @@ from freqtrade.exchange.bitmart import Bitmart from freqtrade.exchange.bitpanda import Bitpanda from freqtrade.exchange.bitvavo import Bitvavo from freqtrade.exchange.bybit import Bybit +from freqtrade.exchange.coinex import Coinex from freqtrade.exchange.cryptocom import Cryptocom from freqtrade.exchange.exchange_utils import ( ROUND_DOWN, @@ -46,4 +47,4 @@ from freqtrade.exchange.kucoin import Kucoin from freqtrade.exchange.lbank import Lbank from freqtrade.exchange.luno import Luno from freqtrade.exchange.modetrade import Modetrade -from freqtrade.exchange.okx import MyOkx, Okx +from freqtrade.exchange.okx import Myokx, Okx, Okxus diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index 2974adb0a..807aa27cf 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -28,6 +28,10 @@ logger = logging.getLogger(__name__) class Binance(Exchange): + """Binance exchange class. + Contains adjustments needed for Freqtrade to work with this exchange. + """ + _ft_has: FtHas = { "stoploss_on_exchange": True, "stop_price_param": "stopPrice", diff --git a/freqtrade/exchange/binance_leverage_tiers.json b/freqtrade/exchange/binance_leverage_tiers.json index dfe4a32d5..fb644e8a0 100644 --- a/freqtrade/exchange/binance_leverage_tiers.json +++ b/freqtrade/exchange/binance_leverage_tiers.json @@ -798,14 +798,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -815,14 +815,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -832,14 +832,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -848,33 +848,33 @@ "symbol": "1000CAT/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "1000CAT/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -883,15 +883,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -899,37 +899,20 @@ "symbol": "1000CAT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "1000CAT/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "1000CAT/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -937,16 +920,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "1000CAT/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -954,12 +937,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -1814,10 +1797,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -1914,13 +1897,13 @@ "symbol": "1000RATS/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -1930,17 +1913,17 @@ "tier": 8.0, "symbol": "1000RATS/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -1951,14 +1934,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -1968,14 +1951,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -1985,14 +1968,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -2001,33 +1984,33 @@ "symbol": "1000SATS/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -2036,15 +2019,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -2052,37 +2035,20 @@ "symbol": "1000SATS/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "1000SATS/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -2090,16 +2056,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -2107,12 +2073,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -3235,6 +3201,454 @@ } } ], + "2Z/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "2Z/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], + "4/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "4/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], + "42/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "42/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "A/USDT:USDT": [ { "tier": 1.0, @@ -3431,14 +3845,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -3448,15 +3862,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -3464,33 +3878,33 @@ "symbol": "A2Z/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "A2Z/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, + "minNotional": 20000.0, "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "5", "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { @@ -3498,88 +3912,54 @@ "symbol": "A2Z/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", + "initialLeverage": "4", + "notionalCap": "250000", "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "A2Z/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "A2Z/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "A2Z/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" - } - }, - { - "tier": 9.0, - "symbol": "A2Z/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "96275.0" } }, { - "tier": 10.0, + "tier": 8.0, "symbol": "A2Z/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -3587,12 +3967,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "1971275.0" } } ], @@ -4378,15 +4758,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -4394,71 +4774,54 @@ "symbol": "ACX/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "ACX/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -4466,16 +4829,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -4483,16 +4846,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -4500,12 +4863,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -6766,6 +7129,144 @@ } } ], + "AKE/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "AKE/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "AKT/USDT:USDT": [ { "tier": 1.0, @@ -6945,15 +7446,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -6961,105 +7462,88 @@ "symbol": "ALCH/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "ALCH/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -7067,12 +7551,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -8885,6 +9369,144 @@ } } ], + "APR/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "APR/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "APT/USDT:USDT": [ { "tier": 1.0, @@ -9684,15 +10306,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -9700,105 +10322,88 @@ "symbol": "ARIA/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "ARIA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "ARIA/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "ARIA/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "ARIA/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "ARIA/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "ARIA/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -9806,12 +10411,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -9823,10 +10428,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -9923,13 +10528,13 @@ "symbol": "ARK/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -9939,17 +10544,17 @@ "tier": 8.0, "symbol": "ARK/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -10407,13 +11012,13 @@ "symbol": "ASTER/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, + "maxNotional": 20000.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "5000", + "notionalCap": "20000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -10423,170 +11028,136 @@ "tier": 2.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, + "minNotional": 20000.0, + "maxNotional": 200000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "10000", - "notionalFloor": "5000", + "notionalCap": "200000", + "notionalFloor": "20000", "maintMarginRatio": "0.015", - "cum": "25.0" + "cum": "100.0" } }, { "tier": 3.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 50000.0, + "minNotional": 200000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "50000", - "notionalFloor": "10000", + "notionalCap": "1000000", + "notionalFloor": "200000", "maintMarginRatio": "0.02", - "cum": "75.0" + "cum": "1100.0" } }, { "tier": 4.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 1000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "notionalCap": "2000000", + "notionalFloor": "1000000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "6100.0" } }, { "tier": 5.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 175000.0, - "maintenanceMarginRate": 0.0333, - "maxLeverage": 15.0, + "minNotional": 2000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "15", - "notionalCap": "175000", - "notionalFloor": "100000", - "maintMarginRatio": "0.0333", - "cum": "1155.0" + "initialLeverage": "10", + "notionalCap": "5000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.05", + "cum": "56100.0" } }, { "tier": 6.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 175000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 5000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", - "notionalCap": "250000", - "notionalFloor": "175000", - "maintMarginRatio": "0.05", - "cum": "4077.5" + "initialLeverage": "5", + "notionalCap": "7500000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.1", + "cum": "306100.0" } }, { "tier": 7.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 750000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 7500000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", - "notionalCap": "750000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1", - "cum": "16577.5" + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.125", + "cum": "493600.0" } }, { "tier": 8.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 10000000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, "info": { "bracket": "8", - "initialLeverage": "4", - "notionalCap": "1500000", - "notionalFloor": "750000", - "maintMarginRatio": "0.125", - "cum": "35327.5" + "initialLeverage": "2", + "notionalCap": "12500000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.25", + "cum": "1743600.0" } }, { "tier": 9.0, "symbol": "ASTER/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "9", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "1500000", - "maintMarginRatio": "0.1667", - "cum": "97877.5" - } - }, - { - "tier": 10.0, - "symbol": "ASTER/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "10", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", - "maintMarginRatio": "0.25", - "cum": "472727.5" - } - }, - { - "tier": 11.0, - "symbol": "ASTER/USDT:USDT", - "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 12500000.0, + "maxNotional": 15000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "11", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "15000000", + "notionalFloor": "12500000", "maintMarginRatio": "0.5", - "cum": "2347727.5" + "cum": "4868600.0" } } ], @@ -10745,6 +11316,144 @@ } } ], + "AT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "AT/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "ATA/USDT:USDT": [ { "tier": 1.0, @@ -12216,10 +12925,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -12316,13 +13025,13 @@ "symbol": "AWE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -12332,17 +13041,17 @@ "tier": 8.0, "symbol": "AWE/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -13437,15 +14146,15 @@ "symbol": "BAKE/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 40.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "40", - "notionalCap": "5000", + "initialLeverage": "10", + "notionalCap": "25000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.05", "cum": "0.0" } }, @@ -13453,55 +14162,21 @@ "tier": 2.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "BAKE/USDT:USDT", - "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "3", - "initialLeverage": "10", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" - } - }, - { - "tier": 4.0, - "symbol": "BAKE/USDT:USDT", - "currency": "USDT", "minNotional": 25000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "4", + "bracket": "2", "initialLeverage": "5", "notionalCap": "50000", "notionalFloor": "25000", "maintMarginRatio": "0.1", - "cum": "1525.0" + "cum": "1250.0" } }, { - "tier": 5.0, + "tier": 3.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, @@ -13509,16 +14184,16 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "5", + "bracket": "3", "initialLeverage": "4", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2775.0" + "cum": "2500.0" } }, { - "tier": 6.0, + "tier": 4.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", "minNotional": 100000.0, @@ -13526,16 +14201,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "6", + "bracket": "4", "initialLeverage": "3", "notionalCap": "250000", "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "6945.0" + "cum": "6670.0" } }, { - "tier": 7.0, + "tier": 5.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -13543,16 +14218,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "7", + "bracket": "5", "initialLeverage": "2", "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "27770.0" + "cum": "27495.0" } }, { - "tier": 8.0, + "tier": 6.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -13560,12 +14235,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "6", "initialLeverage": "1", "notionalCap": "800000", "notionalFloor": "500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "152495.0" } } ], @@ -13697,15 +14372,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -13713,105 +14388,88 @@ "symbol": "BAN/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "BAN/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -13819,12 +14477,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -14455,14 +15113,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -14472,14 +15130,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -14489,14 +15147,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -14505,33 +15163,33 @@ "symbol": "BARD/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "BARD/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -14540,15 +15198,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -14556,37 +15214,20 @@ "symbol": "BARD/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "BARD/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "BARD/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -14594,16 +15235,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "BARD/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -14611,12 +15252,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -15537,13 +16178,13 @@ "symbol": "BDXN/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -15553,17 +16194,17 @@ "tier": 8.0, "symbol": "BDXN/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -16899,6 +17540,144 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, + "info": { + "bracket": "1", + "initialLeverage": "40", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "275.0" + } + }, + { + "tier": 4.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1275.0" + } + }, + { + "tier": 5.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2525.0" + } + }, + { + "tier": 6.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "250000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1667", + "cum": "6695.0" + } + }, + { + "tier": 7.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.25", + "cum": "27520.0" + } + }, + { + "tier": 8.0, + "symbol": "BLESS/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "5000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "652520.0" + } + } + ], + "BLUAI/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "BLUAI/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { @@ -16912,138 +17691,121 @@ }, { "tier": 2.0, - "symbol": "BLESS/USDT:USDT", + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { "tier": 3.0, - "symbol": "BLESS/USDT:USDT", + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, - "symbol": "BLESS/USDT:USDT", + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, - "symbol": "BLESS/USDT:USDT", + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "BLESS/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, - "symbol": "BLESS/USDT:USDT", + "tier": 6.0, + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, - "symbol": "BLESS/USDT:USDT", + "tier": 7.0, + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, - "symbol": "BLESS/USDT:USDT", + "tier": 8.0, + "symbol": "BLUAI/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -18968,10 +19730,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -19068,13 +19830,13 @@ "symbol": "BROCCOLIF3B/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -19084,17 +19846,17 @@ "tier": 8.0, "symbol": "BROCCOLIF3B/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -19105,14 +19867,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -19122,14 +19884,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -19139,14 +19901,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", + "initialLeverage": "25", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "75.0" } }, @@ -19155,33 +19917,33 @@ "symbol": "BSV/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", + "initialLeverage": "20", + "notionalCap": "50000", "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "BSV/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, + "minNotional": 50000.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { @@ -19190,15 +19952,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "5", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { @@ -19206,37 +19968,54 @@ "symbol": "BSV/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", + "initialLeverage": "4", + "notionalCap": "500000", "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "BSV/USDT:USDT", "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "BSV/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "409650.0" } }, { - "tier": 9.0, + "tier": 10.0, "symbol": "BSV/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -19244,12 +20023,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2284650.0" } } ], @@ -19769,144 +20548,6 @@ } } ], - "BTC/USDT:USDT-250926": [ - { - "tier": 1.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, - "info": { - "bracket": "1", - "initialLeverage": "50", - "notionalCap": "50000", - "notionalFloor": "0", - "maintMarginRatio": "0.01", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 375000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, - "info": { - "bracket": "2", - "initialLeverage": "25", - "notionalCap": "375000", - "notionalFloor": "50000", - "maintMarginRatio": "0.02", - "cum": "500.0" - } - }, - { - "tier": 3.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 375000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "3", - "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "375000", - "maintMarginRatio": "0.05", - "cum": "11750.0" - } - }, - { - "tier": 4.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "4", - "initialLeverage": "5", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.1", - "cum": "111750.0" - } - }, - { - "tier": 5.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 10000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "5", - "initialLeverage": "4", - "notionalCap": "10000000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.125", - "cum": "211750.0" - } - }, - { - "tier": 6.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 20000000.0, - "maintenanceMarginRate": 0.15, - "maxLeverage": 3.0, - "info": { - "bracket": "6", - "initialLeverage": "3", - "notionalCap": "20000000", - "notionalFloor": "10000000", - "maintMarginRatio": "0.15", - "cum": "461750.0" - } - }, - { - "tier": 7.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 20000000.0, - "maxNotional": 40000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "40000000", - "notionalFloor": "20000000", - "maintMarginRatio": "0.25", - "cum": "2461750.0" - } - }, - { - "tier": 8.0, - "symbol": "BTC/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 40000000.0, - "maxNotional": 120000000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "8", - "initialLeverage": "1", - "notionalCap": "120000000", - "notionalFloor": "40000000", - "maintMarginRatio": "0.5", - "cum": "12461750.0" - } - } - ], "BTC/USDT:USDT-251226": [ { "tier": 1.0, @@ -20045,6 +20686,144 @@ } } ], + "BTC/USDT:USDT-260327": [ + { + "tier": 1.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "50000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 375000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "375000", + "notionalFloor": "50000", + "maintMarginRatio": "0.02", + "cum": "500.0" + } + }, + { + "tier": 3.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 375000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "2000000", + "notionalFloor": "375000", + "maintMarginRatio": "0.05", + "cum": "11750.0" + } + }, + { + "tier": 4.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "4000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1", + "cum": "111750.0" + } + }, + { + "tier": 5.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.125", + "cum": "211750.0" + } + }, + { + "tier": 6.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 10000000.0, + "maxNotional": 20000000.0, + "maintenanceMarginRate": 0.15, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "20000000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.15", + "cum": "461750.0" + } + }, + { + "tier": 7.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 20000000.0, + "maxNotional": 40000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "40000000", + "notionalFloor": "20000000", + "maintMarginRatio": "0.25", + "cum": "2461750.0" + } + }, + { + "tier": 8.0, + "symbol": "BTC/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 40000000.0, + "maxNotional": 120000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "120000000", + "notionalFloor": "40000000", + "maintMarginRatio": "0.5", + "cum": "12461750.0" + } + } + ], "BTCDOM/USDT:USDT": [ { "tier": 1.0, @@ -20277,15 +21056,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -20293,105 +21072,88 @@ "symbol": "BTR/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "BTR/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "BTR/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "BTR/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "BTR/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "BTR/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "BTR/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -20399,12 +21161,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -20879,13 +21641,13 @@ "symbol": "CAKE/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -20895,51 +21657,51 @@ "tier": 4.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "100000", + "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "325.0" } }, { "tier": 5.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" } }, { "tier": 6.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 175000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" } }, { @@ -20947,54 +21709,71 @@ "symbol": "CAKE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", + "initialLeverage": "5", + "notionalCap": "750000", "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" + "maintMarginRatio": "0.1", + "cum": "16577.5" } }, { "tier": 8.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { "tier": 9.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.1667", + "cum": "97877.5" + } + }, + { + "tier": 10.0, + "symbol": "CAKE/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "472727.5" } }, { - "tier": 10.0, + "tier": 11.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -21002,12 +21781,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2347727.5" } } ], @@ -22137,14 +22916,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -22162,7 +22941,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -22179,7 +22958,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -22196,7 +22975,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -22204,67 +22983,67 @@ "symbol": "CHESS/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -22922,10 +23701,10 @@ } } ], - "COAI/USDT:USDT": [ + "CLO/USDT:USDT": [ { "tier": 1.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, @@ -22942,7 +23721,7 @@ }, { "tier": 2.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, @@ -22959,7 +23738,7 @@ }, { "tier": 3.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, @@ -22976,7 +23755,7 @@ }, { "tier": 4.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, "maxNotional": 62500.0, @@ -22993,7 +23772,7 @@ }, { "tier": 5.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 62500.0, "maxNotional": 125000.0, @@ -23010,7 +23789,7 @@ }, { "tier": 6.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, @@ -23027,7 +23806,7 @@ }, { "tier": 7.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, "maxNotional": 4500000.0, @@ -23044,7 +23823,7 @@ }, { "tier": 8.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, @@ -23061,7 +23840,7 @@ }, { "tier": 9.0, - "symbol": "COAI/USDT:USDT", + "symbol": "CLO/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, "maxNotional": 12500000.0, @@ -23077,6 +23856,110 @@ } } ], + "COAI/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "COAI/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "1", + "initialLeverage": "10", + "notionalCap": "10000", + "notionalFloor": "0", + "maintMarginRatio": "0.05", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "COAI/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 60000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "2", + "initialLeverage": "5", + "notionalCap": "60000", + "notionalFloor": "10000", + "maintMarginRatio": "0.1", + "cum": "500.0" + } + }, + { + "tier": 3.0, + "symbol": "COAI/USDT:USDT", + "currency": "USDT", + "minNotional": 60000.0, + "maxNotional": 70000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "3", + "initialLeverage": "4", + "notionalCap": "70000", + "notionalFloor": "60000", + "maintMarginRatio": "0.125", + "cum": "2000.0" + } + }, + { + "tier": 4.0, + "symbol": "COAI/USDT:USDT", + "currency": "USDT", + "minNotional": 70000.0, + "maxNotional": 700000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "4", + "initialLeverage": "3", + "notionalCap": "700000", + "notionalFloor": "70000", + "maintMarginRatio": "0.1667", + "cum": "4919.0" + } + }, + { + "tier": 5.0, + "symbol": "COAI/USDT:USDT", + "currency": "USDT", + "minNotional": 700000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "5", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "700000", + "maintMarginRatio": "0.25", + "cum": "63229.0" + } + }, + { + "tier": 6.0, + "symbol": "COAI/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "6", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1938229.0" + } + } + ], "COMBO/USDT:USDT": [ { "tier": 1.0, @@ -23181,6 +24064,144 @@ } } ], + "COMMON/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "COMMON/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "COMP/USDT:USDT": [ { "tier": 1.0, @@ -24772,15 +25793,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -24788,105 +25809,88 @@ "symbol": "CUDIS/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "CUDIS/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "CUDIS/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "CUDIS/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "CUDIS/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "CUDIS/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "CUDIS/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -24894,12 +25898,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -25530,15 +26534,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -25546,105 +26550,88 @@ "symbol": "DAM/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "DAM/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "DAM/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "DAM/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "DAM/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "DAM/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "DAM/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -25652,12 +26639,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -25856,13 +26843,13 @@ "symbol": "DASH/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -25872,51 +26859,51 @@ "tier": 4.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "100000", + "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "325.0" } }, { "tier": 5.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" } }, { "tier": 6.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 175000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" } }, { @@ -25924,54 +26911,71 @@ "symbol": "DASH/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", + "initialLeverage": "5", + "notionalCap": "750000", "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" + "maintMarginRatio": "0.1", + "cum": "16577.5" } }, { "tier": 8.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { "tier": 9.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.1667", + "cum": "97877.5" + } + }, + { + "tier": 10.0, + "symbol": "DASH/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "472727.5" } }, { - "tier": 10.0, + "tier": 11.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -25979,12 +26983,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2347727.5" } } ], @@ -26392,14 +27396,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -26417,7 +27421,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -26425,23 +27429,23 @@ "symbol": "DEGO/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 20000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "3", "initialLeverage": "10", - "notionalCap": "20000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { "tier": 4.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, + "minNotional": 25000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, @@ -26449,9 +27453,9 @@ "bracket": "4", "initialLeverage": "5", "notionalCap": "50000", - "notionalFloor": "20000", + "notionalFloor": "25000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1525.0" } }, { @@ -26459,67 +27463,67 @@ "symbol": "DEGO/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2775.0" } }, { "tier": 6.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6945.0" } }, { "tier": 7.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27770.0" } }, { "tier": 8.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652770.0" } } ], @@ -27237,14 +28241,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -27262,7 +28266,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -27279,7 +28283,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -27296,7 +28300,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -27304,67 +28308,67 @@ "symbol": "DMC/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "DMC/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "DMC/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "DMC/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -28029,14 +29033,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -28046,14 +29050,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -28063,14 +29067,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -28079,33 +29083,33 @@ "symbol": "DOLO/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "DOLO/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -28114,15 +29118,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -28130,37 +29134,20 @@ "symbol": "DOLO/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "DOLO/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "DOLO/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -28168,16 +29155,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "DOLO/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -28185,12 +29172,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -29124,6 +30111,178 @@ } } ], + "EDEN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" + } + }, + { + "tier": 7.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" + } + }, + { + "tier": 8.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "EDEN/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], "EDU/USDT:USDT": [ { "tier": 1.0, @@ -30277,6 +31436,178 @@ } } ], + "ENSO/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" + } + }, + { + "tier": 7.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" + } + }, + { + "tier": 8.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "ENSO/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], "EPIC/USDT:USDT": [ { "tier": 1.0, @@ -30439,14 +31770,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -30464,7 +31795,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -30481,7 +31812,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -30498,7 +31829,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -30506,67 +31837,67 @@ "symbol": "EPT/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "EPT/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "EPT/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "EPT/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -31636,144 +32967,6 @@ } } ], - "ETH/USDT:USDT-250926": [ - { - "tier": 1.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, - "info": { - "bracket": "1", - "initialLeverage": "50", - "notionalCap": "50000", - "notionalFloor": "0", - "maintMarginRatio": "0.01", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 375000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, - "info": { - "bracket": "2", - "initialLeverage": "25", - "notionalCap": "375000", - "notionalFloor": "50000", - "maintMarginRatio": "0.02", - "cum": "500.0" - } - }, - { - "tier": 3.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 375000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "3", - "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "375000", - "maintMarginRatio": "0.05", - "cum": "11750.0" - } - }, - { - "tier": 4.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "4", - "initialLeverage": "5", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.1", - "cum": "111750.0" - } - }, - { - "tier": 5.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 10000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "5", - "initialLeverage": "4", - "notionalCap": "10000000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.125", - "cum": "211750.0" - } - }, - { - "tier": 6.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 20000000.0, - "maintenanceMarginRate": 0.15, - "maxLeverage": 3.0, - "info": { - "bracket": "6", - "initialLeverage": "3", - "notionalCap": "20000000", - "notionalFloor": "10000000", - "maintMarginRatio": "0.15", - "cum": "461750.0" - } - }, - { - "tier": 7.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 20000000.0, - "maxNotional": 40000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "40000000", - "notionalFloor": "20000000", - "maintMarginRatio": "0.25", - "cum": "2461750.0" - } - }, - { - "tier": 8.0, - "symbol": "ETH/USDT:USDT-250926", - "currency": "USDT", - "minNotional": 40000000.0, - "maxNotional": 120000000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "8", - "initialLeverage": "1", - "notionalCap": "120000000", - "notionalFloor": "40000000", - "maintMarginRatio": "0.5", - "cum": "12461750.0" - } - } - ], "ETH/USDT:USDT-251226": [ { "tier": 1.0, @@ -31912,6 +33105,144 @@ } } ], + "ETH/USDT:USDT-260327": [ + { + "tier": 1.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "50000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 375000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "375000", + "notionalFloor": "50000", + "maintMarginRatio": "0.02", + "cum": "500.0" + } + }, + { + "tier": 3.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 375000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "2000000", + "notionalFloor": "375000", + "maintMarginRatio": "0.05", + "cum": "11750.0" + } + }, + { + "tier": 4.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "4000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1", + "cum": "111750.0" + } + }, + { + "tier": 5.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.125", + "cum": "211750.0" + } + }, + { + "tier": 6.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 10000000.0, + "maxNotional": 20000000.0, + "maintenanceMarginRate": 0.15, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "20000000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.15", + "cum": "461750.0" + } + }, + { + "tier": 7.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 20000000.0, + "maxNotional": 40000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "40000000", + "notionalFloor": "20000000", + "maintMarginRatio": "0.25", + "cum": "2461750.0" + } + }, + { + "tier": 8.0, + "symbol": "ETH/USDT:USDT-260327", + "currency": "USDT", + "minNotional": 40000000.0, + "maxNotional": 120000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "120000000", + "notionalFloor": "40000000", + "maintMarginRatio": "0.5", + "cum": "12461750.0" + } + } + ], "ETHFI/USDC:USDC": [ { "tier": 1.0, @@ -32428,6 +33759,333 @@ } } ], + "EUL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" + } + }, + { + "tier": 7.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" + } + }, + { + "tier": 8.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "EUL/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], + "EVAA/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "EVAA/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "F/USDT:USDT": [ { "tier": 1.0, @@ -32910,6 +34568,161 @@ } } ], + "FF/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "20000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "200000", + "notionalFloor": "20000", + "maintMarginRatio": "0.015", + "cum": "100.0" + } + }, + { + "tier": 3.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "1000000", + "notionalFloor": "200000", + "maintMarginRatio": "0.02", + "cum": "1100.0" + } + }, + { + "tier": 4.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.025", + "cum": "6100.0" + } + }, + { + "tier": 5.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "5000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.05", + "cum": "56100.0" + } + }, + { + "tier": 6.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "7500000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.1", + "cum": "306100.0" + } + }, + { + "tier": 7.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.125", + "cum": "493600.0" + } + }, + { + "tier": 8.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 10000000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "12500000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.25", + "cum": "1743600.0" + } + }, + { + "tier": 9.0, + "symbol": "FF/USDT:USDT", + "currency": "USDT", + "minNotional": 12500000.0, + "maxNotional": 15000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "15000000", + "notionalFloor": "12500000", + "maintMarginRatio": "0.5", + "cum": "4868600.0" + } + } + ], "FHE/USDT:USDT": [ { "tier": 1.0, @@ -32917,14 +34730,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -32942,7 +34755,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -32959,7 +34772,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -32976,7 +34789,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -32984,67 +34797,67 @@ "symbol": "FHE/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "FHE/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "FHE/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "FHE/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -33829,15 +35642,15 @@ "symbol": "FLM/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 15000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "5000", + "initialLeverage": "10", + "notionalCap": "15000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.05", "cum": "0.0" } }, @@ -33845,55 +35658,21 @@ "tier": 2.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "FLM/USDT:USDT", - "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "3", - "initialLeverage": "10", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" - } - }, - { - "tier": 4.0, - "symbol": "FLM/USDT:USDT", - "currency": "USDT", - "minNotional": 25000.0, + "minNotional": 15000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "4", + "bracket": "2", "initialLeverage": "5", "notionalCap": "50000", - "notionalFloor": "25000", + "notionalFloor": "15000", "maintMarginRatio": "0.1", - "cum": "1525.0" + "cum": "750.0" } }, { - "tier": 5.0, + "tier": 3.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, @@ -33901,16 +35680,16 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "5", + "bracket": "3", "initialLeverage": "4", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2775.0" + "cum": "2000.0" } }, { - "tier": 6.0, + "tier": 4.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", "minNotional": 100000.0, @@ -33918,46 +35697,46 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "6", + "bracket": "4", "initialLeverage": "3", "notionalCap": "250000", "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "6945.0" + "cum": "6170.0" } }, { - "tier": 7.0, + "tier": 5.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "7", + "bracket": "5", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "27770.0" + "cum": "26995.0" } }, { - "tier": 8.0, + "tier": 6.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "6", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "651995.0" } } ], @@ -34501,15 +36280,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -34517,71 +36296,54 @@ "symbol": "FLUX/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "FLUX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "FLUX/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "FLUX/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "FLUX/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -34589,16 +36351,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "FLUX/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -34606,16 +36368,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "FLUX/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -34623,12 +36385,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -35209,10 +36971,10 @@ "minNotional": 500.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "500", "maintMarginRatio": "0.02", @@ -35292,13 +37054,13 @@ "symbol": "FUN/USDT:USDT", "currency": "USDT", "minNotional": 100000.0, - "maxNotional": 400000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "400000", + "notionalCap": "250000", "notionalFloor": "100000", "maintMarginRatio": "0.1667", "cum": "6947.5" @@ -35308,34 +37070,34 @@ "tier": 8.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "40267.5" + "cum": "27772.5" } }, { "tier": 9.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "165267.5" + "cum": "652772.5" } } ], @@ -35535,15 +37297,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -35551,105 +37313,88 @@ "symbol": "G/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "G/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "G/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "G/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "G/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "G/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "G/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -35657,12 +37402,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -36165,6 +37910,161 @@ } } ], + "GIGGLE/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "GIGGLE/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "GLM/USDT:USDT": [ { "tier": 1.0, @@ -38129,6 +40029,144 @@ } } ], + "HANA/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "HANA/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "HBAR/USDC:USDC": [ { "tier": 1.0, @@ -38893,15 +40931,15 @@ "symbol": "HIFI/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "5000", + "initialLeverage": "10", + "notionalCap": "25000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.05", "cum": "0.0" } }, @@ -38909,55 +40947,21 @@ "tier": 2.0, "symbol": "HIFI/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "HIFI/USDT:USDT", - "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "3", - "initialLeverage": "10", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" - } - }, - { - "tier": 4.0, - "symbol": "HIFI/USDT:USDT", - "currency": "USDT", "minNotional": 25000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "4", + "bracket": "2", "initialLeverage": "5", "notionalCap": "50000", "notionalFloor": "25000", "maintMarginRatio": "0.1", - "cum": "1525.0" + "cum": "1250.0" } }, { - "tier": 5.0, + "tier": 3.0, "symbol": "HIFI/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, @@ -38965,16 +40969,16 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "5", + "bracket": "3", "initialLeverage": "4", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2775.0" + "cum": "2500.0" } }, { - "tier": 6.0, + "tier": 4.0, "symbol": "HIFI/USDT:USDT", "currency": "USDT", "minNotional": 100000.0, @@ -38982,16 +40986,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "6", + "bracket": "4", "initialLeverage": "3", "notionalCap": "250000", "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "6945.0" + "cum": "6670.0" } }, { - "tier": 7.0, + "tier": 5.0, "symbol": "HIFI/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -38999,16 +41003,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "7", + "bracket": "5", "initialLeverage": "2", "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "27770.0" + "cum": "27495.0" } }, { - "tier": 8.0, + "tier": 6.0, "symbol": "HIFI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -39016,12 +41020,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "6", "initialLeverage": "1", "notionalCap": "800000", "notionalFloor": "500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "152495.0" } } ], @@ -40548,14 +42552,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -40565,14 +42569,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -40582,14 +42586,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -40598,33 +42602,33 @@ "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -40633,15 +42637,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -40649,37 +42653,20 @@ "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "HYPER/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -40687,16 +42674,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -40704,12 +42691,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -41804,13 +43791,13 @@ "symbol": "IMX/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -41820,51 +43807,51 @@ "tier": 4.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "100000", + "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "325.0" } }, { "tier": 5.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" } }, { "tier": 6.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 175000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" } }, { @@ -41872,54 +43859,71 @@ "symbol": "IMX/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", + "initialLeverage": "5", + "notionalCap": "750000", "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" + "maintMarginRatio": "0.1", + "cum": "16577.5" } }, { "tier": 8.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { "tier": 9.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.1667", + "cum": "97877.5" + } + }, + { + "tier": 10.0, + "symbol": "IMX/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "472727.5" } }, { - "tier": 10.0, + "tier": 11.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -41927,12 +43931,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2347727.5" } } ], @@ -43389,14 +45393,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -43406,14 +45410,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -43423,14 +45427,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", + "initialLeverage": "25", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "75.0" } }, @@ -43439,33 +45443,33 @@ "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", + "initialLeverage": "20", + "notionalCap": "50000", "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, + "minNotional": 50000.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { @@ -43474,15 +45478,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "5", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { @@ -43490,37 +45494,54 @@ "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", + "initialLeverage": "4", + "notionalCap": "500000", "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "JASMY/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "409650.0" } }, { - "tier": 9.0, + "tier": 10.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -43528,12 +45549,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2284650.0" } } ], @@ -44919,13 +46940,13 @@ "symbol": "KAS/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -44935,51 +46956,51 @@ "tier": 4.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "100000", + "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "325.0" } }, { "tier": 5.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" } }, { "tier": 6.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 175000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" } }, { @@ -44987,54 +47008,71 @@ "symbol": "KAS/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", + "initialLeverage": "5", + "notionalCap": "750000", "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" + "maintMarginRatio": "0.1", + "cum": "16577.5" } }, { "tier": 8.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { "tier": 9.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.1667", + "cum": "97877.5" + } + }, + { + "tier": 10.0, + "symbol": "KAS/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "472727.5" } }, { - "tier": 10.0, + "tier": 11.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -45042,12 +47080,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2347727.5" } } ], @@ -45229,15 +47267,15 @@ "symbol": "KDA/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "10", + "notionalCap": "10000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.05", "cum": "0.0" } }, @@ -45245,136 +47283,85 @@ "tier": 2.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 10000.0, + "maxNotional": 70000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "5", + "notionalCap": "70000", + "notionalFloor": "10000", + "maintMarginRatio": "0.1", + "cum": "500.0" } }, { "tier": 3.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 70000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "initialLeverage": "4", + "notionalCap": "80000", + "notionalFloor": "70000", + "maintMarginRatio": "0.125", + "cum": "2250.0" } }, { "tier": 4.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 80000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "3", + "notionalCap": "800000", + "notionalFloor": "80000", + "maintMarginRatio": "0.1667", + "cum": "5586.0" } }, { "tier": 5.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 800000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "2", + "notionalCap": "1000000", + "notionalFloor": "800000", + "maintMarginRatio": "0.25", + "cum": "72226.0" } }, { "tier": 6.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" - } - }, - { - "tier": 7.0, - "symbol": "KDA/USDT:USDT", - "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "KDA/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "8", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", - "maintMarginRatio": "0.25", - "cum": "392225.0" - } - }, - { - "tier": 9.0, - "symbol": "KDA/USDT:USDT", - "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 1000000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "6", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "1500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "322226.0" } } ], @@ -45637,6 +47624,299 @@ } } ], + "KGEN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "KGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], + "KITE/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "1", + "initialLeverage": "25", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "275.0" + } + }, + { + "tier": 4.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.1", + "cum": "1525.0" + } + }, + { + "tier": 5.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2775.0" + } + }, + { + "tier": 6.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "250000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1667", + "cum": "6945.0" + } + }, + { + "tier": 7.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.25", + "cum": "27770.0" + } + }, + { + "tier": 8.0, + "symbol": "KITE/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "800000", + "notionalFloor": "500000", + "maintMarginRatio": "0.5", + "cum": "152770.0" + } + } + ], "KLAY/USDT:USDT": [ { "tier": 1.0, @@ -46076,10 +48356,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -46176,13 +48456,13 @@ "symbol": "KOMA/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -46192,17 +48472,17 @@ "tier": 8.0, "symbol": "KOMA/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -46533,6 +48813,161 @@ } } ], + "LAB/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "LAB/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "LAYER/USDT:USDT": [ { "tier": 1.0, @@ -47015,6 +49450,161 @@ } } ], + "LIGHT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "LIGHT/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "LINA/USDT:USDT": [ { "tier": 1.0, @@ -49444,6 +52034,161 @@ } } ], + "LYN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "LYN/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "M/USDT:USDT": [ { "tier": 1.0, @@ -51597,6 +54342,161 @@ } } ], + "MET/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "MET/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "METIS/USDT:USDT": [ { "tier": 1.0, @@ -52217,6 +55117,178 @@ } } ], + "MIRA/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" + } + }, + { + "tier": 7.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" + } + }, + { + "tier": 8.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "MIRA/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], "MITO/USDT:USDT": [ { "tier": 1.0, @@ -52854,6 +55926,93 @@ } } ], + "MON/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MON/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "1", + "initialLeverage": "5", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.1", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "MON/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "2", + "initialLeverage": "4", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.125", + "cum": "125.0" + } + }, + { + "tier": 3.0, + "symbol": "MON/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.167, + "maxLeverage": 3.0, + "info": { + "bracket": "3", + "initialLeverage": "3", + "notionalCap": "30000", + "notionalFloor": "10000", + "maintMarginRatio": "0.167", + "cum": "545.0" + } + }, + { + "tier": 4.0, + "symbol": "MON/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "4", + "initialLeverage": "2", + "notionalCap": "80000", + "notionalFloor": "30000", + "maintMarginRatio": "0.25", + "cum": "3035.0" + } + }, + { + "tier": 5.0, + "symbol": "MON/USDT:USDT", + "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "5", + "initialLeverage": "1", + "notionalCap": "200000", + "notionalFloor": "80000", + "maintMarginRatio": "0.5", + "cum": "23035.0" + } + } + ], "MOODENG/USDT:USDT": [ { "tier": 1.0, @@ -53411,15 +56570,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -53427,71 +56586,54 @@ "symbol": "MOVR/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "MOVR/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "MOVR/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "MOVR/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "MOVR/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -53499,16 +56641,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "MOVR/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -53516,16 +56658,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "MOVR/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -53533,12 +56675,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -54067,14 +57209,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -54084,14 +57226,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "25.0" } }, @@ -54100,67 +57242,67 @@ "symbol": "NAORIS/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "275.0" } }, { "tier": 4.0, "symbol": "NAORIS/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1275.0" } }, { "tier": 5.0, "symbol": "NAORIS/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "NAORIS/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 100000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "notionalFloor": "100000", + "maintMarginRatio": "0.1667", + "cum": "6695.0" } }, { @@ -54168,50 +57310,33 @@ "symbol": "NAORIS/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", + "initialLeverage": "2", + "notionalCap": "2500000", "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" + "maintMarginRatio": "0.25", + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "NAORIS/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "8", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", - "maintMarginRatio": "0.25", - "cum": "392225.0" - } - }, - { - "tier": 9.0, - "symbol": "NAORIS/USDT:USDT", - "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "652520.0" } } ], @@ -55903,6 +59028,178 @@ } } ], + "NOM/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" + } + }, + { + "tier": 7.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" + } + }, + { + "tier": 8.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "NOM/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], "NOT/USDT:USDT": [ { "tier": 1.0, @@ -56099,15 +59396,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -56115,71 +59412,54 @@ "symbol": "NTRN/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "NTRN/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "NTRN/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "NTRN/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "NTRN/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -56187,16 +59467,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "NTRN/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -56204,16 +59484,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "NTRN/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -56221,12 +59501,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -57695,6 +60975,144 @@ } } ], + "ON/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "50.0" + } + }, + { + "tier": 3.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "300.0" + } + }, + { + "tier": 4.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" + } + }, + { + "tier": 5.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" + } + }, + { + "tier": 6.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" + } + }, + { + "tier": 7.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.25", + "cum": "96275.0" + } + }, + { + "tier": 8.0, + "symbol": "ON/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "1971275.0" + } + } + ], "ONDO/USDT:USDT": [ { "tier": 1.0, @@ -58063,15 +61481,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -58079,71 +61497,54 @@ "symbol": "ONG/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "ONG/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "ONG/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "ONG/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "ONG/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -58151,16 +61552,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "ONG/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -58168,16 +61569,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "ONG/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -58185,12 +61586,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -59020,6 +62421,161 @@ } } ], + "ORDER/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "ORDER/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "ORDI/USDC:USDC": [ { "tier": 1.0, @@ -60489,15 +64045,15 @@ "symbol": "PERP/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "5000", + "initialLeverage": "10", + "notionalCap": "10000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.05", "cum": "0.0" } }, @@ -60505,55 +64061,21 @@ "tier": 2.0, "symbol": "PERP/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "PERP/USDT:USDT", - "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "3", - "initialLeverage": "10", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" - } - }, - { - "tier": 4.0, - "symbol": "PERP/USDT:USDT", - "currency": "USDT", - "minNotional": 25000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "4", + "bracket": "2", "initialLeverage": "5", "notionalCap": "50000", - "notionalFloor": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.1", - "cum": "1525.0" + "cum": "500.0" } }, { - "tier": 5.0, + "tier": 3.0, "symbol": "PERP/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, @@ -60561,16 +64083,16 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "5", + "bracket": "3", "initialLeverage": "4", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2775.0" + "cum": "1750.0" } }, { - "tier": 6.0, + "tier": 4.0, "symbol": "PERP/USDT:USDT", "currency": "USDT", "minNotional": 100000.0, @@ -60578,16 +64100,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "6", + "bracket": "4", "initialLeverage": "3", "notionalCap": "250000", "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "6945.0" + "cum": "5920.0" } }, { - "tier": 7.0, + "tier": 5.0, "symbol": "PERP/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -60595,16 +64117,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "7", + "bracket": "5", "initialLeverage": "2", "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "27770.0" + "cum": "26745.0" } }, { - "tier": 8.0, + "tier": 6.0, "symbol": "PERP/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -60612,12 +64134,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "6", "initialLeverage": "1", "notionalCap": "800000", "notionalFloor": "500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "151745.0" } } ], @@ -63091,14 +66613,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -63108,14 +66630,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -63125,14 +66647,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -63141,33 +66663,33 @@ "symbol": "PROMPT/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "PROMPT/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -63176,15 +66698,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -63192,37 +66714,20 @@ "symbol": "PROMPT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "PROMPT/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "PROMPT/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -63230,16 +66735,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "PROMPT/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -63247,12 +66752,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -63900,14 +67405,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -63925,7 +67430,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -63942,7 +67447,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -63959,7 +67464,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -63967,67 +67472,67 @@ "symbol": "PUMPBTC/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "PUMPBTC/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "PUMPBTC/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "PUMPBTC/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -64055,15 +67560,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -64071,105 +67576,88 @@ "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "PUNDIX/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -64177,12 +67665,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -64881,14 +68369,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -64906,7 +68394,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -64923,7 +68411,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -64940,7 +68428,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -64948,67 +68436,67 @@ "symbol": "QUICK/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 500000.0, + "maxNotional": 800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "800000", + "notionalFloor": "500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "152520.0" } } ], @@ -65685,6 +69173,161 @@ } } ], + "RECALL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "RECALL/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "RED/USDT:USDT": [ { "tier": 1.0, @@ -66840,6 +70483,161 @@ } } ], + "RIVER/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "RIVER/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "RLC/USDT:USDT": [ { "tier": 1.0, @@ -68027,6 +71825,144 @@ } } ], + "RVV/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, + "info": { + "bracket": "1", + "initialLeverage": "40", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "20000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "275.0" + } + }, + { + "tier": 4.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1275.0" + } + }, + { + "tier": 5.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2525.0" + } + }, + { + "tier": 6.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "250000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1667", + "cum": "6695.0" + } + }, + { + "tier": 7.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.25", + "cum": "27520.0" + } + }, + { + "tier": 8.0, + "symbol": "RVV/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "5000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "652520.0" + } + } + ], "S/USDT:USDT": [ { "tier": 1.0, @@ -69481,10 +73417,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -69581,13 +73517,13 @@ "symbol": "SCRT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -69597,17 +73533,17 @@ "tier": 8.0, "symbol": "SCRT/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -69807,14 +73743,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -69824,14 +73760,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -69841,14 +73777,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", + "initialLeverage": "25", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "75.0" } }, @@ -69857,33 +73793,33 @@ "symbol": "SFP/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", + "initialLeverage": "20", + "notionalCap": "50000", "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "SFP/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, + "minNotional": 50000.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { @@ -69892,15 +73828,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "5", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { @@ -69908,37 +73844,54 @@ "symbol": "SFP/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", + "initialLeverage": "4", + "notionalCap": "500000", "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "SFP/USDT:USDT", "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "SFP/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "409650.0" } }, { - "tier": 9.0, + "tier": 10.0, "symbol": "SFP/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -69946,12 +73899,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2284650.0" } } ], @@ -70511,13 +74464,13 @@ "symbol": "SKATE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "500000", + "notionalCap": "2500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", "cum": "27770.0" @@ -70527,17 +74480,17 @@ "tier": 8.0, "symbol": "SKATE/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "652770.0" } } ], @@ -70995,15 +74948,15 @@ "symbol": "SLERF/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "5", + "notionalCap": "20000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.1", "cum": "0.0" } }, @@ -71011,119 +74964,68 @@ "tier": 2.0, "symbol": "SLERF/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "50.0" + "initialLeverage": "4", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.125", + "cum": "500.0" } }, { "tier": 3.0, "symbol": "SLERF/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 20000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 50000.0, + "maxNotional": 150000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "20000", - "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "300.0" + "initialLeverage": "3", + "notionalCap": "150000", + "notionalFloor": "50000", + "maintMarginRatio": "0.1667", + "cum": "2585.0" } }, { "tier": 4.0, "symbol": "SLERF/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 150000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "50000", - "notionalFloor": "20000", - "maintMarginRatio": "0.1", - "cum": "1300.0" + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "150000", + "maintMarginRatio": "0.25", + "cum": "15080.0" } }, { "tier": 5.0, "symbol": "SLERF/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "5", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "50000", - "maintMarginRatio": "0.125", - "cum": "2550.0" - } - }, - { - "tier": 6.0, - "symbol": "SLERF/USDT:USDT", - "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "6", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "12975.0" - } - }, - { - "tier": 7.0, - "symbol": "SLERF/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", - "maintMarginRatio": "0.25", - "cum": "387825.0" - } - }, - { - "tier": 8.0, - "symbol": "SLERF/USDT:USDT", - "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "5", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "640080.0" } } ], @@ -71426,13 +75328,13 @@ "symbol": "SNX/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -71442,51 +75344,51 @@ "tier": 4.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "100000", + "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "325.0" } }, { "tier": 5.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" } }, { "tier": 6.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 175000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" } }, { @@ -71494,54 +75396,71 @@ "symbol": "SNX/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", + "initialLeverage": "5", + "notionalCap": "750000", "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" + "maintMarginRatio": "0.1", + "cum": "16577.5" } }, { "tier": 8.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { "tier": 9.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.1667", + "cum": "97877.5" + } + }, + { + "tier": 10.0, + "symbol": "SNX/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "472727.5" } }, { - "tier": 10.0, + "tier": 11.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -71549,12 +75468,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2347727.5" } } ], @@ -77024,14 +80943,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -77049,7 +80968,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -77066,7 +80985,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -77083,7 +81002,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -77091,67 +81010,67 @@ "symbol": "TA/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "TA/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "TA/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "TA/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -77317,15 +81236,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -77333,71 +81252,54 @@ "symbol": "TAG/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "TAG/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "TAG/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" - } - }, - { - "tier": 6.0, - "symbol": "TAG/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, + "minNotional": 50000.0, "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "2550.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "TAG/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -77405,16 +81307,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "3", "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "12975.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "TAG/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -77422,16 +81324,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "387825.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "TAG/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -77439,12 +81341,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2262825.0" } } ], @@ -77610,15 +81512,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -77626,105 +81528,88 @@ "symbol": "TAKE/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "TAKE/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "TAKE/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "TAKE/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "TAKE/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "TAKE/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "TAKE/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -77732,12 +81617,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -77748,14 +81633,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -77773,7 +81658,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -77790,7 +81675,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -77807,7 +81692,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -77815,67 +81700,67 @@ "symbol": "TANSSI/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "TANSSI/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "TANSSI/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "TANSSI/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -78937,14 +82822,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 40.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "40", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -78962,7 +82847,7 @@ "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -78979,7 +82864,7 @@ "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "300.0" + "cum": "275.0" } }, { @@ -78996,7 +82881,7 @@ "notionalCap": "50000", "notionalFloor": "20000", "maintMarginRatio": "0.1", - "cum": "1300.0" + "cum": "1275.0" } }, { @@ -79004,67 +82889,67 @@ "symbol": "TOKEN/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 250000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "5", "initialLeverage": "4", - "notionalCap": "250000", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2550.0" + "cum": "2525.0" } }, { "tier": 6.0, "symbol": "TOKEN/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, + "minNotional": 100000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "6", "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "12975.0" + "cum": "6695.0" } }, { "tier": 7.0, "symbol": "TOKEN/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "2500000", + "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "387825.0" + "cum": "27520.0" } }, { "tier": 8.0, "symbol": "TOKEN/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 2500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "5000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "2262825.0" + "cum": "652520.0" } } ], @@ -80703,6 +84588,161 @@ } } ], + "TRUTH/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "TRUTH/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "TRX/USDT:USDT": [ { "tier": 1.0, @@ -80899,15 +84939,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -80915,105 +84955,88 @@ "symbol": "TST/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "TST/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "TST/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "TST/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "TST/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "TST/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "TST/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -81021,12 +85044,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -81202,6 +85225,161 @@ } } ], + "TURTLE/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "TURTLE/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "TUT/USDT:USDT": [ { "tier": 1.0, @@ -81347,14 +85525,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -81364,14 +85542,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -81381,14 +85559,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", + "initialLeverage": "25", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "75.0" } }, @@ -81397,33 +85575,33 @@ "symbol": "TWT/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", + "initialLeverage": "20", + "notionalCap": "50000", "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "TWT/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, + "minNotional": 50000.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "10", "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { @@ -81432,15 +85610,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "5", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { @@ -81448,37 +85626,54 @@ "symbol": "TWT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", + "initialLeverage": "4", + "notionalCap": "500000", "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "TWT/USDT:USDT", "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "TWT/USDT:USDT", + "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "409650.0" } }, { - "tier": 9.0, + "tier": 10.0, "symbol": "TWT/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -81486,12 +85681,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "2284650.0" } } ], @@ -82879,15 +87074,15 @@ "symbol": "UXLINK/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 30000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "1", - "initialLeverage": "10", - "notionalCap": "30000", + "initialLeverage": "5", + "notionalCap": "50000", "notionalFloor": "0", - "maintMarginRatio": "0.05", + "maintMarginRatio": "0.1", "cum": "0.0" } }, @@ -82895,85 +87090,68 @@ "tier": 2.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 30000.0, - "maxNotional": 75000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "2", - "initialLeverage": "5", - "notionalCap": "75000", - "notionalFloor": "30000", - "maintMarginRatio": "0.1", - "cum": "1500.0" + "initialLeverage": "4", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "1250.0" } }, { "tier": 3.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 75000.0, - "maxNotional": 150000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 100000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "3", - "initialLeverage": "4", - "notionalCap": "150000", - "notionalFloor": "75000", - "maintMarginRatio": "0.125", - "cum": "3375.0" + "initialLeverage": "3", + "notionalCap": "500000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1667", + "cum": "5420.0" } }, { "tier": 4.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, "info": { "bracket": "4", - "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "150000", - "maintMarginRatio": "0.1667", - "cum": "9630.0" + "initialLeverage": "2", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.25", + "cum": "47070.0" } }, { "tier": 5.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "5", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", - "maintMarginRatio": "0.25", - "cum": "134580.0" - } - }, - { - "tier": 6.0, - "symbol": "UXLINK/USDT:USDT", - "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 1000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "2000000", + "notionalFloor": "1000000", "maintMarginRatio": "0.5", - "cum": "759580.0" + "cum": "297070.0" } } ], @@ -83752,6 +87930,161 @@ } } ], + "VFY/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "VFY/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "VIC/USDT:USDT": [ { "tier": 1.0, @@ -84001,14 +88334,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -84018,14 +88351,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -84035,14 +88368,14 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "75.0" } }, @@ -84051,33 +88384,33 @@ "symbol": "VINE/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "VINE/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, + "minNotional": 62500.0, "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -84086,15 +88419,15 @@ "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "250000", "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -84102,37 +88435,20 @@ "symbol": "VINE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "VINE/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "VINE/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, @@ -84140,16 +88456,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "409650.0" + "cum": "392225.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "VINE/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -84157,12 +88473,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2284650.0" + "cum": "2267225.0" } } ], @@ -86869,6 +91185,161 @@ } } ], + "XAN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "XAN/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "XCN/USDT:USDT": [ { "tier": 1.0, @@ -87530,15 +92001,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -87546,105 +92017,88 @@ "symbol": "XNY/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "XNY/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "XNY/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "XNY/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "XNY/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "XNY/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "XNY/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -87652,12 +92106,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -87685,15 +92139,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -87701,105 +92155,88 @@ "symbol": "XPIN/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "XPIN/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "XPIN/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "XPIN/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "XPIN/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "XPIN/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "XPIN/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -87807,12 +92244,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" } } ], @@ -87822,15 +92259,15 @@ "symbol": "XPL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "75", + "notionalCap": "20000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -87838,136 +92275,136 @@ "tier": 2.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 20000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "50", + "notionalCap": "200000", + "notionalFloor": "20000", + "maintMarginRatio": "0.015", + "cum": "100.0" } }, { "tier": 3.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 200000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "initialLeverage": "25", + "notionalCap": "1000000", + "notionalFloor": "200000", + "maintMarginRatio": "0.02", + "cum": "1100.0" } }, { "tier": 4.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "20", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.025", + "cum": "6100.0" } }, { "tier": 5.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 2000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "10", + "notionalCap": "5000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.05", + "cum": "56100.0" } }, { "tier": 6.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 5000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "5", + "notionalCap": "7500000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.1", + "cum": "306100.0" } }, { "tier": 7.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "minNotional": 7500000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.125", + "cum": "493600.0" } }, { "tier": 8.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, + "minNotional": 10000000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalCap": "12500000", + "notionalFloor": "10000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "1743600.0" } }, { "tier": 9.0, "symbol": "XPL/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, + "minNotional": 12500000.0, + "maxNotional": 15000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", + "notionalCap": "15000000", + "notionalFloor": "12500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "4868600.0" } } ], @@ -88855,15 +93292,15 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "maintMarginRatio": "0.025", + "cum": "50.0" } }, { @@ -88871,105 +93308,88 @@ "symbol": "YALA/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "10000", - "maintMarginRatio": "0.025", - "cum": "75.0" + "maintMarginRatio": "0.05", + "cum": "300.0" } }, { "tier": 4.0, "symbol": "YALA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 62500.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 20000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "62500", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "700.0" + "initialLeverage": "5", + "notionalCap": "50000", + "notionalFloor": "20000", + "maintMarginRatio": "0.1", + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "YALA/USDT:USDT", "currency": "USDT", - "minNotional": 62500.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "125000", - "notionalFloor": "62500", - "maintMarginRatio": "0.1", - "cum": "3825.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.125", + "cum": "2550.0" } }, { "tier": 6.0, "symbol": "YALA/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.125", - "cum": "6950.0" + "initialLeverage": "3", + "notionalCap": "1000000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "12975.0" } }, { "tier": 7.0, "symbol": "YALA/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "7", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.1667", - "cum": "17375.0" - } - }, - { - "tier": 8.0, - "symbol": "YALA/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 1000000.0, "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "7500000", - "notionalFloor": "4500000", + "notionalFloor": "1000000", "maintMarginRatio": "0.25", - "cum": "392225.0" + "cum": "96275.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "YALA/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, @@ -88977,12 +93397,184 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "12500000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2267225.0" + "cum": "1971275.0" + } + } + ], + "YB/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" + } + }, + { + "tier": 7.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" + } + }, + { + "tier": 8.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "YB/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" } } ], @@ -89313,182 +93905,10 @@ } } ], - "ZEC/USDT:USDT": [ + "ZBT/USDT:USDT": [ { "tier": 1.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, - "info": { - "bracket": "1", - "initialLeverage": "75", - "notionalCap": "5000", - "notionalFloor": "0", - "maintMarginRatio": "0.01", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, - "info": { - "bracket": "2", - "initialLeverage": "50", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.015", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, - "info": { - "bracket": "3", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "10000", - "maintMarginRatio": "0.02", - "cum": "75.0" - } - }, - { - "tier": 4.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "4", - "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "200.0" - } - }, - { - "tier": 5.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "5", - "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1450.0" - } - }, - { - "tier": 6.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "6", - "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", - "maintMarginRatio": "0.1", - "cum": "7700.0" - } - }, - { - "tier": 7.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "13950.0" - } - }, - { - "tier": 8.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, - "info": { - "bracket": "8", - "initialLeverage": "3", - "notionalCap": "4500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" - } - }, - { - "tier": 9.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "9", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "4500000", - "maintMarginRatio": "0.25", - "cum": "409650.0" - } - }, - { - "tier": 10.0, - "symbol": "ZEC/USDT:USDT", - "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 12500000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "10", - "initialLeverage": "1", - "notionalCap": "12500000", - "notionalFloor": "7500000", - "maintMarginRatio": "0.5", - "cum": "2284650.0" - } - } - ], - "ZEN/USDT:USDT": [ - { - "tier": 1.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, @@ -89505,7 +93925,7 @@ }, { "tier": 2.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, @@ -89522,7 +93942,7 @@ }, { "tier": 3.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, @@ -89539,7 +93959,7 @@ }, { "tier": 4.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, "maxNotional": 62500.0, @@ -89556,7 +93976,7 @@ }, { "tier": 5.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 62500.0, "maxNotional": 125000.0, @@ -89573,7 +93993,7 @@ }, { "tier": 6.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 125000.0, "maxNotional": 250000.0, @@ -89590,7 +94010,7 @@ }, { "tier": 7.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, "maxNotional": 4500000.0, @@ -89607,7 +94027,7 @@ }, { "tier": 8.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 4500000.0, "maxNotional": 7500000.0, @@ -89624,7 +94044,7 @@ }, { "tier": 9.0, - "symbol": "ZEN/USDT:USDT", + "symbol": "ZBT/USDT:USDT", "currency": "USDT", "minNotional": 7500000.0, "maxNotional": 12500000.0, @@ -89640,6 +94060,350 @@ } } ], + "ZEC/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "20000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "200000", + "notionalFloor": "20000", + "maintMarginRatio": "0.015", + "cum": "100.0" + } + }, + { + "tier": 3.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "1000000", + "notionalFloor": "200000", + "maintMarginRatio": "0.02", + "cum": "1100.0" + } + }, + { + "tier": 4.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.025", + "cum": "6100.0" + } + }, + { + "tier": 5.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "5000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.05", + "cum": "56100.0" + } + }, + { + "tier": 6.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "7500000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.1", + "cum": "306100.0" + } + }, + { + "tier": 7.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.125", + "cum": "493600.0" + } + }, + { + "tier": 8.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 10000000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "12500000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.25", + "cum": "1743600.0" + } + }, + { + "tier": 9.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", + "minNotional": 12500000.0, + "maxNotional": 15000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "15000000", + "notionalFloor": "12500000", + "maintMarginRatio": "0.5", + "cum": "4868600.0" + } + } + ], + "ZEN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 7500.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, + "info": { + "bracket": "1", + "initialLeverage": "75", + "notionalCap": "7500", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 7500.0, + "maxNotional": 15000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "2", + "initialLeverage": "50", + "notionalCap": "15000", + "notionalFloor": "7500", + "maintMarginRatio": "0.015", + "cum": "37.5" + } + }, + { + "tier": 3.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 15000.0, + "maxNotional": 75000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "75000", + "notionalFloor": "15000", + "maintMarginRatio": "0.02", + "cum": "112.5" + } + }, + { + "tier": 4.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 75000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "200000", + "notionalFloor": "75000", + "maintMarginRatio": "0.025", + "cum": "487.5" + } + }, + { + "tier": 5.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 350000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, + "info": { + "bracket": "5", + "initialLeverage": "15", + "notionalCap": "350000", + "notionalFloor": "200000", + "maintMarginRatio": "0.0333", + "cum": "2147.5" + } + }, + { + "tier": 6.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 350000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "6", + "initialLeverage": "10", + "notionalCap": "750000", + "notionalFloor": "350000", + "maintMarginRatio": "0.05", + "cum": "7992.5" + } + }, + { + "tier": 7.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "7", + "initialLeverage": "5", + "notionalCap": "3000000", + "notionalFloor": "750000", + "maintMarginRatio": "0.1", + "cum": "45492.5" + } + }, + { + "tier": 8.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "8", + "initialLeverage": "4", + "notionalCap": "4500000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.125", + "cum": "120492.5" + } + }, + { + "tier": 9.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.1667", + "cum": "308142.5" + } + }, + { + "tier": 10.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "10", + "initialLeverage": "2", + "notionalCap": "12000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.25", + "cum": "932892.5" + } + }, + { + "tier": 11.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 12000000.0, + "maxNotional": 18000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "11", + "initialLeverage": "1", + "notionalCap": "18000000", + "notionalFloor": "12000000", + "maintMarginRatio": "0.5", + "cum": "3932892.5" + } + } + ], "ZEREBRO/USDT:USDT": [ { "tier": 1.0, @@ -91257,5 +96021,160 @@ "cum": "2284650.0" } } + ], + "\u5e01\u5b89\u4eba\u751f/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "\u5e01\u5b89\u4eba\u751f/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } ] } \ No newline at end of file diff --git a/freqtrade/exchange/bitget.py b/freqtrade/exchange/bitget.py index b6b347c34..a1d6db255 100644 --- a/freqtrade/exchange/bitget.py +++ b/freqtrade/exchange/bitget.py @@ -3,7 +3,8 @@ from datetime import timedelta import ccxt -from freqtrade.enums import CandleType +from freqtrade.constants import BuySell +from freqtrade.enums import CandleType, MarginMode, TradingMode from freqtrade.exceptions import ( DDosProtection, OperationalException, @@ -20,27 +21,30 @@ logger = logging.getLogger(__name__) class Bitget(Exchange): - """ - Bitget exchange class. Contains adjustments needed for Freqtrade to work - with this exchange. - - Please note that this exchange is not included in the list of exchanges - officially supported by the Freqtrade development team. So some features - may still not work as expected. + """Bitget exchange class. + Contains adjustments needed for Freqtrade to work with this exchange. """ _ft_has: FtHas = { "stoploss_on_exchange": True, "stop_price_param": "stopPrice", "stop_price_prop": "stopPrice", + "stoploss_blocks_assets": False, # Stoploss orders do not block assets "stoploss_order_types": {"limit": "limit", "market": "market"}, "ohlcv_candle_limit": 200, # 200 for historical candles, 1000 for recent ones. "order_time_in_force": ["GTC", "FOK", "IOC", "PO"], } _ft_has_futures: FtHas = { "mark_ohlcv_timeframe": "4h", + "funding_fee_candle_limit": 100, } + _supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [ + (TradingMode.SPOT, MarginMode.NONE), + (TradingMode.FUTURES, MarginMode.ISOLATED), + # (TradingMode.FUTURES, MarginMode.CROSS), + ] + def ohlcv_candle_limit( self, timeframe: str, candle_type: CandleType, since_ms: int | None = None ) -> int: @@ -126,3 +130,109 @@ class Bitget(Exchange): def cancel_stoploss_order(self, order_id: str, pair: str, params: dict | None = None) -> dict: return self.cancel_order(order_id=order_id, pair=pair, params={"stop": True}) + + @retrier + def additional_exchange_init(self) -> None: + """ + Additional exchange initialization logic. + .api will be available at this point. + Must be overridden in child methods if required. + """ + try: + if not self._config["dry_run"]: + if self.trading_mode == TradingMode.FUTURES: + position_mode = self._api.set_position_mode(False) + self._log_exchange_response("set_position_mode", position_mode) + except ccxt.DDoSProtection as e: + raise DDosProtection(e) from e + except (ccxt.OperationFailed, ccxt.ExchangeError) as e: + raise TemporaryError( + f"Error in additional_exchange_init due to {e.__class__.__name__}. Message: {e}" + ) from e + except ccxt.BaseError as e: + raise OperationalException(e) from e + + def _lev_prep(self, pair: str, leverage: float, side: BuySell, accept_fail: bool = False): + if self.trading_mode != TradingMode.SPOT: + # Explicitly setting margin_mode is not necessary as marginMode can be set per order. + # self.set_margin_mode(pair, self.margin_mode, accept_fail) + self._set_leverage(leverage, pair, accept_fail) + + def _get_params( + self, + side: BuySell, + ordertype: str, + leverage: float, + reduceOnly: bool, + time_in_force: str = "GTC", + ) -> dict: + params = super()._get_params( + side=side, + ordertype=ordertype, + leverage=leverage, + reduceOnly=reduceOnly, + time_in_force=time_in_force, + ) + if self.trading_mode == TradingMode.FUTURES and self.margin_mode: + params["marginMode"] = self.margin_mode.value.lower() + return params + + def dry_run_liquidation_price( + self, + pair: str, + open_rate: float, + is_short: bool, + amount: float, + stake_amount: float, + leverage: float, + wallet_balance: float, + open_trades: list, + ) -> float | None: + """ + Important: Must be fetching data from cached values as this is used by backtesting! + + + https://www.bitget.com/support/articles/12560603808759 + MMR: Maintenance margin rate of the trading pair. + + CoinMainIndexPrice: The index price for Coin-M futures. For USDT-M futures, + the index price is: 1. + + TakerFeeRatio: The fee rate applied when placing taker orders. + + Position direction: The current position direction of the trading pair. + 1 indicates a long position, and -1 indicates a short position. + + Formula: + + Estimated liquidation price = [ + position margin - position size x average entry price x position direction + ] ÷ [position size x (MMR + TakerFeeRatio - position direction)] + + :param pair: Pair to calculate liquidation price for + :param open_rate: Entry price of position + :param is_short: True if the trade is a short, false otherwise + :param amount: Absolute value of position size incl. leverage (in base currency) + :param stake_amount: Stake amount - Collateral in settle currency. + :param leverage: Leverage used for this position. + :param wallet_balance: Amount of margin_mode in the wallet being used to trade + Cross-Margin Mode: crossWalletBalance + Isolated-Margin Mode: isolatedWalletBalance + :param open_trades: List of other open trades in the same wallet + """ + market = self.markets[pair] + taker_fee_rate = market["taker"] or self._api.describe().get("fees", {}).get( + "trading", {} + ).get("taker", 0.001) + mm_ratio, _ = self.get_maintenance_ratio_and_amt(pair, stake_amount) + + if self.trading_mode == TradingMode.FUTURES and self.margin_mode == MarginMode.ISOLATED: + position_direction = -1 if is_short else 1 + + return (wallet_balance - (amount * open_rate * position_direction)) / ( + amount * (mm_ratio + taker_fee_rate - position_direction) + ) + else: + raise OperationalException( + "Freqtrade currently only supports isolated futures for bitget" + ) diff --git a/freqtrade/exchange/bybit.py b/freqtrade/exchange/bybit.py index 93e62d25e..7db300acc 100644 --- a/freqtrade/exchange/bybit.py +++ b/freqtrade/exchange/bybit.py @@ -16,13 +16,8 @@ logger = logging.getLogger(__name__) class Bybit(Exchange): - """ - Bybit exchange class. Contains adjustments needed for Freqtrade to work - with this exchange. - - Please note that this exchange is not included in the list of exchanges - officially supported by the Freqtrade development team. So some features - may still not work as expected. + """Bybit exchange class. + Contains adjustments needed for Freqtrade to work with this exchange. """ unified_account = False diff --git a/freqtrade/exchange/coinex.py b/freqtrade/exchange/coinex.py new file mode 100644 index 000000000..81a57828f --- /dev/null +++ b/freqtrade/exchange/coinex.py @@ -0,0 +1,24 @@ +import logging + +from freqtrade.exchange import Exchange +from freqtrade.exchange.exchange_types import FtHas + + +logger = logging.getLogger(__name__) + + +class Coinex(Exchange): + """ + CoinEx exchange class. Contains adjustments needed for Freqtrade to work + with this exchange. + + Please note that this exchange is not included in the list of exchanges + officially supported by the Freqtrade development team. So some features + may still not work as expected. + """ + + _ft_has: FtHas = { + "l2_limit_range": [5, 10, 20, 50], + "tickers_have_bid_ask": False, + "tickers_have_quoteVolume": False, + } diff --git a/freqtrade/exchange/common.py b/freqtrade/exchange/common.py index b13f7ae3b..650db19b7 100644 --- a/freqtrade/exchange/common.py +++ b/freqtrade/exchange/common.py @@ -48,7 +48,6 @@ MAP_EXCHANGE_CHILDCLASS = { "binanceus": "binance", "binanceusdm": "binance", "okex": "okx", - "okxus": "okx", "gateio": "gate", "huboi": "htx", } @@ -57,6 +56,7 @@ SUPPORTED_EXCHANGES = [ "binance", "bingx", "bitmart", + "bitget", "bybit", "gate", "htx", @@ -96,7 +96,6 @@ EXCHANGE_HAS_OPTIONAL = [ # 'fetchPositions', # Futures trading # 'fetchLeverageTiers', # Futures initialization # 'fetchMarketLeverageTiers', # Futures initialization - # 'fetchOpenOrder', 'fetchClosedOrder', # replacement for fetchOrder # 'fetchOpenOrders', 'fetchClosedOrders', # 'fetchOrders', # Refinding balance... # ccxt.pro "watchOHLCV", diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 57e1352a0..8809f0958 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -300,7 +300,7 @@ class Exchange: if self.trading_mode != TradingMode.SPOT and load_leverage_tiers: self.fill_leverage_tiers() - self.additional_exchange_init() + self.ft_additional_exchange_init() def __del__(self): """ @@ -455,6 +455,12 @@ class Exchange: """ return self._api.precisionMode + def ft_additional_exchange_init(self) -> None: + """ + Wrapper around additional_exchange_init to simplify testing + """ + self.additional_exchange_init() + def additional_exchange_init(self) -> None: """ Additional exchange initialization logic. @@ -832,10 +838,16 @@ class Exchange: def validate_freqai(self, config: Config) -> None: freqai_enabled = config.get("freqai", {}).get("enabled", False) - if freqai_enabled and not self._ft_has["ohlcv_has_history"]: + override = config.get("freqai", {}).get("override_exchange_checks", False) + if not override and freqai_enabled and not self._ft_has["ohlcv_has_history"]: raise ConfigurationError( f"Historic OHLCV data not available for {self.name}. Can't use freqAI." ) + elif override and freqai_enabled and not self._ft_has["ohlcv_has_history"]: + logger.warning( + "Overriding exchange checks for freqAI. Make sure that your exchange supports " + "fetching historic OHLCV data, otherwise freqAI will not work." + ) def validate_required_startup_candles(self, startup_candles: int, timeframe: str) -> int: """ @@ -3873,7 +3885,10 @@ class Exchange: """ market = self.markets[pair] - taker_fee_rate = market["taker"] + # default to some default fee if not available from exchange + taker_fee_rate = market["taker"] or self._api.describe().get("fees", {}).get( + "trading", {} + ).get("taker", 0.001) mm_ratio, _ = self.get_maintenance_ratio_and_amt(pair, stake_amount) if self.trading_mode == TradingMode.FUTURES and self.margin_mode == MarginMode.ISOLATED: diff --git a/freqtrade/exchange/gate.py b/freqtrade/exchange/gate.py index 2bdb2fbc8..4c6d524d7 100644 --- a/freqtrade/exchange/gate.py +++ b/freqtrade/exchange/gate.py @@ -18,13 +18,8 @@ logger = logging.getLogger(__name__) class Gate(Exchange): - """ - Gate.io exchange class. Contains adjustments needed for Freqtrade to work - with this exchange. - - Please note that this exchange is not included in the list of exchanges - officially supported by the Freqtrade development team. So some features - may still not work as expected. + """Gate.io exchange class. + Contains adjustments needed for Freqtrade to work with this exchange. """ unified_account = False diff --git a/freqtrade/exchange/htx.py b/freqtrade/exchange/htx.py index 9b112ff45..54c316d37 100644 --- a/freqtrade/exchange/htx.py +++ b/freqtrade/exchange/htx.py @@ -11,9 +11,8 @@ logger = logging.getLogger(__name__) class Htx(Exchange): - """ - HTX exchange class. Contains adjustments needed for Freqtrade to work - with this exchange. + """HTX exchange class. + Contains adjustments needed for Freqtrade to work with this exchange. """ _ft_has: FtHas = { diff --git a/freqtrade/exchange/hyperliquid.py b/freqtrade/exchange/hyperliquid.py index 74f7c5694..9dcc0e6a4 100644 --- a/freqtrade/exchange/hyperliquid.py +++ b/freqtrade/exchange/hyperliquid.py @@ -44,6 +44,7 @@ class Hyperliquid(Exchange): _supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [ (TradingMode.SPOT, MarginMode.NONE), (TradingMode.FUTURES, MarginMode.ISOLATED), + (TradingMode.FUTURES, MarginMode.CROSS), ] @property @@ -99,7 +100,6 @@ class Hyperliquid(Exchange): 'SOL/USDC:USDC': 43}} """ # Defining/renaming variables to match the documentation - isolated_margin = wallet_balance position_size = amount price = open_rate position_value = price * position_size @@ -117,8 +117,14 @@ class Hyperliquid(Exchange): # 3. Divide this by 2 maintenance_margin_required = position_value / max_leverage / 2 - # Docs: margin_available (isolated) = isolated_margin - maintenance_margin_required - margin_available = isolated_margin - maintenance_margin_required + if self.margin_mode == MarginMode.ISOLATED: + # Docs: margin_available (isolated) = isolated_margin - maintenance_margin_required + margin_available = stake_amount - maintenance_margin_required + elif self.margin_mode == MarginMode.CROSS: + # Docs: margin_available (cross) = account_value - maintenance_margin_required + margin_available = wallet_balance - maintenance_margin_required + else: + raise OperationalException("Unsupported margin mode for liquidation price calculation") # Docs: The maintenance margin is half of the initial margin at max leverage # The docs don't explicitly specify maintenance leverage, but this works. diff --git a/freqtrade/exchange/kraken.py b/freqtrade/exchange/kraken.py index d113aedd8..d361b1337 100644 --- a/freqtrade/exchange/kraken.py +++ b/freqtrade/exchange/kraken.py @@ -19,6 +19,10 @@ logger = logging.getLogger(__name__) class Kraken(Exchange): + """Kraken exchange class. + Contains adjustments needed for Freqtrade to work with this exchange. + """ + _params: dict = {"trading_agreement": "agree"} _ft_has: FtHas = { "stoploss_on_exchange": True, diff --git a/freqtrade/exchange/okx.py b/freqtrade/exchange/okx.py index 847f8a284..bd401d198 100644 --- a/freqtrade/exchange/okx.py +++ b/freqtrade/exchange/okx.py @@ -11,7 +11,7 @@ from freqtrade.exceptions import ( RetryableOrderError, TemporaryError, ) -from freqtrade.exchange import Exchange, date_minus_candles +from freqtrade.exchange import Exchange from freqtrade.exchange.common import API_RETRY_COUNT, retrier from freqtrade.exchange.exchange_types import CcxtOrder, FtHas from freqtrade.misc import safe_value_fallback2 @@ -80,11 +80,6 @@ class Okx(Exchange): if candle_type in (CandleType.FUTURES, CandleType.SPOT): return 300 - if candle_type in (CandleType.MARK, CandleType.PREMIUMINDEX) and ( - not since_ms or since_ms > (date_minus_candles(timeframe, 300).timestamp() * 1000) - ): - return 300 - return super().ohlcv_candle_limit(timeframe, candle_type, since_ms) @retrier @@ -296,12 +291,21 @@ class Okx(Exchange): return orders -class MyOkx(Okx): - """ - MyOkx exchange class. +class Myokx(Okx): + """MyOkx exchange class. Minimal adjustment to disable futures trading for the EU subsidiary of Okx """ _supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [ (TradingMode.SPOT, MarginMode.NONE), ] + + +class Okxus(Okx): + """Okxus exchange class. + Minimal adjustment to disable futures trading for the US subsidiary of Okx + """ + + _supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [ + (TradingMode.SPOT, MarginMode.NONE), + ] diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index fed9a6533..8b2885dbc 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -1617,7 +1617,9 @@ class FreqtradeBot(LoggingMixin): f"Emergency exiting trade {trade}, as the exit order " f"timed out {max_timeouts} times. force selling {order['amount']}." ) - self.emergency_exit(trade, order["price"], order["amount"]) + # Trade.session.refresh(order_obj) + + self.emergency_exit(trade, order["price"], order_obj.safe_remaining) return canceled def emergency_exit( diff --git a/freqtrade/ft_types/plot_annotation_type.py b/freqtrade/ft_types/plot_annotation_type.py index e95586a70..27717b4cd 100644 --- a/freqtrade/ft_types/plot_annotation_type.py +++ b/freqtrade/ft_types/plot_annotation_type.py @@ -5,8 +5,7 @@ from pydantic import TypeAdapter from typing_extensions import TypedDict -class AnnotationType(TypedDict, total=False): - type: Required[Literal["area"]] +class _BaseAnnotationType(TypedDict, total=False): start: str | datetime end: str | datetime y_start: float @@ -16,4 +15,16 @@ class AnnotationType(TypedDict, total=False): z_level: int -AnnotationTypeTA = TypeAdapter(AnnotationType) +class AreaAnnotationType(_BaseAnnotationType, total=False): + type: Required[Literal["area"]] + + +class LineAnnotationType(_BaseAnnotationType, total=False): + type: Required[Literal["line"]] + width: int + line_style: Literal["solid", "dashed", "dotted"] + + +AnnotationType = AreaAnnotationType | LineAnnotationType + +AnnotationTypeTA: TypeAdapter[AnnotationType] = TypeAdapter(AnnotationType) diff --git a/freqtrade/loggers/__init__.py b/freqtrade/loggers/__init__.py index 7b8e34878..065ecaf75 100644 --- a/freqtrade/loggers/__init__.py +++ b/freqtrade/loggers/__init__.py @@ -92,9 +92,11 @@ def _set_log_levels( # Set default levels for third party libraries third_party_loggers = { - "freqtrade": logging.INFO if verbosity <= 1 else logging.DEBUG, + "freqtrade": logging.INFO if verbosity < 1 else logging.DEBUG, + "freqtrade.exchange.exchange_ws": logging.INFO if verbosity <= 1 else logging.DEBUG, "requests": logging.INFO if verbosity <= 1 else logging.DEBUG, "urllib3": logging.INFO if verbosity <= 1 else logging.DEBUG, + "asyncio": logging.INFO if verbosity <= 1 else logging.DEBUG, "httpcore": logging.INFO if verbosity <= 1 else logging.DEBUG, "ccxt.base.exchange": logging.INFO if verbosity <= 2 else logging.DEBUG, "telegram": logging.INFO, diff --git a/freqtrade/main.py b/freqtrade/main.py index fd142452a..6720e5eeb 100755 --- a/freqtrade/main.py +++ b/freqtrade/main.py @@ -18,7 +18,12 @@ from freqtrade.commands import Arguments from freqtrade.constants import DOCS_LINK from freqtrade.exceptions import ConfigurationError, FreqtradeException, OperationalException from freqtrade.loggers import setup_logging_pre -from freqtrade.system import asyncio_setup, gc_set_threshold, print_version_info +from freqtrade.system import ( + asyncio_setup, + gc_set_threshold, + print_version_info, + set_mp_start_method, +) logger = logging.getLogger("freqtrade") @@ -44,6 +49,7 @@ def main(sysargv: list[str] | None = None) -> None: elif "func" in args: logger.info(f"freqtrade {__version__}") gc_set_threshold() + set_mp_start_method() return_code = args["func"](args) else: # No subcommand was issued. diff --git a/freqtrade/misc.py b/freqtrade/misc.py index a6dbed85e..e9dba5856 100644 --- a/freqtrade/misc.py +++ b/freqtrade/misc.py @@ -51,7 +51,7 @@ def file_dump_json(filename: Path, data: Any, is_zip: bool = False, log: bool = with filename.open("w") as fp: dump_json_to_file(fp, data) - logger.debug(f'done json to "{filename}"') + logger.debug(f'done writing json to "{filename}"') def json_load(datafile: TextIO) -> Any: diff --git a/freqtrade/optimize/analysis/recursive.py b/freqtrade/optimize/analysis/recursive.py index 7e8e39f5a..9de0ad3ad 100644 --- a/freqtrade/optimize/analysis/recursive.py +++ b/freqtrade/optimize/analysis/recursive.py @@ -8,6 +8,7 @@ from typing import Any from pandas import DataFrame +from freqtrade.exceptions import ConfigurationError from freqtrade.exchange import timeframe_to_minutes from freqtrade.loggers.set_log_levels import ( reduce_verbosity_for_bias_tester, @@ -152,6 +153,13 @@ class RecursiveAnalysis(BaseAnalysis): strat = backtesting.strategy self._strat_scc = strat.startup_candle_count + if self._strat_scc < 1: + raise ConfigurationError( + f"The strategy defines invalid startup candle count of {self._strat_scc}. " + f"This will lead to recursive issues on some indicators. " + f"Please define a proper startup_candle_count in the strategy." + ) + if self._strat_scc not in self._startup_candle: self._startup_candle.append(self._strat_scc) self._startup_candle.sort() diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 30c0e745c..9dc878fae 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -273,7 +273,7 @@ class Backtesting: self.futures_data: dict[str, DataFrame] = {} def init_backtest(self): - self.prepare_backtest(False) + self.reset_backtest(False) self.wallets = Wallets(self.config, self.exchange, is_backtest=True) @@ -427,7 +427,7 @@ class Backtesting: def disable_database_use(self): disable_database_use(self.timeframe) - def prepare_backtest(self, enable_protections): + def reset_backtest(self, enable_protections: bool = False): """ Backtesting setup method - called once for every call to "backtest()". """ @@ -1692,7 +1692,7 @@ class Backtesting: :param end_date: backtesting timerange end datetime :return: DataFrame with trades (results of backtesting) """ - self.prepare_backtest(self.enable_protections) + self.reset_backtest(self.enable_protections) # Ensure wallets are up-to-date (important for --strategy-list) self.wallets.update() # Use dict of lists with data for performance diff --git a/freqtrade/optimize/hyperopt/hyperopt.py b/freqtrade/optimize/hyperopt/hyperopt.py index 9c2fa2016..ba88d4969 100644 --- a/freqtrade/optimize/hyperopt/hyperopt.py +++ b/freqtrade/optimize/hyperopt/hyperopt.py @@ -9,7 +9,6 @@ import logging import random from datetime import datetime from math import ceil -from multiprocessing import Manager from pathlib import Path from typing import Any @@ -19,9 +18,7 @@ from optuna.trial import FrozenTrial, Trial, TrialState from freqtrade.constants import FTHYPT_FILEVERSION, LAST_BT_RESULT_FN, Config from freqtrade.enums import HyperoptState -from freqtrade.exceptions import OperationalException from freqtrade.misc import file_dump_json, plural -from freqtrade.optimize.hyperopt.hyperopt_logger import logging_mp_handle, logging_mp_setup from freqtrade.optimize.hyperopt.hyperopt_optimizer import INITIAL_POINTS, HyperOptimizer from freqtrade.optimize.hyperopt.hyperopt_output import HyperoptOutput from freqtrade.optimize.hyperopt_tools import ( @@ -35,9 +32,6 @@ from freqtrade.util import get_progress_tracker logger = logging.getLogger(__name__) -log_queue: Any - - class Hyperopt: """ Hyperopt class, this class contains all the logic to run a hyperopt simulation @@ -55,12 +49,6 @@ class Hyperopt: self.analyze_per_epoch = self.config.get("analyze_per_epoch", False) HyperoptStateContainer.set_state(HyperoptState.STARTUP) - if self.config.get("hyperopt"): - raise OperationalException( - "Using separate Hyperopt files has been removed in 2021.9. Please convert " - "your existing Hyperopt file to the new Hyperoptable strategy interface" - ) - time_now = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") strategy = str(self.config["strategy"]) self.results_file: Path = ( @@ -149,15 +137,7 @@ class Hyperopt: def run_optimizer_parallel(self, parallel: Parallel, asked: list[list]) -> list[dict[str, Any]]: """Start optimizer in a parallel way""" - def optimizer_wrapper(*args, **kwargs): - # global log queue. This must happen in the file that initializes Parallel - logging_mp_setup( - log_queue, logging.INFO if self.config["verbosity"] < 1 else logging.DEBUG - ) - - return self.hyperopter.generate_optimizer_wrapped(*args, **kwargs) - - return parallel(optimizer_wrapper(v) for v in asked) + return parallel(self.hyperopter.generate_optimizer_wrapped(v) for v in asked) def _set_random_state(self, random_state: int | None) -> int: return random_state or random.randint(1, 2**16 - 1) # noqa: S311 @@ -236,15 +216,6 @@ class Hyperopt: self._save_result(val) - def _setup_logging_mp_workaround(self) -> None: - """ - Workaround for logging in child processes. - local_queue must be a global in the file that initializes Parallel. - """ - global log_queue - m = Manager() - log_queue = m.Queue() - def start(self) -> None: self.random_state = self._set_random_state(self.config.get("hyperopt_random_state")) logger.info(f"Using optimizer random state: {self.random_state}") @@ -257,7 +228,6 @@ class Hyperopt: logger.info(f"Number of parallel jobs set as: {config_jobs}") self.opt = self.hyperopter.get_optimizer(self.random_state) - self._setup_logging_mp_workaround() try: with Parallel(n_jobs=config_jobs) as parallel: jobs = parallel._effective_n_jobs() @@ -307,7 +277,7 @@ class Hyperopt: self.evaluate_result(val, current, is_random[j]) pbar.update(task, advance=1) - logging_mp_handle(log_queue) + self.hyperopter.handle_mp_logging() gc.collect() if ( diff --git a/freqtrade/optimize/hyperopt/hyperopt_optimizer.py b/freqtrade/optimize/hyperopt/hyperopt_optimizer.py index 7f56dfb81..f905c9733 100644 --- a/freqtrade/optimize/hyperopt/hyperopt_optimizer.py +++ b/freqtrade/optimize/hyperopt/hyperopt_optimizer.py @@ -7,6 +7,7 @@ import logging import sys import warnings from datetime import UTC, datetime +from multiprocessing import Manager from pathlib import Path from typing import Any @@ -29,6 +30,7 @@ from freqtrade.optimize.backtesting import Backtesting # Import IHyperOptLoss to allow unpickling classes from these modules from freqtrade.optimize.hyperopt.hyperopt_auto import HyperOptAuto +from freqtrade.optimize.hyperopt.hyperopt_logger import logging_mp_handle, logging_mp_setup from freqtrade.optimize.hyperopt_loss.hyperopt_loss_interface import IHyperOptLoss from freqtrade.optimize.hyperopt_tools import HyperoptStateContainer, HyperoptTools from freqtrade.optimize.optimize_reports import generate_strategy_stats @@ -58,6 +60,8 @@ optuna_samplers_dict = { "QMCSampler": optuna.samplers.QMCSampler, } +log_queue: Any + class HyperOptimizer: """ @@ -85,13 +89,7 @@ class HyperOptimizer: self.custom_hyperopt: HyperOptAuto self.analyze_per_epoch = self.config.get("analyze_per_epoch", False) - if not self.config.get("hyperopt"): - self.custom_hyperopt = HyperOptAuto(self.config) - else: - raise OperationalException( - "Using separate Hyperopt files has been removed in 2021.9. Please convert " - "your existing Hyperopt file to the new Hyperoptable strategy interface" - ) + self.custom_hyperopt = HyperOptAuto(self.config) self.backtesting._set_strategy(self.backtesting.strategylist[0]) self.custom_hyperopt.strategy = self.backtesting.strategy @@ -113,6 +111,24 @@ class HyperOptimizer: if HyperoptTools.has_space(self.config, "sell"): # Make sure use_exit_signal is enabled self.config["use_exit_signal"] = True + self._setup_logging_mp_workaround() + + def _setup_logging_mp_workaround(self) -> None: + """ + Workaround for logging in child processes. + local_queue must be a global and passed to the child process via inheritance. + """ + global log_queue + m = Manager() + log_queue = m.Queue() + logger.info(f"manager queue {type(log_queue)}") + + def handle_mp_logging(self) -> None: + """ + Handle logging from child processes. + Must be called in the parent process to handle log messages from the child process. + """ + logging_mp_handle(log_queue) def prepare_hyperopt(self) -> None: # Initialize spaces ... @@ -264,6 +280,7 @@ class HyperOptimizer: @delayed @wrap_non_picklable_objects def generate_optimizer_wrapped(self, params_dict: dict[str, Any]) -> dict[str, Any]: + logging_mp_setup(log_queue, logging.INFO if self.config["verbosity"] < 1 else logging.DEBUG) return self.generate_optimizer(params_dict) def generate_optimizer(self, params_dict: dict[str, Any]) -> dict[str, Any]: diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index a53980fb3..57b7740d8 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -256,40 +256,66 @@ def _get_resample_from_period(period: str) -> str: return "1ME" if period == "year": return "1YE" + if period == "weekday": + # Required to pass the test + return "weekday" raise ValueError(f"Period {period} is not supported.") +def _calculate_stats_for_period(data: DataFrame) -> dict[str, Any]: + profit_abs = data["profit_abs"].sum().round(10) + wins = sum(data["profit_abs"] > 0) + draws = sum(data["profit_abs"] == 0) + losses = sum(data["profit_abs"] < 0) + trades = wins + draws + losses + winning_profit = data.loc[data["profit_abs"] > 0, "profit_abs"].sum() + losing_profit = data.loc[data["profit_abs"] < 0, "profit_abs"].sum() + profit_factor = winning_profit / abs(losing_profit) if losing_profit else 0.0 + + return { + "profit_abs": profit_abs, + "wins": wins, + "draws": draws, + "losses": losses, + "trades": trades, + "profit_factor": round(profit_factor, 8), + } + + def generate_periodic_breakdown_stats( trade_list: list | DataFrame, period: str ) -> list[dict[str, Any]]: results = trade_list if not isinstance(trade_list, list) else DataFrame.from_records(trade_list) if len(results) == 0: return [] + results["close_date"] = to_datetime(results["close_date"], utc=True) - resample_period = _get_resample_from_period(period) - resampled = results.resample(resample_period, on="close_date") - stats = [] - for name, day in resampled: - profit_abs = day["profit_abs"].sum().round(10) - wins = sum(day["profit_abs"] > 0) - draws = sum(day["profit_abs"] == 0) - losses = sum(day["profit_abs"] < 0) - trades = wins + draws + losses - winning_profit = day.loc[day["profit_abs"] > 0, "profit_abs"].sum() - losing_profit = day.loc[day["profit_abs"] < 0, "profit_abs"].sum() - profit_factor = winning_profit / abs(losing_profit) if losing_profit else 0.0 - stats.append( - { - "date": name.strftime("%d/%m/%Y"), - "date_ts": int(name.to_pydatetime().timestamp() * 1000), - "profit_abs": profit_abs, - "wins": wins, - "draws": draws, - "losses": losses, - "trades": trades, - "profit_factor": round(profit_factor, 8), - } - ) + + if period == "weekday": + day_names = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] + results["weekday"] = results["close_date"].dt.dayofweek + + stats = [] + for day_num in range(7): + day_data = results[results["weekday"] == day_num] + if len(day_data) > 0: + period_stats = _calculate_stats_for_period(day_data) + stats.append({"date": day_names[day_num], "date_ts": day_num, **period_stats}) + else: + resample_period = _get_resample_from_period(period) + resampled = results.resample(resample_period, on="close_date") + + stats = [] + for name, period_data in resampled: + period_stats = _calculate_stats_for_period(period_data) + stats.append( + { + "date": name.strftime("%d/%m/%Y"), + "date_ts": int(name.to_pydatetime().timestamp() * 1000), + **period_stats, + } + ) + return stats diff --git a/freqtrade/resolvers/iresolver.py b/freqtrade/resolvers/iresolver.py index cb0c3de33..6807b757d 100644 --- a/freqtrade/resolvers/iresolver.py +++ b/freqtrade/resolvers/iresolver.py @@ -86,13 +86,13 @@ class IResolver: Tuple format: [Object, source] """ - # Generate spec based on absolute path - # Pass object_name as first argument to have logging print a reasonable name. with PathModifier(module_path.parent): module_name = module_path.stem or "" + # Generate spec based on absolute path + # Pass object_name as first argument to have logging print a reasonable name. spec = importlib.util.spec_from_file_location(module_name, str(module_path)) if not spec: - return iter([None]) + return iter([]) module = importlib.util.module_from_spec(spec) try: @@ -149,9 +149,7 @@ class IResolver: continue module_path = entry.resolve() - obj = next(cls._get_valid_object(module_path, object_name), None) - - if obj: + if obj := next(cls._get_valid_object(module_path, object_name), None): obj[0].__file__ = str(entry) if add_source: obj[0].__source__ = obj[1] @@ -164,6 +162,10 @@ class IResolver: ) -> Any | None: """ Try to load object from path list. + :param paths: list of absolute paths to search + :param object_name: name of the module to import + :param add_source: add the source code as __source__ attribute to theloaded object. + :param kwargs: keyword arguments to pass to the object constructor """ for _path in paths: diff --git a/freqtrade/resolvers/strategy_resolver.py b/freqtrade/resolvers/strategy_resolver.py index 47a09120d..a0ebfdef0 100644 --- a/freqtrade/resolvers/strategy_resolver.py +++ b/freqtrade/resolvers/strategy_resolver.py @@ -150,7 +150,9 @@ class StrategyResolver(IResolver): # Ensure necessary migrations are performed first. validate_migrated_strategy_settings(strategy.config) - if not all(k in strategy.order_types for k in REQUIRED_ORDERTYPES): + if not strategy.order_types or not all( + k in strategy.order_types for k in REQUIRED_ORDERTYPES + ): raise ImportError( f"Impossible to load Strategy '{strategy.__class__.__name__}'. " f"Order-types mapping is incomplete." diff --git a/freqtrade/rpc/api_server/api_backtest.py b/freqtrade/rpc/api_server/api_backtest.py index 713c6f400..a393a5c65 100644 --- a/freqtrade/rpc/api_server/api_backtest.py +++ b/freqtrade/rpc/api_server/api_backtest.py @@ -116,7 +116,7 @@ def __run_backtest_bg(btconfig: Config): ) ApiBG.bt["bt"].results["metadata"][strategy_name]["filename"] = str(fn.stem) ApiBG.bt["bt"].results["metadata"][strategy_name]["strategy"] = strategy_name - + ApiBG.bt["bt"].reset_backtest() logger.info("Backtest finished.") except ConfigurationError as e: diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 7a51cc112..075e6eb0e 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -1009,12 +1009,16 @@ class RPC: return {"result": "Created exit orders for all open trades."} # Query for trade - trade = Trade.get_trades( - trade_filter=[ - Trade.id == trade_id, - Trade.is_open.is_(True), - ] - ).first() + trade = ( + Trade.get_trades( + trade_filter=[ + Trade.id == int(trade_id), + Trade.is_open.is_(True), + ] + ).first() + if trade_id.isdigit() + else None + ) if not trade: logger.warning("force_exit: Invalid argument received") raise RPCException("invalid argument") @@ -1557,69 +1561,76 @@ class RPC: selected_cols: list[str] | None, live: bool, ) -> dict[str, Any]: + """ + Analyzed dataframe in Dict form, with full history loading and strategy analysis. + Loads the full history from disk or exchange, and runs the strategy analysis on it. + Should only be used in webserver mode, as it can interfere with a running bot. + """ timerange_parsed = TimeRange.parse_timerange(config.get("timerange")) from freqtrade.data.converter import trim_dataframe from freqtrade.data.dataprovider import DataProvider + from freqtrade.persistence.usedb_context import FtNoDBContext from freqtrade.resolvers.strategy_resolver import StrategyResolver - strategy_name = "" - startup_candles = 0 - if config.get("strategy"): - strategy = StrategyResolver.load_strategy(config) - startup_candles = strategy.startup_candle_count - strategy_name = strategy.get_strategy_name() + with FtNoDBContext(): + strategy_name = "" + startup_candles = 0 + if config.get("strategy"): + strategy = StrategyResolver.load_strategy(config) + startup_candles = strategy.startup_candle_count + strategy_name = strategy.get_strategy_name() - if live: - data = exchange.get_historic_ohlcv( - pair=pair, - timeframe=timeframe, - since_ms=timerange_parsed.startts * 1000 - if timerange_parsed.startts - else dt_ts(dt_now() - timedelta(days=30)), - is_new_pair=True, # history is never available - so always treat as new pair - candle_type=config.get("candle_type_def", CandleType.SPOT), - until_ms=timerange_parsed.stopts, - ) - else: - _data = load_data( - datadir=config["datadir"], - pairs=[pair], - timeframe=timeframe, - timerange=timerange_parsed, - data_format=config["dataformat_ohlcv"], - candle_type=config.get("candle_type_def", CandleType.SPOT), - startup_candles=startup_candles, - ) - if pair not in _data: - raise RPCException( - f"No data for {pair}, {timeframe} in {config.get('timerange')} found." + if live: + data = exchange.get_historic_ohlcv( + pair=pair, + timeframe=timeframe, + since_ms=timerange_parsed.startts * 1000 + if timerange_parsed.startts + else dt_ts(dt_now() - timedelta(days=30)), + is_new_pair=True, # history is never available - so always treat as new pair + candle_type=config.get("candle_type_def", CandleType.SPOT), + until_ms=timerange_parsed.stopts, ) - data = _data[pair] + else: + _data = load_data( + datadir=config["datadir"], + pairs=[pair], + timeframe=timeframe, + timerange=timerange_parsed, + data_format=config["dataformat_ohlcv"], + candle_type=config.get("candle_type_def", CandleType.SPOT), + startup_candles=startup_candles, + ) + if pair not in _data: + raise RPCException( + f"No data for {pair}, {timeframe} in {config.get('timerange')} found." + ) + data = _data[pair] - annotations = [] - if config.get("strategy"): - strategy.dp = DataProvider(config, exchange=exchange, pairlists=None) - strategy.ft_bot_start() + annotations = [] + if config.get("strategy"): + strategy.dp = DataProvider(config, exchange=exchange, pairlists=None) + strategy.ft_bot_start() - df_analyzed = strategy.analyze_ticker(data, {"pair": pair}) - df_analyzed = trim_dataframe( - df_analyzed, timerange_parsed, startup_candles=startup_candles + df_analyzed = strategy.analyze_ticker(data, {"pair": pair}) + df_analyzed = trim_dataframe( + df_analyzed, timerange_parsed, startup_candles=startup_candles + ) + annotations = strategy.ft_plot_annotations(pair=pair, dataframe=df_analyzed) + + else: + df_analyzed = data + + return RPC._convert_dataframe_to_dict( + strategy_name, + pair, + timeframe, + df_analyzed.copy(), + dt_now(), + selected_cols, + annotations, ) - annotations = strategy.ft_plot_annotations(pair=pair, dataframe=df_analyzed) - - else: - df_analyzed = data - - return RPC._convert_dataframe_to_dict( - strategy_name, - pair, - timeframe, - df_analyzed.copy(), - dt_now(), - selected_cols, - annotations, - ) def _rpc_plot_config(self) -> dict[str, Any]: if ( diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index cdce0c1e2..7b3006b40 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -1455,7 +1455,11 @@ class Telegram(RPCHandler): await query.answer() await query.edit_message_text(text="Force exit canceled.") return - trade: Trade | None = Trade.get_trades(trade_filter=Trade.id == trade_id).first() + trade: Trade | None = ( + Trade.get_trades(trade_filter=Trade.id == int(trade_id)).first() + if trade_id.isdigit() + else None + ) await query.answer() if trade: await query.edit_message_text( diff --git a/freqtrade/strategy/strategy_helper.py b/freqtrade/strategy/strategy_helper.py index 71dcc3cbf..1292b65b5 100644 --- a/freqtrade/strategy/strategy_helper.py +++ b/freqtrade/strategy/strategy_helper.py @@ -92,6 +92,21 @@ def merge_informative_pair( right_on=date_merge, how="left", ) + + if len(dataframe) > 1 and len(informative) > 0 and pd.isnull(dataframe.at[0, date_merge]): + # If the start dates of the dataframes are not aligned, the first rows will be NaN + # We can fill these with the last available informative candle before the start date + # while still avoiding lookahead bias - as only past data is used. + first_valid_idx = dataframe[date_merge].first_valid_index() + if first_valid_idx: + first_valid_date_merge = dataframe.at[first_valid_idx, date_merge] + matching_informative_raws = informative[ + informative[date_merge] < first_valid_date_merge + ] + if not matching_informative_raws.empty: + dataframe.loc[: first_valid_idx - 1] = dataframe.loc[ + : first_valid_idx - 1 + ].fillna(matching_informative_raws.iloc[-1]) else: dataframe = pd.merge( dataframe, informative, left_on="date", right_on=date_merge, how="left" diff --git a/freqtrade/strategy/strategy_wrapper.py b/freqtrade/strategy/strategy_wrapper.py index 25d44fae7..22f6279cf 100644 --- a/freqtrade/strategy/strategy_wrapper.py +++ b/freqtrade/strategy/strategy_wrapper.py @@ -13,6 +13,21 @@ logger = logging.getLogger(__name__) F = TypeVar("F", bound=Callable[..., Any]) +def __format_traceback(error: Exception) -> str: + """Format the traceback of an exception into a formatted string.""" + tb = error.__traceback__ + try: + while tb: + if tb.tb_frame.f_code.co_filename == __file__: + # Skip frames from this file + tb = tb.tb_next + continue + return f"{tb.tb_frame.f_code.co_qualname}:{tb.tb_lineno}" + except Exception: + return "" + return "" + + def strategy_safe_wrapper(f: F, message: str = "", default_retval=None, supress_error=False) -> F: """ Wrapper around user-provided methods and functions. @@ -30,12 +45,17 @@ def strategy_safe_wrapper(f: F, message: str = "", default_retval=None, supress_ kwargs["trade"] = deepcopy(kwargs["trade"]) return f(*args, **kwargs) except ValueError as error: - logger.warning(f"{message}Strategy caused the following exception: {error}{f}") + traceback = __format_traceback(error) + name = f.__name__ if hasattr(f, "__name__") else str(f) + logger.warning( + f"{message}Strategy caused the following exception: {repr(error)} in " + f"{traceback}, calling {name}", + ) if default_retval is None and not supress_error: raise StrategyError(str(error)) from error return default_retval except Exception as error: - logger.exception(f"{message}Unexpected error {error} calling {f}") + logger.exception(f"{message}Unexpected error {repr(error)} calling {f}") if default_retval is None and not supress_error: raise StrategyError(str(error)) from error return default_retval diff --git a/freqtrade/strategy/strategyupdater.py b/freqtrade/strategy/strategyupdater.py index 8a2f4e72c..5377865d7 100644 --- a/freqtrade/strategy/strategyupdater.py +++ b/freqtrade/strategy/strategyupdater.py @@ -46,6 +46,7 @@ class StrategyUpdater: "aliases": set(), "replacements": [ ("NaN", "nan"), + ("NAN", "nan"), ], } } diff --git a/freqtrade/system/__init__.py b/freqtrade/system/__init__.py index e69e90de8..9bb472d01 100644 --- a/freqtrade/system/__init__.py +++ b/freqtrade/system/__init__.py @@ -2,7 +2,8 @@ from freqtrade.system.asyncio_config import asyncio_setup from freqtrade.system.gc_setup import gc_set_threshold +from freqtrade.system.set_mp_start_method import set_mp_start_method from freqtrade.system.version_info import print_version_info -__all__ = ["asyncio_setup", "gc_set_threshold", "print_version_info"] +__all__ = ["asyncio_setup", "gc_set_threshold", "print_version_info", "set_mp_start_method"] diff --git a/freqtrade/system/set_mp_start_method.py b/freqtrade/system/set_mp_start_method.py new file mode 100644 index 000000000..34b7051c5 --- /dev/null +++ b/freqtrade/system/set_mp_start_method.py @@ -0,0 +1,14 @@ +from multiprocessing import get_all_start_methods, get_start_method, set_start_method + + +def set_mp_start_method(): + """ + Set multiprocessing start method to not be fork. + forkserver will become the default in 3.14 - and is deprecated in 3.13 + """ + try: + sms = get_all_start_methods() + if "forkserver" in sms and get_start_method(True) is None: + set_start_method("forkserver") + except RuntimeError: + pass diff --git a/freqtrade/wallets.py b/freqtrade/wallets.py index db14ec499..1630ac600 100644 --- a/freqtrade/wallets.py +++ b/freqtrade/wallets.py @@ -382,7 +382,7 @@ class Wallets: max_stake_amount: float, trade_amount: float | None, ): - if not stake_amount: + if not stake_amount or isinstance(stake_amount, str) or stake_amount <= 0: self._local_log( f"Stake amount is {stake_amount}, ignoring possible trade for {pair}.", level="debug", diff --git a/ft_client/freqtrade_client/__init__.py b/ft_client/freqtrade_client/__init__.py index bf404ceeb..5883daf91 100644 --- a/ft_client/freqtrade_client/__init__.py +++ b/ft_client/freqtrade_client/__init__.py @@ -1,7 +1,7 @@ from freqtrade_client.ft_rest_client import FtRestClient -__version__ = "2025.9.1" +__version__ = "2025.10" if "dev" in __version__: from pathlib import Path diff --git a/ft_client/freqtrade_client/ft_rest_client.py b/ft_client/freqtrade_client/ft_rest_client.py index 1f14c5b1a..339d50d5f 100755 --- a/ft_client/freqtrade_client/ft_rest_client.py +++ b/ft_client/freqtrade_client/ft_rest_client.py @@ -443,13 +443,13 @@ class FtRestClient: """Return available pair (backtest data) based on timeframe / stake_currency selection :param timeframe: Only pairs with this timeframe available. - :param stake_currency: Only pairs that include this timeframe + :param stake_currency: Only pairs that include this stake currency. :return: json object """ return self._get( "available_pairs", params={ - "stake_currency": stake_currency if timeframe else "", + "stake_currency": stake_currency if stake_currency else "", "timeframe": timeframe if timeframe else "", }, ) diff --git a/ft_client/requirements.txt b/ft_client/requirements.txt index 9b8d46025..9d3110871 100644 --- a/ft_client/requirements.txt +++ b/ft_client/requirements.txt @@ -1,3 +1,3 @@ # Requirements for freqtrade client library requests==2.32.5 -python-rapidjson==1.21 +python-rapidjson==1.22 diff --git a/pyproject.toml b/pyproject.toml index 4bac06296..1adb31364 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -85,17 +85,17 @@ hyperopt = [ freqai = [ "scikit-learn", "joblib", - 'catboost; platform_machine != "aarch64"', + "catboost; platform_machine != 'arm'", "lightgbm", "xgboost", "tensorboard", "datasieve>=0.1.5", ] freqai_rl = [ - "torch", + "torch; sys_platform != 'darwin' or platform_machine != 'x86_64'", "gymnasium", - "stable-baselines3", - "sb3-contrib", + "stable-baselines3; sys_platform != 'darwin' or platform_machine != 'x86_64'", + "sb3-contrib; sys_platform != 'darwin' or platform_machine != 'x86_64'", "tqdm", ] develop = [ diff --git a/requirements-dev.txt b/requirements-dev.txt index 5a2c3c4f4..e04e42588 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,7 +6,7 @@ -r requirements-freqai-rl.txt -r docs/requirements-docs.txt -ruff==0.13.1 +ruff==0.14.1 mypy==1.18.2 pre-commit==4.3.0 pytest==8.4.2 @@ -16,7 +16,7 @@ pytest-mock==3.15.1 pytest-random-order==1.2.0 pytest-timeout==2.4.0 pytest-xdist==3.8.0 -isort==6.0.1 +isort==7.0.0 # For datetime mocking time-machine==2.19.0 @@ -24,9 +24,9 @@ time-machine==2.19.0 nbconvert==7.16.6 # mypy types -scipy-stubs==1.16.2.0 # keep in sync with `scipy` in `requirements-hyperopt.txt` -types-cachetools==6.2.0.20250827 +scipy-stubs==1.16.2.4 # keep in sync with `scipy` in `requirements-hyperopt.txt` +types-cachetools==6.2.0.20251022 types-filelock==3.2.7 types-requests==2.32.4.20250913 types-tabulate==0.9.0.20241207 -types-python-dateutil==2.9.0.20250822 +types-python-dateutil==2.9.0.20251008 diff --git a/requirements-freqai-rl.txt b/requirements-freqai-rl.txt index d746f19ca..b077300df 100644 --- a/requirements-freqai-rl.txt +++ b/requirements-freqai-rl.txt @@ -2,10 +2,10 @@ -r requirements-freqai.txt # Required for freqai-rl -torch==2.8.0; sys_platform != 'darwin' or platform_machine != 'x86_64' -gymnasium==0.29.1 +torch==2.9.0; sys_platform != 'darwin' or platform_machine != 'x86_64' +gymnasium==1.2.1 # SB3 >=2.5.0 depends on torch 2.3.0 - which implies it dropped support x86 macos stable_baselines3==2.7.0; sys_platform != 'darwin' or platform_machine != 'x86_64' -sb3_contrib>=2.2.1 +sb3_contrib>=2.2.1; sys_platform != 'darwin' or platform_machine != 'x86_64' # Progress bar for stable-baselines3 and sb3-contrib tqdm==4.67.1 diff --git a/requirements-freqai.txt b/requirements-freqai.txt index 059512b7b..d50e2de78 100644 --- a/requirements-freqai.txt +++ b/requirements-freqai.txt @@ -7,6 +7,6 @@ scikit-learn==1.7.2 joblib==1.5.2 catboost==1.2.8; 'arm' not in platform_machine lightgbm==4.6.0 -xgboost==3.0.5 +xgboost==3.1.1 tensorboard==2.20.0 datasieve==0.1.9 diff --git a/requirements-hyperopt.txt b/requirements-hyperopt.txt index a577b9c08..49fdecd7d 100644 --- a/requirements-hyperopt.txt +++ b/requirements-hyperopt.txt @@ -4,6 +4,6 @@ # Required for hyperopt scipy==1.16.2 scikit-learn==1.7.2 -filelock==3.19.1 +filelock==3.20.0 optuna==4.5.0 cmaes==0.12.0 diff --git a/requirements-plot.txt b/requirements-plot.txt index 176c53620..ff1f22873 100644 --- a/requirements-plot.txt +++ b/requirements-plot.txt @@ -1,4 +1,4 @@ # Include all requirements to run the bot. -r requirements.txt -plotly==6.3.0 +plotly==6.3.1 diff --git a/requirements.txt b/requirements.txt index ac45ae0ec..b8fa5fe5f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,36 +1,36 @@ -numpy==2.3.3 -pandas==2.3.2 +numpy==2.3.4 +pandas==2.3.3 bottleneck==1.6.0 -numexpr==2.12.1 +numexpr==2.14.1 # Indicator libraries ft-pandas-ta==0.3.16 -ta-lib==0.6.7 +ta-lib==0.6.8 technical==1.5.3 -ccxt==4.5.7 -cryptography==46.0.1 -aiohttp==3.12.15 -SQLAlchemy==2.0.43 -python-telegram-bot==22.4 +ccxt==4.5.12 +cryptography==46.0.3 +aiohttp==3.13.1 +SQLAlchemy==2.0.44 +python-telegram-bot==22.5 # can't be hard-pinned due to telegram-bot pinning httpx with ~ httpx>=0.24.1 -humanize==4.13.0 -cachetools==6.2.0 +humanize==4.14.0 +cachetools==6.2.1 requests==2.32.5 urllib3==2.5.0 -certifi==2025.8.3 +certifi==2025.10.5 jsonschema==4.25.1 tabulate==0.9.0 pycoingecko==3.2.0 jinja2==3.1.6 joblib==1.5.2 -rich==14.1.0 +rich==14.2.0 pyarrow==21.0.0; platform_machine != 'armv7l' and platform_machine != "aarch64" # TODO: downgrade for aarch64 until https://github.com/apache/arrow/issues/47229 is resolved pyarrow==20.0.0; platform_machine == "aarch64" # Load ticker files 30% faster -python-rapidjson==1.21 +python-rapidjson==1.22 # Properly format api responses orjson==3.11.3 @@ -38,12 +38,12 @@ orjson==3.11.3 sdnotify==0.3.2 # API Server -fastapi==0.117.1 -pydantic==2.11.9 -uvicorn==0.36.0 +fastapi==0.119.1 +pydantic==2.12.3 +uvicorn==0.38.0 pyjwt==2.10.1 -aiofiles==24.1.0 -psutil==7.1.0 +aiofiles==25.1.0 +psutil==7.1.1 # Building config files interactively questionary==2.1.1 diff --git a/setup.sh b/setup.sh index 5e0800ab8..b1b102585 100755 --- a/setup.sh +++ b/setup.sh @@ -6,6 +6,7 @@ function echo_block() { echo $1 echo "----------------------------" } +UV=false function check_installed_pip() { ${PYTHON} -m pip > /dev/null @@ -24,6 +25,13 @@ function check_installed_python() { echo "You can do this by running 'deactivate'." exit 2 fi + if [ -x "$(command -v uv)" ]; then + echo "uv detected — using it instead of pip for faster installation." + PIP="uv pip" + PYTHON="python3.13" + UV=true + return + fi for v in 13 12 11 do @@ -32,6 +40,7 @@ function check_installed_python() { if [ $? -eq 0 ]; then echo "using ${PYTHON}" check_installed_pip + PIP="${PYTHON} -m pip" return fi done @@ -49,7 +58,7 @@ function updateenv() { source .venv/bin/activate SYS_ARCH=$(uname -m) echo "pip install in-progress. Please wait..." - ${PYTHON} -m pip install --upgrade pip wheel setuptools + ${PIP} install --upgrade pip wheel setuptools REQUIREMENTS_HYPEROPT="" REQUIREMENTS_PLOT="" REQUIREMENTS_FREQAI="" @@ -70,7 +79,7 @@ function updateenv() { fi if [ "${SYS_ARCH}" == "armv7l" ] || [ "${SYS_ARCH}" == "armv6l" ]; then echo "Detected Raspberry, installing cython, skipping hyperopt installation." - ${PYTHON} -m pip install --upgrade cython + ${PIP} install --upgrade cython else # Is not Raspberry read -p "Do you want to install hyperopt dependencies [y/N]? " @@ -92,12 +101,12 @@ function updateenv() { fi fi - ${PYTHON} -m pip install --upgrade -r ${REQUIREMENTS} ${REQUIREMENTS_HYPEROPT} ${REQUIREMENTS_PLOT} ${REQUIREMENTS_FREQAI} ${REQUIREMENTS_FREQAI_RL} + ${PIP} install --upgrade -r ${REQUIREMENTS} ${REQUIREMENTS_HYPEROPT} ${REQUIREMENTS_PLOT} ${REQUIREMENTS_FREQAI} ${REQUIREMENTS_FREQAI_RL} if [ $? -ne 0 ]; then echo "Failed installing dependencies" exit 1 fi - ${PYTHON} -m pip install -e . + ${PIP} install -e . if [ $? -ne 0 ]; then echo "Failed installing Freqtrade" exit 1 @@ -179,7 +188,12 @@ function recreate_environments() { fi echo - ${PYTHON} -m venv .venv + if [ "$UV" = true ] ; then + echo "- Creating new virtual environment with uv" + uv venv .venv --python=${PYTHON} + else + ${PYTHON} -m venv .venv + fi if [ $? -ne 0 ]; then echo "Could not create virtual environment. Leaving now" exit 1 @@ -252,7 +266,7 @@ function install() { function plot() { echo_block "Installing dependencies for Plotting scripts" - ${PYTHON} -m pip install plotly --upgrade + ${PIP} install plotly --upgrade } function help() { diff --git a/tests/commands/test_startup_time.py b/tests/commands/test_startup_time.py index 62baab20a..32b4f80fd 100644 --- a/tests/commands/test_startup_time.py +++ b/tests/commands/test_startup_time.py @@ -4,7 +4,7 @@ import time from tests.conftest import is_arm, is_mac -MAXIMUM_STARTUP_TIME = 0.7 if is_mac() and not is_arm() else 0.5 +MAXIMUM_STARTUP_TIME = 0.7 if is_mac() and not is_arm(True) else 0.5 def test_startup_time(): diff --git a/tests/conftest.py b/tests/conftest.py index a390dea07..93144ffc4 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -21,6 +21,7 @@ from freqtrade.exchange import Exchange, timeframe_to_minutes, timeframe_to_seco from freqtrade.freqtradebot import FreqtradeBot from freqtrade.persistence import LocalTrade, Order, Trade, init_db from freqtrade.resolvers import ExchangeResolver +from freqtrade.system import set_mp_start_method from freqtrade.util import dt_now, dt_ts from freqtrade.worker import Worker from tests.conftest_trades import ( @@ -500,9 +501,20 @@ def patch_gc(mocker) -> None: mocker.patch("freqtrade.main.gc_set_threshold") -def is_arm() -> bool: +@pytest.fixture(scope="session", autouse=True) +def fixture_set_mp_start_method(): + """ + Patch multiprocessing start mode globally + Auto-used, runs once per session. + """ + set_mp_start_method() + + +def is_arm(include_aarch64: bool = False) -> bool: machine = platform.machine() - return "arm" in machine or "aarch64" in machine + if include_aarch64: + return "aarch64" in machine or "arm" in machine + return "arm" in machine def is_mac() -> bool: diff --git a/tests/exchange/test_bitget.py b/tests/exchange/test_bitget.py index fdfaf7a7e..ca32ba536 100644 --- a/tests/exchange/test_bitget.py +++ b/tests/exchange/test_bitget.py @@ -1,10 +1,10 @@ from datetime import timedelta -from unittest.mock import MagicMock +from unittest.mock import MagicMock, PropertyMock import pytest -from freqtrade.enums import CandleType -from freqtrade.exceptions import RetryableOrderError +from freqtrade.enums import CandleType, MarginMode, TradingMode +from freqtrade.exceptions import OperationalException, RetryableOrderError from freqtrade.exchange.common import API_RETRY_COUNT from freqtrade.util import dt_now, dt_ts from tests.conftest import EXMS, get_patched_exchange @@ -120,3 +120,76 @@ def test_bitget_ohlcv_candle_limit(mocker, default_conf_usdt): assert exch.ohlcv_candle_limit(timeframe, CandleType.FUTURES, start_time) == length assert exch.ohlcv_candle_limit(timeframe, CandleType.MARK, start_time) == length assert exch.ohlcv_candle_limit(timeframe, CandleType.FUNDING_RATE, start_time) == 200 + + +def test_additional_exchange_init_bitget(default_conf, mocker): + default_conf["dry_run"] = False + default_conf["trading_mode"] = TradingMode.FUTURES + default_conf["margin_mode"] = MarginMode.ISOLATED + api_mock = MagicMock() + api_mock.set_position_mode = MagicMock(return_value={}) + + get_patched_exchange(mocker, default_conf, exchange="bitget", api_mock=api_mock) + assert api_mock.set_position_mode.call_count == 1 + + ccxt_exceptionhandlers( + mocker, default_conf, api_mock, "bitget", "additional_exchange_init", "set_position_mode" + ) + + +def test_dry_run_liquidation_price_cross_bitget(default_conf, mocker): + default_conf["dry_run"] = True + default_conf["trading_mode"] = TradingMode.FUTURES + default_conf["margin_mode"] = MarginMode.CROSS + api_mock = MagicMock() + mocker.patch(f"{EXMS}.get_maintenance_ratio_and_amt", MagicMock(return_value=(0.005, 0.0))) + exchange = get_patched_exchange(mocker, default_conf, exchange="bitget", api_mock=api_mock) + + with pytest.raises( + OperationalException, match="Freqtrade currently only supports isolated futures for bitget" + ): + exchange.dry_run_liquidation_price( + "ETH/USDT:USDT", + 100_000, + False, + 0.1, + 100, + 10, + 100, + [], + ) + + +def test__lev_prep_bitget(default_conf, mocker): + api_mock = MagicMock() + api_mock.set_margin_mode = MagicMock() + api_mock.set_leverage = MagicMock() + type(api_mock).has = PropertyMock(return_value={"setMarginMode": True, "setLeverage": True}) + exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange="bitget") + exchange._lev_prep("BTC/USDC:USDC", 3.2, "buy") + + assert api_mock.set_margin_mode.call_count == 0 + assert api_mock.set_leverage.call_count == 0 + + # test in futures mode + api_mock.set_margin_mode.reset_mock() + api_mock.set_leverage.reset_mock() + default_conf["dry_run"] = False + + default_conf["trading_mode"] = "futures" + default_conf["margin_mode"] = "isolated" + + exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange="bitget") + exchange._lev_prep("BTC/USDC:USDC", 3.2, "buy") + + assert api_mock.set_margin_mode.call_count == 0 + assert api_mock.set_leverage.call_count == 1 + api_mock.set_leverage.assert_called_with(symbol="BTC/USDC:USDC", leverage=3.2) + + api_mock.reset_mock() + + exchange._lev_prep("BTC/USDC:USDC", 19.99, "sell") + + assert api_mock.set_margin_mode.call_count == 0 + assert api_mock.set_leverage.call_count == 1 + api_mock.set_leverage.assert_called_with(symbol="BTC/USDC:USDC", leverage=19.99) diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 1550d93e6..7e3caf039 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -170,7 +170,7 @@ def test_init(default_conf, mocker, caplog): def test_init_ccxt_kwargs(default_conf, mocker, caplog): mocker.patch(f"{EXMS}.reload_markets") mocker.patch(f"{EXMS}.validate_stakecurrency") - aei_mock = mocker.patch(f"{EXMS}.additional_exchange_init") + aei_mock = mocker.patch(f"{EXMS}.ft_additional_exchange_init") caplog.set_level(logging.INFO) conf = copy.deepcopy(default_conf) @@ -2176,10 +2176,7 @@ def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name, candle_ since = date_minus_candles("5m", candle_limit) ret = exchange.get_historic_ohlcv(pair, "5m", dt_ts(since), candle_type=candle_type) - if exchange_name == "okx" and candle_type == "mark": - expected = 4 - else: - expected = 2 + expected = 2 assert exchange._async_get_candle_history.call_count == expected # Returns twice the above OHLCV data after truncating the open candle. assert len(ret) == expected @@ -5942,29 +5939,32 @@ def test_get_max_leverage_futures(default_conf, mocker, leverage_tiers): assert exchange.get_max_leverage("TIA/USDT:USDT", 130.008) == 40 -@pytest.mark.parametrize("exchange_name", ["binance", "kraken", "gate", "okx", "bybit"]) -def test__get_params(mocker, default_conf, exchange_name): +@pytest.mark.parametrize( + "exchange_name, add_params_spot, add_params_futures", + [ + ("binance", {}, {}), + ("kraken", {}, {"leverage": 3.0}), + ("gate", {}, {}), + ("okx", {}, {"tdMode": "isolated", "posSide": "net"}), + ("bybit", {}, {"position_idx": 0}), + ("bitget", {}, {"marginMode": "isolated"}), + ], +) +def test__get_params(mocker, default_conf, exchange_name, add_params_spot, add_params_futures): api_mock = MagicMock() mocker.patch(f"{EXMS}.exchange_has", return_value=True) exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange=exchange_name) exchange._params = {"test": True} params1 = {"test": True} - params2 = { + params1.update(add_params_spot) + + params_fut = { "test": True, "timeInForce": "IOC", "reduceOnly": True, } - - if exchange_name == "kraken": - params2["leverage"] = 3.0 - - if exchange_name == "okx": - params2["tdMode"] = "isolated" - params2["posSide"] = "net" - - if exchange_name == "bybit": - params2["position_idx"] = 0 + params_fut.update(add_params_futures) assert ( exchange._get_params( @@ -6012,7 +6012,7 @@ def test__get_params(mocker, default_conf, exchange_name): time_in_force="IOC", leverage=3.0, ) - == params2 + == params_fut ) diff --git a/tests/exchange/test_hyperliquid.py b/tests/exchange/test_hyperliquid.py index c7924080e..c2bff9339 100644 --- a/tests/exchange/test_hyperliquid.py +++ b/tests/exchange/test_hyperliquid.py @@ -6,7 +6,8 @@ import pytest from tests.conftest import EXMS, get_mock_coro, get_patched_exchange -def test_hyperliquid_dry_run_liquidation_price(default_conf, mocker): +@pytest.mark.parametrize("margin_mode", ["isolated", "cross"]) +def test_hyperliquid_dry_run_liquidation_price(default_conf, mocker, margin_mode): # test if liq price calculated by dry_run_liquidation_price() is close to ccxt liq price # testing different pairs with large/small prices, different leverages, long, short markets = { @@ -281,7 +282,7 @@ def test_hyperliquid_dry_run_liquidation_price(default_conf, mocker): api_mock = MagicMock() default_conf["trading_mode"] = "futures" - default_conf["margin_mode"] = "isolated" + default_conf["margin_mode"] = margin_mode default_conf["stake_currency"] = "USDC" api_mock.load_markets = get_mock_coro() api_mock.markets = markets @@ -299,11 +300,32 @@ def test_hyperliquid_dry_run_liquidation_price(default_conf, mocker): position["contracts"], position["collateral"], position["leverage"], - position["collateral"], - [], + # isolated doesn't use wallet-balance + wallet_balance=0.0 if margin_mode == "isolated" else position["collateral"], + open_trades=[], ) + # Assume full position size is the wallet balance assert pytest.approx(liq_price_returned, rel=0.0001) == liq_price_calculated + if margin_mode == "cross": + # test with larger wallet balance + liq_price_calculated_cross = exchange.dry_run_liquidation_price( + position["symbol"], + position["entryPrice"], + is_short, + position["contracts"], + position["collateral"], + position["leverage"], + wallet_balance=position["collateral"] * 2, + open_trades=[], + ) + # Assume full position size is the wallet balance + # This + if position["side"] == "long": + assert liq_price_returned > liq_price_calculated_cross < position["entryPrice"] + else: + assert liq_price_returned < liq_price_calculated_cross > position["entryPrice"] + def test_hyperliquid_get_funding_fees(default_conf, mocker): now = datetime.now(UTC) diff --git a/tests/exchange/test_okx.py b/tests/exchange/test_okx.py index a388c2ab1..750afbd40 100644 --- a/tests/exchange/test_okx.py +++ b/tests/exchange/test_okx.py @@ -20,7 +20,7 @@ def test_okx_ohlcv_candle_limit(default_conf, mocker): for timeframe in timeframes: assert exchange.ohlcv_candle_limit(timeframe, CandleType.SPOT) == 300 assert exchange.ohlcv_candle_limit(timeframe, CandleType.FUTURES) == 300 - assert exchange.ohlcv_candle_limit(timeframe, CandleType.MARK) == 300 + assert exchange.ohlcv_candle_limit(timeframe, CandleType.MARK) == 100 assert exchange.ohlcv_candle_limit(timeframe, CandleType.FUNDING_RATE) == 100 assert exchange.ohlcv_candle_limit(timeframe, CandleType.SPOT, start_time) == 300 @@ -36,7 +36,7 @@ def test_okx_ohlcv_candle_limit(default_conf, mocker): assert exchange.ohlcv_candle_limit(timeframe, CandleType.SPOT, one_call) == 300 assert exchange.ohlcv_candle_limit(timeframe, CandleType.FUTURES, one_call) == 300 - assert exchange.ohlcv_candle_limit(timeframe, CandleType.MARK, one_call) == 300 + assert exchange.ohlcv_candle_limit(timeframe, CandleType.MARK, one_call) == 100 one_call = int( ( diff --git a/tests/exchange_online/conftest.py b/tests/exchange_online/conftest.py index 6784500da..94ff4ac47 100644 --- a/tests/exchange_online/conftest.py +++ b/tests/exchange_online/conftest.py @@ -153,6 +153,8 @@ EXCHANGES = { "ADA.F": {"balance": "2.00000000", "hold_trade": "0.00000000"}, "XBT": {"balance": "0.00060000", "hold_trade": "0.00000000"}, "XBT.F": {"balance": "0.00100000", "hold_trade": "0.00000000"}, + "ZEUR": {"balance": "1000.00000000", "hold_trade": "0.00000000"}, + "ZUSD": {"balance": "1000.00000000", "hold_trade": "0.00000000"}, } }, "expected": { @@ -161,6 +163,8 @@ EXCHANGES = { "BTC": {"free": 0.0006, "total": 0.0006, "used": 0.0}, # XBT.F should be mapped to BTC.F "BTC.F": {"free": 0.001, "total": 0.001, "used": 0.0}, + "EUR": {"free": 1000.0, "total": 1000.0, "used": 0.0}, + "USD": {"free": 1000.0, "total": 1000.0, "used": 0.0}, }, }, }, @@ -418,6 +422,18 @@ EXCHANGES = { "hasQuoteVolume": True, "timeframe": "1h", "candle_count": 1000, + "futures": True, + "futures_pair": "BTC/USDT:USDT", + "leverage_tiers_public": True, + "leverage_in_spot_market": True, + }, + "coinex": { + "pair": "BTC/USDT", + "stake_currency": "USDT", + "hasQuoteVolume": False, + "timeframe": "1h", + "candle_count": 1000, + "orderbook_max_entries": 50, }, # TODO: re-enable htx once certificates work again # "htx": { @@ -569,10 +585,7 @@ def get_futures_exchange(exchange_name, exchange_conf, class_mocker): class_mocker.patch("freqtrade.exchange.binance.Binance.fill_leverage_tiers") class_mocker.patch(f"{EXMS}.fetch_trading_fees") - class_mocker.patch("freqtrade.exchange.okx.Okx.additional_exchange_init") - class_mocker.patch("freqtrade.exchange.binance.Binance.additional_exchange_init") - class_mocker.patch("freqtrade.exchange.bybit.Bybit.additional_exchange_init") - class_mocker.patch("freqtrade.exchange.gate.Gate.additional_exchange_init") + class_mocker.patch(f"{EXMS}.ft_additional_exchange_init") class_mocker.patch(f"{EXMS}.load_cached_leverage_tiers", return_value=None) class_mocker.patch(f"{EXMS}.cache_leverage_tiers") @@ -581,7 +594,7 @@ def get_futures_exchange(exchange_name, exchange_conf, class_mocker): @pytest.fixture(params=EXCHANGES, scope="class") def exchange(request, exchange_conf, class_mocker): - class_mocker.patch("freqtrade.exchange.bybit.Bybit.additional_exchange_init") + class_mocker.patch(f"{EXMS}.ft_additional_exchange_init") exchange, name = get_exchange(request.param, exchange_conf) yield exchange, name exchange.close() diff --git a/tests/freqai/test_freqai_interface.py b/tests/freqai/test_freqai_interface.py index 0710591c9..3e7e96d85 100644 --- a/tests/freqai/test_freqai_interface.py +++ b/tests/freqai/test_freqai_interface.py @@ -143,6 +143,7 @@ def test_extract_data_and_train_model_Standard( ("CatboostClassifierMultiTarget", "freqai_test_multimodel_classifier_strat"), ], ) +@pytest.mark.filterwarnings(r"ignore:.*__sklearn_tags__.*:DeprecationWarning") def test_extract_data_and_train_model_MultiTargets(mocker, freqai_conf, model, strat): can_run_model(model) diff --git a/tests/freqtradebot/test_freqtradebot.py b/tests/freqtradebot/test_freqtradebot.py index 1304ca9ba..1360f2d77 100644 --- a/tests/freqtradebot/test_freqtradebot.py +++ b/tests/freqtradebot/test_freqtradebot.py @@ -2267,6 +2267,18 @@ def test_manage_open_orders_exit_usercustom( freqtrade.manage_open_orders() assert log_has_re("Emergency exiting trade.*", caplog) assert et_mock.call_count == 1 + # Full exit + assert et_mock.call_args_list[0][1]["sub_trade_amt"] == 30 + + et_mock.reset_mock() + + # Full partially filled order + # Only places the order for the remaining amount + limit_sell_order_old["remaining"] = open_trade_usdt.amount - 10 + freqtrade.manage_open_orders() + assert log_has_re("Emergency exiting trade.*", caplog) + assert et_mock.call_count == 1 + assert et_mock.call_args_list[0][1]["sub_trade_amt"] == 20.0 @pytest.mark.parametrize("is_short", [False, True]) diff --git a/tests/optimize/test_backtest_detail.py b/tests/optimize/test_backtest_detail.py index 2e5ab41de..e2aabd68a 100644 --- a/tests/optimize/test_backtest_detail.py +++ b/tests/optimize/test_backtest_detail.py @@ -18,7 +18,7 @@ from tests.optimize import ( ) -# Test 0: Sell with signal sell in candle 3 +# Test 0: exit with exit signal in candle 3 # Test with Stop-loss at 1% tc0 = BTContainer( data=[ @@ -279,7 +279,7 @@ tc12 = BTContainer( trades=[BTrade(exit_reason=ExitType.TRAILING_STOP_LOSS, open_tick=1, close_tick=2)], ) -# Test 13: Buy and sell ROI on same candle +# Test 13: Enter and exit ROI on same candle # stop-loss: 10% (should not apply), ROI: 1% tc13 = BTContainer( data=[ @@ -296,7 +296,7 @@ tc13 = BTContainer( trades=[BTrade(exit_reason=ExitType.ROI, open_tick=1, close_tick=1)], ) -# Test 14 - Buy and Stoploss on same candle +# Test 14 - Enter and Stoploss on same candle # stop-loss: 5%, ROI: 10% (should not apply) tc14 = BTContainer( data=[ @@ -314,7 +314,7 @@ tc14 = BTContainer( ) -# Test 15 - Buy and ROI on same candle, followed by buy and Stoploss on next candle +# Test 15 - Enter and ROI on same candle, followed by entry and Stoploss on next candle # stop-loss: 5%, ROI: 10% (should not apply) tc15 = BTContainer( data=[ @@ -334,8 +334,8 @@ tc15 = BTContainer( ], ) -# Test 16: Buy, hold for 65 min, then forceexit using roi=-1 -# Causes negative profit even though sell-reason is ROI. +# Test 16: Enter, hold for 65 min, then forceexit using roi=-1 +# Causes negative profit even though exit-reason is ROI. # stop-loss: 10%, ROI: 10% (should not apply), -100% after 65 minutes (limits trade duration) tc16 = BTContainer( data=[ @@ -353,10 +353,10 @@ tc16 = BTContainer( trades=[BTrade(exit_reason=ExitType.ROI, open_tick=1, close_tick=3)], ) -# Test 17: Buy, hold for 120 mins, then forceexit using roi=-1 -# Causes negative profit even though sell-reason is ROI. +# Test 17: Enter, hold for 120 mins, then forceexit using roi=-1 +# Causes negative profit even though exit-reason is ROI. # stop-loss: 10%, ROI: 10% (should not apply), -100% after 100 minutes (limits trade duration) -# Uses open as sell-rate (special case) - since the roi-time is a multiple of the timeframe. +# Uses open as exit-rate (special case) - since the roi-time is a multiple of the timeframe. tc17 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -374,16 +374,16 @@ tc17 = BTContainer( ) -# Test 18: Buy, hold for 120 mins, then drop ROI to 1%, causing a sell in candle 3. +# Test 18: Enter, hold for 120 mins, then drop ROI to 1%, causing an exit in candle 3. # stop-loss: 10%, ROI: 10% (should not apply), -100% after 100 minutes (limits trade duration) -# uses open_rate as sell-price +# uses open_rate as exit price tc18 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT [0, 5000, 5025, 4975, 4987, 6172, 1, 0], [1, 5000, 5025, 4975, 4987, 6172, 0, 0], [2, 4987, 5300, 4950, 5200, 6172, 0, 0], - [3, 5200, 5220, 4940, 4962, 6172, 0, 0], # Sell on ROI (sells on open) + [3, 5200, 5220, 4940, 4962, 6172, 0, 0], # Exit on ROI (exits on open) [4, 4962, 4987, 4950, 4950, 6172, 0, 0], [5, 4950, 4975, 4925, 4950, 6172, 0, 0], ], @@ -393,16 +393,16 @@ tc18 = BTContainer( trades=[BTrade(exit_reason=ExitType.ROI, open_tick=1, close_tick=3)], ) -# Test 19: Buy, hold for 119 mins, then drop ROI to 1%, causing a sell in candle 3. +# Test 19: Enter, hold for 119 mins, then drop ROI to 1%, causing an exit in candle 3. # stop-loss: 10%, ROI: 10% (should not apply), -100% after 100 minutes (limits trade duration) -# uses calculated ROI (1%) as sell rate, otherwise identical to tc18 +# uses calculated ROI (1%) as exit rate, otherwise identical to tc18 tc19 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT [0, 5000, 5025, 4975, 4987, 6172, 1, 0], [1, 5000, 5025, 4975, 4987, 6172, 0, 0], [2, 4987, 5300, 4950, 5200, 6172, 0, 0], - [3, 5000, 5300, 4940, 4962, 6172, 0, 0], # Sell on ROI + [3, 5000, 5300, 4940, 4962, 6172, 0, 0], # Exit on ROI [4, 4962, 4987, 4950, 4950, 6172, 0, 0], [5, 4550, 4975, 4550, 4950, 6172, 0, 0], ], @@ -412,16 +412,16 @@ tc19 = BTContainer( trades=[BTrade(exit_reason=ExitType.ROI, open_tick=1, close_tick=3)], ) -# Test 20: Buy, hold for 119 mins, then drop ROI to 1%, causing a sell in candle 3. +# Test 20: Enter, hold for 119 mins, then drop ROI to 1%, causing an exit in candle 3. # stop-loss: 10%, ROI: 10% (should not apply), -100% after 100 minutes (limits trade duration) -# uses calculated ROI (1%) as sell rate, otherwise identical to tc18 +# uses calculated ROI (1%) as exit rate, otherwise identical to tc18 tc20 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT [0, 5000, 5025, 4975, 4987, 6172, 1, 0], [1, 5000, 5025, 4975, 4987, 6172, 0, 0], [2, 4987, 5300, 4950, 5200, 6172, 0, 0], - [3, 5200, 5300, 4940, 4962, 6172, 0, 0], # Sell on ROI + [3, 5200, 5300, 4940, 4962, 6172, 0, 0], # Exit on ROI [4, 4962, 4987, 4950, 4950, 6172, 0, 0], [5, 4925, 4975, 4925, 4950, 6172, 0, 0], ], @@ -434,7 +434,7 @@ tc20 = BTContainer( # Test 21: trailing_stop ROI collision. # Roi should trigger before Trailing stop - otherwise Trailing stop profits can be > ROI # which cannot happen in reality -# stop-loss: 10%, ROI: 4%, Trailing stop adjusted at the sell candle +# stop-loss: 10%, ROI: 4%, Trailing stop adjusted at the exit candle tc21 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -501,10 +501,10 @@ tc23 = BTContainer( # Test 24: trailing_stop Raises in candle 2 (does not trigger) # applying a positive trailing stop of 3% since stop_positive_offset is reached. -# ROI is changed after this to 4%, dropping ROI below trailing_stop_positive, causing a sell +# ROI is changed after this to 4%, dropping ROI below trailing_stop_positive, causing an exit # in the candle after the raised stoploss candle with ROI reason. # Stoploss would trigger in this candle too, but it's no longer relevant. -# stop-loss: 10%, ROI: 4%, stoploss adjusted candle 2, ROI adjusted in candle 3 (causing the sell) +# stop-loss: 10%, ROI: 4%, stoploss adjusted candle 2, ROI adjusted in candle 3 (causing the exit) tc24 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -524,16 +524,16 @@ tc24 = BTContainer( trades=[BTrade(exit_reason=ExitType.ROI, open_tick=1, close_tick=3)], ) -# Test 25: Sell with signal sell in candle 3 (stoploss also triggers on this candle) +# Test 25: Exit with exit signal in candle 3 (stoploss also triggers on this candle) # Stoploss at 1%. -# Stoploss wins over Sell-signal (because sell-signal is acted on in the next candle) +# Stoploss wins over exit-signal (because exit-signal is acted on in the next candle) tc25 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT [0, 5000, 5025, 4975, 4987, 6172, 1, 0], [1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle) [2, 4987, 5012, 4986, 4986, 6172, 0, 0], - [3, 5010, 5010, 4855, 5010, 6172, 0, 1], # Triggers stoploss + sellsignal + [3, 5010, 5010, 4855, 5010, 6172, 0, 1], # Triggers stoploss + exit-signal [4, 5010, 5010, 4977, 4995, 6172, 0, 0], [5, 4995, 4995, 4950, 4950, 6172, 0, 0], ], @@ -544,9 +544,9 @@ tc25 = BTContainer( trades=[BTrade(exit_reason=ExitType.STOP_LOSS, open_tick=1, close_tick=3)], ) -# Test 26: Sell with signal sell in candle 3 (stoploss also triggers on this candle) +# Test 26: Exit with exit signal in candle 3 (stoploss also triggers on this candle) # Stoploss at 1%. -# Sell-signal wins over stoploss +# Exit-signal wins over stoploss tc26 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -554,7 +554,7 @@ tc26 = BTContainer( [1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle) [2, 4987, 5012, 4986, 4986, 6172, 0, 0], [3, 5010, 5010, 4986, 5010, 6172, 0, 1], - [4, 5010, 5010, 4855, 4995, 6172, 0, 0], # Triggers stoploss + sellsignal acted on + [4, 5010, 5010, 4855, 4995, 6172, 0, 0], # Triggers stoploss + exit-signal acted on [5, 4995, 4995, 4950, 4950, 6172, 0, 0], ], stop_loss=-0.01, @@ -565,9 +565,9 @@ tc26 = BTContainer( ) # Test 27: (copy of test26 with leverage) -# Sell with signal sell in candle 3 (stoploss also triggers on this candle) +# Exit with exit signal in candle 3 (stoploss also triggers on this candle) # Stoploss at 1%. -# Sell-signal wins over stoploss +# exit-signal wins over stoploss tc27 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -575,7 +575,7 @@ tc27 = BTContainer( [1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle) [2, 4987, 5012, 4986, 4986, 6172, 0, 0], [3, 5010, 5010, 4986, 5010, 6172, 0, 1], - [4, 5010, 5010, 4855, 4995, 6172, 0, 0], # Triggers stoploss + sellsignal acted on + [4, 5010, 5010, 4855, 4995, 6172, 0, 0], # Triggers stoploss + exit-signal acted on [5, 4995, 4995, 4950, 4950, 6172, 0, 0], ], stop_loss=-0.05, @@ -587,9 +587,9 @@ tc27 = BTContainer( ) # Test 28: (copy of test26 with leverage and as short) -# Sell with signal sell in candle 3 (stoploss also triggers on this candle) +# Exit with exit signal in candle 3 (stoploss also triggers on this candle) # Stoploss at 1%. -# Sell-signal wins over stoploss +# Exit-signal wins over stoploss tc28 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -597,7 +597,7 @@ tc28 = BTContainer( [1, 5000, 5025, 4975, 4987, 6172, 0, 0, 0, 0], # enter trade (signal on last candle) [2, 4987, 5012, 4986, 4986, 6172, 0, 0, 0, 0], [3, 5010, 5010, 4986, 5010, 6172, 0, 0, 0, 1], - [4, 4990, 5010, 4855, 4995, 6172, 0, 0, 0, 0], # Triggers stoploss + sellsignal acted on + [4, 4990, 5010, 4855, 4995, 6172, 0, 0, 0, 0], # Triggers stoploss + exit-signal acted on [5, 4995, 4995, 4950, 4950, 6172, 0, 0, 0, 0], ], stop_loss=-0.05, @@ -607,16 +607,16 @@ tc28 = BTContainer( leverage=5.0, trades=[BTrade(exit_reason=ExitType.EXIT_SIGNAL, open_tick=1, close_tick=4, is_short=True)], ) -# Test 29: Sell with signal sell in candle 3 (ROI at signal candle) +# Test 29: Exit with exit signal in candle 3 (ROI at signal candle) # Stoploss at 10% (irrelevant), ROI at 5% (will trigger) -# Sell-signal wins over stoploss +# Exit-signal wins over stoploss tc29 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT [0, 5000, 5025, 4975, 4987, 6172, 1, 0], [1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle) [2, 4987, 5012, 4986, 4986, 6172, 0, 0], - [3, 5010, 5251, 4986, 5010, 6172, 0, 1], # Triggers ROI, sell-signal + [3, 5010, 5251, 4986, 5010, 6172, 0, 1], # Triggers ROI, exit-signal [4, 5010, 5010, 4855, 4995, 6172, 0, 0], [5, 4995, 4995, 4950, 4950, 6172, 0, 0], ], @@ -627,16 +627,16 @@ tc29 = BTContainer( trades=[BTrade(exit_reason=ExitType.ROI, open_tick=1, close_tick=3)], ) -# Test 30: Sell with signal sell in candle 3 (ROI at signal candle) -# Stoploss at 10% (irrelevant), ROI at 5% (will trigger) - Wins over Sell-signal +# Test 30: Exit with exit signal in candle 3 (ROI at signal candle) +# Stoploss at 10% (irrelevant), ROI at 5% (will trigger) - Wins over exit-signal tc30 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT [0, 5000, 5025, 4975, 4987, 6172, 1, 0], [1, 5000, 5025, 4975, 4987, 6172, 0, 0], # enter trade (signal on last candle) [2, 4987, 5012, 4986, 4986, 6172, 0, 0], - [3, 5010, 5012, 4986, 5010, 6172, 0, 1], # sell-signal - [4, 5010, 5251, 4855, 4995, 6172, 0, 0], # Triggers ROI, sell-signal acted on + [3, 5010, 5012, 4986, 5010, 6172, 0, 1], # exit-signal + [4, 5010, 5251, 4855, 4995, 6172, 0, 0], # Triggers ROI, exit-signal acted on [5, 4995, 4995, 4950, 4950, 6172, 0, 0], ], stop_loss=-0.10, @@ -888,7 +888,7 @@ tc41 = BTContainer( # Test 42: Custom-entry-price around candle low # Would cause immediate ROI exit, but since the trade was entered -# below open, we treat this as cheating, and delay the sell by 1 candle. +# below open, we treat this as cheating, and delay the exit by 1 candle. # details: https://github.com/freqtrade/freqtrade/issues/6261 tc42 = BTContainer( data=[ @@ -945,7 +945,7 @@ tc44 = BTContainer( ) # Test 45: Custom exit price above all candles -# causes sell signal timeout +# causes exit signal timeout tc45 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT @@ -964,7 +964,7 @@ tc45 = BTContainer( ) # Test 46: (Short of tc45) Custom short exit price above below candles -# causes sell signal timeout +# causes exit signal timeout tc46 = BTContainer( data=[ # D O H L C V EL XL ES Xs BT diff --git a/tests/optimize/test_hyperopt.py b/tests/optimize/test_hyperopt.py index 21f011a9b..bca0abacf 100644 --- a/tests/optimize/test_hyperopt.py +++ b/tests/optimize/test_hyperopt.py @@ -236,28 +236,6 @@ def test_start_not_installed(mocker, default_conf, import_fails) -> None: start_hyperopt(pargs) -def test_start_no_hyperopt_allowed(mocker, hyperopt_conf, caplog) -> None: - start_mock = MagicMock() - patched_configuration_load_config_file(mocker, hyperopt_conf) - mocker.patch("freqtrade.optimize.hyperopt.Hyperopt.start", start_mock) - patch_exchange(mocker) - - args = [ - "hyperopt", - "--config", - "config.json", - "--hyperopt", - "HyperoptTestSepFile", - "--hyperopt-loss", - "SharpeHyperOptLossDaily", - "--epochs", - "5", - ] - pargs = get_args(args) - with pytest.raises(OperationalException, match=r"Using separate Hyperopt files has been.*"): - start_hyperopt(pargs) - - def test_start_no_data(mocker, hyperopt_conf, tmp_path) -> None: hyperopt_conf["user_data_dir"] = tmp_path patched_configuration_load_config_file(mocker, hyperopt_conf) @@ -708,7 +686,7 @@ def test_print_json_spaces_all(mocker, hyperopt_conf, capsys) -> None: hyperopt_conf.update( { - "spaces": "all", + "spaces": ["all"], "hyperopt_jobs": 1, "print_json": True, } @@ -824,7 +802,7 @@ def test_print_json_spaces_roi_stoploss(mocker, hyperopt_conf, capsys) -> None: hyperopt_conf.update( { - "spaces": "roi stoploss", + "spaces": ["roi", "stoploss"], "hyperopt_jobs": 1, "print_json": True, } @@ -876,7 +854,7 @@ def test_simplified_interface_roi_stoploss(mocker, hyperopt_conf, capsys) -> Non ) patch_exchange(mocker) - hyperopt_conf.update({"spaces": "roi stoploss"}) + hyperopt_conf.update({"spaces": ["roi", "stoploss"]}) hyperopt = Hyperopt(hyperopt_conf) hyperopt.hyperopter.backtesting.strategy.advise_all_indicators = MagicMock() @@ -915,7 +893,7 @@ def test_simplified_interface_all_failed(mocker, hyperopt_conf, caplog) -> None: hyperopt_conf.update( { - "spaces": "all", + "spaces": ["all"], } ) @@ -969,7 +947,7 @@ def test_simplified_interface_buy(mocker, hyperopt_conf, capsys) -> None: ) patch_exchange(mocker) - hyperopt_conf.update({"spaces": "buy"}) + hyperopt_conf.update({"spaces": ["buy"]}) hyperopt = Hyperopt(hyperopt_conf) hyperopt.hyperopter.backtesting.strategy.advise_all_indicators = MagicMock() @@ -1025,7 +1003,7 @@ def test_simplified_interface_sell(mocker, hyperopt_conf, capsys) -> None: hyperopt_conf.update( { - "spaces": "sell", + "spaces": ["sell"], } ) @@ -1076,7 +1054,7 @@ def test_simplified_interface_failed(mocker, hyperopt_conf, space) -> None: patch_exchange(mocker) - hyperopt_conf.update({"spaces": space}) + hyperopt_conf.update({"spaces": [space]}) hyperopt = Hyperopt(hyperopt_conf) hyperopt.hyperopter.backtesting.strategy.advise_all_indicators = MagicMock() @@ -1132,7 +1110,9 @@ def test_in_strategy_auto_hyperopt(mocker, hyperopt_conf, tmp_path, fee) -> None @pytest.mark.filterwarnings("ignore::DeprecationWarning") -def test_in_strategy_auto_hyperopt_with_parallel(mocker, hyperopt_conf, tmp_path, fee) -> None: +def test_in_strategy_auto_hyperopt_with_parallel( + mocker, hyperopt_conf, tmp_path, fee, caplog +) -> None: mocker.patch(f"{EXMS}.validate_config", MagicMock()) mocker.patch(f"{EXMS}.get_fee", fee) mocker.patch(f"{EXMS}.reload_markets") @@ -1175,6 +1155,8 @@ def test_in_strategy_auto_hyperopt_with_parallel(mocker, hyperopt_conf, tmp_path assert len(list(buy_rsi_range)) == 51 hyperopt.start() + # Test logs from parallel workers are shown. + assert log_has("Test: Bot loop started", caplog) def test_in_strategy_auto_hyperopt_per_epoch(mocker, hyperopt_conf, tmp_path, fee) -> None: diff --git a/tests/optimize/test_optimize_reports.py b/tests/optimize/test_optimize_reports.py index 3cd89245b..b37080f43 100644 --- a/tests/optimize/test_optimize_reports.py +++ b/tests/optimize/test_optimize_reports.py @@ -634,11 +634,30 @@ def test_generate_periodic_breakdown_stats(testdatadir): res = generate_periodic_breakdown_stats([], "day") assert res == [] + # Test weekday + reswd = generate_periodic_breakdown_stats(bt_data, "weekday") + assert isinstance(reswd, list) + assert len(reswd) == 7 + assert reswd[0]["date"] == "Monday" + assert reswd[0]["date_ts"] == 0 + assert reswd[1]["date"] == "Tuesday" + assert reswd[2]["date"] == "Wednesday" + assert reswd[3]["date"] == "Thursday" + assert reswd[4]["date"] == "Friday" + assert reswd[5]["date"] == "Saturday" + assert reswd[6]["date"] == "Sunday" + monday = reswd[0] + assert "draws" in monday + assert "losses" in monday + assert "wins" in monday + assert "profit_abs" in monday + def test__get_resample_from_period(): assert _get_resample_from_period("day") == "1d" assert _get_resample_from_period("week") == "1W-MON" assert _get_resample_from_period("month") == "1ME" + assert _get_resample_from_period("weekday") == "weekday" with pytest.raises(ValueError, match=r"Period noooo is not supported."): _get_resample_from_period("noooo") diff --git a/tests/persistence/test_migrations.py b/tests/persistence/test_migrations.py index 677ba9014..daaf72b4a 100644 --- a/tests/persistence/test_migrations.py +++ b/tests/persistence/test_migrations.py @@ -441,7 +441,8 @@ def test_migrate_pairlocks(mocker, default_conf, fee, caplog): "dialect", [ "sqlite", - "postgresql", + "postgresql", # test for psycopg2 compat + "postgresql.psycopg", # test for psycopg3 compat "mysql", "oracle", "mssql", diff --git a/tests/rpc/test_rpc.py b/tests/rpc/test_rpc.py index 03cdaa0b6..5dae36f10 100644 --- a/tests/rpc/test_rpc.py +++ b/tests/rpc/test_rpc.py @@ -848,11 +848,11 @@ def test_rpc_force_exit(default_conf, ticker, fee, mocker) -> None: freqtradebot.state = State.STOPPED with pytest.raises(RPCException, match=r".*trader is not running*"): - rpc._rpc_force_exit(None) + rpc._rpc_force_exit("22222") freqtradebot.state = State.RUNNING with pytest.raises(RPCException, match=r".*invalid argument*"): - rpc._rpc_force_exit(None) + rpc._rpc_force_exit("22222") msg = rpc._rpc_force_exit("all") assert msg == {"result": "Created exit orders for all open trades."} @@ -867,7 +867,7 @@ def test_rpc_force_exit(default_conf, ticker, fee, mocker) -> None: freqtradebot.state = State.STOPPED with pytest.raises(RPCException, match=r".*trader is not running*"): - rpc._rpc_force_exit(None) + rpc._rpc_force_exit("22222") with pytest.raises(RPCException, match=r".*trader is not running*"): rpc._rpc_force_exit("all") diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 88437fd03..b4a7af26b 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -5,6 +5,7 @@ Unit test file for rpc/api_server.py import asyncio import logging import time +from copy import deepcopy from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import ANY, MagicMock, PropertyMock @@ -1860,7 +1861,42 @@ def test_api_forceexit(botclient, mocker, ticker, fee, markets): assert trade.is_open is False -def test_api_pair_candles(botclient, ohlcv_history): +def gen_annotation_params(): + area_annotation = { + "type": "area", + "start": "2024-01-01 15:00:00", + "end": "2024-01-01 16:00:00", + "y_start": 94000.2, + "y_end": 98000, + "color": "", + "label": "some label", + } + line_annotation = { + "type": "line", + "start": "2024-01-01 15:00:00", + "end": "2024-01-01 16:00:00", + "y_start": 99000.2, + "y_end": 98000, + "color": "", + "label": "some label", + "width": 2, + "line_style": "dashed", + } + + line_wrong = deepcopy(line_annotation) + line_wrong["line_style"] = "dashed2222" + return [ + ([area_annotation], [area_annotation]), # Only area + ([line_annotation], [line_annotation]), # Only line + ([area_annotation, line_annotation], [area_annotation, line_annotation]), # Both together + ([], []), # Empty + ([line_wrong], []), # Invalid line + ([area_annotation, line_wrong], [area_annotation]), # Invalid line + ] + + +@pytest.mark.parametrize("annotations,expected", gen_annotation_params()) +def test_api_pair_candles(botclient, ohlcv_history, annotations, expected): ftbot, client = botclient timeframe = "5m" amount = 3 @@ -1892,18 +1928,7 @@ def test_api_pair_candles(botclient, ohlcv_history): ohlcv_history["exit_short"] = 0 ftbot.dataprovider._set_cached_df("XRP/BTC", timeframe, ohlcv_history, CandleType.SPOT) - fake_plot_annotations = [ - { - "type": "area", - "start": "2024-01-01 15:00:00", - "end": "2024-01-01 16:00:00", - "y_start": 94000.2, - "y_end": 98000, - "color": "", - "label": "some label", - } - ] - plot_annotations_mock = MagicMock(return_value=fake_plot_annotations) + plot_annotations_mock = MagicMock(return_value=annotations) ftbot.strategy.plot_annotations = plot_annotations_mock for call in ("get", "post"): plot_annotations_mock.reset_mock() @@ -1936,7 +1961,7 @@ def test_api_pair_candles(botclient, ohlcv_history): assert resp["data_start_ts"] == 1511686200000 assert resp["data_stop"] == "2017-11-26 09:00:00+00:00" assert resp["data_stop_ts"] == 1511686800000 - assert resp["annotations"] == fake_plot_annotations + assert resp["annotations"] == expected assert plot_annotations_mock.call_count == 1 assert isinstance(resp["columns"], list) base_cols = { diff --git a/tests/strategy/strats/hyperoptable_strategy.py b/tests/strategy/strats/hyperoptable_strategy.py index 3a2b210be..c5b23a52a 100644 --- a/tests/strategy/strats/hyperoptable_strategy.py +++ b/tests/strategy/strats/hyperoptable_strategy.py @@ -1,5 +1,7 @@ # pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement +import logging + from pandas import DataFrame from strategy_test_v3 import StrategyTestV3 @@ -7,6 +9,9 @@ import freqtrade.vendor.qtpylib.indicators as qtpylib from freqtrade.strategy import BooleanParameter, DecimalParameter, IntParameter, RealParameter +logger = logging.getLogger(__name__) + + class HyperoptableStrategy(StrategyTestV3): """ Default Strategy provided by freqtrade bot. @@ -16,6 +21,7 @@ class HyperoptableStrategy(StrategyTestV3): for samples and inspiration. """ + INTERFACE_VERSION = 3 buy_params = { "buy_rsi": 35, # Intentionally not specified, so "default" is tested @@ -54,34 +60,13 @@ class HyperoptableStrategy(StrategyTestV3): def bot_loop_start(self, **kwargs): self.bot_loop_started = True + logger.info("Test: Bot loop started") def bot_start(self, **kwargs) -> None: - """ - Parameters can also be defined here ... - """ self.bot_started = True self.buy_rsi = IntParameter([0, 50], default=30, space="buy") - def informative_pairs(self): - """ - Define additional, informative pair/interval combinations to be cached from the exchange. - These pair/interval combinations are non-tradeable, unless they are part - of the whitelist as well. - For more information, please consult the documentation - :return: List of tuples in the format (pair, interval) - Sample: return [("ETH/USDT", "5m"), - ("BTC/USDT", "15m"), - ] - """ - return [] - - def populate_buy_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: - """ - Based on TA indicators, populates the buy signal for the given dataframe - :param dataframe: DataFrame - :param metadata: Additional information, like the currently traded pair - :return: DataFrame with buy column - """ + def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[ ( (dataframe["rsi"] < self.buy_rsi.value) @@ -90,18 +75,12 @@ class HyperoptableStrategy(StrategyTestV3): & (dataframe["plus_di"] > self.buy_plusdi.value) ) | ((dataframe["adx"] > 65) & (dataframe["plus_di"] > self.buy_plusdi.value)), - "buy", + "enter_long", ] = 1 return dataframe - def populate_sell_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: - """ - Based on TA indicators, populates the sell signal for the given dataframe - :param dataframe: DataFrame - :param metadata: Additional information, like the currently traded pair - :return: DataFrame with sell column - """ + def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: dataframe.loc[ ( ( @@ -112,6 +91,6 @@ class HyperoptableStrategy(StrategyTestV3): & (dataframe["minus_di"] > 0) ) | ((dataframe["adx"] > 70) & (dataframe["minus_di"] > self.sell_minusdi.value)), - "sell", + "exit_long", ] = 1 return dataframe diff --git a/tests/strategy/test_interface.py b/tests/strategy/test_interface.py index 3d6f5c752..b3ee0c398 100644 --- a/tests/strategy/test_interface.py +++ b/tests/strategy/test_interface.py @@ -147,14 +147,14 @@ def test_get_signal_exception_valueerror(mocker, caplog, ohlcv_history): mocker.patch.object(_STRATEGY.dp, "ohlcv", return_value=ohlcv_history) mocker.patch.object(_STRATEGY, "_analyze_ticker_internal", side_effect=ValueError("xyz")) _STRATEGY.analyze_pair("foo") - assert log_has_re(r"Strategy caused the following exception: xyz.*", caplog) + assert log_has_re(r"Strategy caused the following exception: ValueError\('xyz'\).*", caplog) caplog.clear() mocker.patch.object( _STRATEGY, "analyze_ticker", side_effect=Exception("invalid ticker history ") ) _STRATEGY.analyze_pair("foo") - assert log_has_re(r"Strategy caused the following exception: xyz.*", caplog) + assert log_has_re(r"Strategy caused the following exception: ValueError\('xyz'\).*", caplog) def test_get_signal_old_dataframe(default_conf, mocker, caplog, ohlcv_history): diff --git a/tests/strategy/test_strategy_helpers.py b/tests/strategy/test_strategy_helpers.py index 53e6501cf..92216db89 100644 --- a/tests/strategy/test_strategy_helpers.py +++ b/tests/strategy/test_strategy_helpers.py @@ -34,7 +34,8 @@ def test_merge_informative_pair(): assert "volume_1h" in result.columns assert result["volume"].equals(data["volume"]) - # First 3 rows are empty + # First 3 rows are empty. + # Pre-fillup doesn't happen as there is no prior candlw in the informative dataframe assert result.iloc[0]["date_1h"] is pd.NaT assert result.iloc[1]["date_1h"] is pd.NaT assert result.iloc[2]["date_1h"] is pd.NaT @@ -109,13 +110,37 @@ def test_merge_informative_pair_monthly(): # Candle is empty, as the start-date did fail. candle3 = result.loc[(result["date"] == "2022-11-30T22:00:00.000Z")] assert candle3.iloc[0]["date"] == pd.Timestamp("2022-11-30T22:00:00.000Z") - assert candle3.iloc[0]["date_1M"] is pd.NaT + # Merged on prior month + assert candle3.iloc[0]["date_1M"] == pd.Timestamp("2022-10-01T00:00:00.000Z") # First candle with 1M data merged. candle4 = result.loc[(result["date"] == "2022-11-30T23:00:00.000Z")] assert candle4.iloc[0]["date"] == pd.Timestamp("2022-11-30T23:00:00.000Z") assert candle4.iloc[0]["date_1M"] == pd.Timestamp("2022-11-01T00:00:00.000Z") + # Very first candle in the result dataframe + # Merged the latest informative candle before the start-date + candle5 = result.iloc[0] + assert candle5["date"] == pd.Timestamp("2022-11-28T00:00:00.000Z") + assert candle5["date_1M"] == pd.Timestamp("2022-10-01T00:00:00.000Z") + + +def test_merge_informative_pair_no_overlap(): + # Covers roughly a day + data = generate_test_data("1m", 1440, "2022-11-28") + # Data stops WAY before the main data starts + informative = generate_test_data("1h", 40, "2022-11-01") + + result = merge_informative_pair(data, informative, "1m", "1h", ffill=True) + + assert isinstance(result, pd.DataFrame) + assert len(result) == len(data) + assert "date" in result.columns + assert result["date"].equals(data["date"]) + assert "date_1h" in result.columns + # If there's no overlap, forward filling should not fill anything + assert result["date_1h"].isnull().all() + def test_merge_informative_pair_same(): data = generate_test_data("15m", 40) diff --git a/tests/test_misc.py b/tests/test_misc.py index f213d6759..bd118740e 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -168,12 +168,12 @@ def test_plural() -> None: "conn_url,expected", [ ( - "postgresql+psycopg2://scott123:scott123@host:1245/dbname", - "postgresql+psycopg2://scott123:*****@host:1245/dbname", + "postgresql+psycopg://scott123:scott123@host:1245/dbname", + "postgresql+psycopg://scott123:*****@host:1245/dbname", ), ( - "postgresql+psycopg2://scott123:scott123@host.name.com/dbname", - "postgresql+psycopg2://scott123:*****@host.name.com/dbname", + "postgresql+psycopg://scott123:scott123@host.name.com/dbname", + "postgresql+psycopg://scott123:*****@host.name.com/dbname", ), ( "mariadb+mariadbconnector://app_user:Password123!@127.0.0.1:3306/company", diff --git a/tests/test_wallets.py b/tests/test_wallets.py index 002e27c18..a7f83ebf0 100644 --- a/tests/test_wallets.py +++ b/tests/test_wallets.py @@ -191,6 +191,8 @@ def test_get_trade_stake_amount_unlimited_amount( (1000, None, 1000, 10000, None, 1000), # No min-stake-amount could be determined # Rebuy - resulting in too high stake amount. Adjusting. (2000, 15, 2000, 3000, 1500, 1500), + ("undefined", 15, 100, 10000, None, 0), # string stake amount + ("22.2", 15, 100, 10000, None, 0), # string stake amount but as float ], ) def test_validate_stake_amount(