diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 92b683381..3a7f514c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: strategy: matrix: os: [ "ubuntu-22.04", "ubuntu-24.04" ] - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -38,7 +38,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0 + uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1 with: activate-environment: true enable-cache: true @@ -148,7 +148,7 @@ jobs: mypy freqtrade scripts tests - name: Discord notification - uses: rjstone/discord-webhook-notify@a975c85e53c8ea07b0b10f8461b0a90059816dcf #v2.1.1 + uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: error @@ -159,11 +159,8 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ "macos-13", "macos-14", "macos-15" ] - python-version: ["3.10", "3.11", "3.12", "3.13"] - exclude: - - os: macos-13 - python-version: "3.13" + os: [ "macos-14", "macos-15" ] + python-version: ["3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -177,7 +174,7 @@ jobs: check-latest: true - name: Install uv - uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0 + uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1 with: activate-environment: true enable-cache: true @@ -278,7 +275,7 @@ jobs: mypy freqtrade scripts - name: Discord notification - uses: rjstone/discord-webhook-notify@a975c85e53c8ea07b0b10f8461b0a90059816dcf #v2.1.1 + uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: info @@ -291,7 +288,7 @@ jobs: strategy: matrix: os: [ windows-latest ] - python-version: ["3.10", "3.11", "3.12", "3.13"] + python-version: ["3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -304,7 +301,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0 + uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1 with: activate-environment: true enable-cache: true @@ -372,7 +369,7 @@ jobs: shell: powershell - name: Discord notification - uses: rjstone/discord-webhook-notify@a975c85e53c8ea07b0b10f8461b0a90059816dcf #v2.1.1 + uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: error @@ -430,7 +427,7 @@ jobs: mkdocs build - name: Discord notification - uses: rjstone/discord-webhook-notify@a975c85e53c8ea07b0b10f8461b0a90059816dcf #v2.1.1 + uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: error @@ -452,7 +449,7 @@ jobs: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@f0ec1fc3b38f5e7cd731bb6ce540c5af426746bb # v6.1.0 + uses: astral-sh/setup-uv@bd01e18f51369d5a26f1651c3cb451d3417e3bba # v6.3.1 with: activate-environment: true enable-cache: true @@ -518,7 +515,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Discord notification - uses: rjstone/discord-webhook-notify@a975c85e53c8ea07b0b10f8461b0a90059816dcf #v2.1.1 + uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1 if: always() && steps.check.outputs.has-permission && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: info diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index d8fabf456..d3fbb498a 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -55,20 +55,12 @@ jobs: run: | echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin - # We need docker experimental to pull the ARM image. - - name: Switch docker to experimental - run: | - docker version -f '{{.Server.Experimental}}' - echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json - sudo systemctl restart docker - docker version -f '{{.Server.Experimental}}' - - name: Set up QEMU uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 #v3.10.0 + uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 #v3.11.1 - name: Available platforms run: echo ${PLATFORMS} @@ -124,7 +116,7 @@ jobs: build_helpers/publish_docker_arm64.sh - name: Discord notification - uses: rjstone/discord-webhook-notify@a975c85e53c8ea07b0b10f8461b0a90059816dcf #v2.1.1 + uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1 if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) && (github.event_name != 'schedule') with: severity: info diff --git a/.github/workflows/zizmor.yml b/.github/workflows/zizmor.yml new file mode 100644 index 000000000..0cf9b3a30 --- /dev/null +++ b/.github/workflows/zizmor.yml @@ -0,0 +1,29 @@ +name: GitHub Actions Security Analysis with zizmor 🌈 + +on: + push: + branches: + - develop + - stable + pull_request: + branches: + - develop + - stable + +permissions: {} + +jobs: + zizmor: + runs-on: ubuntu-latest + permissions: + security-events: write + # contents: read # only needed for private repos + # actions: read # only needed for private repos + steps: + - name: Checkout repository + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + persist-credentials: false + + - name: Run zizmor 🌈 + uses: zizmorcore/zizmor-action@f52a838cfabf134edcbaa7c8b3677dde20045018 # v0.1.1 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 7c6114fa7..081056105 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -14,14 +14,14 @@ repos: additional_dependencies: ["python-rapidjson", "jsonschema"] - repo: https://github.com/pycqa/flake8 - rev: "7.2.0" + rev: "7.3.0" hooks: - id: flake8 additional_dependencies: [Flake8-pyproject] # stages: [push] - repo: https://github.com/pre-commit/mirrors-mypy - rev: "v1.16.0" + rev: "v1.16.1" hooks: - id: mypy exclude: build_helpers @@ -31,6 +31,7 @@ repos: - types-requests==2.32.4.20250611 - types-tabulate==0.9.0.20241207 - types-python-dateutil==2.9.0.20250516 + - scipy-stubs==1.16.0.2 - SQLAlchemy==2.0.41 # stages: [push] @@ -43,7 +44,7 @@ repos: - repo: https://github.com/charliermarsh/ruff-pre-commit # Ruff version. - rev: 'v0.11.13' + rev: 'v0.12.2' hooks: - id: ruff - id: ruff-format @@ -82,6 +83,6 @@ repos: # Ensure github actions remain safe - repo: https://github.com/woodruffw/zizmor-pre-commit - rev: v1.9.0 + rev: v1.11.0 hooks: - id: zizmor diff --git a/Dockerfile b/Dockerfile index 64cb72a21..4304729c8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,10 @@ -FROM python:3.13.5-slim-bookworm as base +FROM python:3.13.5-slim-bookworm AS base # Setup env -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV PYTHONDONTWRITEBYTECODE 1 -ENV PYTHONFAULTHANDLER 1 +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONFAULTHANDLER=1 ENV PATH=/home/ftuser/.local/bin:$PATH ENV FT_APP_ENV="docker" @@ -21,7 +21,7 @@ RUN mkdir /freqtrade \ WORKDIR /freqtrade # Install dependencies -FROM base as python-deps +FROM base AS python-deps RUN apt-get update \ && apt-get -y install build-essential libssl-dev git libffi-dev libgfortran5 pkg-config cmake gcc \ && apt-get clean \ @@ -30,7 +30,7 @@ RUN apt-get update \ # Install TA-lib COPY build_helpers/* /tmp/ RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib* -ENV LD_LIBRARY_PATH /usr/local/lib +ENV LD_LIBRARY_PATH=/usr/local/lib # Install dependencies COPY --chown=ftuser:ftuser requirements.txt requirements-hyperopt.txt /freqtrade/ @@ -39,9 +39,9 @@ RUN pip install --user --no-cache-dir "numpy<3.0" \ && pip install --user --no-cache-dir -r requirements-hyperopt.txt # Copy dependencies to runtime-image -FROM base as runtime-image +FROM base AS runtime-image COPY --from=python-deps /usr/local/lib /usr/local/lib -ENV LD_LIBRARY_PATH /usr/local/lib +ENV LD_LIBRARY_PATH=/usr/local/lib COPY --from=python-deps --chown=ftuser:ftuser /home/ftuser/.local /home/ftuser/.local diff --git a/README.md b/README.md index f56b44887..7fa99d54b 100644 --- a/README.md +++ b/README.md @@ -64,7 +64,7 @@ Please find the complete documentation on the [freqtrade website](https://www.fr ## Features -- [x] **Based on Python 3.10+**: For botting on any operating system - Windows, macOS and Linux. +- [x] **Based on Python 3.11+**: For botting on any operating system - Windows, macOS and Linux. - [x] **Persistence**: Persistence is achieved through sqlite. - [x] **Dry-run**: Run the bot without paying money. - [x] **Backtesting**: Run a simulation of your buy/sell strategy. @@ -219,7 +219,7 @@ To run this bot we recommend you a cloud instance with a minimum of: ### Software requirements -- [Python >= 3.10](http://docs.python-guide.org/en/latest/starting/installation/) +- [Python >= 3.11](http://docs.python-guide.org/en/latest/starting/installation/) - [pip](https://pip.pypa.io/en/stable/installing/) - [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - [TA-Lib](https://ta-lib.github.io/ta-lib-python/) diff --git a/build_helpers/pre_commit_update.py b/build_helpers/pre_commit_update.py index 9d313efd2..9e49aa7c2 100644 --- a/build_helpers/pre_commit_update.py +++ b/build_helpers/pre_commit_update.py @@ -16,10 +16,12 @@ with require_dev.open("r") as rfile: with require.open("r") as rfile: requirements.extend(rfile.readlines()) -# Extract types only -type_reqs = [ - r.strip("\n") for r in requirements if r.startswith("types-") or r.startswith("SQLAlchemy") -] +# Extract relevant types only +supported = ("types-", "SQLAlchemy", "scipy-stubs") + +# Find relevant dependencies +# Only keep the first part of the line up to the first space +type_reqs = [r.strip("\n").split()[0] for r in requirements if r.startswith(supported)] with pre_commit_file.open("r") as file: f = yaml.load(file, Loader=yaml.SafeLoader) diff --git a/config_examples/config_binance.example.json b/config_examples/config_binance.example.json index 6c513f064..ffb364ffd 100644 --- a/config_examples/config_binance.example.json +++ b/config_examples/config_binance.example.json @@ -2,7 +2,7 @@ "$schema": "https://schema.freqtrade.io/schema.json", "max_open_trades": 3, "stake_currency": "USDT", - "stake_amount": 0.05, + "stake_amount": 30, "tradable_balance_ratio": 0.99, "fiat_display_currency": "USD", "timeframe": "5m", diff --git a/docker/Dockerfile.armhf b/docker/Dockerfile.armhf index a7edd5e76..9b659ae7d 100644 --- a/docker/Dockerfile.armhf +++ b/docker/Dockerfile.armhf @@ -1,10 +1,10 @@ -FROM python:3.11.13-slim-bookworm as base +FROM python:3.11.13-slim-bookworm AS base # Setup env -ENV LANG C.UTF-8 -ENV LC_ALL C.UTF-8 -ENV PYTHONDONTWRITEBYTECODE 1 -ENV PYTHONFAULTHANDLER 1 +ENV LANG=C.UTF-8 +ENV LC_ALL=C.UTF-8 +ENV PYTHONDONTWRITEBYTECODE=1 +ENV PYTHONFAULTHANDLER=1 ENV PATH=/home/ftuser/.local/bin:$PATH ENV FT_APP_ENV="docker" @@ -22,7 +22,7 @@ RUN mkdir /freqtrade \ WORKDIR /freqtrade # Install dependencies -FROM base as python-deps +FROM base AS python-deps RUN apt-get update \ && apt-get -y install build-essential libssl-dev libffi-dev libgfortran5 pkg-config cmake gcc \ && apt-get clean \ @@ -39,9 +39,9 @@ RUN pip install --user --no-cache-dir "numpy<3.0" \ && pip install --user --no-cache-dir -r requirements.txt # Copy dependencies to runtime-image -FROM base as runtime-image +FROM base AS runtime-image COPY --from=python-deps /usr/local/lib /usr/local/lib -ENV LD_LIBRARY_PATH /usr/local/lib +ENV LD_LIBRARY_PATH=/usr/local/lib COPY --from=python-deps --chown=ftuser:ftuser /home/ftuser/.local /home/ftuser/.local diff --git a/docs/developer.md b/docs/developer.md index d66f615fd..b0cf21398 100644 --- a/docs/developer.md +++ b/docs/developer.md @@ -304,6 +304,13 @@ The `IProtection` parent class provides a helper method for this in `calculate_l Most exchanges supported by CCXT should work out of the box. +If you need to implement a specific exchange class, these are found in the `freqtrade/exchange` source folder. You'll also need to add the import to `freqtrade/exchange/__init__.py` to make the loading logic aware of the new exchange. +We recommend looking at existing exchange implementations to get an idea of what might be required. + +!!! Warning + Implementing and testing an exchange can be a lot of trial and error, so please bear this in mind. + You should also have some development experience, as this is not a beginner task. + To quickly test the public endpoints of an exchange, add a configuration for your exchange to `tests/exchange_online/conftest.py` and run these tests with `pytest --longrun tests/exchange_online/test_ccxt_compat.py`. Completing these tests successfully a good basis point (it's a requirement, actually), however these won't guarantee correct exchange functioning, as this only tests public endpoints, but no private endpoint (like generate order or similar). diff --git a/docs/index.md b/docs/index.md index b1a08de0f..839a32f58 100644 --- a/docs/index.md +++ b/docs/index.md @@ -5,10 +5,10 @@ [![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop) [![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability) - -Star -Fork -Download + +[:octicons-star-16: Star](https://github.com/freqtrade/freqtrade){ .md-button .md-button--sm } +[:octicons-repo-forked-16: Fork](https://github.com/freqtrade/freqtrade/fork){ .md-button .md-button--sm } +[:octicons-download-16: Download](https://github.com/freqtrade/freqtrade/archive/stable.zip){ .md-button .md-button--sm } ## Introduction @@ -87,7 +87,7 @@ To run this bot we recommend you a linux cloud instance with a minimum of: Alternatively -- Python 3.10+ +- Python 3.11+ - pip (pip3) - git - TA-Lib diff --git a/docs/installation.md b/docs/installation.md index b835498d0..564b87dfb 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.10 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. + 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" @@ -42,7 +42,7 @@ These requirements apply to both [Script Installation](#script-installation) and ### Install guide -* [Python >= 3.10](http://docs.python-guide.org/en/latest/starting/installation/) +* [Python >= 3.11](http://docs.python-guide.org/en/latest/starting/installation/) * [pip](https://pip.pypa.io/en/stable/installing/) * [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) * [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended) @@ -54,7 +54,7 @@ We've included/collected install instructions for Ubuntu, MacOS, and Windows. Th OS Specific steps are listed first, the common section below is necessary for all systems. !!! Note - Python3.10 or higher and the corresponding pip are assumed to be available. + Python3.11 or higher and the corresponding pip are assumed to be available. === "Debian/Ubuntu" #### Install necessary dependencies @@ -179,7 +179,7 @@ You can as well update, configure and reset the codebase of your bot with `./scr ** --install ** With this option, the script will install the bot and most dependencies: -You will need to have git and python3.10+ installed beforehand for this to work. +You will need to have git and python3.11+ installed beforehand for this to work. * Mandatory software as: `ta-lib` * Setup your virtualenv under `.venv/` diff --git a/docs/overrides/main.html b/docs/overrides/main.html index cba627ead..4b53d3c57 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -37,7 +37,6 @@ {{ super() }} - diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index abf4b8048..3651abe56 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,7 +1,7 @@ -markdown==3.8 +markdown==3.8.2 mkdocs==1.6.1 -mkdocs-material==9.6.14 +mkdocs-material==9.6.15 mdx_truly_sane_lists==1.3 -pymdown-extensions==10.15 +pymdown-extensions==10.16 jinja2==3.1.6 mike==2.1.3 diff --git a/docs/strategy-advanced.md b/docs/strategy-advanced.md index 8bb23c5da..6e77d4ccb 100644 --- a/docs/strategy-advanced.md +++ b/docs/strategy-advanced.md @@ -174,17 +174,27 @@ class AwesomeStrategy(IStrategy): ## Enter Tag -When your strategy has multiple buy signals, you can name the signal that triggered. -Then you can access your buy signal on `custom_exit` +When your strategy has multiple entry signals, you can name the signal that triggered. +Then you can access your entry signal on `custom_exit` ```python def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: + dataframe["enter_tag"] = "" + signal_rsi = (qtpylib.crossed_above(dataframe["rsi"], 35)) + signal_bblower = (dataframe["bb_lowerband"] < dataframe["close"]) + # Additional conditions dataframe.loc[ ( - (dataframe['rsi'] < 35) & - (dataframe['volume'] > 0) - ), - ['enter_long', 'enter_tag']] = (1, 'buy_signal_rsi') + signal_rsi + | signal_bblower + # ... additional signals to enter a long position + ) + & (dataframe["volume"] > 0) + , "enter_long" + ] = 1 + # Concatenate the tags so all signals are kept + dataframe.loc[signal_rsi, "enter_tag"] += "long_signal_rsi " + dataframe.loc[signal_bblower, "enter_tag"] += "long_signal_bblower " return dataframe @@ -192,14 +202,17 @@ def custom_exit(self, pair: str, trade: Trade, current_time: datetime, current_r current_profit: float, **kwargs): dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe) last_candle = dataframe.iloc[-1].squeeze() - if trade.enter_tag == 'buy_signal_rsi' and last_candle['rsi'] > 80: - return 'sell_signal_rsi' + if "long_signal_rsi" in trade.enter_tag and last_candle["rsi"] > 80: + return "exit_signal_rsi" + if "long_signal_bblower" in trade.enter_tag and last_candle["high"] > last_candle["bb_upperband"]: + return "exit_signal_bblower" + # ... return None ``` !!! Note - `enter_tag` is limited to 100 characters, remaining data will be truncated. + `enter_tag` is limited to 255 characters, remaining data will be truncated. !!! Warning There is only one `enter_tag` column, which is used for both long and short trades. @@ -213,17 +226,27 @@ Similar to [Entry Tagging](#enter-tag), you can also specify an exit tag. ``` python def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame: + dataframe["exit_tag"] = "" + rsi_exit_signal = (dataframe["rsi"] > 70) + ema_exit_signal = (dataframe["ema20"] < dataframe["ema50"]) + # Additional conditions dataframe.loc[ ( - (dataframe['rsi'] > 70) & - (dataframe['volume'] > 0) - ), - ['exit_long', 'exit_tag']] = (1, 'exit_rsi') + rsi_exit_signal + | ema_exit_signal + # ... additional signals to exit a long position + ) & + (dataframe["volume"] > 0) + , + "exit_long"] = 1 + # Concatenate the tags so all signals are kept + dataframe.loc[rsi_exit_signal, "exit_tag"] += "exit_signal_rsi " + dataframe.loc[rsi_exit_signal2, "exit_tag"] += "exit_signal_rsi " return dataframe ``` -The provided exit-tag is then used as sell-reason - and shown as such in backtest results. +The provided exit-tag is then used as exit-reason - and shown as such in backtest results. !!! Note `exit_reason` is limited to 100 characters, remaining data will be truncated. diff --git a/docs/stylesheets/ft.extra.css b/docs/stylesheets/ft.extra.css index 930463ca8..398610d4f 100644 --- a/docs/stylesheets/ft.extra.css +++ b/docs/stylesheets/ft.extra.css @@ -19,3 +19,31 @@ #available-endpoints ~ .md-typeset__scrollwrap .md-typeset__table th:first-of-type { width: 35% !important; } + + +.md-typeset .md-button--sm { + padding: 0.2em 1em; + font-size: 12px; + font-weight: 600; + background-color: #f6f8fa; + color: #24292f; + border: 1px solid #d0d7de; + border-radius: 0.25em; + text-decoration: none; + display: inline-block; + transition: all 0.2s ease; + cursor: pointer; +} + +.md-typeset .md-button--sm:hover { + background-color: #e5eaee; + border-color: #d1d9e0; + text-decoration: none; + color: #24292f; +} + +.md-typeset .md-button--sm:active { + background-color: #ebecf0; + border-color: #afb8c1; + box-shadow: inset 0 1px 0 rgba(175, 184, 193, 0.2); +} diff --git a/docs/windows_installation.md b/docs/windows_installation.md index 936124b05..35a3d4441 100644 --- a/docs/windows_installation.md +++ b/docs/windows_installation.md @@ -5,7 +5,7 @@ We **strongly** recommend that Windows users use [Docker](docker_quickstart.md) If that is not possible, try using the Windows Linux subsystem (WSL) - for which the Ubuntu instructions should work. Otherwise, please follow the instructions below. -All instructions assume that python 3.10+ is installed and available. +All instructions assume that python 3.11+ is installed and available. ## Clone the git repository @@ -42,7 +42,7 @@ cd freqtrade Install ta-lib according to the [ta-lib documentation](https://github.com/TA-Lib/ta-lib-python#windows). -As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), Freqtrade provides these dependencies (in the binary wheel format) for the latest 3 Python versions (3.10, 3.11, 3.12 and 3.13) and for 64bit Windows. +As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), Freqtrade provides these dependencies (in the binary wheel format) for the latest 3 Python versions (3.11, 3.12 and 3.13) and for 64bit Windows. These Wheels are also used by CI running on windows, and are therefore tested together with freqtrade. Other versions must be downloaded from the above link. diff --git a/freqtrade/__init__.py b/freqtrade/__init__.py index 1f30f944f..94874a650 100644 --- a/freqtrade/__init__.py +++ b/freqtrade/__init__.py @@ -1,6 +1,6 @@ """Freqtrade bot""" -__version__ = "2025.6-dev" +__version__ = "2025.7-dev" if "dev" in __version__: from pathlib import Path diff --git a/freqtrade/__main__.py b/freqtrade/__main__.py index caa26ce0a..06dc49bbf 100755 --- a/freqtrade/__main__.py +++ b/freqtrade/__main__.py @@ -3,7 +3,7 @@ __main__.py for Freqtrade To launch Freqtrade as a module -> python -m freqtrade (with Python >= 3.10) +> python -m freqtrade (with Python >= 3.11) """ from freqtrade import main diff --git a/freqtrade/configuration/__init__.py b/freqtrade/configuration/__init__.py index aa06a70c9..cf8479919 100644 --- a/freqtrade/configuration/__init__.py +++ b/freqtrade/configuration/__init__.py @@ -1,6 +1,6 @@ # flake8: noqa: F401 -from freqtrade.configuration.config_secrets import sanitize_config +from freqtrade.configuration.config_secrets import remove_exchange_credentials, sanitize_config from freqtrade.configuration.config_setup import setup_utils_configuration from freqtrade.configuration.config_validation import validate_config_consistency from freqtrade.configuration.configuration import Configuration diff --git a/freqtrade/configuration/config_secrets.py b/freqtrade/configuration/config_secrets.py index 4b8b6ba90..797caba23 100644 --- a/freqtrade/configuration/config_secrets.py +++ b/freqtrade/configuration/config_secrets.py @@ -1,6 +1,27 @@ from copy import deepcopy -from freqtrade.constants import Config +from freqtrade.constants import Config, ExchangeConfig + + +_SENSITIVE_KEYS = [ + "exchange.key", + "exchange.api_key", + "exchange.apiKey", + "exchange.secret", + "exchange.password", + "exchange.uid", + "exchange.account_id", + "exchange.accountId", + "exchange.wallet_address", + "exchange.walletAddress", + "exchange.private_key", + "exchange.privateKey", + "telegram.token", + "telegram.chat_id", + "discord.webhook_url", + "api_server.password", + "webhook.url", +] def sanitize_config(config: Config, *, show_sensitive: bool = False) -> Config: @@ -12,27 +33,8 @@ def sanitize_config(config: Config, *, show_sensitive: bool = False) -> Config: """ if show_sensitive: return config - keys_to_remove = [ - "exchange.key", - "exchange.api_key", - "exchange.apiKey", - "exchange.secret", - "exchange.password", - "exchange.uid", - "exchange.account_id", - "exchange.accountId", - "exchange.wallet_address", - "exchange.walletAddress", - "exchange.private_key", - "exchange.privateKey", - "telegram.token", - "telegram.chat_id", - "discord.webhook_url", - "api_server.password", - "webhook.url", - ] config = deepcopy(config) - for key in keys_to_remove: + for key in _SENSITIVE_KEYS: if "." in key: nested_keys = key.split(".") nested_config = config @@ -45,3 +47,21 @@ def sanitize_config(config: Config, *, show_sensitive: bool = False) -> Config: config[key] = "REDACTED" return config + + +def remove_exchange_credentials(exchange_config: ExchangeConfig, dry_run: bool) -> None: + """ + Removes exchange keys from the configuration and specifies dry-run + Used for backtesting / hyperopt and utils. + Modifies the input dict! + :param exchange_config: Exchange configuration + :param dry_run: If True, remove sensitive keys from the exchange configuration + """ + if not dry_run: + return + + for key in [k for k in _SENSITIVE_KEYS if k.startswith("exchange.")]: + if "." in key: + key1 = key.removeprefix("exchange.") + if key1 in exchange_config: + exchange_config[key1] = "" diff --git a/freqtrade/configuration/timerange.py b/freqtrade/configuration/timerange.py index 30860cd63..9a2b47504 100644 --- a/freqtrade/configuration/timerange.py +++ b/freqtrade/configuration/timerange.py @@ -4,9 +4,8 @@ This module contains the argument manager class import logging import re -from datetime import datetime, timezone - -from typing_extensions import Self +from datetime import UTC, datetime +from typing import Self from freqtrade.constants import DATETIME_PRINT_FORMAT from freqtrade.exceptions import ConfigurationError @@ -151,9 +150,7 @@ class TimeRange: starts = rvals[index] if stype[0] == "date" and len(starts) == 8: start = int( - datetime.strptime(starts, "%Y%m%d") - .replace(tzinfo=timezone.utc) - .timestamp() + datetime.strptime(starts, "%Y%m%d").replace(tzinfo=UTC).timestamp() ) elif len(starts) == 13: start = int(starts) // 1000 @@ -164,9 +161,7 @@ class TimeRange: stops = rvals[index] if stype[1] == "date" and len(stops) == 8: stop = int( - datetime.strptime(stops, "%Y%m%d") - .replace(tzinfo=timezone.utc) - .timestamp() + datetime.strptime(stops, "%Y%m%d").replace(tzinfo=UTC).timestamp() ) elif len(stops) == 13: stop = int(stops) // 1000 diff --git a/freqtrade/data/btanalysis/bt_fileutils.py b/freqtrade/data/btanalysis/bt_fileutils.py index 50de33974..d6957b792 100644 --- a/freqtrade/data/btanalysis/bt_fileutils.py +++ b/freqtrade/data/btanalysis/bt_fileutils.py @@ -5,7 +5,7 @@ Helpers when analyzing backtest data import logging import zipfile from copy import copy -from datetime import datetime, timezone +from datetime import UTC, datetime from io import BytesIO, StringIO from pathlib import Path from typing import Any, Literal @@ -324,7 +324,7 @@ def find_existing_backtest_stats( if min_backtest_date is not None: backtest_date = strategy_metadata["backtest_start_time"] - backtest_date = datetime.fromtimestamp(backtest_date, tz=timezone.utc) + backtest_date = datetime.fromtimestamp(backtest_date, tz=UTC) if backtest_date < min_backtest_date: # Do not use a cached result for this strategy as first result is too old. del run_ids[strategy_name] diff --git a/freqtrade/data/dataprovider.py b/freqtrade/data/dataprovider.py index d5e7937c5..ed1da4ca2 100644 --- a/freqtrade/data/dataprovider.py +++ b/freqtrade/data/dataprovider.py @@ -7,7 +7,7 @@ Common Interface for bot and strategy to access data. import logging from collections import deque -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from pandas import DataFrame, Timedelta, Timestamp, to_timedelta @@ -98,7 +98,7 @@ class DataProvider: :param candle_type: Any of the enum CandleType (must match trading mode!) """ pair_key = (pair, timeframe, candle_type) - self.__cached_pairs[pair_key] = (dataframe, datetime.now(timezone.utc)) + self.__cached_pairs[pair_key] = (dataframe, datetime.now(UTC)) # For multiple producers we will want to merge the pairlists instead of overwriting def _set_producer_pairs(self, pairlist: list[str], producer_name: str = "default"): @@ -131,7 +131,7 @@ class DataProvider: "data": { "key": pair_key, "df": dataframe.tail(1), - "la": datetime.now(timezone.utc), + "la": datetime.now(UTC), }, } self.__rpc.send_msg(msg) @@ -164,7 +164,7 @@ class DataProvider: if producer_name not in self.__producer_pairs_df: self.__producer_pairs_df[producer_name] = {} - _last_analyzed = datetime.now(timezone.utc) if not last_analyzed else last_analyzed + _last_analyzed = datetime.now(UTC) if not last_analyzed else last_analyzed self.__producer_pairs_df[producer_name][pair_key] = (dataframe, _last_analyzed) logger.debug(f"External DataFrame for {pair_key} from {producer_name} added.") @@ -275,12 +275,12 @@ class DataProvider: # If we have no data from this Producer yet if producer_name not in self.__producer_pairs_df: # We don't have this data yet, return empty DataFrame and datetime (01-01-1970) - return (DataFrame(), datetime.fromtimestamp(0, tz=timezone.utc)) + return (DataFrame(), datetime.fromtimestamp(0, tz=UTC)) # If we do have data from that Producer, but no data on this pair_key if pair_key not in self.__producer_pairs_df[producer_name]: # We don't have this data yet, return empty DataFrame and datetime (01-01-1970) - return (DataFrame(), datetime.fromtimestamp(0, tz=timezone.utc)) + return (DataFrame(), datetime.fromtimestamp(0, tz=UTC)) # We have it, return this data df, la = self.__producer_pairs_df[producer_name][pair_key] @@ -396,10 +396,10 @@ class DataProvider: if (max_index := self.__slice_index.get(pair)) is not None: df = df.iloc[max(0, max_index - MAX_DATAFRAME_CANDLES) : max_index] else: - return (DataFrame(), datetime.fromtimestamp(0, tz=timezone.utc)) + return (DataFrame(), datetime.fromtimestamp(0, tz=UTC)) return df, date else: - return (DataFrame(), datetime.fromtimestamp(0, tz=timezone.utc)) + return (DataFrame(), datetime.fromtimestamp(0, tz=UTC)) @property def runmode(self) -> RunMode: diff --git a/freqtrade/data/history/datahandlers/idatahandler.py b/freqtrade/data/history/datahandlers/idatahandler.py index e368c1d41..67ae386c6 100644 --- a/freqtrade/data/history/datahandlers/idatahandler.py +++ b/freqtrade/data/history/datahandlers/idatahandler.py @@ -8,7 +8,7 @@ import logging import re from abc import ABC, abstractmethod from copy import deepcopy -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from pandas import DataFrame, to_datetime @@ -118,8 +118,8 @@ class IDataHandler(ABC): df = self._ohlcv_load(pair, timeframe, None, candle_type) if df.empty: return ( - datetime.fromtimestamp(0, tz=timezone.utc), - datetime.fromtimestamp(0, tz=timezone.utc), + datetime.fromtimestamp(0, tz=UTC), + datetime.fromtimestamp(0, tz=UTC), 0, ) return df.iloc[0]["date"].to_pydatetime(), df.iloc[-1]["date"].to_pydatetime(), len(df) @@ -201,8 +201,8 @@ class IDataHandler(ABC): df = self._trades_load(pair, trading_mode) if df.empty: return ( - datetime.fromtimestamp(0, tz=timezone.utc), - datetime.fromtimestamp(0, tz=timezone.utc), + datetime.fromtimestamp(0, tz=UTC), + datetime.fromtimestamp(0, tz=UTC), 0, ) return ( diff --git a/freqtrade/enums/marginmode.py b/freqtrade/enums/marginmode.py index 9aa814c39..f1a4a3a17 100644 --- a/freqtrade/enums/marginmode.py +++ b/freqtrade/enums/marginmode.py @@ -13,4 +13,4 @@ class MarginMode(str, Enum): NONE = "" def __str__(self): - return f"{self.name.lower()}" + return f"{self.value.lower()}" diff --git a/freqtrade/exchange/__init__.py b/freqtrade/exchange/__init__.py index 01f9d93ed..8fd2ffb95 100644 --- a/freqtrade/exchange/__init__.py +++ b/freqtrade/exchange/__init__.py @@ -1,6 +1,6 @@ # flake8: noqa: F401 # isort: off -from freqtrade.exchange.common import remove_exchange_credentials, MAP_EXCHANGE_CHILDCLASS +from freqtrade.exchange.common import MAP_EXCHANGE_CHILDCLASS from freqtrade.exchange.exchange import Exchange # isort: on @@ -43,4 +43,5 @@ from freqtrade.exchange.idex import Idex from freqtrade.exchange.kraken import Kraken from freqtrade.exchange.kucoin import Kucoin from freqtrade.exchange.lbank import Lbank +from freqtrade.exchange.luno import Luno from freqtrade.exchange.okx import Okx diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index 82844cde9..c9ed83b50 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -1,7 +1,7 @@ """Binance exchange subclass""" import logging -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path import ccxt @@ -160,7 +160,7 @@ class Binance(Exchange): since_ms = x[3][0][0] logger.info( f"Candle-data for {pair} available starting with " - f"{datetime.fromtimestamp(since_ms // 1000, tz=timezone.utc).isoformat()}." + f"{datetime.fromtimestamp(since_ms // 1000, tz=UTC).isoformat()}." ) if until_ms and since_ms >= until_ms: logger.warning( @@ -399,7 +399,7 @@ class Binance(Exchange): trades = await self._api_async.fetch_trades( pair, params={ - self._trades_pagination_arg: "0", + self._ft_has["trades_pagination_arg"]: "0", }, limit=5, ) diff --git a/freqtrade/exchange/binance_leverage_tiers.json b/freqtrade/exchange/binance_leverage_tiers.json index ffcbd043c..4939ffb02 100644 --- a/freqtrade/exchange/binance_leverage_tiers.json +++ b/freqtrade/exchange/binance_leverage_tiers.json @@ -107,13 +107,13 @@ "symbol": "1000000BOB/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -123,34 +123,34 @@ "tier": 8.0, "symbol": "1000000BOB/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "1000000BOB/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -262,13 +262,13 @@ "symbol": "1000000MOG/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -278,34 +278,34 @@ "tier": 8.0, "symbol": "1000000MOG/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "1000000MOG/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -349,13 +349,13 @@ "symbol": "1000BONK/USDC:USDC", "currency": "USDC", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "50000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -365,75 +365,75 @@ "tier": 4.0, "symbol": "1000BONK/USDC:USDC", "currency": "USDC", - "minNotional": 50000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "50000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "1000BONK/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 1200000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "1200000", - "notionalFloor": "600000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "15325.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "1000BONK/USDC:USDC", "currency": "USDC", - "minNotional": 1200000.0, - "maxNotional": 3000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1200000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "75325.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "1000BONK/USDC:USDC", "currency": "USDC", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "150325.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "1000BONK/USDC:USDC", "currency": "USDC", - "minNotional": 4000000.0, + "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -441,9 +441,9 @@ "bracket": "8", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "4000000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "317125.0" + "cum": "34800.0" } }, { @@ -451,33 +451,33 @@ "symbol": "1000BONK/USDC:USDC", "currency": "USDC", "minNotional": 4500000.0, - "maxNotional": 6000000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "6000000", + "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "691975.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000BONK/USDC:USDC", "currency": "USDC", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2191975.0" + "cum": "2284650.0" } } ], @@ -606,13 +606,13 @@ "symbol": "1000BONK/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -622,34 +622,34 @@ "tier": 9.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -778,13 +778,13 @@ "symbol": "1000CAT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -794,34 +794,34 @@ "tier": 9.0, "symbol": "1000CAT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000CAT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -950,13 +950,13 @@ "symbol": "1000CHEEMS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -966,34 +966,34 @@ "tier": 9.0, "symbol": "1000CHEEMS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000CHEEMS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -1122,13 +1122,13 @@ "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -1138,34 +1138,34 @@ "tier": 9.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -1294,13 +1294,13 @@ "symbol": "1000LUNC/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -1310,34 +1310,34 @@ "tier": 9.0, "symbol": "1000LUNC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000LUNC/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -1914,13 +1914,13 @@ "symbol": "1000SATS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -1930,34 +1930,34 @@ "tier": 9.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -2534,13 +2534,13 @@ "symbol": "1000X/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -2550,34 +2550,34 @@ "tier": 8.0, "symbol": "1000X/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "1000X/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -2706,13 +2706,13 @@ "symbol": "1000XEC/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -2722,34 +2722,34 @@ "tier": 9.0, "symbol": "1000XEC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1000XEC/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -2878,13 +2878,13 @@ "symbol": "1INCH/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -2894,34 +2894,34 @@ "tier": 9.0, "symbol": "1INCH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1INCH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -3050,13 +3050,13 @@ "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -3066,34 +3066,34 @@ "tier": 9.0, "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -3704,13 +3704,13 @@ "symbol": "ACE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -3720,34 +3720,34 @@ "tier": 8.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -3876,13 +3876,13 @@ "symbol": "ACH/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -3892,34 +3892,34 @@ "tier": 9.0, "symbol": "ACH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ACH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -4048,13 +4048,13 @@ "symbol": "ACT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -4064,34 +4064,34 @@ "tier": 9.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -4203,13 +4203,13 @@ "symbol": "ACX/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -4219,34 +4219,34 @@ "tier": 8.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -4685,13 +4685,13 @@ "symbol": "AERGO/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -4701,34 +4701,34 @@ "tier": 8.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -4840,13 +4840,13 @@ "symbol": "AERO/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -4856,34 +4856,34 @@ "tier": 8.0, "symbol": "AERO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AERO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -4910,13 +4910,13 @@ "symbol": "AEVO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -4926,119 +4926,119 @@ "tier": 3.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "2267225.0" } } ], @@ -5271,13 +5271,13 @@ "symbol": "AGLD/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -5287,34 +5287,34 @@ "tier": 8.0, "symbol": "AGLD/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AGLD/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -5426,13 +5426,13 @@ "symbol": "AGT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34675.0" @@ -5442,34 +5442,34 @@ "tier": 8.0, "symbol": "AGT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "409525.0" } }, { "tier": 9.0, "symbol": "AGT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "2284525.0" } } ], @@ -5581,13 +5581,13 @@ "symbol": "AI/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -5597,34 +5597,34 @@ "tier": 8.0, "symbol": "AI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -5736,13 +5736,13 @@ "symbol": "AI16Z/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34675.0" @@ -5752,34 +5752,34 @@ "tier": 8.0, "symbol": "AI16Z/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "409525.0" } }, { "tier": 9.0, "symbol": "AI16Z/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "2284525.0" } } ], @@ -6029,13 +6029,13 @@ "symbol": "AIXBT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -6045,34 +6045,34 @@ "tier": 9.0, "symbol": "AIXBT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "AIXBT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -6184,13 +6184,13 @@ "symbol": "AKT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -6200,34 +6200,34 @@ "tier": 8.0, "symbol": "AKT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AKT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -6339,13 +6339,13 @@ "symbol": "ALCH/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -6355,34 +6355,34 @@ "tier": 8.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ALCH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -6392,13 +6392,13 @@ "symbol": "ALGO/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "10000", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -6408,153 +6408,153 @@ "tier": 2.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 40000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "40000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "200000", - "notionalFloor": "40000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "250.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "1250.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 2000000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "400000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "11250.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "4000000", - "notionalFloor": "2000000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "111250.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 5000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "5000000", - "notionalFloor": "4000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "211250.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 6000000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "6000000", - "notionalFloor": "5000000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "419750.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "919550.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ALGO/USDT:USDT", "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 20000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "20000000", - "notionalFloor": "10000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "3419550.0" + "cum": "2284650.0" } } ], @@ -6666,13 +6666,13 @@ "symbol": "ALICE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -6682,34 +6682,34 @@ "tier": 8.0, "symbol": "ALICE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ALICE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -7063,13 +7063,13 @@ "symbol": "ALPINE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -7079,34 +7079,34 @@ "tier": 9.0, "symbol": "ALPINE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ALPINE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -7218,13 +7218,13 @@ "symbol": "ALT/USDT:USDT", "currency": "USDT", "minNotional": 375000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "375000", "maintMarginRatio": "0.1667", "cum": "26062.5" @@ -7234,34 +7234,34 @@ "tier": 8.0, "symbol": "ALT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "151012.5" + "cum": "400912.5" } }, { "tier": 9.0, "symbol": "ALT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "776012.5" + "cum": "2275912.5" } } ], @@ -7494,13 +7494,13 @@ "symbol": "ANIME/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -7510,34 +7510,34 @@ "tier": 9.0, "symbol": "ANIME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ANIME/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -7666,13 +7666,13 @@ "symbol": "ANKR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -7682,34 +7682,34 @@ "tier": 9.0, "symbol": "ANKR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ANKR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -7838,13 +7838,13 @@ "symbol": "APE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -7854,34 +7854,34 @@ "tier": 9.0, "symbol": "APE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "APE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -7908,13 +7908,13 @@ "symbol": "API3/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -7924,119 +7924,119 @@ "tier": 3.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "API3/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "2267225.0" } } ], @@ -8320,13 +8320,13 @@ "symbol": "AR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -8336,34 +8336,34 @@ "tier": 9.0, "symbol": "AR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "AR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -8513,10 +8513,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.006, - "maxLeverage": 25.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.006", @@ -8530,10 +8530,10 @@ "minNotional": 5000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "50000", "notionalFloor": "5000", "maintMarginRatio": "0.01", @@ -8547,10 +8547,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 15.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "25", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.015", @@ -8564,10 +8564,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 10.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "20", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.02", @@ -8581,10 +8581,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 8.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "10", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.025", @@ -8598,10 +8598,10 @@ "minNotional": 1000000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "6", + "initialLeverage": "5", "notionalCap": "5000000", "notionalFloor": "1000000", "maintMarginRatio": "0.05", @@ -8615,10 +8615,10 @@ "minNotional": 5000000.0, "maxNotional": 6000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "6000000", "notionalFloor": "5000000", "maintMarginRatio": "0.1", @@ -8632,10 +8632,10 @@ "minNotional": 6000000.0, "maxNotional": 7000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "7000000", "notionalFloor": "6000000", "maintMarginRatio": "0.125", @@ -8683,13 +8683,13 @@ "symbol": "ARC/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 2000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "1", "initialLeverage": "50", - "notionalCap": "2000", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.015", "cum": "0.0" @@ -8699,24 +8699,24 @@ "tier": 2.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 2000.0, - "maxNotional": 5000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "5000", - "notionalFloor": "2000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.02", - "cum": "10.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, + "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, @@ -8724,9 +8724,9 @@ "bracket": "3", "initialLeverage": "20", "notionalCap": "25000", - "notionalFloor": "5000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "35.0" + "cum": "75.0" } }, { @@ -8734,101 +8734,101 @@ "symbol": "ARC/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 200000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "200000", + "notionalCap": "62500", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "660.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "500000", - "notionalFloor": "200000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "10660.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "23160.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "1000000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "64860.0" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "189810.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ARC/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 3000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "2000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "689810.0" + "cum": "2267225.0" } } ], @@ -9095,13 +9095,13 @@ "symbol": "ARKM/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -9111,34 +9111,34 @@ "tier": 9.0, "symbol": "ARKM/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ARKM/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -9250,13 +9250,13 @@ "symbol": "ARPA/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -9266,34 +9266,34 @@ "tier": 8.0, "symbol": "ARPA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ARPA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -9422,13 +9422,13 @@ "symbol": "ASR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -9438,34 +9438,34 @@ "tier": 9.0, "symbol": "ASR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ASR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -9594,13 +9594,13 @@ "symbol": "ASTR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -9610,34 +9610,34 @@ "tier": 9.0, "symbol": "ASTR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ASTR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -9749,13 +9749,13 @@ "symbol": "ATA/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -9765,34 +9765,34 @@ "tier": 8.0, "symbol": "ATA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "ATA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -9921,13 +9921,13 @@ "symbol": "ATH/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -9937,34 +9937,34 @@ "tier": 9.0, "symbol": "ATH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ATH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -10265,13 +10265,13 @@ "symbol": "AUCTION/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -10281,34 +10281,34 @@ "tier": 9.0, "symbol": "AUCTION/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "AUCTION/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -10420,13 +10420,13 @@ "symbol": "AVA/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -10436,34 +10436,34 @@ "tier": 8.0, "symbol": "AVA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AVA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -10473,13 +10473,13 @@ "symbol": "AVAAI/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 2000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "1", "initialLeverage": "50", - "notionalCap": "2000", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.015", "cum": "0.0" @@ -10489,24 +10489,24 @@ "tier": 2.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 2000.0, - "maxNotional": 5000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "5000", - "notionalFloor": "2000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.02", - "cum": "10.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, + "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, @@ -10514,9 +10514,9 @@ "bracket": "3", "initialLeverage": "20", "notionalCap": "25000", - "notionalFloor": "5000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "35.0" + "cum": "75.0" } }, { @@ -10524,101 +10524,101 @@ "symbol": "AVAAI/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 200000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "200000", + "notionalCap": "62500", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "660.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "500000", - "notionalFloor": "200000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "10660.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "23160.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "1000000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "64860.0" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "189810.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AVAAI/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 3000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "2000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "689810.0" + "cum": "2267225.0" } } ], @@ -11127,13 +11127,13 @@ "symbol": "AXL/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -11143,119 +11143,119 @@ "tier": 3.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "AXL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "2267225.0" } } ], @@ -11384,13 +11384,13 @@ "symbol": "AXS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -11400,34 +11400,34 @@ "tier": 9.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -11556,13 +11556,13 @@ "symbol": "B/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -11572,34 +11572,34 @@ "tier": 9.0, "symbol": "B/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "B/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -11711,13 +11711,13 @@ "symbol": "B2/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34675.0" @@ -11727,34 +11727,34 @@ "tier": 8.0, "symbol": "B2/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "409525.0" } }, { "tier": 9.0, "symbol": "B2/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "2284525.0" } } ], @@ -11866,13 +11866,13 @@ "symbol": "B3/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -11882,34 +11882,34 @@ "tier": 8.0, "symbol": "B3/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "B3/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -12038,13 +12038,13 @@ "symbol": "BABY/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -12054,34 +12054,34 @@ "tier": 9.0, "symbol": "BABY/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BABY/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -12314,13 +12314,13 @@ "symbol": "BAKE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -12330,34 +12330,34 @@ "tier": 8.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BAKE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -12573,13 +12573,13 @@ "symbol": "BAN/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -12589,34 +12589,34 @@ "tier": 8.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BAN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -12728,13 +12728,13 @@ "symbol": "BANANA/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -12744,34 +12744,34 @@ "tier": 8.0, "symbol": "BANANA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BANANA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -12781,13 +12781,13 @@ "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, + "maxNotional": 500.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "5000", + "notionalCap": "500", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -12797,153 +12797,153 @@ "tier": 2.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, + "minNotional": 500.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "10000", - "notionalFloor": "5000", + "notionalCap": "5000", + "notionalFloor": "500", "maintMarginRatio": "0.015", - "cum": "25.0" + "cum": "2.5" } }, { "tier": 3.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.02", - "cum": "75.0" + "cum": "27.5" } }, { "tier": 4.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "77.5" } }, { "tier": 5.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1450.0" + "cum": "702.5" } }, { "tier": 6.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7700.0" + "cum": "3827.5" } }, { "tier": 7.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13950.0" + "cum": "6952.5" } }, { "tier": 8.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "17377.5" } }, { "tier": 9.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "392227.5" } }, { "tier": 10.0, "symbol": "BANANAS31/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2267227.5" } } ], @@ -13055,13 +13055,13 @@ "symbol": "BAND/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -13071,34 +13071,34 @@ "tier": 8.0, "symbol": "BAND/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BAND/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -13210,13 +13210,13 @@ "symbol": "BANK/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34675.0" @@ -13226,34 +13226,34 @@ "tier": 8.0, "symbol": "BANK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "409525.0" } }, { "tier": 9.0, "symbol": "BANK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "2284525.0" } } ], @@ -13280,13 +13280,13 @@ "symbol": "BAT/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 20000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "20000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -13296,7 +13296,7 @@ "tier": 3.0, "symbol": "BAT/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, + "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, @@ -13304,9 +13304,9 @@ "bracket": "3", "initialLeverage": "20", "notionalCap": "25000", - "notionalFloor": "20000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "125.0" + "cum": "75.0" } }, { @@ -13314,101 +13314,101 @@ "symbol": "BAT/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 200000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "200000", + "notionalCap": "62500", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "750.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "BAT/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "10750.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "BAT/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "20750.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "BAT/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "750000", - "notionalFloor": "500000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "41600.0" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "BAT/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "750000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "104075.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BAT/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "354075.0" + "cum": "2267225.0" } } ], @@ -13537,13 +13537,13 @@ "symbol": "BB/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -13553,34 +13553,34 @@ "tier": 9.0, "symbol": "BB/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BB/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -13934,13 +13934,13 @@ "symbol": "BDXN/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, + "maxNotional": 1000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "1", "initialLeverage": "50", - "notionalCap": "5000", + "notionalCap": "1000", "notionalFloor": "0", "maintMarginRatio": "0.015", "cum": "0.0" @@ -13950,41 +13950,41 @@ "tier": 2.0, "symbol": "BDXN/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, + "minNotional": 1000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "10000", - "notionalFloor": "5000", + "notionalCap": "5000", + "notionalFloor": "1000", "maintMarginRatio": "0.02", - "cum": "25.0" + "cum": "5.0" } }, { "tier": 3.0, "symbol": "BDXN/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 25000.0, + "minNotional": 5000.0, + "maxNotional": 20000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "10000", + "notionalCap": "20000", + "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "75.0" + "cum": "30.0" } }, { "tier": 4.0, "symbol": "BDXN/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, + "minNotional": 20000.0, "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, @@ -13992,9 +13992,9 @@ "bracket": "4", "initialLeverage": "10", "notionalCap": "62500", - "notionalFloor": "25000", + "notionalFloor": "20000", "maintMarginRatio": "0.05", - "cum": "700.0" + "cum": "530.0" } }, { @@ -14011,7 +14011,7 @@ "notionalCap": "125000", "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "3825.0" + "cum": "3655.0" } }, { @@ -14028,7 +14028,7 @@ "notionalCap": "250000", "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "6950.0" + "cum": "6780.0" } }, { @@ -14036,50 +14036,50 @@ "symbol": "BDXN/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "17375.0" + "cum": "17205.0" } }, { "tier": 8.0, "symbol": "BDXN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392055.0" } }, { "tier": 9.0, "symbol": "BDXN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267055.0" } } ], @@ -14208,13 +14208,13 @@ "symbol": "BEAMX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -14224,34 +14224,34 @@ "tier": 9.0, "symbol": "BEAMX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BEAMX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -14363,13 +14363,13 @@ "symbol": "BEL/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -14379,34 +14379,34 @@ "tier": 8.0, "symbol": "BEL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BEL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -14535,13 +14535,13 @@ "symbol": "BERA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -14551,34 +14551,34 @@ "tier": 9.0, "symbol": "BERA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BERA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -14690,13 +14690,13 @@ "symbol": "BICO/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -14706,34 +14706,34 @@ "tier": 8.0, "symbol": "BICO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BICO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -14845,13 +14845,13 @@ "symbol": "BID/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -14861,34 +14861,34 @@ "tier": 8.0, "symbol": "BID/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BID/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -15017,13 +15017,13 @@ "symbol": "BIGTIME/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -15033,34 +15033,34 @@ "tier": 9.0, "symbol": "BIGTIME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BIGTIME/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -15189,13 +15189,13 @@ "symbol": "BIO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -15205,34 +15205,34 @@ "tier": 9.0, "symbol": "BIO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BIO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -15361,13 +15361,13 @@ "symbol": "BLUR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -15377,34 +15377,34 @@ "tier": 9.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -15620,13 +15620,13 @@ "symbol": "BMT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -15636,34 +15636,34 @@ "tier": 8.0, "symbol": "BMT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BMT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -16119,13 +16119,13 @@ "symbol": "BNT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -16135,34 +16135,34 @@ "tier": 8.0, "symbol": "BNT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BNT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -16261,10 +16261,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 20.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "20", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -16278,10 +16278,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 15.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "15", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -16293,13 +16293,13 @@ "symbol": "BOME/USDC:USDC", "currency": "USDC", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 10.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "50000", + "initialLeverage": "25", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -16309,75 +16309,75 @@ "tier": 4.0, "symbol": "BOME/USDC:USDC", "currency": "USDC", - "minNotional": 50000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 7.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "7", - "notionalCap": "600000", - "notionalFloor": "50000", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "BOME/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 1200000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "6", - "notionalCap": "1200000", - "notionalFloor": "600000", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "15325.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "BOME/USDC:USDC", "currency": "USDC", - "minNotional": 1200000.0, - "maxNotional": 3000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1200000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "75325.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "BOME/USDC:USDC", "currency": "USDC", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "150325.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "BOME/USDC:USDC", "currency": "USDC", - "minNotional": 4000000.0, + "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -16385,9 +16385,9 @@ "bracket": "8", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "4000000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "317125.0" + "cum": "34800.0" } }, { @@ -16395,33 +16395,33 @@ "symbol": "BOME/USDC:USDC", "currency": "USDC", "minNotional": 4500000.0, - "maxNotional": 6000000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "6000000", + "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "691975.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BOME/USDC:USDC", "currency": "USDC", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2191975.0" + "cum": "2284650.0" } } ], @@ -16550,13 +16550,13 @@ "symbol": "BOME/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -16566,34 +16566,34 @@ "tier": 9.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -16981,13 +16981,13 @@ "symbol": "BRETT/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17375.0" @@ -16997,34 +16997,34 @@ "tier": 8.0, "symbol": "BRETT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142325.0" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BRETT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767325.0" + "cum": "2267225.0" } } ], @@ -17051,13 +17051,13 @@ "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -17067,119 +17067,119 @@ "tier": 3.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "392225.0" } }, { "tier": 9.0, "symbol": "BROCCOLI714/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "2267225.0" } } ], @@ -17992,144 +17992,6 @@ } } ], - "BTC/USDT:USDT-250627": [ - { - "tier": 1.0, - "symbol": "BTC/USDT:USDT-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250926": [ { "tier": 1.0, @@ -18268,6 +18130,144 @@ } } ], + "BTC/USDT:USDT-251226": [ + { + "tier": 1.0, + "symbol": "BTC/USDT:USDT-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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, @@ -18756,13 +18756,13 @@ "symbol": "CAKE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -18772,34 +18772,34 @@ "tier": 9.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CAKE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -19083,13 +19083,13 @@ "symbol": "CELO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -19099,34 +19099,34 @@ "tier": 9.0, "symbol": "CELO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CELO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -19255,13 +19255,13 @@ "symbol": "CELR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -19271,34 +19271,34 @@ "tier": 9.0, "symbol": "CELR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CELR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -19325,13 +19325,13 @@ "symbol": "CETUS/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -19341,75 +19341,75 @@ "tier": 3.0, "symbol": "CETUS/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "CETUS/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "CETUS/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "CETUS/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "CETUS/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -19417,9 +19417,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -19436,7 +19436,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -19453,7 +19453,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -19582,13 +19582,13 @@ "symbol": "CFX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -19598,34 +19598,34 @@ "tier": 9.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -20064,13 +20064,13 @@ "symbol": "CHILLGUY/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -20080,34 +20080,34 @@ "tier": 9.0, "symbol": "CHILLGUY/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CHILLGUY/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -20391,13 +20391,13 @@ "symbol": "CHZ/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -20407,34 +20407,34 @@ "tier": 9.0, "symbol": "CHZ/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CHZ/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -20563,13 +20563,13 @@ "symbol": "CKB/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -20579,34 +20579,34 @@ "tier": 9.0, "symbol": "CKB/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CKB/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -21028,13 +21028,13 @@ "symbol": "COOKIE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -21044,34 +21044,34 @@ "tier": 9.0, "symbol": "COOKIE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "COOKIE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -21253,13 +21253,13 @@ "symbol": "COTI/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 20000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "20000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -21269,7 +21269,7 @@ "tier": 3.0, "symbol": "COTI/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, + "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, @@ -21277,9 +21277,9 @@ "bracket": "3", "initialLeverage": "20", "notionalCap": "25000", - "notionalFloor": "20000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "125.0" + "cum": "75.0" } }, { @@ -21287,101 +21287,101 @@ "symbol": "COTI/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 200000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "200000", + "notionalCap": "62500", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "750.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "COTI/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "10750.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "COTI/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "20750.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "COTI/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "7", "initialLeverage": "3", - "notionalCap": "750000", - "notionalFloor": "500000", + "notionalCap": "1500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "41600.0" + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "COTI/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1000000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "750000", + "notionalCap": "2500000", + "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "104075.0" + "cum": "142325.0" } }, { "tier": 9.0, "symbol": "COTI/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "354075.0" + "cum": "767325.0" } } ], @@ -21510,13 +21510,13 @@ "symbol": "COW/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -21526,34 +21526,34 @@ "tier": 9.0, "symbol": "COW/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "COW/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -21975,13 +21975,13 @@ "symbol": "CTK/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -21991,34 +21991,34 @@ "tier": 9.0, "symbol": "CTK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CTK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -22302,13 +22302,13 @@ "symbol": "CVC/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -22318,34 +22318,34 @@ "tier": 9.0, "symbol": "CVC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "CVC/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -23026,13 +23026,13 @@ "symbol": "DASH/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -23042,34 +23042,34 @@ "tier": 9.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -23510,13 +23510,13 @@ "symbol": "DEGO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -23526,75 +23526,75 @@ "tier": 3.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "DEGO/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -23602,9 +23602,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -23621,7 +23621,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -23638,7 +23638,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -23804,14 +23804,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" } }, @@ -23820,15 +23820,15 @@ "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "10000", + "initialLeverage": "25", + "notionalCap": "20000", "notionalFloor": "5000", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -23836,38 +23836,21 @@ "tier": 3.0, "symbol": "DEXE/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": "DEXE/USDT:USDT", - "currency": "USDT", - "minNotional": 25000.0, + "minNotional": 20000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { - "bracket": "4", + "bracket": "3", "initialLeverage": "20", "notionalCap": "50000", - "notionalFloor": "25000", + "notionalFloor": "20000", "maintMarginRatio": "0.025", - "cum": "200.0" + "cum": "125.0" } }, { - "tier": 5.0, + "tier": 4.0, "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, @@ -23875,16 +23858,16 @@ "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { - "bracket": "5", + "bracket": "4", "initialLeverage": "10", "notionalCap": "125000", "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "1450.0" + "cum": "1375.0" } }, { - "tier": 6.0, + "tier": 5.0, "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 125000.0, @@ -23892,16 +23875,16 @@ "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "5", "notionalCap": "250000", "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "7700.0" + "cum": "7625.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -23909,16 +23892,16 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "13950.0" + "cum": "13875.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -23926,16 +23909,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "34800.0" + "cum": "34725.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, @@ -23943,16 +23926,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "159675.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, @@ -23960,12 +23943,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "784675.0" } } ], @@ -24383,6 +24366,161 @@ } } ], + "DMC/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "DMC/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": "DMC/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": "DMC/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": "DMC/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": "DMC/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": "DMC/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": "DMC/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "DMC/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "DMC/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "767325.0" + } + } + ], "DODOX/USDT:USDT": [ { "tier": 1.0, @@ -24716,15 +24854,15 @@ "symbol": "DOGE/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.005, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.0065, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "10000", + "notionalCap": "80000", "notionalFloor": "0", - "maintMarginRatio": "0.005", + "maintMarginRatio": "0.0065", "cum": "0.0" } }, @@ -24732,17 +24870,17 @@ "tier": 2.0, "symbol": "DOGE/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, + "minNotional": 80000.0, "maxNotional": 150000.0, - "maintenanceMarginRate": 0.007, + "maintenanceMarginRate": 0.01, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", "notionalCap": "150000", - "notionalFloor": "10000", - "maintMarginRatio": "0.007", - "cum": "20.0" + "notionalFloor": "80000", + "maintMarginRatio": "0.01", + "cum": "280.0" } }, { @@ -24751,15 +24889,15 @@ "currency": "USDT", "minNotional": 150000.0, "maxNotional": 750000.0, - "maintenanceMarginRate": 0.01, + "maintenanceMarginRate": 0.0125, "maxLeverage": 40.0, "info": { "bracket": "3", "initialLeverage": "40", "notionalCap": "750000", "notionalFloor": "150000", - "maintMarginRatio": "0.01", - "cum": "470.0" + "maintMarginRatio": "0.0125", + "cum": "655.0" } }, { @@ -24776,7 +24914,7 @@ "notionalCap": "2000000", "notionalFloor": "750000", "maintMarginRatio": "0.02", - "cum": "7970.0" + "cum": "6280.0" } }, { @@ -24793,7 +24931,7 @@ "notionalCap": "4000000", "notionalFloor": "2000000", "maintMarginRatio": "0.025", - "cum": "17970.0" + "cum": "16280.0" } }, { @@ -24810,7 +24948,7 @@ "notionalCap": "20000000", "notionalFloor": "4000000", "maintMarginRatio": "0.05", - "cum": "117970.0" + "cum": "116280.0" } }, { @@ -24827,7 +24965,7 @@ "notionalCap": "40000000", "notionalFloor": "20000000", "maintMarginRatio": "0.1", - "cum": "1117970.0" + "cum": "1116280.0" } }, { @@ -24844,7 +24982,7 @@ "notionalCap": "50000000", "notionalFloor": "40000000", "maintMarginRatio": "0.125", - "cum": "2117970.0" + "cum": "2116280.0" } }, { @@ -24861,7 +24999,7 @@ "notionalCap": "100000000", "notionalFloor": "50000000", "maintMarginRatio": "0.25", - "cum": "8367970.0" + "cum": "8366280.0" } }, { @@ -24878,7 +25016,7 @@ "notionalCap": "200000000", "notionalFloor": "100000000", "maintMarginRatio": "0.5", - "cum": "33367970.0" + "cum": "33366280.0" } } ], @@ -25007,13 +25145,13 @@ "symbol": "DOGS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -25023,34 +25161,34 @@ "tier": 9.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -25971,13 +26109,13 @@ "symbol": "DYDX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -25987,34 +26125,34 @@ "tier": 9.0, "symbol": "DYDX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "DYDX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -26041,13 +26179,13 @@ "symbol": "DYM/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -26057,75 +26195,75 @@ "tier": 3.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -26133,9 +26271,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -26152,7 +26290,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -26169,7 +26307,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -26453,13 +26591,13 @@ "symbol": "EGLD/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -26469,34 +26607,34 @@ "tier": 9.0, "symbol": "EGLD/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "EGLD/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -26625,13 +26763,13 @@ "symbol": "EIGEN/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -26641,34 +26779,34 @@ "tier": 9.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -28324,144 +28462,6 @@ } } ], - "ETH/USDT:USDT-250627": [ - { - "tier": 1.0, - "symbol": "ETH/USDT:USDT-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250627", - "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-250926": [ { "tier": 1.0, @@ -28600,6 +28600,144 @@ } } ], + "ETH/USDT:USDT-251226": [ + { + "tier": 1.0, + "symbol": "ETH/USDT:USDT-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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-251226", + "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, @@ -28608,10 +28746,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -28625,10 +28763,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -28640,13 +28778,13 @@ "symbol": "ETHFI/USDC:USDC", "currency": "USDC", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 10.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "50000", + "initialLeverage": "25", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -28656,75 +28794,75 @@ "tier": 4.0, "symbol": "ETHFI/USDC:USDC", "currency": "USDC", - "minNotional": 50000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 7.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "7", - "notionalCap": "600000", - "notionalFloor": "50000", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "ETHFI/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 1200000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "6", - "notionalCap": "1200000", - "notionalFloor": "600000", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "15325.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "ETHFI/USDC:USDC", "currency": "USDC", - "minNotional": 1200000.0, - "maxNotional": 3000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1200000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "75325.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "ETHFI/USDC:USDC", "currency": "USDC", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "150325.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "ETHFI/USDC:USDC", "currency": "USDC", - "minNotional": 4000000.0, + "minNotional": 500000.0, "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -28732,9 +28870,9 @@ "bracket": "8", "initialLeverage": "3", "notionalCap": "4500000", - "notionalFloor": "4000000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "317125.0" + "cum": "34800.0" } }, { @@ -28742,33 +28880,33 @@ "symbol": "ETHFI/USDC:USDC", "currency": "USDC", "minNotional": 4500000.0, - "maxNotional": 6000000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "6000000", + "notionalCap": "7500000", "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "691975.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ETHFI/USDC:USDC", "currency": "USDC", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2191975.0" + "cum": "2284650.0" } } ], @@ -28897,13 +29035,13 @@ "symbol": "ETHFI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -28913,34 +29051,34 @@ "tier": 9.0, "symbol": "ETHFI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ETHFI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -29277,13 +29415,13 @@ "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 20000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "20000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", "cum": "25.0" @@ -29293,153 +29431,153 @@ "tier": 3.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 300000.0, + "minNotional": 10000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "20000", + "notionalCap": "50000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "125.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 500000.0, + "minNotional": 50000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "500000", - "notionalFloor": "300000", + "notionalCap": "100000", + "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "1625.0" + "cum": "325.0" } }, { "tier": 5.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 600000.0, + "minNotional": 100000.0, + "maxNotional": 175000.0, "maintenanceMarginRate": 0.0333, "maxLeverage": 15.0, "info": { "bracket": "5", "initialLeverage": "15", - "notionalCap": "600000", - "notionalFloor": "500000", + "notionalCap": "175000", + "notionalFloor": "100000", "maintMarginRatio": "0.0333", - "cum": "5775.0" + "cum": "1155.0" } }, { "tier": 6.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 1000000.0, + "minNotional": 175000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "6", "initialLeverage": "10", - "notionalCap": "1000000", - "notionalFloor": "600000", + "notionalCap": "250000", + "notionalFloor": "175000", "maintMarginRatio": "0.05", - "cum": "15795.0" + "cum": "4077.5" } }, { "tier": 7.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 250000.0, + "maxNotional": 750000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "7", "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "750000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "65795.0" + "cum": "16577.5" } }, { "tier": 8.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "8", "initialLeverage": "4", - "notionalCap": "2500000", - "notionalFloor": "2000000", + "notionalCap": "1500000", + "notionalFloor": "750000", "maintMarginRatio": "0.125", - "cum": "115795.0" + "cum": "35327.5" } }, { "tier": 9.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 3000000.0, + "minNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "9", "initialLeverage": "3", - "notionalCap": "3000000", - "notionalFloor": "2500000", + "notionalCap": "4500000", + "notionalFloor": "1500000", "maintMarginRatio": "0.1667", - "cum": "220045.0" + "cum": "97877.5" } }, { "tier": 10.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 5000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "10", "initialLeverage": "2", - "notionalCap": "5000000", - "notionalFloor": "3000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "469945.0" + "cum": "472727.5" } }, { "tier": 11.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 6000000.0, + "minNotional": 7500000.0, + "maxNotional": 12000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "11", "initialLeverage": "1", - "notionalCap": "6000000", - "notionalFloor": "5000000", + "notionalCap": "12000000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "1719945.0" + "cum": "2347727.5" } } ], @@ -29912,13 +30050,13 @@ "symbol": "FIDA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -29928,34 +30066,34 @@ "tier": 9.0, "symbol": "FIDA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "FIDA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -30825,13 +30963,13 @@ "symbol": "FLOW/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -30841,34 +30979,34 @@ "tier": 9.0, "symbol": "FLOW/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "FLOW/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -31033,15 +31171,15 @@ "symbol": "FORM/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 1000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "1000", + "initialLeverage": "50", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -31049,34 +31187,34 @@ "tier": 2.0, "symbol": "FORM/USDT:USDT", "currency": "USDT", - "minNotional": 1000.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "5000", - "notionalFloor": "1000", - "maintMarginRatio": "0.015", - "cum": "5.0" + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "FORM/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, + "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": "5000", - "maintMarginRatio": "0.02", - "cum": "30.0" + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { @@ -31084,33 +31222,33 @@ "symbol": "FORM/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": "155.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "FORM/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": "1405.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -31119,15 +31257,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": "7655.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -31135,37 +31273,20 @@ "symbol": "FORM/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": "13905.0" - } - }, - { - "tier": 8.0, - "symbol": "FORM/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34755.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "FORM/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, @@ -31173,16 +31294,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159705.0" + "cum": "142325.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "FORM/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, @@ -31190,12 +31311,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784705.0" + "cum": "767325.0" } } ], @@ -31636,13 +31757,13 @@ "symbol": "FUN/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -31652,75 +31773,75 @@ "tier": 3.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "FUN/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -31728,9 +31849,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -31747,7 +31868,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -31764,7 +31885,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -31893,13 +32014,13 @@ "symbol": "FXS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -31909,34 +32030,34 @@ "tier": 9.0, "symbol": "FXS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "FXS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -32220,13 +32341,13 @@ "symbol": "GALA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -32236,34 +32357,34 @@ "tier": 9.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -32392,13 +32513,13 @@ "symbol": "GAS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -32408,34 +32529,34 @@ "tier": 9.0, "symbol": "GAS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GAS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -32719,13 +32840,13 @@ "symbol": "GLM/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -32735,34 +32856,34 @@ "tier": 9.0, "symbol": "GLM/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GLM/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -32995,13 +33116,13 @@ "symbol": "GMT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -33011,34 +33132,34 @@ "tier": 9.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -33167,13 +33288,13 @@ "symbol": "GMX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -33183,34 +33304,34 @@ "tier": 9.0, "symbol": "GMX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GMX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -33339,13 +33460,13 @@ "symbol": "GOAT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -33355,34 +33476,34 @@ "tier": 9.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -33959,13 +34080,13 @@ "symbol": "GRT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -33975,34 +34096,34 @@ "tier": 9.0, "symbol": "GRT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GRT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -34286,13 +34407,13 @@ "symbol": "GUN/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -34302,34 +34423,189 @@ "tier": 9.0, "symbol": "GUN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "GUN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "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" + } + } + ], + "H/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "H/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": "H/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": "H/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": "H/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": "H/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": "H/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": "H/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "H/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "H/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "767325.0" } } ], @@ -34458,13 +34734,13 @@ "symbol": "HAEDAL/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -34474,34 +34750,34 @@ "tier": 9.0, "symbol": "HAEDAL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "HAEDAL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -36008,13 +36284,13 @@ "symbol": "HOME/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -36024,34 +36300,34 @@ "tier": 9.0, "symbol": "HOME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "HOME/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -36335,13 +36611,13 @@ "symbol": "HOT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -36351,34 +36627,34 @@ "tier": 9.0, "symbol": "HOT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "HOT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -36507,13 +36783,13 @@ "symbol": "HUMA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -36523,34 +36799,34 @@ "tier": 9.0, "symbol": "HUMA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "HUMA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -36868,13 +37144,13 @@ "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -36884,34 +37160,34 @@ "tier": 9.0, "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -37127,13 +37403,13 @@ "symbol": "ICX/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 20000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "20000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -37143,7 +37419,7 @@ "tier": 3.0, "symbol": "ICX/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, + "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, @@ -37151,9 +37427,9 @@ "bracket": "3", "initialLeverage": "20", "notionalCap": "25000", - "notionalFloor": "20000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "125.0" + "cum": "75.0" } }, { @@ -37161,84 +37437,101 @@ "symbol": "ICX/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 200000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "200000", + "notionalCap": "62500", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "750.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ICX/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "10750.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ICX/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "20750.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ICX/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.25", - "cum": "83250.0" + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "ICX/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "ICX/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "333250.0" + "cum": "767325.0" } } ], @@ -37367,13 +37660,13 @@ "symbol": "ID/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -37383,34 +37676,34 @@ "tier": 9.0, "symbol": "ID/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ID/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -37815,13 +38108,13 @@ "symbol": "IMX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -37831,34 +38124,34 @@ "tier": 9.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "IMX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -37987,13 +38280,13 @@ "symbol": "INIT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -38003,34 +38296,34 @@ "tier": 9.0, "symbol": "INIT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "INIT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -38314,13 +38607,13 @@ "symbol": "IO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -38330,34 +38623,34 @@ "tier": 9.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -38641,13 +38934,13 @@ "symbol": "IOTA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -38657,34 +38950,34 @@ "tier": 9.0, "symbol": "IOTA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "IOTA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -38883,13 +39176,13 @@ "symbol": "IP/USDC:USDC", "currency": "USDC", "minNotional": 10000.0, - "maxNotional": 30000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "30000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -38899,119 +39192,119 @@ "tier": 4.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 30000.0, - "maxNotional": 60000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "60000", - "notionalFloor": "30000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "225.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "1725.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "16725.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "600000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "31725.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 750000.0, - "maxNotional": 1300000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1300000", - "notionalFloor": "750000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "63000.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 1300000.0, - "maxNotional": 1500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "1300000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "171290.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "IP/USDC:USDC", "currency": "USDC", - "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "546290.0" + "cum": "2284650.0" } } ], @@ -39140,13 +39433,13 @@ "symbol": "IP/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -39156,34 +39449,34 @@ "tier": 9.0, "symbol": "IP/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "IP/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -39641,13 +39934,13 @@ "symbol": "JST/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -39657,75 +39950,75 @@ "tier": 3.0, "symbol": "JST/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "JST/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "JST/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "JST/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "JST/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -39733,9 +40026,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -39752,7 +40045,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -39769,7 +40062,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -39898,13 +40191,13 @@ "symbol": "JTO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -39914,34 +40207,34 @@ "tier": 9.0, "symbol": "JTO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "JTO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -40259,13 +40552,13 @@ "symbol": "KAIA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -40275,34 +40568,34 @@ "tier": 9.0, "symbol": "KAIA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "KAIA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -40346,13 +40639,13 @@ "symbol": "KAITO/USDC:USDC", "currency": "USDC", "minNotional": 10000.0, - "maxNotional": 30000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "30000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -40362,119 +40655,119 @@ "tier": 4.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 30000.0, - "maxNotional": 60000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "60000", - "notionalFloor": "30000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "225.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "1725.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "16725.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "600000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "31725.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 750000.0, - "maxNotional": 1300000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1300000", - "notionalFloor": "750000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "63000.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 1300000.0, - "maxNotional": 1500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "1300000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "171290.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "KAITO/USDC:USDC", "currency": "USDC", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "546290.0" + "cum": "2284650.0" } } ], @@ -40603,13 +40896,13 @@ "symbol": "KAITO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -40619,34 +40912,34 @@ "tier": 9.0, "symbol": "KAITO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "KAITO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -40775,13 +41068,13 @@ "symbol": "KAS/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -40791,34 +41084,34 @@ "tier": 9.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "KAS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -40947,13 +41240,13 @@ "symbol": "KAVA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -40963,34 +41256,34 @@ "tier": 9.0, "symbol": "KAVA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "KAVA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -41017,13 +41310,13 @@ "symbol": "KDA/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -41033,75 +41326,75 @@ "tier": 3.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "KDA/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -41109,9 +41402,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -41128,7 +41421,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -41145,7 +41438,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -41569,13 +41862,13 @@ "symbol": "KMNO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11666.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11666", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -41585,75 +41878,75 @@ "tier": 3.0, "symbol": "KMNO/USDT:USDT", "currency": "USDT", - "minNotional": 11666.0, - "maxNotional": 27500.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "27500", - "notionalFloor": "11666", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "83.33" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "KMNO/USDT:USDT", "currency": "USDT", - "minNotional": 27500.0, - "maxNotional": 67083.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "67083", - "notionalFloor": "27500", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "770.83" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "KMNO/USDT:USDT", "currency": "USDT", - "minNotional": 67083.0, - "maxNotional": 137500.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "137500", - "notionalFloor": "67083", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4124.98" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "KMNO/USDT:USDT", "currency": "USDT", - "minNotional": 137500.0, - "maxNotional": 275000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "275000", - "notionalFloor": "137500", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7562.48" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "KMNO/USDT:USDT", "currency": "USDT", - "minNotional": 275000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -41661,9 +41954,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "275000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19029.98" + "cum": "17375.0" } }, { @@ -41680,7 +41973,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "143979.98" + "cum": "142325.0" } }, { @@ -41697,7 +41990,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "768979.98" + "cum": "767325.0" } } ], @@ -42274,13 +42567,13 @@ "symbol": "LA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -42290,34 +42583,34 @@ "tier": 9.0, "symbol": "LA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "LA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -42328,14 +42621,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -42345,14 +42638,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -42362,15 +42655,15 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "25", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { @@ -42379,15 +42672,15 @@ "currency": "USDT", "minNotional": 25000.0, "maxNotional": 50000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "20", "notionalCap": "50000", "notionalFloor": "25000", - "maintMarginRatio": "0.1", - "cum": "1525.0" + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { @@ -42395,33 +42688,33 @@ "symbol": "LAYER/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "100000", + "initialLeverage": "10", + "notionalCap": "125000", "notionalFloor": "50000", - "maintMarginRatio": "0.125", - "cum": "2775.0" + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "LAYER/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, + "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "3", + "initialLeverage": "5", "notionalCap": "250000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1667", - "cum": "6945.0" + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { @@ -42430,15 +42723,15 @@ "currency": "USDT", "minNotional": 250000.0, "maxNotional": 500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "2", + "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "250000", - "maintMarginRatio": "0.25", - "cum": "27770.0" + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { @@ -42446,16 +42739,50 @@ "symbol": "LAYER/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 800000.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": "LAYER/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": "LAYER/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "2284650.0" } } ], @@ -43911,13 +44238,13 @@ "symbol": "LPT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -43927,34 +44254,34 @@ "tier": 9.0, "symbol": "LPT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "LPT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -44945,13 +45272,13 @@ "symbol": "LUNA2/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -44961,75 +45288,75 @@ "tier": 3.0, "symbol": "LUNA2/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "LUNA2/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "LUNA2/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "LUNA2/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "LUNA2/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -45037,9 +45364,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -45056,7 +45383,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -45073,7 +45400,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -45202,13 +45529,13 @@ "symbol": "MAGIC/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -45218,34 +45545,34 @@ "tier": 9.0, "symbol": "MAGIC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MAGIC/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -45374,13 +45701,13 @@ "symbol": "MANA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -45390,34 +45717,34 @@ "tier": 9.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -45444,13 +45771,13 @@ "symbol": "MANTA/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -45460,75 +45787,75 @@ "tier": 3.0, "symbol": "MANTA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "MANTA/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "MANTA/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "MANTA/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "MANTA/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -45536,9 +45863,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -45555,7 +45882,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -45572,7 +45899,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -45701,13 +46028,13 @@ "symbol": "MASK/USDT:USDT", "currency": "USDT", "minNotional": 300000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "300000", "maintMarginRatio": "0.1667", "cum": "20862.5" @@ -45717,34 +46044,34 @@ "tier": 9.0, "symbol": "MASK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "145812.5" + "cum": "395712.5" } }, { "tier": 10.0, "symbol": "MASK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "770812.5" + "cum": "2270712.5" } } ], @@ -45910,14 +46237,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -45926,15 +46253,15 @@ "symbol": "MAVIA/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "25", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -45942,85 +46269,119 @@ "tier": 3.0, "symbol": "MAVIA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "650.0" + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "MAVIA/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "500000", - "notionalFloor": "200000", - "maintMarginRatio": "0.1", - "cum": "10650.0" + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "MAVIA/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 750000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "500000", - "maintMarginRatio": "0.125", - "cum": "23150.0" + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "MAVIA/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "750000", - "maintMarginRatio": "0.25", - "cum": "116900.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "MAVIA/USDT:USDT", "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "MAVIA/USDT:USDT", + "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "MAVIA/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "491900.0" + "cum": "767325.0" } } ], @@ -46323,13 +46684,13 @@ "symbol": "ME/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -46339,75 +46700,75 @@ "tier": 3.0, "symbol": "ME/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ME/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ME/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ME/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ME/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -46415,9 +46776,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -46434,7 +46795,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -46451,7 +46812,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -46461,13 +46822,13 @@ "symbol": "MELANIA/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 2000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "2000", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -46477,153 +46838,153 @@ "tier": 2.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 2000.0, - "maxNotional": 4000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "4000", - "notionalFloor": "2000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "10.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 4000.0, - "maxNotional": 5000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "5000", - "notionalFloor": "4000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "30.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "5000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "55.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 200000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "25000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "680.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "500000", - "notionalFloor": "200000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "10680.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "500000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "23180.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1000000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1000000", - "notionalFloor": "750000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "54455.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "1000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "137755.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MELANIA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "512755.0" + "cum": "2284650.0" } } ], @@ -46752,13 +47113,13 @@ "symbol": "MEME/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -46768,34 +47129,34 @@ "tier": 9.0, "symbol": "MEME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MEME/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -47682,13 +48043,13 @@ "symbol": "MINA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -47698,34 +48059,34 @@ "tier": 9.0, "symbol": "MINA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MINA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -48336,13 +48697,13 @@ "symbol": "MOODENG/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -48352,34 +48713,34 @@ "tier": 9.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -48545,14 +48906,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -48562,14 +48923,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -48579,15 +48940,15 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "25", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { @@ -48596,15 +48957,15 @@ "currency": "USDT", "minNotional": 25000.0, "maxNotional": 50000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "20", "notionalCap": "50000", "notionalFloor": "25000", - "maintMarginRatio": "0.1", - "cum": "1525.0" + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { @@ -48612,33 +48973,33 @@ "symbol": "MOVE/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "100000", + "initialLeverage": "10", + "notionalCap": "125000", "notionalFloor": "50000", - "maintMarginRatio": "0.125", - "cum": "2775.0" + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "MOVE/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, + "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "3", + "initialLeverage": "5", "notionalCap": "250000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1667", - "cum": "6945.0" + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { @@ -48647,15 +49008,15 @@ "currency": "USDT", "minNotional": 250000.0, "maxNotional": 500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "2", + "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "250000", - "maintMarginRatio": "0.25", - "cum": "27770.0" + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { @@ -48663,16 +49024,50 @@ "symbol": "MOVE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 800000.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": "MOVE/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": "MOVE/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "2284650.0" } } ], @@ -49111,13 +49506,13 @@ "symbol": "MUBARAK/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -49127,34 +49522,34 @@ "tier": 9.0, "symbol": "MUBARAK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "MUBARAK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -49886,13 +50281,13 @@ "symbol": "NEIRO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -49902,34 +50297,34 @@ "tier": 9.0, "symbol": "NEIRO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NEIRO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -49940,14 +50335,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "15", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -49957,14 +50352,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 8.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "8", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -49974,15 +50369,15 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "6", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { @@ -49990,50 +50385,50 @@ "symbol": "NEIROETH/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.1", - "cum": "1525.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "NEIROETH/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "100000", - "notionalFloor": "50000", - "maintMarginRatio": "0.125", - "cum": "2775.0" + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "NEIROETH/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, + "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "3", + "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1667", - "cum": "6945.0" + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -50041,33 +50436,50 @@ "symbol": "NEIROETH/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "2", - "notionalCap": "500000", + "initialLeverage": "3", + "notionalCap": "1500000", "notionalFloor": "250000", - "maintMarginRatio": "0.25", - "cum": "27770.0" + "maintMarginRatio": "0.1667", + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "NEIROETH/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "NEIROETH/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "767325.0" } } ], @@ -50078,14 +50490,14 @@ "currency": "USDC", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.006, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "20", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.006", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -50094,152 +50506,152 @@ "symbol": "NEO/USDC:USDC", "currency": "USDC", "minNotional": 5000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 15.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "15", - "notionalCap": "50000", + "initialLeverage": "50", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.01", - "cum": "20.0" + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 50000.0, - "maxNotional": 60000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 12.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "12", - "notionalCap": "60000", - "notionalFloor": "50000", + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "520.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 60000.0, - "maxNotional": 100000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "100000", - "notionalFloor": "60000", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "820.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 100000.0, - "maxNotional": 300000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "6", - "notionalCap": "300000", - "notionalFloor": "100000", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "3320.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "18320.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "600000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "33320.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 750000.0, - "maxNotional": 1300000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1300000", - "notionalFloor": "750000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "64595.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 1300000.0, - "maxNotional": 1500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "1300000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "172885.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "547885.0" + "cum": "2284650.0" } } ], @@ -50368,13 +50780,13 @@ "symbol": "NEO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -50384,34 +50796,206 @@ "tier": 9.0, "symbol": "NEO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NEO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" + } + } + ], + "NEWT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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": "NEWT/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" } } ], @@ -50695,13 +51279,13 @@ "symbol": "NIL/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -50711,34 +51295,34 @@ "tier": 9.0, "symbol": "NIL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NIL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -51005,13 +51589,13 @@ "symbol": "NMR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -51021,34 +51605,34 @@ "tier": 9.0, "symbol": "NMR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NMR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -51177,13 +51761,13 @@ "symbol": "NOT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -51193,34 +51777,34 @@ "tier": 9.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -51659,13 +52243,13 @@ "symbol": "NXPC/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -51675,34 +52259,34 @@ "tier": 9.0, "symbol": "NXPC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "NXPC/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -52275,6 +52859,161 @@ } } ], + "OL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "OL/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": "OL/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": "OL/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": "OL/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": "OL/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": "OL/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": "OL/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "OL/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "OL/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "767325.0" + } + } + ], "OM/USDT:USDT": [ { "tier": 1.0, @@ -52400,13 +53139,13 @@ "symbol": "OM/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -52416,34 +53155,34 @@ "tier": 9.0, "symbol": "OM/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "OM/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -53037,13 +53776,13 @@ "symbol": "ONE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -53053,34 +53792,34 @@ "tier": 9.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -53744,13 +54483,13 @@ "symbol": "ORCA/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -53760,75 +54499,75 @@ "tier": 3.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -53836,9 +54575,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -53855,7 +54594,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -53872,7 +54611,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -53883,14 +54622,14 @@ "currency": "USDC", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.0065, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "20", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.0065", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -53899,152 +54638,152 @@ "symbol": "ORDI/USDC:USDC", "currency": "USDC", "minNotional": 5000.0, - "maxNotional": 75000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 10.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "10", - "notionalCap": "75000", + "initialLeverage": "50", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.01", - "cum": "17.5" + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 75000.0, - "maxNotional": 150000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 8.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "8", - "notionalCap": "150000", - "notionalFloor": "75000", - "maintMarginRatio": "0.015", - "cum": "392.5" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 150000.0, - "maxNotional": 300000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 7.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "7", - "notionalCap": "300000", - "notionalFloor": "150000", - "maintMarginRatio": "0.02", - "cum": "1142.5" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 300000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 6.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "6", - "notionalCap": "1000000", - "notionalFloor": "300000", - "maintMarginRatio": "0.025", - "cum": "2642.5" + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 1000000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.05, + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.05", - "cum": "27642.5" + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 3000000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.1, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "6000000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.1", - "cum": "177642.5" + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, - "maintenanceMarginRate": 0.125, + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "10000000", - "notionalFloor": "6000000", - "maintMarginRatio": "0.125", - "cum": "327642.5" + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 10000000.0, - "maxNotional": 20000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "20000000", - "notionalFloor": "10000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "1577642.5" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ORDI/USDC:USDC", "currency": "USDC", - "minNotional": 20000000.0, - "maxNotional": 30000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "30000000", - "notionalFloor": "20000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "6577642.5" + "cum": "2284650.0" } } ], @@ -54173,13 +54912,13 @@ "symbol": "ORDI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -54189,34 +54928,34 @@ "tier": 9.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -54500,13 +55239,13 @@ "symbol": "PARTI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -54516,34 +55255,34 @@ "tier": 9.0, "symbol": "PARTI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PARTI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -54948,13 +55687,13 @@ "symbol": "PENGU/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" @@ -54964,51 +55703,51 @@ "tier": 4.0, "symbol": "PENGU/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": "PENGU/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": "PENGU/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" } }, { @@ -55016,33 +55755,33 @@ "symbol": "PENGU/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": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 750000.0, "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", + "initialLeverage": "4", "notionalCap": "1500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { @@ -55050,33 +55789,50 @@ "symbol": "PENGU/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "9", - "initialLeverage": "2", - "notionalCap": "2500000", + "initialLeverage": "3", + "notionalCap": "4500000", "notionalFloor": "1500000", - "maintMarginRatio": "0.25", - "cum": "159750.0" + "maintMarginRatio": "0.1667", + "cum": "97877.5" } }, { "tier": 10.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "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": "PENGU/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12000000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2347727.5" } } ], @@ -55086,13 +55842,13 @@ "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 1000.0, + "maxNotional": 500.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "1000", + "notionalCap": "500", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -55102,7 +55858,7 @@ "tier": 2.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 1000.0, + "minNotional": 500.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, @@ -55110,9 +55866,9 @@ "bracket": "2", "initialLeverage": "50", "notionalCap": "5000", - "notionalFloor": "1000", + "notionalFloor": "500", "maintMarginRatio": "0.015", - "cum": "5.0" + "cum": "2.5" } }, { @@ -55120,135 +55876,135 @@ "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", - "cum": "30.0" + "cum": "27.5" } }, { "tier": 4.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "155.0" + "cum": "77.5" } }, { "tier": 5.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1405.0" + "cum": "702.5" } }, { "tier": 6.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7655.0" + "cum": "3827.5" } }, { "tier": 7.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13905.0" + "cum": "6952.5" } }, { "tier": 8.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalCap": "4500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34755.0" + "cum": "17377.5" } }, { "tier": 9.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159705.0" + "cum": "392227.5" } }, { "tier": 10.0, "symbol": "PEOPLE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784705.0" + "cum": "2267227.5" } } ], @@ -55740,13 +56496,13 @@ "symbol": "PIPPIN/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.025", "cum": "75.0" @@ -55756,58 +56512,58 @@ "tier": 4.0, "symbol": "PIPPIN/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1325.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "PIPPIN/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7575.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "PIPPIN/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13825.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "PIPPIN/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -55815,9 +56571,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34675.0" + "cum": "17375.0" } }, { @@ -55834,7 +56590,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "142325.0" } }, { @@ -55851,7 +56607,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "767325.0" } } ], @@ -55980,13 +56736,13 @@ "symbol": "PIXEL/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -55996,34 +56752,34 @@ "tier": 9.0, "symbol": "PIXEL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PIXEL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -56033,13 +56789,13 @@ "symbol": "PLUME/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 2000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "2000", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -56049,153 +56805,153 @@ "tier": 2.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 2000.0, - "maxNotional": 4000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "4000", - "notionalFloor": "2000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "10.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 4000.0, - "maxNotional": 5000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "5000", - "notionalFloor": "4000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "30.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "5000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "55.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 200000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "25000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "680.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "500000", - "notionalFloor": "200000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "10680.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "500000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "23180.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1000000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1000000", - "notionalFloor": "750000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "54455.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "1000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "137755.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PLUME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "512755.0" + "cum": "2284650.0" } } ], @@ -56239,13 +56995,13 @@ "symbol": "PNUT/USDC:USDC", "currency": "USDC", "minNotional": 10000.0, - "maxNotional": 30000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "30000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -56255,119 +57011,119 @@ "tier": 4.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 30000.0, - "maxNotional": 60000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "60000", - "notionalFloor": "30000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "225.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "1725.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "16725.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 600000.0, - "maxNotional": 750000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "600000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "31725.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 750000.0, - "maxNotional": 1300000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1300000", - "notionalFloor": "750000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "63000.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 1300000.0, - "maxNotional": 1500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "1300000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "171290.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PNUT/USDC:USDC", "currency": "USDC", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "546290.0" + "cum": "2284650.0" } } ], @@ -56496,13 +57252,13 @@ "symbol": "PNUT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -56512,34 +57268,34 @@ "tier": 9.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -56755,13 +57511,13 @@ "symbol": "POLYX/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -56771,75 +57527,75 @@ "tier": 3.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -56847,9 +57603,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -56866,7 +57622,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -56883,7 +57639,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -57167,13 +57923,13 @@ "symbol": "POPCAT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -57183,34 +57939,34 @@ "tier": 9.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -58545,13 +59301,13 @@ "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -58561,34 +59317,34 @@ "tier": 9.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PUNDIX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -58717,13 +59473,13 @@ "symbol": "PYTH/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -58733,34 +59489,34 @@ "tier": 9.0, "symbol": "PYTH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "PYTH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -58889,13 +59645,13 @@ "symbol": "QNT/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -58905,34 +59661,34 @@ "tier": 9.0, "symbol": "QNT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "QNT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -58959,101 +59715,135 @@ "symbol": "QTUM/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "25", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "50.0" + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "QTUM/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "675.0" + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "QTUM/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "500000", - "notionalFloor": "200000", - "maintMarginRatio": "0.1", - "cum": "10675.0" + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "QTUM/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.125", - "cum": "23175.0" + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "QTUM/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "3000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.25", - "cum": "148175.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "QTUM/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 5000000.0, + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "QTUM/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "QTUM/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "3000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "898175.0" + "cum": "767325.0" } } ], @@ -59356,13 +60146,13 @@ "symbol": "RARE/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -59372,75 +60162,75 @@ "tier": 3.0, "symbol": "RARE/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "RARE/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "RARE/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "RARE/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "RARE/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -59448,9 +60238,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -59467,7 +60257,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -59484,7 +60274,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -59717,13 +60507,13 @@ "symbol": "RAYSOL/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -59733,34 +60523,34 @@ "tier": 9.0, "symbol": "RAYSOL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RAYSOL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -59942,13 +60732,13 @@ "symbol": "RED/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11666.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11666", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -59958,75 +60748,75 @@ "tier": 3.0, "symbol": "RED/USDT:USDT", "currency": "USDT", - "minNotional": 11666.0, - "maxNotional": 27500.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "27500", - "notionalFloor": "11666", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "83.33" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "RED/USDT:USDT", "currency": "USDT", - "minNotional": 27500.0, - "maxNotional": 67083.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "67083", - "notionalFloor": "27500", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "770.83" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "RED/USDT:USDT", "currency": "USDT", - "minNotional": 67083.0, - "maxNotional": 137500.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "137500", - "notionalFloor": "67083", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4124.98" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "RED/USDT:USDT", "currency": "USDT", - "minNotional": 137500.0, - "maxNotional": 275000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "275000", - "notionalFloor": "137500", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7562.48" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "RED/USDT:USDT", "currency": "USDT", - "minNotional": 275000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -60034,9 +60824,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "275000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19029.98" + "cum": "17375.0" } }, { @@ -60053,7 +60843,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "143979.98" + "cum": "142325.0" } }, { @@ -60070,7 +60860,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "768979.98" + "cum": "767325.0" } } ], @@ -60579,13 +61369,13 @@ "symbol": "RENDER/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -60595,34 +61385,34 @@ "tier": 9.0, "symbol": "RENDER/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RENDER/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -60751,13 +61541,13 @@ "symbol": "RESOLV/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -60767,34 +61557,34 @@ "tier": 9.0, "symbol": "RESOLV/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RESOLV/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -60923,13 +61713,13 @@ "symbol": "REZ/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -60939,34 +61729,34 @@ "tier": 9.0, "symbol": "REZ/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "REZ/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -61250,13 +62040,13 @@ "symbol": "RLC/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -61266,34 +62056,34 @@ "tier": 9.0, "symbol": "RLC/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RLC/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -61422,13 +62212,13 @@ "symbol": "RONIN/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -61438,34 +62228,34 @@ "tier": 9.0, "symbol": "RONIN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RONIN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -61594,13 +62384,13 @@ "symbol": "ROSE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -61610,34 +62400,34 @@ "tier": 9.0, "symbol": "ROSE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ROSE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -62093,13 +62883,13 @@ "symbol": "RUNE/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -62109,34 +62899,34 @@ "tier": 9.0, "symbol": "RUNE/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RUNE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -62265,13 +63055,13 @@ "symbol": "RVN/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -62281,34 +63071,34 @@ "tier": 9.0, "symbol": "RVN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "RVN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -62781,13 +63571,13 @@ "symbol": "SAGA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -62797,34 +63587,223 @@ "tier": 9.0, "symbol": "SAGA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SAGA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" + } + } + ], + "SAHARA/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "SAHARA/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": "SAHARA/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": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.025", + "cum": "325.0" + } + }, + { + "tier": 5.0, + "symbol": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, + "info": { + "bracket": "5", + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" + } + }, + { + "tier": 6.0, + "symbol": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 175000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "6", + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" + } + }, + { + "tier": 7.0, + "symbol": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "7", + "initialLeverage": "5", + "notionalCap": "750000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "16577.5" + } + }, + { + "tier": 8.0, + "symbol": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "8", + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" + } + }, + { + "tier": 9.0, + "symbol": "SAHARA/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": "SAHARA/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": "SAHARA/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "11", + "initialLeverage": "1", + "notionalCap": "12000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2347727.5" } } ], @@ -62834,15 +63813,15 @@ "symbol": "SAND/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.006, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "25000", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.006", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -62850,153 +63829,153 @@ "tier": 2.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.01, + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.01", - "cum": "100.0" + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 40.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "40", - "notionalCap": "80000", - "notionalFloor": "50000", - "maintMarginRatio": "0.015", - "cum": "350.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 300000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "80000", - "maintMarginRatio": "0.02", - "cum": "750.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", - "maintMarginRatio": "0.025", - "cum": "2250.0" + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", - "notionalCap": "3000000", - "notionalFloor": "600000", - "maintMarginRatio": "0.05", - "cum": "17250.0" + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", - "notionalCap": "4000000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.1", - "cum": "167250.0" + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", - "notionalCap": "5000000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.125", - "cum": "267250.0" + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 6000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "6000000", - "notionalFloor": "5000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "892250.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SAND/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 7000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "7000000", - "notionalFloor": "6000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2392250.0" + "cum": "2284650.0" } } ], @@ -63384,13 +64363,13 @@ "symbol": "SCR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -63400,34 +64379,34 @@ "tier": 9.0, "symbol": "SCR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SCR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -63609,13 +64588,13 @@ "symbol": "SEI/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" @@ -63625,51 +64604,51 @@ "tier": 4.0, "symbol": "SEI/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": "SEI/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": "SEI/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" } }, { @@ -63677,33 +64656,33 @@ "symbol": "SEI/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": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 750000.0, "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "3", + "initialLeverage": "4", "notionalCap": "1500000", - "notionalFloor": "500000", - "maintMarginRatio": "0.1667", - "cum": "34800.0" + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" } }, { @@ -63711,33 +64690,50 @@ "symbol": "SEI/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "9", - "initialLeverage": "2", - "notionalCap": "2500000", + "initialLeverage": "3", + "notionalCap": "4500000", "notionalFloor": "1500000", - "maintMarginRatio": "0.25", - "cum": "159750.0" + "maintMarginRatio": "0.1667", + "cum": "97877.5" } }, { "tier": 10.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "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": "SEI/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "11", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12000000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2347727.5" } } ], @@ -63902,15 +64898,15 @@ "symbol": "SHELL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 1000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "1000", + "initialLeverage": "50", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -63918,34 +64914,34 @@ "tier": 2.0, "symbol": "SHELL/USDT:USDT", "currency": "USDT", - "minNotional": 1000.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "5000", - "notionalFloor": "1000", - "maintMarginRatio": "0.015", - "cum": "5.0" + "initialLeverage": "25", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "SHELL/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, + "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": "5000", - "maintMarginRatio": "0.02", - "cum": "30.0" + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { @@ -63953,33 +64949,33 @@ "symbol": "SHELL/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": "155.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "SHELL/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": "1405.0" + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { @@ -63988,15 +64984,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": "7655.0" + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -64004,37 +65000,20 @@ "symbol": "SHELL/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": "13905.0" - } - }, - { - "tier": 8.0, - "symbol": "SHELL/USDT:USDT", - "currency": "USDT", - "minNotional": 500000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34755.0" + "cum": "17375.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "SHELL/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, @@ -64042,16 +65021,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "2", "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159705.0" + "cum": "142325.0" } }, { - "tier": 10.0, + "tier": 9.0, "symbol": "SHELL/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, @@ -64059,12 +65038,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "10", + "bracket": "9", "initialLeverage": "1", "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784705.0" + "cum": "767325.0" } } ], @@ -64193,13 +65172,13 @@ "symbol": "SIGN/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -64209,34 +65188,34 @@ "tier": 9.0, "symbol": "SIGN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SIGN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -64247,14 +65226,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -64264,14 +65243,14 @@ "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "25", "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.02", "cum": "25.0" } }, @@ -64281,15 +65260,15 @@ "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "10000", - "maintMarginRatio": "0.05", - "cum": "275.0" + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { @@ -64297,50 +65276,50 @@ "symbol": "SIREN/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", - "maintMarginRatio": "0.1", - "cum": "1525.0" + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "SIREN/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "100000", - "notionalFloor": "50000", - "maintMarginRatio": "0.125", - "cum": "2775.0" + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "SIREN/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, + "minNotional": 125000.0, "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1667, - "maxLeverage": 3.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "3", + "initialLeverage": "4", "notionalCap": "250000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1667", - "cum": "6945.0" + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { @@ -64348,33 +65327,50 @@ "symbol": "SIREN/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "2", - "notionalCap": "500000", + "initialLeverage": "3", + "notionalCap": "1500000", "notionalFloor": "250000", - "maintMarginRatio": "0.25", - "cum": "27770.0" + "maintMarginRatio": "0.1667", + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "SIREN/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 800000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "SIREN/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "800000", - "notionalFloor": "500000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "767325.0" } } ], @@ -65365,13 +66361,13 @@ "symbol": "SNX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -65381,34 +66377,34 @@ "tier": 9.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SNX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -65607,13 +66603,13 @@ "symbol": "SOL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 20000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.005, "maxLeverage": 100.0, "info": { "bracket": "1", "initialLeverage": "100", - "notionalCap": "20000", + "notionalCap": "50000", "notionalFloor": "0", "maintMarginRatio": "0.005", "cum": "0.0" @@ -65623,41 +66619,41 @@ "tier": 2.0, "symbol": "SOL/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 100000.0, + "minNotional": 50000.0, + "maxNotional": 400000.0, "maintenanceMarginRate": 0.0065, "maxLeverage": 75.0, "info": { "bracket": "2", "initialLeverage": "75", - "notionalCap": "100000", - "notionalFloor": "20000", + "notionalCap": "400000", + "notionalFloor": "50000", "maintMarginRatio": "0.0065", - "cum": "30.0" + "cum": "75.0" } }, { "tier": 3.0, "symbol": "SOL/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 800000.0, + "minNotional": 400000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.01, "maxLeverage": 50.0, "info": { "bracket": "3", "initialLeverage": "50", - "notionalCap": "800000", - "notionalFloor": "100000", + "notionalCap": "1000000", + "notionalFloor": "400000", "maintMarginRatio": "0.01", - "cum": "380.0" + "cum": "1475.0" } }, { "tier": 4.0, "symbol": "SOL/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, + "minNotional": 1000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, @@ -65665,9 +66661,9 @@ "bracket": "4", "initialLeverage": "25", "notionalCap": "4000000", - "notionalFloor": "800000", + "notionalFloor": "1000000", "maintMarginRatio": "0.02", - "cum": "8380.0" + "cum": "11475.0" } }, { @@ -65684,7 +66680,7 @@ "notionalCap": "8000000", "notionalFloor": "4000000", "maintMarginRatio": "0.025", - "cum": "28380.0" + "cum": "31475.0" } }, { @@ -65701,7 +66697,7 @@ "notionalCap": "40000000", "notionalFloor": "8000000", "maintMarginRatio": "0.05", - "cum": "228380.0" + "cum": "231475.0" } }, { @@ -65718,7 +66714,7 @@ "notionalCap": "80000000", "notionalFloor": "40000000", "maintMarginRatio": "0.1", - "cum": "2228380.0" + "cum": "2231475.0" } }, { @@ -65735,7 +66731,7 @@ "notionalCap": "100000000", "notionalFloor": "80000000", "maintMarginRatio": "0.125", - "cum": "4228380.0" + "cum": "4231475.0" } }, { @@ -65752,7 +66748,7 @@ "notionalCap": "200000000", "notionalFloor": "100000000", "maintMarginRatio": "0.25", - "cum": "16728380.0" + "cum": "16731475.0" } }, { @@ -65769,7 +66765,7 @@ "notionalCap": "400000000", "notionalFloor": "200000000", "maintMarginRatio": "0.5", - "cum": "66728380.0" + "cum": "66731475.0" } } ], @@ -65898,13 +66894,13 @@ "symbol": "SOLV/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -65914,34 +66910,34 @@ "tier": 9.0, "symbol": "SOLV/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SOLV/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -66225,13 +67221,13 @@ "symbol": "SOON/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -66241,34 +67237,34 @@ "tier": 9.0, "symbol": "SOON/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SOON/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -66397,13 +67393,13 @@ "symbol": "SOPH/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -66413,34 +67409,34 @@ "tier": 9.0, "symbol": "SOPH/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SOPH/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -66452,10 +67448,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.015", @@ -66467,13 +67463,13 @@ "symbol": "SPELL/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 20000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "15", - "notionalCap": "20000", + "initialLeverage": "25", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -66483,17 +67479,17 @@ "tier": 3.0, "symbol": "SPELL/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, + "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "20", "notionalCap": "25000", - "notionalFloor": "20000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "125.0" + "cum": "75.0" } }, { @@ -66501,84 +67497,101 @@ "symbol": "SPELL/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, - "maxNotional": 200000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "8", - "notionalCap": "200000", + "initialLeverage": "10", + "notionalCap": "62500", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "750.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "SPELL/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "10750.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "SPELL/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "20750.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "SPELL/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.25", - "cum": "83250.0" + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" } }, { "tier": 8.0, "symbol": "SPELL/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "SPELL/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "1500000", - "notionalFloor": "1000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "333250.0" + "cum": "767325.0" } } ], @@ -66896,13 +67909,13 @@ "symbol": "SPX/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -66912,34 +67925,34 @@ "tier": 9.0, "symbol": "SPX/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SPX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -67223,13 +68236,13 @@ "symbol": "SSV/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -67239,34 +68252,34 @@ "tier": 9.0, "symbol": "SSV/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SSV/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -67792,13 +68805,13 @@ "symbol": "STO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -67808,34 +68821,34 @@ "tier": 9.0, "symbol": "STO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "STO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -67862,13 +68875,13 @@ "symbol": "STORJ/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -67878,75 +68891,75 @@ "tier": 3.0, "symbol": "STORJ/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "STORJ/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "STORJ/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "STORJ/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "STORJ/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -67954,9 +68967,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -67973,7 +68986,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -67990,7 +69003,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -68344,13 +69357,13 @@ "symbol": "STRK/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -68360,34 +69373,34 @@ "tier": 9.0, "symbol": "STRK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "STRK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -68998,13 +70011,13 @@ "symbol": "SUN/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -69014,34 +70027,34 @@ "tier": 9.0, "symbol": "SUN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SUN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -69170,13 +70183,13 @@ "symbol": "SUPER/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -69186,34 +70199,34 @@ "tier": 9.0, "symbol": "SUPER/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SUPER/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -69342,13 +70355,13 @@ "symbol": "SUSHI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -69358,34 +70371,34 @@ "tier": 9.0, "symbol": "SUSHI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "SUSHI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -69722,13 +70735,13 @@ "symbol": "SXP/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -69738,75 +70751,75 @@ "tier": 3.0, "symbol": "SXP/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "SXP/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "SXP/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "SXP/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "SXP/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -69814,9 +70827,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -69833,7 +70846,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -69850,7 +70863,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -70289,13 +71302,13 @@ "symbol": "SYRUP/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "250000", "maintMarginRatio": "0.1667", "cum": "17377.5" @@ -70305,34 +71318,34 @@ "tier": 9.0, "symbol": "SYRUP/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "142327.5" + "cum": "392227.5" } }, { "tier": 10.0, "symbol": "SYRUP/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "767327.5" + "cum": "2267227.5" } } ], @@ -70514,13 +71527,13 @@ "symbol": "T/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -70530,75 +71543,75 @@ "tier": 3.0, "symbol": "T/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "T/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "T/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "T/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "T/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -70606,9 +71619,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -70625,7 +71638,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -70642,7 +71655,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -72682,13 +73695,13 @@ "symbol": "TRU/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -72698,34 +73711,34 @@ "tier": 9.0, "symbol": "TRU/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "TRU/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -73353,13 +74366,13 @@ "symbol": "TST/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -73369,34 +74382,34 @@ "tier": 9.0, "symbol": "TST/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "TST/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -73525,13 +74538,13 @@ "symbol": "TURBO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -73541,34 +74554,34 @@ "tier": 9.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -73612,13 +74625,13 @@ "symbol": "TUT/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.025", "cum": "75.0" @@ -73628,58 +74641,58 @@ "tier": 4.0, "symbol": "TUT/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1325.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "TUT/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7575.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "TUT/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13825.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "TUT/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -73687,9 +74700,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34675.0" + "cum": "17375.0" } }, { @@ -73706,7 +74719,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "142325.0" } }, { @@ -73723,7 +74736,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "767325.0" } } ], @@ -74903,13 +75916,13 @@ "symbol": "USUAL/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -74919,34 +75932,34 @@ "tier": 9.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -74990,13 +76003,13 @@ "symbol": "UXLINK/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.025", "cum": "75.0" @@ -75006,58 +76019,58 @@ "tier": 4.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1325.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7575.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13825.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "UXLINK/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -75065,9 +76078,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34675.0" + "cum": "17375.0" } }, { @@ -75084,7 +76097,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "142325.0" } }, { @@ -75101,7 +76114,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "767325.0" } } ], @@ -75230,13 +76243,13 @@ "symbol": "VANA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -75246,34 +76259,34 @@ "tier": 9.0, "symbol": "VANA/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "VANA/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -75300,101 +76313,135 @@ "symbol": "VANRY/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "25000", + "initialLeverage": "25", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "50.0" + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "VANRY/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "100000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "675.0" + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "VANRY/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "200000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1", - "cum": "5675.0" + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "VANRY/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "200000", - "maintMarginRatio": "0.125", - "cum": "10675.0" + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "VANRY/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.25", - "cum": "73175.0" + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "VANRY/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "VANRY/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "VANRY/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "323175.0" + "cum": "767325.0" } } ], @@ -76489,13 +77536,13 @@ "symbol": "VTHO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11875.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11875", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -76505,75 +77552,75 @@ "tier": 3.0, "symbol": "VTHO/USDT:USDT", "currency": "USDT", - "minNotional": 11875.0, - "maxNotional": 28125.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "28125", - "notionalFloor": "11875", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "84.375" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "VTHO/USDT:USDT", "currency": "USDT", - "minNotional": 28125.0, - "maxNotional": 70312.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "70312", - "notionalFloor": "28125", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "787.5" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "VTHO/USDT:USDT", "currency": "USDT", - "minNotional": 70312.0, - "maxNotional": 140625.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "140625", - "notionalFloor": "70312", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4303.1" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "VTHO/USDT:USDT", "currency": "USDT", - "minNotional": 140625.0, - "maxNotional": 281250.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "281250", - "notionalFloor": "140625", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7818.725" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "VTHO/USDT:USDT", "currency": "USDT", - "minNotional": 281250.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -76581,9 +77628,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "281250", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19546.85" + "cum": "17375.0" } }, { @@ -76600,7 +77647,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "144496.85" + "cum": "142325.0" } }, { @@ -76617,7 +77664,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "769496.85" + "cum": "767325.0" } } ], @@ -76901,13 +77948,13 @@ "symbol": "W/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -76917,34 +77964,34 @@ "tier": 9.0, "symbol": "W/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "W/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -77504,13 +78551,13 @@ "symbol": "WCT/USDT:USDT", "currency": "USDT", "minNotional": 375000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "375000", "maintMarginRatio": "0.1667", "cum": "26210.0" @@ -77520,34 +78567,34 @@ "tier": 9.0, "symbol": "WCT/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "151160.0" + "cum": "401060.0" } }, { "tier": 10.0, "symbol": "WCT/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "776160.0" + "cum": "2276060.0" } } ], @@ -77697,10 +78744,10 @@ "minNotional": 0.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "75", "notionalCap": "20000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -77714,10 +78761,10 @@ "minNotional": 20000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "200000", "notionalFloor": "20000", "maintMarginRatio": "0.015", @@ -77731,10 +78778,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "25", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.02", @@ -77748,10 +78795,10 @@ "minNotional": 1000000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "20", "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.025", @@ -77765,10 +78812,10 @@ "minNotional": 2000000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "10", "notionalCap": "5000000", "notionalFloor": "2000000", "maintMarginRatio": "0.05", @@ -77851,14 +78898,14 @@ "currency": "USDC", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.006, + "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.006", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -77867,152 +78914,152 @@ "symbol": "WLD/USDC:USDC", "currency": "USDC", "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.01, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.01", - "cum": "20.0" + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 25000.0, - "maxNotional": 150000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "150000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "270.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 150000.0, - "maxNotional": 300000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "300000", - "notionalFloor": "150000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "1020.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 300000.0, - "maxNotional": 3000000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "3000000", - "notionalFloor": "300000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "8520.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 3000000.0, - "maxNotional": 6000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "6000000", - "notionalFloor": "3000000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "158520.0" + "cum": "7700.0" } }, { "tier": 7.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 6000000.0, - "maxNotional": 7500000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "7500000", - "notionalFloor": "6000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "308520.0" + "cum": "13950.0" } }, { "tier": 8.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 7500000.0, - "maxNotional": 8000000.0, + "minNotional": 500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "8000000", - "notionalFloor": "7500000", + "notionalCap": "4500000", + "notionalFloor": "500000", "maintMarginRatio": "0.1667", - "cum": "621270.0" + "cum": "34800.0" } }, { "tier": 9.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 8000000.0, - "maxNotional": 15000000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "15000000", - "notionalFloor": "8000000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "1287670.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "WLD/USDC:USDC", "currency": "USDC", - "minNotional": 15000000.0, - "maxNotional": 30000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "30000000", - "notionalFloor": "15000000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "5037670.0" + "cum": "2284650.0" } } ], @@ -78141,13 +79188,13 @@ "symbol": "WLD/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -78157,34 +79204,34 @@ "tier": 9.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -78211,84 +79258,135 @@ "symbol": "WOO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "10", - "notionalCap": "25000", + "initialLeverage": "25", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "50.0" + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "WOO/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "8", - "notionalCap": "100000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "675.0" + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "WOO/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1", - "cum": "5675.0" + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" } }, { "tier": 5.0, "symbol": "WOO/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 2.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "11925.0" + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "WOO/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 5000000.0, + "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": "WOO/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "WOO/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "142325.0" + } + }, + { + "tier": 9.0, + "symbol": "WOO/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "6", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "1000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "386925.0" + "cum": "767325.0" } } ], @@ -78417,13 +79515,13 @@ "symbol": "XAI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -78433,34 +79531,34 @@ "tier": 9.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -79020,13 +80118,13 @@ "symbol": "XMR/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -79036,34 +80134,34 @@ "tier": 9.0, "symbol": "XMR/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "XMR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -79245,15 +80343,15 @@ "symbol": "XRP/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.005, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.006, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "10000", + "notionalCap": "80000", "notionalFloor": "0", - "maintMarginRatio": "0.005", + "maintMarginRatio": "0.006", "cum": "0.0" } }, @@ -79261,17 +80359,17 @@ "tier": 2.0, "symbol": "XRP/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, + "minNotional": 80000.0, "maxNotional": 150000.0, - "maintenanceMarginRate": 0.0065, + "maintenanceMarginRate": 0.01, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", "notionalCap": "150000", - "notionalFloor": "10000", - "maintMarginRatio": "0.0065", - "cum": "15.0" + "notionalFloor": "80000", + "maintMarginRatio": "0.01", + "cum": "320.0" } }, { @@ -79280,15 +80378,15 @@ "currency": "USDT", "minNotional": 150000.0, "maxNotional": 400000.0, - "maintenanceMarginRate": 0.01, + "maintenanceMarginRate": 0.0125, "maxLeverage": 40.0, "info": { "bracket": "3", "initialLeverage": "40", "notionalCap": "400000", "notionalFloor": "150000", - "maintMarginRatio": "0.01", - "cum": "540.0" + "maintMarginRatio": "0.0125", + "cum": "695.0" } }, { @@ -79305,7 +80403,7 @@ "notionalCap": "1000000", "notionalFloor": "400000", "maintMarginRatio": "0.02", - "cum": "4540.0" + "cum": "3695.0" } }, { @@ -79322,7 +80420,7 @@ "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.025", - "cum": "9540.0" + "cum": "8695.0" } }, { @@ -79339,7 +80437,7 @@ "notionalCap": "10000000", "notionalFloor": "2000000", "maintMarginRatio": "0.05", - "cum": "59540.0" + "cum": "58695.0" } }, { @@ -79356,7 +80454,7 @@ "notionalCap": "20000000", "notionalFloor": "10000000", "maintMarginRatio": "0.1", - "cum": "559540.0" + "cum": "558695.0" } }, { @@ -79373,7 +80471,7 @@ "notionalCap": "25000000", "notionalFloor": "20000000", "maintMarginRatio": "0.125", - "cum": "1059540.0" + "cum": "1058695.0" } }, { @@ -79390,7 +80488,7 @@ "notionalCap": "50000000", "notionalFloor": "25000000", "maintMarginRatio": "0.25", - "cum": "4184540.0" + "cum": "4183695.0" } }, { @@ -79407,7 +80505,7 @@ "notionalCap": "100000000", "notionalFloor": "50000000", "maintMarginRatio": "0.5", - "cum": "16684540.0" + "cum": "16683695.0" } } ], @@ -79536,13 +80634,13 @@ "symbol": "XTZ/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -79552,34 +80650,34 @@ "tier": 9.0, "symbol": "XTZ/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "XTZ/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -79708,13 +80806,13 @@ "symbol": "XVG/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -79724,34 +80822,34 @@ "tier": 9.0, "symbol": "XVG/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "XVG/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -80035,13 +81133,13 @@ "symbol": "YFI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -80051,34 +81149,34 @@ "tier": 9.0, "symbol": "YFI/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "YFI/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -80105,13 +81203,13 @@ "symbol": "YGG/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 11666.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "11666", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -80121,75 +81219,75 @@ "tier": 3.0, "symbol": "YGG/USDT:USDT", "currency": "USDT", - "minNotional": 11666.0, - "maxNotional": 27500.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "27500", - "notionalFloor": "11666", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "83.33" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "YGG/USDT:USDT", "currency": "USDT", - "minNotional": 27500.0, - "maxNotional": 67083.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "67083", - "notionalFloor": "27500", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "770.83" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "YGG/USDT:USDT", "currency": "USDT", - "minNotional": 67083.0, - "maxNotional": 137500.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "137500", - "notionalFloor": "67083", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "4124.98" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "YGG/USDT:USDT", "currency": "USDT", - "minNotional": 137500.0, - "maxNotional": 275000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "275000", - "notionalFloor": "137500", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "7562.48" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "YGG/USDT:USDT", "currency": "USDT", - "minNotional": 275000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -80197,9 +81295,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "275000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "19029.98" + "cum": "17375.0" } }, { @@ -80216,7 +81314,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "143979.98" + "cum": "142325.0" } }, { @@ -80233,7 +81331,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "768979.98" + "cum": "767325.0" } } ], @@ -80398,13 +81496,13 @@ "symbol": "ZEN/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -80414,75 +81512,75 @@ "tier": 3.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -80490,9 +81588,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -80509,7 +81607,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -80526,7 +81624,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ], @@ -80725,13 +81823,13 @@ "symbol": "ZETA/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.025", "cum": "75.0" @@ -80741,58 +81839,58 @@ "tier": 4.0, "symbol": "ZETA/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1325.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ZETA/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7575.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ZETA/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13825.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ZETA/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -80800,9 +81898,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34675.0" + "cum": "17375.0" } }, { @@ -80819,7 +81917,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159625.0" + "cum": "142325.0" } }, { @@ -80836,7 +81934,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784625.0" + "cum": "767325.0" } } ], @@ -80965,13 +82063,13 @@ "symbol": "ZIL/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -80981,34 +82079,34 @@ "tier": 9.0, "symbol": "ZIL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ZIL/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -81137,13 +82235,13 @@ "symbol": "ZK/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -81153,34 +82251,34 @@ "tier": 9.0, "symbol": "ZK/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ZK/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -81464,13 +82562,13 @@ "symbol": "ZRO/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, - "maxNotional": 1500000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { "bracket": "8", "initialLeverage": "3", - "notionalCap": "1500000", + "notionalCap": "4500000", "notionalFloor": "500000", "maintMarginRatio": "0.1667", "cum": "34800.0" @@ -81480,34 +82578,34 @@ "tier": 9.0, "symbol": "ZRO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2500000.0, + "minNotional": 4500000.0, + "maxNotional": 7500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1500000", + "notionalCap": "7500000", + "notionalFloor": "4500000", "maintMarginRatio": "0.25", - "cum": "159750.0" + "cum": "409650.0" } }, { "tier": 10.0, "symbol": "ZRO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 4000000.0, + "minNotional": 7500000.0, + "maxNotional": 12500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "2500000", + "notionalCap": "12500000", + "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "784750.0" + "cum": "2284650.0" } } ], @@ -81534,13 +82632,13 @@ "symbol": "ZRX/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 25000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "2", "initialLeverage": "25", - "notionalCap": "25000", + "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.02", "cum": "25.0" @@ -81550,75 +82648,75 @@ "tier": 3.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "3", "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 125000.0, + "minNotional": 25000.0, + "maxNotional": 62500.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "125000", - "notionalFloor": "50000", + "notionalCap": "62500", + "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "1400.0" + "cum": "700.0" } }, { "tier": 5.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 125000.0, - "maxNotional": 250000.0, + "minNotional": 62500.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "5", "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "125000", + "notionalCap": "125000", + "notionalFloor": "62500", "maintMarginRatio": "0.1", - "cum": "7650.0" + "cum": "3825.0" } }, { "tier": 6.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 500000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "6", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "250000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.125", - "cum": "13900.0" + "cum": "6950.0" } }, { "tier": 7.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 250000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, @@ -81626,9 +82724,9 @@ "bracket": "7", "initialLeverage": "3", "notionalCap": "1500000", - "notionalFloor": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1667", - "cum": "34750.0" + "cum": "17375.0" } }, { @@ -81645,7 +82743,7 @@ "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "159700.0" + "cum": "142325.0" } }, { @@ -81662,7 +82760,7 @@ "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "784700.0" + "cum": "767325.0" } } ] diff --git a/freqtrade/exchange/bitpanda.py b/freqtrade/exchange/bitpanda.py index 05c5af6ac..2f88e2fc8 100644 --- a/freqtrade/exchange/bitpanda.py +++ b/freqtrade/exchange/bitpanda.py @@ -1,7 +1,7 @@ """Bitpanda exchange subclass""" import logging -from datetime import datetime, timezone +from datetime import UTC, datetime from freqtrade.exchange import Exchange @@ -34,5 +34,5 @@ class Bitpanda(Exchange): :param pair: Pair the order is for :param since: datetime object of the order creation time. Assumes object is in UTC. """ - params = {"to": int(datetime.now(timezone.utc).timestamp() * 1000)} + params = {"to": int(datetime.now(UTC).timestamp() * 1000)} return super().get_trades_for_order(order_id, pair, since, params) diff --git a/freqtrade/exchange/common.py b/freqtrade/exchange/common.py index 5e4f6bf07..3780eab06 100644 --- a/freqtrade/exchange/common.py +++ b/freqtrade/exchange/common.py @@ -5,7 +5,6 @@ from collections.abc import Callable from functools import wraps from typing import Any, TypeVar, cast, overload -from freqtrade.constants import ExchangeConfig from freqtrade.exceptions import DDosProtection, RetryableOrderError, TemporaryError from freqtrade.mixins import LoggingMixin @@ -104,20 +103,6 @@ EXCHANGE_HAS_OPTIONAL = [ ] -def remove_exchange_credentials(exchange_config: ExchangeConfig, dry_run: bool) -> None: - """ - Removes exchange keys from the configuration and specifies dry-run - Used for backtesting / hyperopt and utils. - Modifies the input dict! - """ - if dry_run: - exchange_config["key"] = "" - exchange_config["apiKey"] = "" - exchange_config["secret"] = "" - exchange_config["password"] = "" - exchange_config["uid"] = "" - - def calculate_backoff(retrycount, max_retries): """ Calculate backoff diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index ffd8cdb6d..31ece5ba4 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -9,7 +9,7 @@ import logging import signal from collections.abc import Coroutine, Generator from copy import deepcopy -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from math import floor, isnan from threading import Lock from typing import Any, Literal, TypeGuard, TypeVar @@ -21,6 +21,7 @@ from ccxt import TICK_SIZE from dateutil import parser from pandas import DataFrame, concat +from freqtrade.configuration import remove_exchange_credentials from freqtrade.constants import ( DEFAULT_AMOUNT_RESERVE_PERCENT, DEFAULT_TRADES_COLUMNS, @@ -64,7 +65,6 @@ from freqtrade.exceptions import ( ) from freqtrade.exchange.common import ( API_FETCH_ORDER_RETRY_COUNT, - remove_exchange_credentials, retrier, retrier_async, ) @@ -137,6 +137,7 @@ class Exchange: "ohlcv_has_history": True, # Some exchanges (Kraken) don't provide history via ohlcv "ohlcv_partial_candle": True, "ohlcv_require_since": False, + "always_require_api_keys": False, # purge API keys for Dry-run. Must default to false. # Check https://github.com/ccxt/ccxt/issues/10767 for removal of ohlcv_volume_currency "ohlcv_volume_currency": "base", # "base" or "quote" "tickers_have_quoteVolume": True, @@ -199,6 +200,19 @@ class Exchange: self._config.update(config) + # Leverage properties + self.trading_mode: TradingMode = config.get("trading_mode", TradingMode.SPOT) + self.margin_mode: MarginMode = ( + MarginMode(config.get("margin_mode")) if config.get("margin_mode") else MarginMode.NONE + ) + self.liquidation_buffer = config.get("liquidation_buffer", 0.05) + + exchange_conf: ExchangeConfig = exchange_config if exchange_config else config["exchange"] + + # Deep merge ft_has with default ft_has options + # Must be called before ft_has is used. + self.build_ft_has(exchange_conf) + # Holds last candle refreshed time of each pair self._pairs_last_refresh_time: dict[PairWithTimeframe, int] = {} # Timestamp of last markets refresh @@ -227,33 +241,17 @@ class Exchange: if config["dry_run"]: logger.info("Instance is running with dry_run enabled") logger.info(f"Using CCXT {ccxt.__version__}") - exchange_conf: dict[str, Any] = exchange_config if exchange_config else config["exchange"] - remove_exchange_credentials(exchange_conf, config.get("dry_run", False)) - self.log_responses = exchange_conf.get("log_responses", False) - # Leverage properties - self.trading_mode: TradingMode = config.get("trading_mode", TradingMode.SPOT) - self.margin_mode: MarginMode = ( - MarginMode(config.get("margin_mode")) if config.get("margin_mode") else MarginMode.NONE + # Don't remove exchange credentials for dry-run or if always_require_api_keys is set + remove_exchange_credentials( + exchange_conf, + not self._ft_has["always_require_api_keys"] and config.get("dry_run", False), ) - self.liquidation_buffer = config.get("liquidation_buffer", 0.05) - - # Deep merge ft_has with default ft_has options - self._ft_has = deep_merge_dicts(self._ft_has, deepcopy(self._ft_has_default)) - if self.trading_mode == TradingMode.FUTURES: - self._ft_has = deep_merge_dicts(self._ft_has_futures, self._ft_has) - if exchange_conf.get("_ft_has_params"): - self._ft_has = deep_merge_dicts(exchange_conf.get("_ft_has_params"), self._ft_has) - logger.info("Overriding exchange._ft_has with config params, result: %s", self._ft_has) + self.log_responses = exchange_conf.get("log_responses", False) # Assign this directly for easy access self._ohlcv_partial_candle = self._ft_has["ohlcv_partial_candle"] - self._max_trades_limit = self._ft_has["trades_limit"] - - self._trades_pagination = self._ft_has["trades_pagination"] - self._trades_pagination_arg = self._ft_has["trades_pagination_arg"] - # Initialize ccxt objects ccxt_config = self._ccxt_config ccxt_config = deep_merge_dicts(exchange_conf.get("ccxt_config", {}), ccxt_config) @@ -657,7 +655,7 @@ class Exchange: if isinstance(markets, Exception): raise markets return None - except asyncio.TimeoutError as e: + except TimeoutError as e: logger.warning("Could not load markets. Reason: %s", e) raise TemporaryError from e @@ -877,10 +875,24 @@ class Exchange: (trading_mode, margin_mode) not in self._supported_trading_mode_margin_pairs ): mm_value = margin_mode and margin_mode.value - raise OperationalException( - f"Freqtrade does not support {mm_value} {trading_mode} on {self.name}" + raise ConfigurationError( + f"Freqtrade does not support '{mm_value}' '{trading_mode}' on {self.name}." ) + def build_ft_has(self, exchange_conf: ExchangeConfig) -> None: + """ + Deep merge ft_has with default ft_has options + and with exchange_conf._ft_has_params if available. + This is called on initialization of the exchange object. + It must be called before ft_has is used. + """ + self._ft_has = deep_merge_dicts(self._ft_has, deepcopy(self._ft_has_default)) + if self.trading_mode == TradingMode.FUTURES: + self._ft_has = deep_merge_dicts(self._ft_has_futures, self._ft_has) + if exchange_conf.get("_ft_has_params"): + self._ft_has = deep_merge_dicts(exchange_conf.get("_ft_has_params"), self._ft_has) + logger.info("Overriding exchange._ft_has with config params, result: %s", self._ft_has) + def get_option(self, param: str, default: Any | None = None) -> Any: """ Get parameter value from _ft_has @@ -2208,7 +2220,7 @@ class Exchange: _params = params if params else {} my_trades = self._api.fetch_my_trades( pair, - int((since.replace(tzinfo=timezone.utc).timestamp() - 5) * 1000), + int((since.replace(tzinfo=UTC).timestamp() - 5) * 1000), params=_params, ) matched_trades = [trade for trade in my_trades if trade["order"] == order_id] @@ -2995,7 +3007,7 @@ class Exchange: returns: List of dicts containing trades, the next iteration value (new "since" or trade_id) """ try: - trades_limit = self._max_trades_limit + trades_limit = self._ft_has["trades_limit"] # fetch trades asynchronously if params: logger.debug("Fetching trades for pair %s, params: %s ", pair, params) @@ -3039,7 +3051,7 @@ class Exchange: """ if not trades: return None - if self._trades_pagination == "id": + if self._ft_has["trades_pagination"] == "id": return trades[-1].get("id") else: return trades[-1].get("timestamp") @@ -3057,7 +3069,7 @@ class Exchange: ) -> tuple[str, list[list]]: """ Asynchronously gets trade history using fetch_trades - use this when exchange uses id-based iteration (check `self._trades_pagination`) + use this when exchange uses id-based iteration (check `self._ft_has["trades_pagination"]`) :param pair: Pair to fetch trade data for :param since: Since as integer timestamp in milliseconds :param until: Until as integer timestamp in milliseconds @@ -3083,7 +3095,7 @@ class Exchange: while True: try: t, from_id_next = await self._async_fetch_trades( - pair, params={self._trades_pagination_arg: from_id} + pair, params={self._ft_has["trades_pagination_arg"]: from_id} ) if t: trades.extend(t[x]) @@ -3111,7 +3123,7 @@ class Exchange: ) -> tuple[str, list[list]]: """ Asynchronously gets trade history using fetch_trades, - when the exchange uses time-based iteration (check `self._trades_pagination`) + when the exchange uses time-based iteration (check `self._ft_has["trades_pagination"]`) :param pair: Pair to fetch trade data for :param since: Since as integer timestamp in milliseconds :param until: Until as integer timestamp in milliseconds @@ -3165,9 +3177,9 @@ class Exchange: until = ccxt.Exchange.milliseconds() logger.debug(f"Exchange milliseconds: {until}") - if self._trades_pagination == "time": + if self._ft_has["trades_pagination"] == "time": return await self._async_get_trade_history_time(pair=pair, since=since, until=until) - elif self._trades_pagination == "id": + elif self._ft_has["trades_pagination"] == "id": return await self._async_get_trade_history_id( pair=pair, since=since, until=until, from_id=from_id ) @@ -3335,7 +3347,7 @@ class Exchange: if not filename.parent.is_dir(): filename.parent.mkdir(parents=True) data = { - "updated": datetime.now(timezone.utc), + "updated": datetime.now(UTC), "data": tiers, } file_dump_json(filename, data) @@ -3357,7 +3369,7 @@ class Exchange: updated = tiers.get("updated") if updated: updated_dt = parser.parse(updated) - if updated_dt < datetime.now(timezone.utc) - cache_time: + if updated_dt < datetime.now(UTC) - cache_time: logger.info("Cached leverage tiers are outdated. Will update.") return None return tiers.get("data") @@ -3416,20 +3428,30 @@ class Exchange: # Find the appropriate tier based on stake_amount prior_max_lev = None for tier in pair_tiers: + # Adjust notional by leverage to do a proper comparison min_stake = tier["minNotional"] / (prior_max_lev or tier["maxLeverage"]) max_stake = tier["maxNotional"] / tier["maxLeverage"] prior_max_lev = tier["maxLeverage"] - # Adjust notional by leverage to do a proper comparison if min_stake <= stake_amount <= max_stake: return tier["maxLeverage"] + if stake_amount < min_stake and stake_amount <= max_stake: + # TODO: Remove this warning eventually + # Code could be simplified by removing the check for min-stake in the above + # condition, making this branch unnecessary. + logger.warning( + f"Fallback to next higher leverage tier for {pair}, stake: {stake_amount}, " + f"min_stake: {min_stake}." + ) + return tier["maxLeverage"] # else: # if on the last tier if stake_amount > max_stake: # If stake is > than max tradeable amount - raise InvalidOrderException(f"Amount {stake_amount} too high for {pair}") + raise InvalidOrderException(f"Stake amount {stake_amount} too high for {pair}") raise OperationalException( - "Looped through all tiers without finding a max leverage. Should never be reached" + f"Looped through all tiers without finding a max leverage for {pair}. " + "Should never be reached." ) elif self.trading_mode == TradingMode.MARGIN: # Search markets.limits for max lev @@ -3571,7 +3593,7 @@ class Exchange: mark_price_type = CandleType.from_string(self._ft_has["mark_ohlcv_price"]) if not close_date: - close_date = datetime.now(timezone.utc) + close_date = datetime.now(UTC) since_ms = dt_ts(timeframe_to_prev_date(timeframe, open_date)) mark_comb: PairWithTimeframe = (pair, timeframe, mark_price_type) diff --git a/freqtrade/exchange/exchange_types.py b/freqtrade/exchange/exchange_types.py index 02cd8d58a..d31863307 100644 --- a/freqtrade/exchange/exchange_types.py +++ b/freqtrade/exchange/exchange_types.py @@ -24,6 +24,7 @@ class FtHas(TypedDict, total=False): ohlcv_require_since: bool ohlcv_volume_currency: str ohlcv_candle_limit_per_timeframe: dict[str, int] + always_require_api_keys: bool # Tickers tickers_have_quoteVolume: bool tickers_have_percentage: bool diff --git a/freqtrade/exchange/exchange_utils.py b/freqtrade/exchange/exchange_utils.py index ad92033fb..a400fa123 100644 --- a/freqtrade/exchange/exchange_utils.py +++ b/freqtrade/exchange/exchange_utils.py @@ -3,7 +3,7 @@ Exchange support utils """ import inspect -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from math import ceil, floor, isnan from typing import Any @@ -148,7 +148,7 @@ def date_minus_candles(timeframe: str, candle_count: int, date: datetime | None """ if not date: - date = datetime.now(timezone.utc) + date = datetime.now(UTC) tf_min = timeframe_to_minutes(timeframe) new_date = timeframe_to_prev_date(timeframe, date) - timedelta(minutes=tf_min * candle_count) diff --git a/freqtrade/exchange/exchange_utils_timeframe.py b/freqtrade/exchange/exchange_utils_timeframe.py index 494df58f2..1897edf3b 100644 --- a/freqtrade/exchange/exchange_utils_timeframe.py +++ b/freqtrade/exchange/exchange_utils_timeframe.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime import ccxt from ccxt import ROUND_DOWN, ROUND_UP @@ -59,7 +59,7 @@ def timeframe_to_prev_date(timeframe: str, date: datetime | None = None) -> date :returns: date of previous candle (with utc timezone) """ if not date: - date = datetime.now(timezone.utc) + date = datetime.now(UTC) new_timestamp = ccxt.Exchange.round_timeframe(timeframe, dt_ts(date), ROUND_DOWN) // 1000 return dt_from_ts(new_timestamp) @@ -73,6 +73,6 @@ def timeframe_to_next_date(timeframe: str, date: datetime | None = None) -> date :returns: date of next candle (with utc timezone) """ if not date: - date = datetime.now(timezone.utc) + date = datetime.now(UTC) new_timestamp = ccxt.Exchange.round_timeframe(timeframe, dt_ts(date), ROUND_UP) // 1000 return dt_from_ts(new_timestamp) diff --git a/freqtrade/exchange/luno.py b/freqtrade/exchange/luno.py new file mode 100644 index 000000000..bb11c714d --- /dev/null +++ b/freqtrade/exchange/luno.py @@ -0,0 +1,24 @@ +import logging + +from freqtrade.exchange import Exchange +from freqtrade.exchange.exchange_types import FtHas + + +logger = logging.getLogger(__name__) + + +class Luno(Exchange): + """ + Luno 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 = { + "ohlcv_has_history": False, # Only provides the last 1000 candles + "always_require_api_keys": True, # Requires API keys to fetch candles + "trades_has_history": False, # Only the last 24h are available + } diff --git a/freqtrade/freqai/RL/BaseReinforcementLearningModel.py b/freqtrade/freqai/RL/BaseReinforcementLearningModel.py index 9481f8f7e..db9fba85a 100644 --- a/freqtrade/freqai/RL/BaseReinforcementLearningModel.py +++ b/freqtrade/freqai/RL/BaseReinforcementLearningModel.py @@ -3,7 +3,7 @@ import importlib import logging from abc import abstractmethod from collections.abc import Callable -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from typing import Any @@ -239,7 +239,7 @@ class BaseReinforcementLearningModel(IFreqaiModel): pair, refresh=False, side="exit", is_short=trade.is_short ) - now = datetime.now(timezone.utc).timestamp() + now = datetime.now(UTC).timestamp() trade_duration = int((now - trade.open_date_utc.timestamp()) / self.base_tf_seconds) current_profit = trade.calc_profit_ratio(current_rate) if trade.is_short: diff --git a/freqtrade/freqai/data_drawer.py b/freqtrade/freqai/data_drawer.py index cf3e828bf..fef0ab73a 100644 --- a/freqtrade/freqai/data_drawer.py +++ b/freqtrade/freqai/data_drawer.py @@ -5,7 +5,7 @@ import re import shutil import threading import warnings -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from typing import Any, TypedDict @@ -116,7 +116,7 @@ class FreqaiDataDrawer: if metric not in self.metric_tracker[pair]: self.metric_tracker[pair][metric] = {"timestamp": [], "value": []} - timestamp = int(datetime.now(timezone.utc).timestamp()) + timestamp = int(datetime.now(UTC).timestamp()) self.metric_tracker[pair][metric]["value"].append(value) self.metric_tracker[pair][metric]["timestamp"].append(timestamp) diff --git a/freqtrade/freqai/data_kitchen.py b/freqtrade/freqai/data_kitchen.py index c03dbb276..c39343ab2 100644 --- a/freqtrade/freqai/data_kitchen.py +++ b/freqtrade/freqai/data_kitchen.py @@ -3,7 +3,7 @@ import inspect import logging import random import shutil -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from typing import Any @@ -341,7 +341,7 @@ class FreqaiDataKitchen: full_timerange = TimeRange.parse_timerange(tr) config_timerange = TimeRange.parse_timerange(self.config["timerange"]) if config_timerange.stopts == 0: - config_timerange.stopts = int(datetime.now(tz=timezone.utc).timestamp()) + config_timerange.stopts = int(datetime.now(tz=UTC).timestamp()) timerange_train = copy.deepcopy(full_timerange) timerange_backtest = copy.deepcopy(full_timerange) @@ -525,7 +525,7 @@ class FreqaiDataKitchen: :return: bool = If the model is expired or not. """ - time = datetime.now(tz=timezone.utc).timestamp() + time = datetime.now(tz=UTC).timestamp() elapsed_time = (time - trained_timestamp) / 3600 # hours max_time = self.freqai_config.get("expiration_hours", 0) if max_time > 0: @@ -536,7 +536,7 @@ class FreqaiDataKitchen: def check_if_new_training_required( self, trained_timestamp: int ) -> tuple[bool, TimeRange, TimeRange]: - time = datetime.now(tz=timezone.utc).timestamp() + time = datetime.now(tz=UTC).timestamp() trained_timerange = TimeRange() data_load_timerange = TimeRange() diff --git a/freqtrade/freqai/freqai_interface.py b/freqtrade/freqai/freqai_interface.py index f79568774..1c66de46f 100644 --- a/freqtrade/freqai/freqai_interface.py +++ b/freqtrade/freqai/freqai_interface.py @@ -3,7 +3,7 @@ import threading import time from abc import ABC, abstractmethod from collections import deque -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from typing import Any, Literal @@ -76,7 +76,7 @@ class IFreqaiModel(ABC): self.dd = FreqaiDataDrawer(Path(self.full_path), self.config) # set current candle to arbitrary historical date - self.current_candle: datetime = datetime.fromtimestamp(637887600, tz=timezone.utc) + self.current_candle: datetime = datetime.fromtimestamp(637887600, tz=UTC) self.dd.current_candle = self.current_candle self.scanning = False self.ft_params = self.freqai_info["feature_parameters"] diff --git a/freqtrade/freqai/utils.py b/freqtrade/freqai/utils.py index d2a15046d..d3aeaefe3 100644 --- a/freqtrade/freqai/utils.py +++ b/freqtrade/freqai/utils.py @@ -1,5 +1,5 @@ import logging -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from typing import Any @@ -64,7 +64,7 @@ def get_required_data_timerange(config: Config) -> TimeRange: Used to compute the required data download time range for auto data-download in FreqAI """ - time = datetime.now(tz=timezone.utc).timestamp() + time = datetime.now(tz=UTC).timestamp() timeframes = config["freqai"]["feature_parameters"].get("include_timeframes") diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 422973167..0de03a0d8 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -5,7 +5,7 @@ Freqtrade is the main module of this bot. It contains the class Freqtrade() import logging import traceback from copy import deepcopy -from datetime import datetime, time, timedelta, timezone +from datetime import UTC, datetime, time, timedelta from math import isclose from threading import Lock from time import sleep @@ -14,7 +14,7 @@ from typing import Any from schedule import Scheduler from freqtrade import constants -from freqtrade.configuration import validate_config_consistency +from freqtrade.configuration import remove_exchange_credentials, validate_config_consistency from freqtrade.constants import BuySell, Config, EntryExecuteMode, ExchangeConfig, LongShort from freqtrade.data.converter import order_book_to_dataframe from freqtrade.data.dataprovider import DataProvider @@ -37,7 +37,6 @@ from freqtrade.exceptions import ( from freqtrade.exchange import ( ROUND_DOWN, ROUND_UP, - remove_exchange_credentials, timeframe_to_minutes, timeframe_to_next_date, timeframe_to_seconds, @@ -267,7 +266,7 @@ class FreqtradeBot(LoggingMixin): ) strategy_safe_wrapper(self.strategy.bot_loop_start, supress_error=True)( - current_time=datetime.now(timezone.utc) + current_time=datetime.now(UTC) ) with self._measure_execution: @@ -297,7 +296,7 @@ class FreqtradeBot(LoggingMixin): self._schedule.run_pending() Trade.commit() self.rpc.process_msg_queue(self.dataprovider._msg_queue) - self.last_process = datetime.now(timezone.utc) + self.last_process = datetime.now(UTC) def process_stopped(self) -> None: """ @@ -422,7 +421,7 @@ class FreqtradeBot(LoggingMixin): except InvalidOrderException as e: logger.warning(f"Error updating Order {order.order_id} due to {e}.") - if order.order_date_utc - timedelta(days=5) < datetime.now(timezone.utc): + if order.order_date_utc - timedelta(days=5) < datetime.now(UTC): logger.warning( "Order is older than 5 days. Assuming order was fully cancelled." ) @@ -756,7 +755,7 @@ class FreqtradeBot(LoggingMixin): logger.debug(f"Calling adjust_trade_position for pair {trade.pair}") stake_amount, order_tag = self.strategy._adjust_trade_position_internal( trade=trade, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), current_rate=current_entry_rate, current_profit=current_entry_profit, min_stake=min_entry_stake, @@ -917,7 +916,7 @@ class FreqtradeBot(LoggingMixin): amount=amount, rate=enter_limit_requested, time_in_force=time_in_force, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), entry_tag=enter_tag, side=trade_side, ): @@ -988,7 +987,7 @@ class FreqtradeBot(LoggingMixin): # Fee is applied twice because we make a LIMIT_BUY and LIMIT_SELL fee = self.exchange.get_fee(symbol=pair, taker_or_maker="maker") base_currency = self.exchange.get_pair_base_currency(pair) - open_date = datetime.now(timezone.utc) + open_date = datetime.now(UTC) funding_fees = self.exchange.get_funding_fees( pair=pair, @@ -1107,7 +1106,7 @@ class FreqtradeBot(LoggingMixin): )( pair=pair, trade=trade, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), proposed_rate=enter_limit_requested, entry_tag=entry_tag, side=trade_side, @@ -1125,7 +1124,7 @@ class FreqtradeBot(LoggingMixin): else: leverage = strategy_safe_wrapper(self.strategy.leverage, default_retval=1.0)( pair=pair, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), current_rate=enter_limit_requested, proposed_leverage=1.0, max_leverage=max_leverage, @@ -1158,7 +1157,7 @@ class FreqtradeBot(LoggingMixin): self.strategy.custom_stake_amount, default_retval=stake_amount )( pair=pair, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), current_rate=enter_limit_requested, proposed_stake=stake_amount, min_stake=min_stake_amount, @@ -1223,7 +1222,7 @@ class FreqtradeBot(LoggingMixin): "quote_currency": self.exchange.get_pair_quote_currency(trade.pair), "fiat_currency": self.config.get("fiat_display_currency", None), "amount": order.safe_amount_after_fee if fill else (order.safe_amount or trade.amount), - "open_date": trade.open_date_utc or datetime.now(timezone.utc), + "open_date": trade.open_date_utc or datetime.now(UTC), "current_rate": current_rate, "sub_trade": sub_trade, } @@ -1362,7 +1361,7 @@ class FreqtradeBot(LoggingMixin): exits: list[ExitCheckTuple] = self.strategy.should_exit( trade, exit_rate, - datetime.now(timezone.utc), + datetime.now(UTC), enter=enter, exit_=exit_, force_stoploss=0, @@ -1497,7 +1496,7 @@ class FreqtradeBot(LoggingMixin): if self.exchange.stoploss_adjust(stoploss_norm, order, side=trade.exit_side): # we check if the update is necessary update_beat = self.strategy.order_types.get("stoploss_on_exchange_interval", 60) - upd_req = datetime.now(timezone.utc) - timedelta(seconds=update_beat) + upd_req = datetime.now(UTC) - timedelta(seconds=update_beat) if trade.stoploss_last_update_utc and upd_req >= trade.stoploss_last_update_utc: # cancelling the current stoploss on exchange first logger.info( @@ -1584,9 +1583,7 @@ class FreqtradeBot(LoggingMixin): if not_closed: if fully_cancelled or ( open_order - and self.strategy.ft_check_timed_out( - trade, open_order, datetime.now(timezone.utc) - ) + and self.strategy.ft_check_timed_out(trade, open_order, datetime.now(UTC)) ): self.handle_cancel_order( order, open_order, trade, constants.CANCEL_REASON["TIMEOUT"] @@ -1684,7 +1681,7 @@ class FreqtradeBot(LoggingMixin): trade=trade, order=order_obj, pair=trade.pair, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), proposed_rate=proposed_rate, current_order_rate=order_obj.safe_placement_price, entry_tag=trade.enter_tag, @@ -2076,7 +2073,7 @@ class FreqtradeBot(LoggingMixin): )( pair=trade.pair, trade=trade, - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), proposed_rate=proposed_limit_rate, current_profit=current_profit, exit_tag=exit_reason, @@ -2107,7 +2104,7 @@ class FreqtradeBot(LoggingMixin): time_in_force=time_in_force, exit_reason=exit_reason, sell_reason=exit_reason, # sellreason -> compatibility - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), ) ): logger.info(f"User denied exit for {trade.pair}.") @@ -2203,7 +2200,7 @@ class FreqtradeBot(LoggingMixin): "enter_tag": trade.enter_tag, "exit_reason": trade.exit_reason, "open_date": trade.open_date_utc, - "close_date": trade.close_date_utc or datetime.now(timezone.utc), + "close_date": trade.close_date_utc or datetime.now(UTC), "stake_amount": trade.stake_amount, "stake_currency": self.config["stake_currency"], "base_currency": self.exchange.get_pair_base_currency(trade.pair), @@ -2258,7 +2255,7 @@ class FreqtradeBot(LoggingMixin): "enter_tag": trade.enter_tag, "exit_reason": trade.exit_reason, "open_date": trade.open_date, - "close_date": trade.close_date or datetime.now(timezone.utc), + "close_date": trade.close_date or datetime.now(UTC), "stake_currency": self.config["stake_currency"], "base_currency": self.exchange.get_pair_base_currency(trade.pair), "quote_currency": self.exchange.get_pair_quote_currency(trade.pair), @@ -2339,7 +2336,7 @@ class FreqtradeBot(LoggingMixin): def _update_trade_after_fill(self, trade: Trade, order: Order, send_msg: bool) -> Trade: if order.status in constants.NON_OPEN_EXCHANGE_STATES: strategy_safe_wrapper(self.strategy.order_filled, default_retval=None)( - pair=trade.pair, trade=trade, order=order, current_time=datetime.now(timezone.utc) + pair=trade.pair, trade=trade, order=order, current_time=datetime.now(UTC) ) # If a entry order was closed, force update on stoploss on exchange if order.ft_order_side == trade.entry_side: @@ -2372,7 +2369,7 @@ class FreqtradeBot(LoggingMixin): ) profit = trade.calc_profit_ratio(current_rate) self.strategy.ft_stoploss_adjust( - current_rate, trade, datetime.now(timezone.utc), profit, 0, after_fill=True + current_rate, trade, datetime.now(UTC), profit, 0, after_fill=True ) # Updating wallets when order is closed self.wallets.update() @@ -2398,7 +2395,7 @@ class FreqtradeBot(LoggingMixin): def handle_protections(self, pair: str, side: LongShort) -> None: # Lock pair for one candle to prevent immediate re-entries - self.strategy.lock_pair(pair, datetime.now(timezone.utc), reason="Auto lock", side=side) + self.strategy.lock_pair(pair, datetime.now(UTC), reason="Auto lock", side=side) prot_trig = self.protections.stop_per_pair(pair, side=side) if prot_trig: msg: RPCProtectionMsg = { diff --git a/freqtrade/ft_types/plot_annotation_type.py b/freqtrade/ft_types/plot_annotation_type.py index b08db3c57..4da4102c4 100644 --- a/freqtrade/ft_types/plot_annotation_type.py +++ b/freqtrade/ft_types/plot_annotation_type.py @@ -1,8 +1,8 @@ from datetime import datetime -from typing import Literal +from typing import Literal, Required from pydantic import TypeAdapter -from typing_extensions import Required, TypedDict +from typing_extensions import TypedDict class AnnotationType(TypedDict, total=False): diff --git a/freqtrade/loggers/__init__.py b/freqtrade/loggers/__init__.py index e54097bc2..7b8e34878 100644 --- a/freqtrade/loggers/__init__.py +++ b/freqtrade/loggers/__init__.py @@ -58,7 +58,7 @@ def setup_logging_pre() -> None: FT_LOGGING_CONFIG = { "version": 1, # "incremental": True, - # "disable_existing_loggers": False, + "disable_existing_loggers": False, "formatters": { "basic": {"format": "%(message)s"}, "standard": { @@ -223,7 +223,7 @@ def setup_logging(config: Config) -> None: logger.info("Enabling colorized output.") error_console._color_system = error_console._detect_color_system() - logging.info("Logfile configured") + logger.info("Logfile configured") # Set verbosity levels logging.root.setLevel(logging.INFO if verbosity < 1 else logging.DEBUG) diff --git a/freqtrade/main.py b/freqtrade/main.py index d4aab3468..fd142452a 100755 --- a/freqtrade/main.py +++ b/freqtrade/main.py @@ -10,8 +10,8 @@ from typing import Any # check min. python version -if sys.version_info < (3, 10): # pragma: no cover # noqa: UP036 - sys.exit("Freqtrade requires Python version >= 3.10") +if sys.version_info < (3, 11): # pragma: no cover # noqa: UP036 + sys.exit("Freqtrade requires Python version >= 3.11") from freqtrade import __version__ from freqtrade.commands import Arguments diff --git a/freqtrade/optimize/base_analysis.py b/freqtrade/optimize/base_analysis.py index a2fe53867..7e75137ec 100644 --- a/freqtrade/optimize/base_analysis.py +++ b/freqtrade/optimize/base_analysis.py @@ -1,6 +1,6 @@ import logging from copy import deepcopy -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from pandas import DataFrame @@ -38,7 +38,7 @@ class BaseAnalysis: @staticmethod def dt_to_timestamp(dt: datetime): - timestamp = int(dt.replace(tzinfo=timezone.utc).timestamp()) + timestamp = int(dt.replace(tzinfo=UTC).timestamp()) return timestamp def fill_full_varholder(self): @@ -48,12 +48,12 @@ class BaseAnalysis: parsed_timerange = TimeRange.parse_timerange(self.local_config["timerange"]) if parsed_timerange.startdt is None: - self.full_varHolder.from_dt = datetime.fromtimestamp(0, tz=timezone.utc) + self.full_varHolder.from_dt = datetime.fromtimestamp(0, tz=UTC) else: self.full_varHolder.from_dt = parsed_timerange.startdt if parsed_timerange.stopdt is None: - self.full_varHolder.to_dt = datetime.now(timezone.utc) + self.full_varHolder.to_dt = datetime.now(UTC) else: self.full_varHolder.to_dt = parsed_timerange.stopdt diff --git a/freqtrade/optimize/hyperopt/hyperopt_optimizer.py b/freqtrade/optimize/hyperopt/hyperopt_optimizer.py index 94be5e50e..7f56dfb81 100644 --- a/freqtrade/optimize/hyperopt/hyperopt_optimizer.py +++ b/freqtrade/optimize/hyperopt/hyperopt_optimizer.py @@ -6,7 +6,7 @@ and will be sent to the hyperopt worker processes. import logging import sys import warnings -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from typing import Any @@ -273,7 +273,7 @@ class HyperOptimizer: Keep this function as optimized as possible! """ HyperoptStateContainer.set_state(HyperoptState.OPTIMIZE) - backtest_start_time = datetime.now(timezone.utc) + backtest_start_time = datetime.now(UTC) # Apply parameters if HyperoptTools.has_space(self.config, "buy"): @@ -330,7 +330,7 @@ class HyperOptimizer: bt_results = self.backtesting.backtest( processed=processed, start_date=self.min_date, end_date=self.max_date ) - backtest_end_time = datetime.now(timezone.utc) + backtest_end_time = datetime.now(UTC) bt_results.update( { "backtest_start_time": int(backtest_start_time.timestamp()), diff --git a/freqtrade/optimize/hyperopt_tools.py b/freqtrade/optimize/hyperopt_tools.py index 2ecc5a73f..4cb9887eb 100644 --- a/freqtrade/optimize/hyperopt_tools.py +++ b/freqtrade/optimize/hyperopt_tools.py @@ -1,7 +1,7 @@ import logging from collections.abc import Iterator from copy import deepcopy -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from typing import Any @@ -71,7 +71,7 @@ class HyperoptTools: "strategy_name": strategy_name, "params": final_params, "ft_stratparam_v": 1, - "export_time": datetime.now(timezone.utc), + "export_time": datetime.now(UTC), } logger.info(f"Dumping parameters to {filename}") with filename.open("w") as f: diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index d35e96605..77d2c5a79 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -1,6 +1,6 @@ import logging from copy import deepcopy -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from typing import Any, Literal import numpy as np @@ -652,9 +652,9 @@ def generate_strategy_stats( "max_drawdown_abs": 0.0, "max_drawdown_low": 0.0, "max_drawdown_high": 0.0, - "drawdown_start": datetime(1970, 1, 1, tzinfo=timezone.utc), + "drawdown_start": datetime(1970, 1, 1, tzinfo=UTC), "drawdown_start_ts": 0, - "drawdown_end": datetime(1970, 1, 1, tzinfo=timezone.utc), + "drawdown_end": datetime(1970, 1, 1, tzinfo=UTC), "drawdown_end_ts": 0, "csum_min": 0, "csum_max": 0, diff --git a/freqtrade/persistence/key_value_store.py b/freqtrade/persistence/key_value_store.py index 814748da6..0d5a97fa1 100644 --- a/freqtrade/persistence/key_value_store.py +++ b/freqtrade/persistence/key_value_store.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from enum import Enum from typing import ClassVar, Literal @@ -114,7 +114,7 @@ class KeyValueStore: if kv.value_type == ValueTypesEnum.STRING: return kv.string_value if kv.value_type == ValueTypesEnum.DATETIME and kv.datetime_value is not None: - return kv.datetime_value.replace(tzinfo=timezone.utc) + return kv.datetime_value.replace(tzinfo=UTC) if kv.value_type == ValueTypesEnum.FLOAT: return kv.float_value if kv.value_type == ValueTypesEnum.INT: @@ -156,7 +156,7 @@ class KeyValueStore: ) if kv is None or kv.datetime_value is None: return None - return kv.datetime_value.replace(tzinfo=timezone.utc) + return kv.datetime_value.replace(tzinfo=UTC) @staticmethod def get_float_value(key: KeyStoreKeys) -> float | None: @@ -207,5 +207,5 @@ def set_startup_time() -> None: if t is not None: KeyValueStore.store_value("bot_start_time", t.open_date_utc) else: - KeyValueStore.store_value("bot_start_time", datetime.now(timezone.utc)) - KeyValueStore.store_value("startup_time", datetime.now(timezone.utc)) + KeyValueStore.store_value("bot_start_time", datetime.now(UTC)) + KeyValueStore.store_value("startup_time", datetime.now(UTC)) diff --git a/freqtrade/persistence/pairlock.py b/freqtrade/persistence/pairlock.py index 6c98a607d..eedc7286f 100644 --- a/freqtrade/persistence/pairlock.py +++ b/freqtrade/persistence/pairlock.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any, ClassVar from sqlalchemy import ScalarResult, String, or_, select @@ -69,11 +69,9 @@ class PairLock(ModelBase): "id": self.id, "pair": self.pair, "lock_time": self.lock_time.strftime(DATETIME_PRINT_FORMAT), - "lock_timestamp": int(self.lock_time.replace(tzinfo=timezone.utc).timestamp() * 1000), + "lock_timestamp": int(self.lock_time.replace(tzinfo=UTC).timestamp() * 1000), "lock_end_time": self.lock_end_time.strftime(DATETIME_PRINT_FORMAT), - "lock_end_timestamp": int( - self.lock_end_time.replace(tzinfo=timezone.utc).timestamp() * 1000 - ), + "lock_end_timestamp": int(self.lock_end_time.replace(tzinfo=UTC).timestamp() * 1000), "reason": self.reason, "side": self.side, "active": self.active, diff --git a/freqtrade/persistence/pairlock_middleware.py b/freqtrade/persistence/pairlock_middleware.py index 0adbcc8be..02642c463 100644 --- a/freqtrade/persistence/pairlock_middleware.py +++ b/freqtrade/persistence/pairlock_middleware.py @@ -1,6 +1,6 @@ import logging from collections.abc import Sequence -from datetime import datetime, timezone +from datetime import UTC, datetime from sqlalchemy import select @@ -52,7 +52,7 @@ class PairLocks: """ lock = PairLock( pair=pair, - lock_time=now or datetime.now(timezone.utc), + lock_time=now or datetime.now(UTC), lock_end_time=timeframe_to_next_date(PairLocks.timeframe, until), reason=reason, side=side, @@ -77,7 +77,7 @@ class PairLocks: :param side: Side get locks for, can be 'long', 'short', '*' or None """ if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) if PairLocks.use_db: return PairLock.query_pair_locks(pair, now, side).all() @@ -114,7 +114,7 @@ class PairLocks: defaults to datetime.now(timezone.utc) """ if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) logger.info(f"Releasing all locks for {pair}.") locks = PairLocks.get_pair_locks(pair, now, side=side) @@ -132,7 +132,7 @@ class PairLocks: defaults to datetime.now(timezone.utc) """ if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) if PairLocks.use_db: # used in live modes @@ -161,7 +161,7 @@ class PairLocks: defaults to datetime.now(timezone.utc) """ if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) return len(PairLocks.get_pair_locks("*", now, side)) > 0 @@ -173,7 +173,7 @@ class PairLocks: defaults to datetime.now(timezone.utc) """ if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) return len(PairLocks.get_pair_locks(pair, now, side)) > 0 or PairLocks.is_global_lock( now, side diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index 9c7234d35..51ec4abef 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -6,9 +6,9 @@ import logging from collections import defaultdict from collections.abc import Sequence from dataclasses import dataclass -from datetime import datetime, timezone +from datetime import UTC, datetime from math import isclose -from typing import Any, ClassVar, Optional, cast +from typing import Any, ClassVar, Optional, Self, cast from sqlalchemy import ( Enum, @@ -25,7 +25,6 @@ from sqlalchemy import ( select, ) from sqlalchemy.orm import Mapped, lazyload, mapped_column, relationship, validates -from typing_extensions import Self from freqtrade.constants import ( CANCELED_EXCHANGE_STATES, @@ -121,14 +120,12 @@ class Order(ModelBase): @property def order_date_utc(self) -> datetime: """Order-date with UTC timezoneinfo""" - return self.order_date.replace(tzinfo=timezone.utc) + return self.order_date.replace(tzinfo=UTC) @property def order_filled_utc(self) -> datetime | None: """last order-date with UTC timezoneinfo""" - return ( - self.order_filled_date.replace(tzinfo=timezone.utc) if self.order_filled_date else None - ) + return self.order_filled_date.replace(tzinfo=UTC) if self.order_filled_date else None @property def safe_amount(self) -> float: @@ -229,7 +226,7 @@ class Order(ModelBase): self.order_filled_date = dt_from_ts( safe_value_fallback(order, "lastTradeTimestamp", default_value=dt_ts()) ) - self.order_update_date = datetime.now(timezone.utc) + self.order_update_date = datetime.now(UTC) def to_ccxt_object(self, stopPriceName: str = "stopPrice") -> dict[str, Any]: order: dict[str, Any] = { @@ -286,7 +283,7 @@ class Order(ModelBase): self.order_date.strftime(DATETIME_PRINT_FORMAT) if self.order_date else None ), "order_timestamp": ( - int(self.order_date.replace(tzinfo=timezone.utc).timestamp() * 1000) + int(self.order_date.replace(tzinfo=UTC).timestamp() * 1000) if self.order_date else None ), @@ -533,7 +530,7 @@ class LocalTrade: @property def open_date_utc(self): - return self.open_date.replace(tzinfo=timezone.utc) + return self.open_date.replace(tzinfo=UTC) @property def stoploss_last_update_utc(self): @@ -543,7 +540,7 @@ class LocalTrade: @property def close_date_utc(self): - return self.close_date.replace(tzinfo=timezone.utc) if self.close_date else None + return self.close_date.replace(tzinfo=UTC) if self.close_date else None @property def entry_side(self) -> str: @@ -1056,7 +1053,7 @@ class LocalTrade: return zero open_date = self.open_date.replace(tzinfo=None) - now = (self.close_date or datetime.now(timezone.utc)).replace(tzinfo=None) + now = (self.close_date or datetime.now(UTC)).replace(tzinfo=None) sec_per_hour = FtPrecise(3600) total_seconds = FtPrecise((now - open_date).total_seconds()) hours = total_seconds / sec_per_hour or zero @@ -1572,12 +1569,12 @@ class LocalTrade: fee_close=data["fee_close"], fee_close_cost=data.get("fee_close_cost"), fee_close_currency=data.get("fee_close_currency"), - open_date=datetime.fromtimestamp(data["open_timestamp"] // 1000, tz=timezone.utc), + open_date=datetime.fromtimestamp(data["open_timestamp"] // 1000, tz=UTC), open_rate=data["open_rate"], open_rate_requested=data.get("open_rate_requested", data["open_rate"]), open_trade_value=data.get("open_trade_value"), close_date=( - datetime.fromtimestamp(data["close_timestamp"] // 1000, tz=timezone.utc) + datetime.fromtimestamp(data["close_timestamp"] // 1000, tz=UTC) if data["close_timestamp"] else None ), @@ -1622,7 +1619,7 @@ class LocalTrade: if order.get("order_date") else None, order_filled_date=( - datetime.fromtimestamp(order["order_filled_timestamp"] // 1000, tz=timezone.utc) + datetime.fromtimestamp(order["order_filled_timestamp"] // 1000, tz=UTC) if order["order_filled_timestamp"] else None ), diff --git a/freqtrade/plot/plotting.py b/freqtrade/plot/plotting.py index 6419ab0c2..5c43ee404 100644 --- a/freqtrade/plot/plotting.py +++ b/freqtrade/plot/plotting.py @@ -1,5 +1,5 @@ import logging -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path import pandas as pd @@ -638,7 +638,7 @@ def load_and_plot_trades(config: Config): exchange = ExchangeResolver.load_exchange(config) IStrategy.dp = DataProvider(config, exchange) strategy.ft_bot_start() - strategy_safe_wrapper(strategy.bot_loop_start)(current_time=datetime.now(timezone.utc)) + strategy_safe_wrapper(strategy.bot_loop_start)(current_time=datetime.now(UTC)) plot_elements = init_plotscript(config, list(exchange.markets), strategy.startup_candle_count) timerange = plot_elements["timerange"] trades = plot_elements["trades"] diff --git a/freqtrade/plugins/protectionmanager.py b/freqtrade/plugins/protectionmanager.py index 187b9ee63..0eda8422f 100644 --- a/freqtrade/plugins/protectionmanager.py +++ b/freqtrade/plugins/protectionmanager.py @@ -3,7 +3,7 @@ Protection manager class """ import logging -from datetime import datetime, timezone +from datetime import UTC, datetime from typing import Any from freqtrade.constants import Config, LongShort @@ -49,7 +49,7 @@ class ProtectionManager: def global_stop(self, now: datetime | None = None, side: LongShort = "long") -> PairLock | None: if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) result = None for protection_handler in self._protection_handlers: if protection_handler.has_global_stop: @@ -65,7 +65,7 @@ class ProtectionManager: self, pair, now: datetime | None = None, side: LongShort = "long" ) -> PairLock | None: if not now: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) result = None for protection_handler in self._protection_handlers: if protection_handler.has_local_stop: diff --git a/freqtrade/plugins/protections/iprotection.py b/freqtrade/plugins/protections/iprotection.py index 38a726dcc..8f2f51729 100644 --- a/freqtrade/plugins/protections/iprotection.py +++ b/freqtrade/plugins/protections/iprotection.py @@ -1,7 +1,7 @@ import logging from abc import ABC, abstractmethod from dataclasses import dataclass -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from typing import Any from freqtrade.constants import Config, LongShort @@ -127,7 +127,7 @@ class IProtection(LoggingMixin, ABC): max_date: datetime = max([trade.close_date for trade in trades if trade.close_date]) # coming from Database, tzinfo is not set. if max_date.tzinfo is None: - max_date = max_date.replace(tzinfo=timezone.utc) + max_date = max_date.replace(tzinfo=UTC) if self._unlock_at is not None: # unlock_at case with fixed hour of the day diff --git a/freqtrade/rpc/api_server/api_auth.py b/freqtrade/rpc/api_server/api_auth.py index 5f63c0aa5..44ed3db57 100644 --- a/freqtrade/rpc/api_server/api_auth.py +++ b/freqtrade/rpc/api_server/api_auth.py @@ -1,6 +1,6 @@ import logging import secrets -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from typing import Any import jwt @@ -89,15 +89,15 @@ async def validate_ws_token( def create_token(data: dict, secret_key: str, token_type: str = "access") -> str: # noqa: S107 to_encode = data.copy() if token_type == "access": # noqa: S105 - expire = datetime.now(timezone.utc) + timedelta(minutes=15) + expire = datetime.now(UTC) + timedelta(minutes=15) elif token_type == "refresh": # noqa: S105 - expire = datetime.now(timezone.utc) + timedelta(days=30) + expire = datetime.now(UTC) + timedelta(days=30) else: raise ValueError() to_encode.update( { "exp": expire, - "iat": datetime.now(timezone.utc), + "iat": datetime.now(UTC), "type": token_type, } ) diff --git a/freqtrade/rpc/api_server/api_backtest.py b/freqtrade/rpc/api_server/api_backtest.py index 98a7586df..b553bc1fa 100644 --- a/freqtrade/rpc/api_server/api_backtest.py +++ b/freqtrade/rpc/api_server/api_backtest.py @@ -8,6 +8,7 @@ from typing import Any from fastapi import APIRouter, BackgroundTasks, Depends from fastapi.exceptions import HTTPException +from freqtrade.configuration import remove_exchange_credentials from freqtrade.configuration.config_validation import validate_config_consistency from freqtrade.constants import Config from freqtrade.data.btanalysis import ( @@ -20,7 +21,6 @@ from freqtrade.data.btanalysis import ( ) from freqtrade.enums import BacktestState from freqtrade.exceptions import ConfigurationError, DependencyException, OperationalException -from freqtrade.exchange.common import remove_exchange_credentials from freqtrade.ft_types import get_BacktestResultType_default from freqtrade.misc import deep_merge_dicts, is_file_in_dir from freqtrade.rpc.api_server.api_schemas import ( diff --git a/freqtrade/rpc/api_server/webserver_bgwork.py b/freqtrade/rpc/api_server/webserver_bgwork.py index 4c335a2f2..75aadb78e 100644 --- a/freqtrade/rpc/api_server/webserver_bgwork.py +++ b/freqtrade/rpc/api_server/webserver_bgwork.py @@ -1,7 +1,7 @@ -from typing import Any, Literal +from typing import Any, Literal, NotRequired from uuid import uuid4 -from typing_extensions import NotRequired, TypedDict +from typing_extensions import TypedDict from freqtrade.exchange.exchange import Exchange diff --git a/freqtrade/rpc/api_server/ws/channel.py b/freqtrade/rpc/api_server/ws/channel.py index bf5d64b6c..1a7a4bde6 100644 --- a/freqtrade/rpc/api_server/ws/channel.py +++ b/freqtrade/rpc/api_server/ws/channel.py @@ -102,7 +102,7 @@ class WebSocketChannel: self._send_times.append(total_time) self._calc_send_limit() - except asyncio.TimeoutError: + except TimeoutError: logger.info(f"Connection for {self} timed out, disconnecting") raise @@ -201,8 +201,8 @@ class WebSocketChannel: try: await task except ( + TimeoutError, asyncio.CancelledError, - asyncio.TimeoutError, WebSocketDisconnect, ConnectionClosed, RuntimeError, diff --git a/freqtrade/rpc/external_message_consumer.py b/freqtrade/rpc/external_message_consumer.py index fe22613bd..0a11fbefe 100644 --- a/freqtrade/rpc/external_message_consumer.py +++ b/freqtrade/rpc/external_message_consumer.py @@ -266,7 +266,7 @@ class ExternalMessageConsumer: except Exception as e: logger.exception(f"Error handling producer message: {e}") - except (asyncio.TimeoutError, websockets.exceptions.ConnectionClosed): + except (TimeoutError, websockets.exceptions.ConnectionClosed): # We haven't received data yet. Check the connection and continue. try: # ping diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 8bfa29ed0..5d8ffc141 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -5,7 +5,7 @@ This module contains class to define a RPC communications import logging from abc import abstractmethod from collections.abc import Generator, Sequence -from datetime import date, datetime, timedelta, timezone +from datetime import UTC, date, datetime, timedelta from typing import TYPE_CHECKING, Any import psutil @@ -375,7 +375,7 @@ class RPC: """ :param timeunit: Valid entries are 'days', 'weeks', 'months' """ - start_date = datetime.now(timezone.utc).date() + start_date = datetime.now(UTC).date() if timeunit == "weeks": # weekly start_date = start_date - timedelta(days=start_date.weekday()) # Monday @@ -1099,7 +1099,7 @@ class RPC: trade = Trade.get_trades(trade_filter=[Trade.id == trade_id]).first() if not trade: logger.warning("delete trade: Invalid argument received") - raise RPCException("invalid argument") + raise RPCException(f"Trade with id '{trade_id}' not found.") # Try cancelling regular order if that exists for open_order in trade.open_orders: @@ -1120,13 +1120,16 @@ class RPC: c_count += 1 except ExchangeError: pass - + trade_pair = trade.pair trade.delete() self._freqtrade.wallets.update() return { "result": "success", "trade_id": trade_id, - "result_msg": f"Deleted trade {trade_id}. Closed {c_count} open orders.", + "result_msg": ( + f"Deleted trade #{trade_id} for pair {trade_pair}. " + f"Closed {c_count} open orders." + ), "cancel_order_count": c_count, } @@ -1264,7 +1267,7 @@ class RPC: for lock in locks: lock.active = False - lock.lock_end_time = datetime.now(timezone.utc) + lock.lock_end_time = datetime.now(UTC) Trade.commit() diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 3e90a0861..7b3967193 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -1488,7 +1488,7 @@ class Telegram(RPCHandler): trade_id = int(context.args[0]) msg = self._rpc._rpc_delete(trade_id) await self._send_msg( - f"`{msg['result_msg']}`\n" + f"{msg['result_msg']}\n" "Please make sure to take care of this asset on the exchange manually." ) diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 2186ea9b3..c863a8392 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -5,7 +5,7 @@ This module defines the interface to apply for strategies import logging from abc import ABC, abstractmethod -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from math import isinf, isnan from pandas import DataFrame @@ -1149,7 +1149,7 @@ class IStrategy(ABC, HyperStrategyMixin): manually from within the strategy, to allow an easy way to unlock pairs. :param pair: Unlock pair to allow trading again """ - PairLocks.unlock_pair(pair, datetime.now(timezone.utc)) + PairLocks.unlock_pair(pair, datetime.now(UTC)) def unlock_reason(self, reason: str) -> None: """ @@ -1158,7 +1158,7 @@ class IStrategy(ABC, HyperStrategyMixin): manually from within the strategy, to allow an easy way to unlock pairs. :param reason: Unlock pairs to allow trading again """ - PairLocks.unlock_reason(reason, datetime.now(timezone.utc)) + PairLocks.unlock_reason(reason, datetime.now(UTC)) def is_pair_locked( self, pair: str, *, candle_date: datetime | None = None, side: str = "*" diff --git a/freqtrade/util/datetime_helpers.py b/freqtrade/util/datetime_helpers.py index 03ee3b6d9..e2390105d 100644 --- a/freqtrade/util/datetime_helpers.py +++ b/freqtrade/util/datetime_helpers.py @@ -1,5 +1,5 @@ import re -from datetime import datetime, timezone +from datetime import UTC, datetime from time import time import humanize @@ -9,7 +9,7 @@ from freqtrade.constants import DATETIME_PRINT_FORMAT def dt_now() -> datetime: """Return the current datetime in UTC.""" - return datetime.now(timezone.utc) + return datetime.now(UTC) def dt_utc( @@ -22,7 +22,7 @@ def dt_utc( microsecond: int = 0, ) -> datetime: """Return a datetime in UTC.""" - return datetime(year, month, day, hour, minute, second, microsecond, tzinfo=timezone.utc) + return datetime(year, month, day, hour, minute, second, microsecond, tzinfo=UTC) def dt_ts(dt: datetime | None = None) -> int: @@ -68,7 +68,7 @@ def dt_from_ts(timestamp: float) -> datetime: if timestamp > 1e10: # Timezone in ms - convert to seconds timestamp /= 1000 - return datetime.fromtimestamp(timestamp, tz=timezone.utc) + return datetime.fromtimestamp(timestamp, tz=UTC) def shorten_date(_date: str) -> str: diff --git a/freqtrade/util/periodic_cache.py b/freqtrade/util/periodic_cache.py index 4f7405d2b..33322fd55 100644 --- a/freqtrade/util/periodic_cache.py +++ b/freqtrade/util/periodic_cache.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from cachetools import TTLCache @@ -11,7 +11,7 @@ class PeriodicCache(TTLCache): def __init__(self, maxsize, ttl, getsizeof=None): def local_timer(): - ts = datetime.now(timezone.utc).timestamp() + ts = datetime.now(UTC).timestamp() offset = ts % ttl return ts - offset diff --git a/ft_client/freqtrade_client/__init__.py b/ft_client/freqtrade_client/__init__.py index f42fb9db6..1eca241b8 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.6-dev" +__version__ = "2025.7-dev" if "dev" in __version__: from pathlib import Path diff --git a/ft_client/pyproject.toml b/ft_client/pyproject.toml index d69dad49d..f41331b26 100644 --- a/ft_client/pyproject.toml +++ b/ft_client/pyproject.toml @@ -13,14 +13,13 @@ authors = [ description = "Freqtrade - Client scripts" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = {text = "GPLv3"} # license = "GPLv3" classifiers = [ "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", diff --git a/mkdocs.yml b/mkdocs.yml index cfd22bb3d..681a892b2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -61,11 +61,14 @@ theme: name: material logo: "images/logo.png" favicon: "images/logo.png" + icon: + repo: fontawesome/brands/github custom_dir: "docs/overrides" features: - content.code.annotate - search.share - content.code.copy + - content.action.edit - navigation.top - navigation.footer palette: @@ -114,6 +117,9 @@ markdown_extensions: custom_checkbox: true - pymdownx.tilde - mdx_truly_sane_lists + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg extra: version: provider: mike diff --git a/pyproject.toml b/pyproject.toml index 9b783789d..dac02870a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,13 +13,12 @@ authors = [ description = "Freqtrade - Crypto Trading Bot" readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" license = {text = "GPLv3"} classifiers = [ "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -111,6 +110,7 @@ develop = [ "pytest-xdist", "pytest", "ruff", + "scipy-stubs", "time-machine", "types-cachetools", "types-filelock", @@ -290,6 +290,7 @@ extend-ignore = [ "RUF010", # Use explicit conversion flag "RUF012", # mutable-class-default "RUF022", # unsorted-dunder-all + "RUF005", # list concatenation ] [tool.ruff.lint.mccabe] diff --git a/requirements-dev.txt b/requirements-dev.txt index 18e19d789..e8b49e6b3 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,16 +6,16 @@ -r requirements-freqai-rl.txt -r docs/requirements-docs.txt -ruff==0.11.13 -mypy==1.16.0 +ruff==0.12.2 +mypy==1.16.1 pre-commit==4.2.0 -pytest==8.4.0 +pytest==8.4.1 pytest-asyncio==1.0.0 pytest-cov==6.2.1 pytest-mock==3.14.1 -pytest-random-order==1.1.1 +pytest-random-order==1.2.0 pytest-timeout==2.4.0 -pytest-xdist==3.7.0 +pytest-xdist==3.8.0 isort==6.0.1 # For datetime mocking time-machine==2.16.0 @@ -24,6 +24,7 @@ time-machine==2.16.0 nbconvert==7.16.6 # mypy types +scipy-stubs==1.16.0.2 # keep in sync with `scipy` in `requirements-hyperopt.txt` types-cachetools==6.0.0.20250525 types-filelock==3.2.7 types-requests==2.32.4.20250611 diff --git a/requirements-hyperopt.txt b/requirements-hyperopt.txt index d7f91d5cc..36acef376 100644 --- a/requirements-hyperopt.txt +++ b/requirements-hyperopt.txt @@ -2,8 +2,8 @@ -r requirements.txt # Required for hyperopt -scipy==1.15.3 +scipy==1.16.0 scikit-learn==1.7.0 filelock==3.18.0 -optuna==4.3.0 +optuna==4.4.0 cmaes==0.11.1 diff --git a/requirements-plot.txt b/requirements-plot.txt index c9228486e..a97628cd2 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.1.2 +plotly==6.2.0 diff --git a/requirements.txt b/requirements.txt index 6ae2638a5..a41a39cfa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -numpy==2.2.6 +numpy==2.3.1 pandas==2.3.0 bottleneck==1.5.0 numexpr==2.11.0 @@ -7,15 +7,15 @@ ft-pandas-ta==0.3.15 ta-lib==0.5.5 technical==1.5.1 -ccxt==4.4.89 -cryptography==45.0.4 +ccxt==4.4.92 +cryptography==45.0.5 aiohttp==3.12.13 SQLAlchemy==2.0.41 -python-telegram-bot==22.1 +python-telegram-bot==22.2 # can't be hard-pinned due to telegram-bot pinning httpx with ~ httpx>=0.24.1 humanize==4.12.3 -cachetools==6.0.0 +cachetools==6.1.0 requests==2.32.4 urllib3==2.5.0 certifi==2025.6.15 @@ -36,9 +36,9 @@ orjson==3.10.18 sdnotify==0.3.2 # API Server -fastapi==0.115.12 +fastapi==0.115.14 pydantic==2.11.7 -uvicorn==0.34.3 +uvicorn==0.35.0 pyjwt==2.10.1 aiofiles==24.1.0 psutil==7.0.0 @@ -57,5 +57,5 @@ schedule==1.2.2 websockets==15.0.1 janus==2.0.0 -ast-comments==1.2.2 +ast-comments==1.2.3 packaging==25.0 diff --git a/scripts/ws_client.py b/scripts/ws_client.py index 46dd2da10..233a7828a 100755 --- a/scripts/ws_client.py +++ b/scripts/ws_client.py @@ -234,7 +234,7 @@ async def create_client( await protocol.on_message(ws, name, message) - except (asyncio.TimeoutError, websockets.exceptions.WebSocketException): + except (TimeoutError, websockets.exceptions.WebSocketException): # Try pinging try: pong = await ws.ping() @@ -244,7 +244,7 @@ async def create_client( continue - except asyncio.TimeoutError: + except TimeoutError: logger.error(f"Ping timed out, retrying in {sleep_time}s") await asyncio.sleep(sleep_time) diff --git a/setup.ps1 b/setup.ps1 index 0bf0542cd..39e8b7d02 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -153,16 +153,13 @@ function Find-PythonExecutable { "python3.13", "python3.12", "python3.11", - "python3.10", "python3", "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python313\python.exe", "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python312\python.exe", "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python311\python.exe", - "C:\Users\$env:USERNAME\AppData\Local\Programs\Python\Python310\python.exe", "C:\Python313\python.exe", "C:\Python312\python.exe", - "C:\Python311\python.exe", - "C:\Python310\python.exe" + "C:\Python311\python.exe" ) @@ -178,10 +175,10 @@ function Main { "Starting the operations..." | Out-File $LogFilePath -Append "Current directory: $(Get-Location)" | Out-File $LogFilePath -Append - # Exit on lower versions than Python 3.10 or when Python executable not found + # Exit on lower versions than Python 3.11 or when Python executable not found $PythonExecutable = Find-PythonExecutable if ($null -eq $PythonExecutable) { - Write-Log "No suitable Python executable found. Please ensure that Python 3.10 or higher is installed and available in the system PATH." -Level 'ERROR' + Write-Log "No suitable Python executable found. Please ensure that Python 3.11 or higher is installed and available in the system PATH." -Level 'ERROR' Exit 1 } diff --git a/setup.sh b/setup.sh index 4e877b19d..a5c73f945 100755 --- a/setup.sh +++ b/setup.sh @@ -25,7 +25,7 @@ function check_installed_python() { exit 2 fi - for v in 13 12 11 10 + for v in 13 12 11 do PYTHON="python3.${v}" which $PYTHON @@ -36,7 +36,7 @@ function check_installed_python() { fi done - echo "No usable python found. Please make sure to have python3.10 or newer installed." + echo "No usable python found. Please make sure to have python3.11 or newer installed." exit 1 } @@ -257,7 +257,7 @@ function install() { install_redhat else echo "This script does not support your OS." - echo "If you have Python version 3.10 - 3.13, pip, virtualenv, ta-lib you can continue." + echo "If you have Python version 3.11 - 3.13, pip, virtualenv, ta-lib you can continue." echo "Wait 10 seconds to continue the next install steps or use ctrl+c to interrupt this shell." sleep 10 fi @@ -284,7 +284,7 @@ function help() { echo " -p,--plot Install dependencies for Plotting scripts." } -# Verify if 3.10+ is installed +# Verify if 3.11+ is installed check_installed_python case $* in diff --git a/tests/conftest.py b/tests/conftest.py index 7703ffa5e..d1cbac549 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -4,7 +4,7 @@ import logging import platform import re from copy import deepcopy -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import MagicMock, Mock, PropertyMock @@ -126,7 +126,7 @@ def get_args(args): def generate_trades_history(n_rows, start_date: datetime | None = None, days=5): np.random.seed(42) if not start_date: - start_date = datetime(2020, 1, 1, tzinfo=timezone.utc) + start_date = datetime(2020, 1, 1, tzinfo=UTC) # Generate random data end_date = start_date + timedelta(days=days) @@ -3405,4 +3405,35 @@ def leverage_tiers(): "maintAmt": 654500.0, }, ], + "TIA/USDT:USDT": [ + # Okx tier - these have a gap between maxNotional and the next minNotional + { + "minNotional": 0.0, + "maxNotional": 6500.0, + "maintenanceMarginRate": 0.0065, + "maxLeverage": 50.0, + "maintAmt": None, + }, + { + "minNotional": 6501.0, + "maxNotional": 12000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 40.0, + "maintAmt": None, + }, + { + "minNotional": 12001.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, + "maintAmt": None, + }, + { + "minNotional": 25001.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 18.18, + "maintAmt": None, + }, + ], } diff --git a/tests/conftest_trades.py b/tests/conftest_trades.py index f493a9302..072dfa60e 100644 --- a/tests/conftest_trades.py +++ b/tests/conftest_trades.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from freqtrade.persistence.models import Order, Trade @@ -43,7 +43,7 @@ def mock_trade_1(fee, is_short: bool): fee_open=fee.return_value, fee_close=fee.return_value, is_open=True, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=17), + open_date=datetime.now(tz=UTC) - timedelta(minutes=17), open_rate=0.123, exchange="binance", strategy="StrategyTestV3", @@ -106,8 +106,8 @@ def mock_trade_2(fee, is_short: bool): timeframe=5, enter_tag="TEST1", exit_reason="sell_signal", - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=20), - close_date=datetime.now(tz=timezone.utc) - timedelta(minutes=2), + open_date=datetime.now(tz=UTC) - timedelta(minutes=20), + close_date=datetime.now(tz=UTC) - timedelta(minutes=2), is_short=is_short, ) o = Order.parse_from_ccxt_object(mock_order_2(is_short), "ETC/BTC", entry_side(is_short)) @@ -168,8 +168,8 @@ def mock_trade_3(fee, is_short: bool): strategy="StrategyTestV3", timeframe=5, exit_reason="roi", - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=20), - close_date=datetime.now(tz=timezone.utc), + open_date=datetime.now(tz=UTC) - timedelta(minutes=20), + close_date=datetime.now(tz=UTC), is_short=is_short, ) o = Order.parse_from_ccxt_object(mock_order_3(is_short), "XRP/BTC", entry_side(is_short)) @@ -205,7 +205,7 @@ def mock_trade_4(fee, is_short: bool): amount_requested=124.0, fee_open=fee.return_value, fee_close=fee.return_value, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=14), + open_date=datetime.now(tz=UTC) - timedelta(minutes=14), is_open=True, open_rate=0.123, exchange="binance", @@ -260,7 +260,7 @@ def mock_trade_5(fee, is_short: bool): amount_requested=124.0, fee_open=fee.return_value, fee_close=fee.return_value, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=12), + open_date=datetime.now(tz=UTC) - timedelta(minutes=12), is_open=True, open_rate=0.123, exchange="binance", @@ -316,7 +316,7 @@ def mock_trade_6(fee, is_short: bool): stake_amount=0.001, amount=2.0, amount_requested=2.0, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=5), + open_date=datetime.now(tz=UTC) - timedelta(minutes=5), fee_open=fee.return_value, fee_close=fee.return_value, is_open=True, @@ -410,7 +410,7 @@ def short_trade(fee): strategy="DefaultStrategy", timeframe=5, exit_reason="sell_signal", - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=20), + open_date=datetime.now(tz=UTC) - timedelta(minutes=20), # close_date=datetime.now(tz=timezone.utc) - timedelta(minutes=2), is_short=True, ) @@ -500,8 +500,8 @@ def leverage_trade(fee): strategy="DefaultStrategy", timeframe=5, exit_reason="sell_signal", - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=300), - close_date=datetime.now(tz=timezone.utc), + open_date=datetime.now(tz=UTC) - timedelta(minutes=300), + close_date=datetime.now(tz=UTC), interest_rate=0.0005, ) o = Order.parse_from_ccxt_object(leverage_order(), "DOGE/BTC", "sell") diff --git a/tests/conftest_trades_usdt.py b/tests/conftest_trades_usdt.py index 3a547cce2..462f0dfc6 100644 --- a/tests/conftest_trades_usdt.py +++ b/tests/conftest_trades_usdt.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from freqtrade.persistence.models import Order, Trade @@ -55,8 +55,8 @@ def mock_trade_usdt_1(fee, is_short: bool): stake_amount=20.0, amount=2.0, amount_requested=2.0, - open_date=datetime.now(tz=timezone.utc) - timedelta(days=2, minutes=20), - close_date=datetime.now(tz=timezone.utc) - timedelta(days=2, minutes=5), + open_date=datetime.now(tz=UTC) - timedelta(days=2, minutes=20), + close_date=datetime.now(tz=UTC) - timedelta(days=2, minutes=5), fee_open=fee.return_value, fee_close=fee.return_value, is_open=False, @@ -127,8 +127,8 @@ def mock_trade_usdt_2(fee, is_short: bool): timeframe=5, enter_tag="TEST1", exit_reason="exit_signal", - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=20), - close_date=datetime.now(tz=timezone.utc) - timedelta(minutes=2), + open_date=datetime.now(tz=UTC) - timedelta(minutes=20), + close_date=datetime.now(tz=UTC) - timedelta(minutes=2), is_short=is_short, ) o = Order.parse_from_ccxt_object(mock_order_usdt_2(is_short), "NEO/USDT", entry_side(is_short)) @@ -190,8 +190,8 @@ def mock_trade_usdt_3(fee, is_short: bool): timeframe=5, enter_tag="TEST3", exit_reason="roi", - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=20), - close_date=datetime.now(tz=timezone.utc), + open_date=datetime.now(tz=UTC) - timedelta(minutes=20), + close_date=datetime.now(tz=UTC), is_short=is_short, ) o = Order.parse_from_ccxt_object(mock_order_usdt_3(is_short), "XRP/USDT", entry_side(is_short)) @@ -228,7 +228,7 @@ def mock_trade_usdt_4(fee, is_short: bool): amount_requested=10.01, fee_open=fee.return_value, fee_close=fee.return_value, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=14), + open_date=datetime.now(tz=UTC) - timedelta(minutes=14), is_open=True, open_rate=2.0, exchange="binance", @@ -280,7 +280,7 @@ def mock_trade_usdt_5(fee, is_short: bool): amount_requested=10.01, fee_open=fee.return_value, fee_close=fee.return_value, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=12), + open_date=datetime.now(tz=UTC) - timedelta(minutes=12), is_open=True, open_rate=2.0, exchange="binance", @@ -332,7 +332,7 @@ def mock_trade_usdt_6(fee, is_short: bool): stake_amount=20.0, amount=2.0, amount_requested=2.0, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=5), + open_date=datetime.now(tz=UTC) - timedelta(minutes=5), fee_open=fee.return_value, fee_close=fee.return_value, is_open=True, @@ -374,7 +374,7 @@ def mock_trade_usdt_7(fee, is_short: bool): fee_open=fee.return_value, fee_close=fee.return_value, is_open=True, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=17), + open_date=datetime.now(tz=UTC) - timedelta(minutes=17), open_rate=2.0, exchange="binance", strategy="StrategyTestV2", diff --git a/tests/data/test_btanalysis.py b/tests/data/test_btanalysis.py index 6531c6e2e..dd85fb8bb 100644 --- a/tests/data/test_btanalysis.py +++ b/tests/data/test_btanalysis.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import MagicMock from zipfile import ZipFile @@ -182,19 +182,19 @@ def test_extract_trades_of_period(testdatadir): "profit_abs": [0.0, 1, -2, -5], "open_date": to_datetime( [ - datetime(2017, 11, 13, 15, 40, 0, tzinfo=timezone.utc), - datetime(2017, 11, 14, 9, 41, 0, tzinfo=timezone.utc), - datetime(2017, 11, 14, 14, 20, 0, tzinfo=timezone.utc), - datetime(2017, 11, 15, 3, 40, 0, tzinfo=timezone.utc), + datetime(2017, 11, 13, 15, 40, 0, tzinfo=UTC), + datetime(2017, 11, 14, 9, 41, 0, tzinfo=UTC), + datetime(2017, 11, 14, 14, 20, 0, tzinfo=UTC), + datetime(2017, 11, 15, 3, 40, 0, tzinfo=UTC), ], utc=True, ), "close_date": to_datetime( [ - datetime(2017, 11, 13, 16, 40, 0, tzinfo=timezone.utc), - datetime(2017, 11, 14, 10, 41, 0, tzinfo=timezone.utc), - datetime(2017, 11, 14, 15, 25, 0, tzinfo=timezone.utc), - datetime(2017, 11, 15, 3, 55, 0, tzinfo=timezone.utc), + datetime(2017, 11, 13, 16, 40, 0, tzinfo=UTC), + datetime(2017, 11, 14, 10, 41, 0, tzinfo=UTC), + datetime(2017, 11, 14, 15, 25, 0, tzinfo=UTC), + datetime(2017, 11, 15, 3, 55, 0, tzinfo=UTC), ], utc=True, ), @@ -203,10 +203,10 @@ def test_extract_trades_of_period(testdatadir): trades1 = extract_trades_of_period(data, trades) # First and last trade are dropped as they are out of range assert len(trades1) == 2 - assert trades1.iloc[0].open_date == datetime(2017, 11, 14, 9, 41, 0, tzinfo=timezone.utc) - assert trades1.iloc[0].close_date == datetime(2017, 11, 14, 10, 41, 0, tzinfo=timezone.utc) - assert trades1.iloc[-1].open_date == datetime(2017, 11, 14, 14, 20, 0, tzinfo=timezone.utc) - assert trades1.iloc[-1].close_date == datetime(2017, 11, 14, 15, 25, 0, tzinfo=timezone.utc) + assert trades1.iloc[0].open_date == datetime(2017, 11, 14, 9, 41, 0, tzinfo=UTC) + assert trades1.iloc[0].close_date == datetime(2017, 11, 14, 10, 41, 0, tzinfo=UTC) + assert trades1.iloc[-1].open_date == datetime(2017, 11, 14, 14, 20, 0, tzinfo=UTC) + assert trades1.iloc[-1].close_date == datetime(2017, 11, 14, 15, 25, 0, tzinfo=UTC) def test_analyze_trade_parallelism(testdatadir): @@ -293,7 +293,7 @@ def test_combined_dataframes_with_rel_mean(testdatadir): pairs = ["ETH/BTC", "ADA/BTC"] data = load_data(datadir=testdatadir, pairs=pairs, timeframe="5m") df = combined_dataframes_with_rel_mean( - data, datetime(2018, 1, 12, tzinfo=timezone.utc), datetime(2018, 1, 28, tzinfo=timezone.utc) + data, datetime(2018, 1, 12, tzinfo=UTC), datetime(2018, 1, 28, tzinfo=UTC) ) assert isinstance(df, DataFrame) assert "ETH/BTC" not in df.columns @@ -596,7 +596,7 @@ def test_calculate_max_drawdown_abs(profits, relative, highd, lowdays, result, r [1000, 500, 1000, 11000, 10000] # absolute results [1000, 50%, 0%, 0%, ~9%] # Relative drawdowns """ - init_date = datetime(2020, 1, 1, tzinfo=timezone.utc) + init_date = datetime(2020, 1, 1, tzinfo=UTC) dates = [init_date + timedelta(days=i) for i in range(len(profits))] df = DataFrame(zip(profits, dates, strict=False), columns=["profit_abs", "open_date"]) # sort by profit and reset index diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index 1cff8b54a..98c7c65ba 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -1,7 +1,7 @@ # pragma pylint: disable=missing-docstring, protected-access, C0103 import re -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from unittest.mock import MagicMock @@ -165,19 +165,19 @@ def test_datahandler_ohlcv_data_min_max(testdatadir): # Empty pair min_max = dh.ohlcv_data_min_max("UNITTEST/BTC", "8m", "spot") assert len(min_max) == 3 - assert min_max[0] == datetime.fromtimestamp(0, tz=timezone.utc) + assert min_max[0] == datetime.fromtimestamp(0, tz=UTC) assert min_max[0] == min_max[1] # Empty pair2 min_max = dh.ohlcv_data_min_max("NOPAIR/XXX", "41m", "spot") assert len(min_max) == 3 - assert min_max[0] == datetime.fromtimestamp(0, tz=timezone.utc) + assert min_max[0] == datetime.fromtimestamp(0, tz=UTC) assert min_max[0] == min_max[1] # Existing pair ... min_max = dh.ohlcv_data_min_max("UNITTEST/BTC", "1m", "spot") assert len(min_max) == 3 - assert min_max[0] == datetime(2017, 11, 4, 23, 2, tzinfo=timezone.utc) - assert min_max[1] == datetime(2017, 11, 14, 22, 59, tzinfo=timezone.utc) + assert min_max[0] == datetime(2017, 11, 4, 23, 2, tzinfo=UTC) + assert min_max[1] == datetime(2017, 11, 14, 22, 59, tzinfo=UTC) def test_datahandler__check_empty_df(testdatadir, caplog): @@ -467,14 +467,14 @@ def test_datahandler_trades_data_min_max(testdatadir): # Empty pair min_max = dh.trades_data_min_max("NADA/ETH", TradingMode.SPOT) assert len(min_max) == 3 - assert min_max[0] == datetime.fromtimestamp(0, tz=timezone.utc) + assert min_max[0] == datetime.fromtimestamp(0, tz=UTC) assert min_max[0] == min_max[1] # Existing pair ... min_max = dh.trades_data_min_max("XRP/ETH", TradingMode.SPOT) assert len(min_max) == 3 - assert min_max[0] == datetime(2019, 10, 11, 0, 0, 11, 620000, tzinfo=timezone.utc) - assert min_max[1] == datetime(2019, 10, 13, 11, 19, 28, 844000, tzinfo=timezone.utc) + assert min_max[0] == datetime(2019, 10, 11, 0, 0, 11, 620000, tzinfo=UTC) + assert min_max[1] == datetime(2019, 10, 13, 11, 19, 28, 844000, tzinfo=UTC) def test_gethandlerclass(): diff --git a/tests/data/test_dataprovider.py b/tests/data/test_dataprovider.py index c2adb84bb..27aa2f17d 100644 --- a/tests/data/test_dataprovider.py +++ b/tests/data/test_dataprovider.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import MagicMock import pytest @@ -222,8 +222,8 @@ def test_get_producer_df(default_conf): timeframe = default_conf["timeframe"] candle_type = CandleType.SPOT - empty_la = datetime.fromtimestamp(0, tz=timezone.utc) - now = datetime.now(timezone.utc) + empty_la = datetime.fromtimestamp(0, tz=UTC) + now = datetime.now(UTC) # no data has been added, any request should return an empty dataframe dataframe, la = dataprovider.get_producer_df(pair, timeframe, candle_type) @@ -404,7 +404,7 @@ def test_get_analyzed_dataframe(mocker, default_conf, ohlcv_history): dataframe, time = dp.get_analyzed_dataframe("NOTHING/BTC", timeframe) assert dataframe.empty assert isinstance(time, datetime) - assert time == datetime(1970, 1, 1, tzinfo=timezone.utc) + assert time == datetime(1970, 1, 1, tzinfo=UTC) # Test backtest mode default_conf["runmode"] = RunMode.BACKTEST @@ -478,7 +478,7 @@ def test_dp__add_external_df(default_conf_usdt): default_conf_usdt["timeframe"] = timeframe dp = DataProvider(default_conf_usdt, None) df = generate_test_data(timeframe, 24, "2022-01-01 00:00:00+00:00") - last_analyzed = datetime.now(timezone.utc) + last_analyzed = datetime.now(UTC) res = dp._add_external_df("ETH/USDT", df, last_analyzed, timeframe, CandleType.SPOT) assert res[0] is False diff --git a/tests/data/test_historic_precision.py b/tests/data/test_historic_precision.py index 472218b8b..b1af6d191 100644 --- a/tests/data/test_historic_precision.py +++ b/tests/data/test_historic_precision.py @@ -1,6 +1,6 @@ # pragma pylint: disable=missing-docstring, C0103 -from datetime import timezone +from datetime import UTC import pandas as pd from numpy import nan @@ -16,15 +16,15 @@ def test_get_tick_size_over_time(): # Create test dataframe with different levels of precision data = { "date": [ - Timestamp("2020-01-01 00:00:00", tz=timezone.utc), - Timestamp("2020-01-02 00:00:00", tz=timezone.utc), - Timestamp("2020-01-03 00:00:00", tz=timezone.utc), - Timestamp("2020-01-15 00:00:00", tz=timezone.utc), - Timestamp("2020-01-16 00:00:00", tz=timezone.utc), - Timestamp("2020-01-31 00:00:00", tz=timezone.utc), - Timestamp("2020-02-01 00:00:00", tz=timezone.utc), - Timestamp("2020-02-15 00:00:00", tz=timezone.utc), - Timestamp("2020-03-15 00:00:00", tz=timezone.utc), + Timestamp("2020-01-01 00:00:00", tz=UTC), + Timestamp("2020-01-02 00:00:00", tz=UTC), + Timestamp("2020-01-03 00:00:00", tz=UTC), + Timestamp("2020-01-15 00:00:00", tz=UTC), + Timestamp("2020-01-16 00:00:00", tz=UTC), + Timestamp("2020-01-31 00:00:00", tz=UTC), + Timestamp("2020-02-01 00:00:00", tz=UTC), + Timestamp("2020-02-15 00:00:00", tz=UTC), + Timestamp("2020-03-15 00:00:00", tz=UTC), ], "open": [1.23456, 1.234, 1.23, 1.2, 1.23456, 1.234, 2.3456, 2.34, 2.34], "high": [1.23457, 1.235, 1.24, 1.3, 1.23456, 1.235, 2.3457, 2.34, 2.34], diff --git a/tests/data/test_trade_converter_kraken.py b/tests/data/test_trade_converter_kraken.py index d8d20fd88..cddcf5dc0 100644 --- a/tests/data/test_trade_converter_kraken.py +++ b/tests/data/test_trade_converter_kraken.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from shutil import copytree from unittest.mock import PropertyMock @@ -49,12 +49,8 @@ def test_import_kraken_trades_from_csv(testdatadir, tmp_path, caplog, default_co trades = dh.trades_load("BCH_EUR", TradingMode.SPOT) assert len(trades) == 340 - assert trades["date"].min().to_pydatetime() == datetime( - 2023, 1, 1, 0, 3, 56, tzinfo=timezone.utc - ) - assert trades["date"].max().to_pydatetime() == datetime( - 2023, 1, 2, 23, 17, 3, tzinfo=timezone.utc - ) + assert trades["date"].min().to_pydatetime() == datetime(2023, 1, 1, 0, 3, 56, tzinfo=UTC) + assert trades["date"].max().to_pydatetime() == datetime(2023, 1, 2, 23, 17, 3, tzinfo=UTC) # ID is not filled assert len(trades.loc[trades["id"] != ""]) == 0 diff --git a/tests/exchange/test_binance.py b/tests/exchange/test_binance.py index 5241b3b69..02c0f202b 100644 --- a/tests/exchange/test_binance.py +++ b/tests/exchange/test_binance.py @@ -1015,10 +1015,10 @@ async def test__async_get_trade_history_id_binance(default_conf_usdt, mocker, fe # Don't expect to get here raise ValueError("Unexpected call") # return fetch_trades_result[:-2] - elif kwargs.get("params", {}).get(exchange._trades_pagination_arg) == "0": + elif kwargs.get("params", {}).get(exchange._ft_has["trades_pagination_arg"]) == "0": # Return first 3 return fetch_trades_result[:-2] - elif kwargs.get("params", {}).get(exchange._trades_pagination_arg) in ( + elif kwargs.get("params", {}).get(exchange._ft_has["trades_pagination_arg"]) in ( fetch_trades_result[-3]["id"], 1565798399752, ): @@ -1076,10 +1076,10 @@ async def test__async_get_trade_history_id_binance_fast( # # Don't expect to get here # raise ValueError("Unexpected call") # # return fetch_trades_result[:-2] - elif kwargs.get("params", {}).get(exchange._trades_pagination_arg) == "0": + elif kwargs.get("params", {}).get(exchange._ft_has["trades_pagination_arg"]) == "0": # Return first 3 return fetch_trades_result[:-2] - # elif kwargs.get("params", {}).get(exchange._trades_pagination_arg) in ( + # elif kwargs.get("params", {}).get(exchange._ft_has['trades_pagination_arg']) in ( # fetch_trades_result[-3]["id"], # 1565798399752, # ): diff --git a/tests/exchange/test_bybit.py b/tests/exchange/test_bybit.py index ece7b3785..511d8bab4 100644 --- a/tests/exchange/test_bybit.py +++ b/tests/exchange/test_bybit.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from unittest.mock import MagicMock import pytest @@ -73,7 +73,7 @@ async def test_bybit_fetch_funding_rate(default_conf, mocker): def test_bybit_get_funding_fees(default_conf, mocker): - now = datetime.now(timezone.utc) + now = datetime.now(UTC) exchange = get_patched_exchange(mocker, default_conf, exchange="bybit") exchange._fetch_and_calculate_funding_fees = MagicMock() exchange.get_funding_fees("BTC/USDT:USDT", 1, False, now) @@ -117,7 +117,7 @@ def test_bybit_fetch_orders(default_conf, mocker, limit_order): return True mocker.patch(f"{EXMS}.exchange_has", side_effect=exchange_has) - start_time = datetime.now(timezone.utc) - timedelta(days=20) + start_time = datetime.now(UTC) - timedelta(days=20) exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange="bybit") # Not available in dry-run diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index ab4ea8dce..42f5608c0 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -1,7 +1,7 @@ import copy import logging from copy import deepcopy -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from random import randint from unittest.mock import MagicMock, Mock, PropertyMock, patch @@ -35,7 +35,6 @@ from freqtrade.exchange.common import ( API_FETCH_ORDER_RETRY_COUNT, API_RETRY_COUNT, calculate_backoff, - remove_exchange_credentials, ) from freqtrade.resolvers.exchange_resolver import ExchangeResolver from freqtrade.util import dt_now, dt_ts @@ -167,20 +166,6 @@ def test_init(default_conf, mocker, caplog): assert log_has("Instance is running with dry_run enabled", caplog) -def test_remove_exchange_credentials(default_conf) -> None: - conf = deepcopy(default_conf) - remove_exchange_credentials(conf["exchange"], False) - - assert conf["exchange"]["key"] != "" - assert conf["exchange"]["secret"] != "" - - remove_exchange_credentials(conf["exchange"], True) - assert conf["exchange"]["key"] == "" - assert conf["exchange"]["secret"] == "" - assert conf["exchange"]["password"] == "" - assert conf["exchange"]["uid"] == "" - - def test_init_ccxt_kwargs(default_conf, mocker, caplog): mocker.patch(f"{EXMS}.reload_markets") mocker.patch(f"{EXMS}.validate_stakecurrency") @@ -1743,7 +1728,7 @@ def test_fetch_orders(default_conf, mocker, exchange_name, limit_order): api_mock.fetch_closed_orders = MagicMock(return_value=[limit_order["buy"]]) mocker.patch(f"{EXMS}.exchange_has", return_value=True) - start_time = datetime.now(timezone.utc) - timedelta(days=20) + start_time = datetime.now(UTC) - timedelta(days=20) expected = 1 if exchange_name == "bybit": expected = 3 @@ -2121,7 +2106,7 @@ def test___now_is_time_to_refresh(default_conf, mocker, exchange_name, time_mach exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name) pair = "BTC/USDT" candle_type = CandleType.SPOT - start_dt = datetime(2023, 12, 1, 0, 10, 0, tzinfo=timezone.utc) + start_dt = datetime(2023, 12, 1, 0, 10, 0, tzinfo=UTC) time_machine.move_to(start_dt, tick=False) assert (pair, "5m", candle_type) not in exchange._pairs_last_refresh_time @@ -2144,7 +2129,7 @@ def test___now_is_time_to_refresh(default_conf, mocker, exchange_name, time_mach assert exchange._now_is_time_to_refresh(pair, "5m", candle_type) is True # Test with 1d data - start_day_dt = datetime(2023, 12, 1, 0, 0, 0, tzinfo=timezone.utc) + start_day_dt = datetime(2023, 12, 1, 0, 0, 0, tzinfo=UTC) last_closed_candle_1d = dt_ts(start_day_dt - timedelta(days=1)) exchange._pairs_last_refresh_time[(pair, "1d", candle_type)] = last_closed_candle_1d @@ -2212,7 +2197,7 @@ def test_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name, candle_ async def test__async_get_historic_ohlcv(default_conf, mocker, caplog, exchange_name, candle_type): ohlcv = [ [ - int((datetime.now(timezone.utc).timestamp() - 1000) * 1000), + int((datetime.now(UTC).timestamp() - 1000) * 1000), 1, # open 2, # high 3, # low @@ -2516,7 +2501,7 @@ def test_refresh_latest_trades( @pytest.mark.parametrize("candle_type", [CandleType.FUTURES, CandleType.MARK, CandleType.SPOT]) def test_refresh_latest_ohlcv_cache(mocker, default_conf, candle_type, time_machine) -> None: - start = datetime(2021, 8, 1, 0, 0, 0, 0, tzinfo=timezone.utc) + start = datetime(2021, 8, 1, 0, 0, 0, 0, tzinfo=UTC) ohlcv = generate_test_data_raw("1h", 100, start.strftime("%Y-%m-%d")) time_machine.move_to(start + timedelta(hours=99, minutes=30)) @@ -2610,7 +2595,7 @@ def test_refresh_latest_ohlcv_cache(mocker, default_conf, candle_type, time_mach def test_refresh_ohlcv_with_cache(mocker, default_conf, time_machine) -> None: - start = datetime(2021, 8, 1, 0, 0, 0, 0, tzinfo=timezone.utc) + start = datetime(2021, 8, 1, 0, 0, 0, 0, tzinfo=UTC) ohlcv = generate_test_data_raw("1h", 100, start.strftime("%Y-%m-%d")) time_machine.move_to(start, tick=False) pairs = [ @@ -2918,7 +2903,7 @@ def test_get_entry_rate( mocker, default_conf, caplog, side, ask, bid, last, last_ab, expected, time_machine ) -> None: caplog.set_level(logging.DEBUG) - start_dt = datetime(2023, 12, 1, 0, 10, 0, tzinfo=timezone.utc) + start_dt = datetime(2023, 12, 1, 0, 10, 0, tzinfo=UTC) time_machine.move_to(start_dt, tick=False) if last_ab is None: del default_conf["entry_pricing"]["price_last_balance"] @@ -2955,7 +2940,7 @@ def test_get_exit_rate( default_conf, mocker, caplog, side, bid, ask, last, last_ab, expected, time_machine ) -> None: caplog.set_level(logging.DEBUG) - start_dt = datetime(2023, 12, 1, 0, 10, 0, tzinfo=timezone.utc) + start_dt = datetime(2023, 12, 1, 0, 10, 0, tzinfo=UTC) time_machine.move_to(start_dt, tick=False) default_conf["exit_pricing"]["price_side"] = side @@ -3284,7 +3269,7 @@ async def test__async_fetch_trades( assert isinstance(res, list) assert isinstance(res[0], list) assert isinstance(res[1], list) - if exchange._trades_pagination == "id": + if exchange._ft_has["trades_pagination"] == "id": if exchange_name == "kraken": assert pagid == 1565798399872512133 else: @@ -3305,7 +3290,7 @@ async def test__async_fetch_trades( assert exchange._api_async.fetch_trades.call_args[1]["limit"] == 1000 assert exchange._api_async.fetch_trades.call_args[1]["params"] == {"from": "123"} - if exchange._trades_pagination == "id": + if exchange._ft_has["trades_pagination"] == "id": if exchange_name == "kraken": assert pagid == 1565798399872512133 else: @@ -3394,10 +3379,10 @@ async def test__async_get_trade_history_id( ): default_conf["exchange"]["only_from_ccxt"] = True exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name) - if exchange._trades_pagination != "id": + if exchange._ft_has["trades_pagination"] != "id": exchange.close() pytest.skip("Exchange does not support pagination by trade id") - pagination_arg = exchange._trades_pagination_arg + pagination_arg = exchange._ft_has["trades_pagination_arg"] async def mock_get_trade_hist(pair, *args, **kwargs): if "since" in kwargs: @@ -3471,7 +3456,7 @@ async def test__async_get_trade_history_time( caplog.set_level(logging.DEBUG) exchange = get_patched_exchange(mocker, default_conf, exchange=exchange_name) - if exchange._trades_pagination != "time": + if exchange._ft_has["trades_pagination"] != "time": exchange.close() pytest.skip("Exchange does not support pagination by timestamp") # Monkey-patch async function @@ -4034,7 +4019,7 @@ def test_get_trades_for_order(default_conf, mocker, exchange_name, trading_mode, assert api_mock.fetch_my_trades.call_args[0][1] == 1525478395000 assert ( api_mock.fetch_my_trades.call_args[0][1] - == int(since.replace(tzinfo=timezone.utc).timestamp() - 5) * 1000 + == int(since.replace(tzinfo=UTC).timestamp() - 5) * 1000 ) ccxt_exceptionhandlers( @@ -4800,7 +4785,7 @@ def test_calculate_backoff(retrycount, max_retries, expected): @pytest.mark.parametrize("exchange_name", EXCHANGES) def test_get_funding_fees(default_conf_usdt, mocker, exchange_name, caplog): - now = datetime.now(timezone.utc) + now = datetime.now(UTC) default_conf_usdt["trading_mode"] = "futures" default_conf_usdt["margin_mode"] = "isolated" exchange = get_patched_exchange(mocker, default_conf_usdt, exchange=exchange_name) @@ -5017,8 +5002,8 @@ def test_calculate_funding_fees( ): exchange = get_patched_exchange(mocker, default_conf) kraken = get_patched_exchange(mocker, default_conf, exchange="kraken") - prior_date = timeframe_to_prev_date("1h", datetime.now(timezone.utc) - timedelta(hours=1)) - trade_date = timeframe_to_prev_date("1h", datetime.now(timezone.utc)) + prior_date = timeframe_to_prev_date("1h", datetime.now(UTC) - timedelta(hours=1)) + trade_date = timeframe_to_prev_date("1h", datetime.now(UTC)) funding_rates = DataFrame( [ {"date": prior_date, "open": funding_rate}, # Line not used. @@ -5087,9 +5072,9 @@ def test_combine_funding_and_mark( futures_funding_rate, ): exchange = get_patched_exchange(mocker, default_conf) - prior2_date = timeframe_to_prev_date("1h", datetime.now(timezone.utc) - timedelta(hours=2)) - prior_date = timeframe_to_prev_date("1h", datetime.now(timezone.utc) - timedelta(hours=1)) - trade_date = timeframe_to_prev_date("1h", datetime.now(timezone.utc)) + prior2_date = timeframe_to_prev_date("1h", datetime.now(UTC) - timedelta(hours=2)) + prior_date = timeframe_to_prev_date("1h", datetime.now(UTC) - timedelta(hours=1)) + trade_date = timeframe_to_prev_date("1h", datetime.now(UTC)) funding_rates = DataFrame( [ {"date": prior2_date, "open": funding_rate}, @@ -5946,10 +5931,14 @@ def test_get_max_leverage_futures(default_conf, mocker, leverage_tiers): assert exchange.get_max_leverage("SPONGE/USDT:USDT", 200) == 1.0 # Pair not in leverage_tiers assert exchange.get_max_leverage("BTC/USDT:USDT", 0.0) == 125.0 # No stake amount with pytest.raises( - InvalidOrderException, match=r"Amount 1000000000.01 too high for BTC/USDT:USDT" + InvalidOrderException, match=r"Stake amount 1000000000.01 too high for BTC/USDT:USDT" ): exchange.get_max_leverage("BTC/USDT:USDT", 1000000000.01) + assert exchange.get_max_leverage("TIA/USDT:USDT", 130) == 50 + assert exchange.get_max_leverage("TIA/USDT:USDT", 131) == 40 + 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): diff --git a/tests/exchange/test_exchange_utils.py b/tests/exchange/test_exchange_utils.py index 313a2db49..47ad7cccb 100644 --- a/tests/exchange/test_exchange_utils.py +++ b/tests/exchange/test_exchange_utils.py @@ -1,5 +1,5 @@ # pragma pylint: disable=missing-docstring, protected-access, invalid-name -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from math import isnan, nan import pytest @@ -117,7 +117,7 @@ def test_check_exchange(default_conf, caplog) -> None: def test_date_minus_candles(): - date = datetime(2019, 8, 12, 13, 25, 0, tzinfo=timezone.utc) + date = datetime(2019, 8, 12, 13, 25, 0, tzinfo=UTC) assert date_minus_candles("5m", 3, date) == date - timedelta(minutes=15) assert date_minus_candles("5m", 5, date) == date - timedelta(minutes=25) @@ -167,59 +167,59 @@ def test_timeframe_to_resample_freq(timeframe, expected): def test_timeframe_to_prev_date(): # 2019-08-12 13:22:08 - date = datetime.fromtimestamp(1565616128, tz=timezone.utc) + date = datetime.fromtimestamp(1565616128, tz=UTC) tf_list = [ # 5m -> 2019-08-12 13:20:00 - ("5m", datetime(2019, 8, 12, 13, 20, 0, tzinfo=timezone.utc)), + ("5m", datetime(2019, 8, 12, 13, 20, 0, tzinfo=UTC)), # 10m -> 2019-08-12 13:20:00 - ("10m", datetime(2019, 8, 12, 13, 20, 0, tzinfo=timezone.utc)), + ("10m", datetime(2019, 8, 12, 13, 20, 0, tzinfo=UTC)), # 1h -> 2019-08-12 13:00:00 - ("1h", datetime(2019, 8, 12, 13, 00, 0, tzinfo=timezone.utc)), + ("1h", datetime(2019, 8, 12, 13, 00, 0, tzinfo=UTC)), # 2h -> 2019-08-12 12:00:00 - ("2h", datetime(2019, 8, 12, 12, 00, 0, tzinfo=timezone.utc)), + ("2h", datetime(2019, 8, 12, 12, 00, 0, tzinfo=UTC)), # 4h -> 2019-08-12 12:00:00 - ("4h", datetime(2019, 8, 12, 12, 00, 0, tzinfo=timezone.utc)), + ("4h", datetime(2019, 8, 12, 12, 00, 0, tzinfo=UTC)), # 1d -> 2019-08-12 00:00:00 - ("1d", datetime(2019, 8, 12, 00, 00, 0, tzinfo=timezone.utc)), + ("1d", datetime(2019, 8, 12, 00, 00, 0, tzinfo=UTC)), ] for interval, result in tf_list: assert timeframe_to_prev_date(interval, date) == result - date = datetime.now(tz=timezone.utc) + date = datetime.now(tz=UTC) assert timeframe_to_prev_date("5m") < date # Does not round - time = datetime(2019, 8, 12, 13, 20, 0, tzinfo=timezone.utc) + time = datetime(2019, 8, 12, 13, 20, 0, tzinfo=UTC) assert timeframe_to_prev_date("5m", time) == time - time = datetime(2019, 8, 12, 13, 0, 0, tzinfo=timezone.utc) + time = datetime(2019, 8, 12, 13, 0, 0, tzinfo=UTC) assert timeframe_to_prev_date("1h", time) == time def test_timeframe_to_next_date(): # 2019-08-12 13:22:08 - date = datetime.fromtimestamp(1565616128, tz=timezone.utc) + date = datetime.fromtimestamp(1565616128, tz=UTC) tf_list = [ # 5m -> 2019-08-12 13:25:00 - ("5m", datetime(2019, 8, 12, 13, 25, 0, tzinfo=timezone.utc)), + ("5m", datetime(2019, 8, 12, 13, 25, 0, tzinfo=UTC)), # 10m -> 2019-08-12 13:30:00 - ("10m", datetime(2019, 8, 12, 13, 30, 0, tzinfo=timezone.utc)), + ("10m", datetime(2019, 8, 12, 13, 30, 0, tzinfo=UTC)), # 1h -> 2019-08-12 14:00:00 - ("1h", datetime(2019, 8, 12, 14, 00, 0, tzinfo=timezone.utc)), + ("1h", datetime(2019, 8, 12, 14, 00, 0, tzinfo=UTC)), # 2h -> 2019-08-12 14:00:00 - ("2h", datetime(2019, 8, 12, 14, 00, 0, tzinfo=timezone.utc)), + ("2h", datetime(2019, 8, 12, 14, 00, 0, tzinfo=UTC)), # 4h -> 2019-08-12 14:00:00 - ("4h", datetime(2019, 8, 12, 16, 00, 0, tzinfo=timezone.utc)), + ("4h", datetime(2019, 8, 12, 16, 00, 0, tzinfo=UTC)), # 1d -> 2019-08-13 00:00:00 - ("1d", datetime(2019, 8, 13, 0, 0, 0, tzinfo=timezone.utc)), + ("1d", datetime(2019, 8, 13, 0, 0, 0, tzinfo=UTC)), ] for interval, result in tf_list: assert timeframe_to_next_date(interval, date) == result - date = datetime.now(tz=timezone.utc) + date = datetime.now(tz=UTC) assert timeframe_to_next_date("5m") > date - date = datetime(2019, 8, 12, 13, 30, 0, tzinfo=timezone.utc) + date = datetime(2019, 8, 12, 13, 30, 0, tzinfo=UTC) assert timeframe_to_next_date("5m", date) == date + timedelta(minutes=5) diff --git a/tests/exchange/test_exchange_ws.py b/tests/exchange/test_exchange_ws.py index 6dee7f339..ed96e66d0 100644 --- a/tests/exchange/test_exchange_ws.py +++ b/tests/exchange/test_exchange_ws.py @@ -50,18 +50,18 @@ def test_exchangews_cleanup_error(mocker, caplog): def patch_eventloop_threading(exchange): - is_init = False + init_event = threading.Event() - def thread_fuck(): - nonlocal is_init + def thread_func(): exchange._loop = asyncio.new_event_loop() - is_init = True + init_event.set() exchange._loop.run_forever() - x = threading.Thread(target=thread_fuck, daemon=True) + x = threading.Thread(target=thread_func, daemon=True) x.start() - while not is_init: - pass + # Wait for thread to be properly initialized with timeout + if not init_event.wait(timeout=5.0): + raise RuntimeError("Failed to initialize event loop thread") async def test_exchangews_ohlcv(mocker, time_machine, caplog): @@ -69,14 +69,24 @@ async def test_exchangews_ohlcv(mocker, time_machine, caplog): ccxt_object = MagicMock() caplog.set_level(logging.DEBUG) - async def sleeper(*args, **kwargs): - # pass - await asyncio.sleep(0.12) + async def controlled_sleeper(*args, **kwargs): + # Sleep to pass control back to the event loop + await asyncio.sleep(0.1) return MagicMock() - ccxt_object.un_watch_ohlcv_for_symbols = AsyncMock(side_effect=NotSupported) + async def wait_for_condition(condition_func, timeout_=5.0, check_interval=0.01): + """Wait for a condition to be true with timeout.""" + try: + async with asyncio.timeout(timeout_): + while True: + if condition_func(): + return True + await asyncio.sleep(check_interval) + except TimeoutError: + return False - ccxt_object.watch_ohlcv = AsyncMock(side_effect=sleeper) + ccxt_object.un_watch_ohlcv_for_symbols = AsyncMock(side_effect=NotSupported) + ccxt_object.watch_ohlcv = AsyncMock(side_effect=controlled_sleeper) ccxt_object.close = AsyncMock() time_machine.move_to("2024-11-01 01:00:02 +00:00") @@ -90,7 +100,14 @@ async def test_exchangews_ohlcv(mocker, time_machine, caplog): exchange_ws.schedule_ohlcv("ETH/BTC", "1m", CandleType.SPOT) exchange_ws.schedule_ohlcv("XRP/BTC", "1m", CandleType.SPOT) - await asyncio.sleep(0.2) + + # Wait for both pairs to be properly scheduled and watching + await wait_for_condition( + lambda: ( + len(exchange_ws._klines_watching) == 2 and len(exchange_ws._klines_scheduled) == 2 + ), + timeout_=2.0, + ) assert exchange_ws._klines_watching == { ("ETH/BTC", "1m", CandleType.SPOT), @@ -100,14 +117,21 @@ async def test_exchangews_ohlcv(mocker, time_machine, caplog): ("ETH/BTC", "1m", CandleType.SPOT), ("XRP/BTC", "1m", CandleType.SPOT), } - await asyncio.sleep(0.1) - assert ccxt_object.watch_ohlcv.call_count == 6 + + # Wait for the expected number of watch calls + await wait_for_condition(lambda: ccxt_object.watch_ohlcv.call_count >= 6, timeout_=3.0) + assert ccxt_object.watch_ohlcv.call_count >= 6 ccxt_object.watch_ohlcv.reset_mock() time_machine.shift(timedelta(minutes=5)) exchange_ws.schedule_ohlcv("ETH/BTC", "1m", CandleType.SPOT) - await asyncio.sleep(1) + + # Wait for log message + await wait_for_condition( + lambda: log_has_re("un_watch_ohlcv_for_symbols not supported: ", caplog), timeout_=2.0 + ) assert log_has_re("un_watch_ohlcv_for_symbols not supported: ", caplog) + # XRP/BTC should be cleaned up. assert exchange_ws._klines_watching == { ("ETH/BTC", "1m", CandleType.SPOT), @@ -116,6 +140,8 @@ async def test_exchangews_ohlcv(mocker, time_machine, caplog): # Cleanup happened. ccxt_object.un_watch_ohlcv_for_symbols = AsyncMock(side_effect=ValueError) exchange_ws.schedule_ohlcv("ETH/BTC", "1m", CandleType.SPOT) + + # Verify final state assert exchange_ws._klines_watching == { ("ETH/BTC", "1m", CandleType.SPOT), } diff --git a/tests/exchange/test_gate.py b/tests/exchange/test_gate.py index 3f5ecacf6..ee3d70c84 100644 --- a/tests/exchange/test_gate.py +++ b/tests/exchange/test_gate.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import MagicMock import pytest @@ -113,7 +113,7 @@ def test_fetch_my_trades_gate(mocker, default_conf, takerormaker, rate, cost): ) exchange = get_patched_exchange(mocker, default_conf, api_mock=api_mock, exchange="gate") exchange._trading_fees = tick - trades = exchange.get_trades_for_order("22255", "ETH/USDT:USDT", datetime.now(timezone.utc)) + trades = exchange.get_trades_for_order("22255", "ETH/USDT:USDT", datetime.now(UTC)) trade = trades[0] assert trade["fee"] assert trade["fee"]["rate"] == rate diff --git a/tests/exchange/test_hyperliquid.py b/tests/exchange/test_hyperliquid.py index a169a9a73..c7924080e 100644 --- a/tests/exchange/test_hyperliquid.py +++ b/tests/exchange/test_hyperliquid.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import MagicMock, PropertyMock import pytest @@ -306,7 +306,7 @@ def test_hyperliquid_dry_run_liquidation_price(default_conf, mocker): def test_hyperliquid_get_funding_fees(default_conf, mocker): - now = datetime.now(timezone.utc) + now = datetime.now(UTC) exchange = get_patched_exchange(mocker, default_conf, exchange="hyperliquid") exchange._fetch_and_calculate_funding_fees = MagicMock() exchange.get_funding_fees("BTC/USDC:USDC", 1, False, now) diff --git a/tests/exchange/test_okx.py b/tests/exchange/test_okx.py index 1bf783daa..bf881163e 100644 --- a/tests/exchange/test_okx.py +++ b/tests/exchange/test_okx.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from unittest.mock import AsyncMock, MagicMock, PropertyMock import ccxt @@ -15,7 +15,7 @@ from tests.exchange.test_exchange import ccxt_exceptionhandlers def test_okx_ohlcv_candle_limit(default_conf, mocker): exchange = get_patched_exchange(mocker, default_conf, exchange="okx") timeframes = ("1m", "5m", "1h") - start_time = int(datetime(2021, 1, 1, tzinfo=timezone.utc).timestamp() * 1000) + start_time = int(datetime(2021, 1, 1, tzinfo=UTC).timestamp() * 1000) for timeframe in timeframes: assert exchange.ohlcv_candle_limit(timeframe, CandleType.SPOT) == 300 @@ -29,8 +29,7 @@ def test_okx_ohlcv_candle_limit(default_conf, mocker): assert exchange.ohlcv_candle_limit(timeframe, CandleType.FUNDING_RATE, start_time) == 100 one_call = int( ( - datetime.now(timezone.utc) - - timedelta(minutes=290 * timeframe_to_minutes(timeframe)) + datetime.now(UTC) - timedelta(minutes=290 * timeframe_to_minutes(timeframe)) ).timestamp() * 1000 ) @@ -40,8 +39,7 @@ def test_okx_ohlcv_candle_limit(default_conf, mocker): one_call = int( ( - datetime.now(timezone.utc) - - timedelta(minutes=320 * timeframe_to_minutes(timeframe)) + datetime.now(UTC) - timedelta(minutes=320 * timeframe_to_minutes(timeframe)) ).timestamp() * 1000 ) @@ -693,7 +691,7 @@ def test_fetch_orders_okx(default_conf, mocker, limit_order): api_mock.fetch_closed_orders = MagicMock(return_value=[limit_order["buy"]]) mocker.patch(f"{EXMS}.exchange_has", return_value=True) - start_time = datetime.now(timezone.utc) - timedelta(days=20) + start_time = datetime.now(UTC) - timedelta(days=20) exchange = get_patched_exchange(mocker, default_conf, api_mock, exchange="okx") # Not available in dry-run @@ -727,7 +725,7 @@ def test_fetch_orders_okx(default_conf, mocker, limit_order): api_mock.fetch_closed_orders.reset_mock() # regular closed_orders endpoint only has history for 7 days. - exchange.fetch_orders("mocked", datetime.now(timezone.utc) - timedelta(days=6)) + exchange.fetch_orders("mocked", datetime.now(UTC) - timedelta(days=6)) assert api_mock.fetch_orders.call_count == 0 assert api_mock.fetch_open_orders.call_count == 1 assert api_mock.fetch_closed_orders.call_count == 1 diff --git a/tests/exchange_online/test_ccxt_compat.py b/tests/exchange_online/test_ccxt_compat.py index 85de9b5ec..aa9b51713 100644 --- a/tests/exchange_online/test_ccxt_compat.py +++ b/tests/exchange_online/test_ccxt_compat.py @@ -5,7 +5,7 @@ However, these tests should give a good idea to determine if a new exchange is suitable to run with freqtrade. """ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta import pytest @@ -248,7 +248,7 @@ class TestCCXTExchange: len(exch.klines(pair_tf)) > exch.ohlcv_candle_limit(timeframe, CandleType.SPOT) * 0.90 ) # Check if last-timeframe is within the last 2 intervals - now = datetime.now(timezone.utc) - timedelta(minutes=(timeframe_to_minutes(timeframe) * 2)) + now = datetime.now(UTC) - timedelta(minutes=(timeframe_to_minutes(timeframe) * 2)) assert exch.klines(pair_tf).iloc[-1]["date"] >= timeframe_to_prev_date(timeframe, now) def test_ccxt_fetch_ohlcv_startdate(self, exchange: EXCHANGE_FIXTURE_TYPE): @@ -266,7 +266,7 @@ class TestCCXTExchange: assert isinstance(ohlcv, dict) assert len(ohlcv[pair_tf]) == len(exch.klines(pair_tf)) # Check if last-timeframe is within the last 2 intervals - now = datetime.now(timezone.utc) - timedelta(minutes=(timeframe_to_minutes(timeframe) * 2)) + now = datetime.now(UTC) - timedelta(minutes=(timeframe_to_minutes(timeframe) * 2)) assert exch.klines(pair_tf).iloc[-1]["date"] >= timeframe_to_prev_date(timeframe, now) assert exch.klines(pair_tf)["date"].astype(int).iloc[0] // 1e6 == since_ms @@ -274,7 +274,7 @@ class TestCCXTExchange: self, exchange, exchangename, pair, timeframe, candle_type, factor=0.9 ): timeframe_ms = timeframe_to_msecs(timeframe) - now = timeframe_to_prev_date(timeframe, datetime.now(timezone.utc)) + now = timeframe_to_prev_date(timeframe, datetime.now(UTC)) for offset in (360, 120, 30, 10, 5, 2): since = now - timedelta(days=offset) since_ms = int(since.timestamp() * 1000) @@ -336,7 +336,7 @@ class TestCCXTExchange: exchange, exchangename = exchange_futures pair = EXCHANGES[exchangename].get("futures_pair", EXCHANGES[exchangename]["pair"]) - since = int((datetime.now(timezone.utc) - timedelta(days=5)).timestamp() * 1000) + since = int((datetime.now(UTC) - timedelta(days=5)).timestamp() * 1000) timeframe_ff = exchange._ft_has.get( "funding_fee_timeframe", exchange._ft_has["mark_ohlcv_timeframe"] ) @@ -371,7 +371,7 @@ class TestCCXTExchange: def test_ccxt_fetch_mark_price_history(self, exchange_futures: EXCHANGE_FIXTURE_TYPE): exchange, exchangename = exchange_futures pair = EXCHANGES[exchangename].get("futures_pair", EXCHANGES[exchangename]["pair"]) - since = int((datetime.now(timezone.utc) - timedelta(days=5)).timestamp() * 1000) + since = int((datetime.now(UTC) - timedelta(days=5)).timestamp() * 1000) pair_tf = (pair, "1h", CandleType.MARK) mark_ohlcv = exchange.refresh_latest_ohlcv([pair_tf], since_ms=since, drop_incomplete=False) @@ -389,7 +389,7 @@ class TestCCXTExchange: def test_ccxt__calculate_funding_fees(self, exchange_futures: EXCHANGE_FIXTURE_TYPE): exchange, exchangename = exchange_futures pair = EXCHANGES[exchangename].get("futures_pair", EXCHANGES[exchangename]["pair"]) - since = datetime.now(timezone.utc) - timedelta(days=5) + since = datetime.now(UTC) - timedelta(days=5) funding_fee = exchange._fetch_and_calculate_funding_fees( pair, 20, is_short=False, open_date=since @@ -403,7 +403,7 @@ class TestCCXTExchange: if not (lookback := EXCHANGES[exchangename].get("trades_lookback_hours")): pytest.skip("test_fetch_trades not enabled for this exchange") pair = EXCHANGES[exchangename]["pair"] - since = int((datetime.now(timezone.utc) - timedelta(hours=lookback)).timestamp() * 1000) + since = int((datetime.now(UTC) - timedelta(hours=lookback)).timestamp() * 1000) res = exch.loop.run_until_complete(exch._async_get_trade_history(pair, since, None, None)) assert len(res) == 2 res_pair, res_trades = res diff --git a/tests/freqai/test_freqai_backtesting.py b/tests/freqai/test_freqai_backtesting.py index e689d3927..c9be6ea05 100644 --- a/tests/freqai/test_freqai_backtesting.py +++ b/tests/freqai/test_freqai_backtesting.py @@ -1,5 +1,5 @@ from copy import deepcopy -from datetime import datetime, timezone +from datetime import UTC, datetime from pathlib import Path from unittest.mock import PropertyMock @@ -28,7 +28,7 @@ from tests.freqai.conftest import get_patched_freqai_strategy def test_freqai_backtest_start_backtest_list(freqai_conf, mocker, testdatadir, caplog): patch_exchange(mocker) - now = datetime.now(timezone.utc) + now = datetime.now(UTC) mocker.patch( "freqtrade.plugins.pairlistmanager.PairListManager.whitelist", PropertyMock(return_value=["HULUMULU/USDT", "XRP/USDT"]), @@ -73,7 +73,7 @@ def test_freqai_backtest_load_data( ): patch_exchange(mocker) - now = datetime.now(timezone.utc) + now = datetime.now(UTC) mocker.patch( "freqtrade.plugins.pairlistmanager.PairListManager.whitelist", PropertyMock(return_value=["HULUMULU/USDT", "XRP/USDT"]), @@ -98,7 +98,7 @@ def test_freqai_backtest_load_data( def test_freqai_backtest_live_models_model_not_found(freqai_conf, mocker, testdatadir, caplog): patch_exchange(mocker) - now = datetime.now(timezone.utc) + now = datetime.now(UTC) mocker.patch( "freqtrade.plugins.pairlistmanager.PairListManager.whitelist", PropertyMock(return_value=["HULUMULU/USDT", "XRP/USDT"]), @@ -163,6 +163,6 @@ def test_freqai_backtest_consistent_timerange(mocker, freqai_conf): backtesting = Backtesting(deepcopy(freqai_conf)) backtesting.start() - assert gbs.call_args[1]["min_date"] == datetime(2021, 11, 20, 0, 0, tzinfo=timezone.utc) - assert gbs.call_args[1]["max_date"] == datetime(2021, 11, 21, 0, 0, tzinfo=timezone.utc) + assert gbs.call_args[1]["min_date"] == datetime(2021, 11, 20, 0, 0, tzinfo=UTC) + assert gbs.call_args[1]["max_date"] == datetime(2021, 11, 21, 0, 0, tzinfo=UTC) Backtesting.cleanup() diff --git a/tests/freqai/test_freqai_datakitchen.py b/tests/freqai/test_freqai_datakitchen.py index 2e92ae447..d974ac801 100644 --- a/tests/freqai/test_freqai_datakitchen.py +++ b/tests/freqai/test_freqai_datakitchen.py @@ -1,5 +1,5 @@ import shutil -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import MagicMock @@ -67,9 +67,9 @@ def test_split_timerange( def test_check_if_model_expired(mocker, freqai_conf): dk = get_patched_data_kitchen(mocker, freqai_conf) - now = datetime.now(tz=timezone.utc).timestamp() + now = datetime.now(tz=UTC).timestamp() assert dk.check_if_model_expired(now) is False - now = (datetime.now(tz=timezone.utc) - timedelta(hours=2)).timestamp() + now = (datetime.now(tz=UTC) - timedelta(hours=2)).timestamp() assert dk.check_if_model_expired(now) is True shutil.rmtree(Path(dk.full_path)) diff --git a/tests/optimize/test_backtesting.py b/tests/optimize/test_backtesting.py index 9ea892ab8..292ee92aa 100644 --- a/tests/optimize/test_backtesting.py +++ b/tests/optimize/test_backtesting.py @@ -3,7 +3,7 @@ import random from collections import defaultdict from copy import deepcopy -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import ANY, MagicMock, PropertyMock @@ -687,7 +687,7 @@ def test_backtest__check_trade_exit(default_conf, mocker) -> None: backtesting._set_strategy(backtesting.strategylist[0]) pair = "UNITTEST/BTC" row = [ - pd.Timestamp(year=2020, month=1, day=1, hour=4, minute=55, tzinfo=timezone.utc), + pd.Timestamp(year=2020, month=1, day=1, hour=4, minute=55, tzinfo=UTC), 200, # Open 201.5, # High 195, # Low @@ -705,7 +705,7 @@ def test_backtest__check_trade_exit(default_conf, mocker) -> None: assert isinstance(trade, LocalTrade) row_sell = [ - pd.Timestamp(year=2020, month=1, day=1, hour=5, minute=0, tzinfo=timezone.utc), + pd.Timestamp(year=2020, month=1, day=1, hour=5, minute=0, tzinfo=UTC), 200, # Open 210.5, # High 195, # Low @@ -723,7 +723,7 @@ def test_backtest__check_trade_exit(default_conf, mocker) -> None: res = backtesting._check_trade_exit(trade, row_sell, row_sell[0].to_pydatetime()) assert res is not None assert res.exit_reason == ExitType.ROI.value - assert res.close_date_utc == datetime(2020, 1, 1, 5, 0, tzinfo=timezone.utc) + assert res.close_date_utc == datetime(2020, 1, 1, 5, 0, tzinfo=UTC) # Enter new trade trade = backtesting._enter_trade(pair, row=row, direction="long") @@ -928,7 +928,7 @@ def test_backtest_one_detail(default_conf_usdt, mocker, testdatadir, use_detail) assert len(t["orders"]) == 2 entryo = t["orders"][0] - entry_ts = datetime.fromtimestamp(entryo["order_filled_timestamp"] // 1000, tz=timezone.utc) + entry_ts = datetime.fromtimestamp(entryo["order_filled_timestamp"] // 1000, tz=UTC) if entry_ts > t["open_date"]: late_entry += 1 @@ -1039,7 +1039,7 @@ def test_backtest_one_detail_futures( assert len(t["orders"]) == 2 entryo = t["orders"][0] - entry_ts = datetime.fromtimestamp(entryo["order_filled_timestamp"] // 1000, tz=timezone.utc) + entry_ts = datetime.fromtimestamp(entryo["order_filled_timestamp"] // 1000, tz=UTC) if entry_ts > t["open_date"]: late_entry += 1 @@ -1121,7 +1121,7 @@ def test_backtest_one_detail_futures_funding_fees( return df def adjust_trade_position(trade, current_time, **kwargs): - if current_time > datetime(2021, 11, 18, 2, 0, 0, tzinfo=timezone.utc): + if current_time > datetime(2021, 11, 18, 2, 0, 0, tzinfo=UTC): return None return default_conf_usdt["stake_amount"] @@ -2564,7 +2564,7 @@ def test_backtest_start_multi_strat_caching( mocker.patch("freqtrade.optimize.backtesting.Backtesting.backtest", backtestmock) mocker.patch("freqtrade.optimize.backtesting.show_backtest_results", MagicMock()) - now = min_backtest_date = datetime.now(tz=timezone.utc) + now = min_backtest_date = datetime.now(tz=UTC) start_time = now - timedelta(**start_delta) + timedelta(hours=1) if cache == "none": min_backtest_date = now + timedelta(days=1) diff --git a/tests/persistence/test_key_value_store.py b/tests/persistence/test_key_value_store.py index e69ae0220..71411513d 100644 --- a/tests/persistence/test_key_value_store.py +++ b/tests/persistence/test_key_value_store.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta import pytest @@ -8,19 +8,19 @@ from tests.conftest import create_mock_trades_usdt @pytest.mark.usefixtures("init_persistence") def test_key_value_store(time_machine): - start = datetime(2023, 1, 1, 4, tzinfo=timezone.utc) + start = datetime(2023, 1, 1, 4, tzinfo=UTC) time_machine.move_to(start, tick=False) KeyValueStore.store_value("test", "testStringValue") - KeyValueStore.store_value("test_dt", datetime.now(timezone.utc)) + KeyValueStore.store_value("test_dt", datetime.now(UTC)) KeyValueStore.store_value("test_float", 22.51) KeyValueStore.store_value("test_int", 15) assert KeyValueStore.get_value("test") == "testStringValue" assert KeyValueStore.get_value("test") == "testStringValue" assert KeyValueStore.get_string_value("test") == "testStringValue" - assert KeyValueStore.get_value("test_dt") == datetime.now(timezone.utc) - assert KeyValueStore.get_datetime_value("test_dt") == datetime.now(timezone.utc) + assert KeyValueStore.get_value("test_dt") == datetime.now(UTC) + assert KeyValueStore.get_datetime_value("test_dt") == datetime.now(UTC) assert KeyValueStore.get_string_value("test_dt") is None assert KeyValueStore.get_float_value("test_dt") is None assert KeyValueStore.get_int_value("test_dt") is None @@ -31,11 +31,11 @@ def test_key_value_store(time_machine): assert KeyValueStore.get_datetime_value("test_int") is None time_machine.move_to(start + timedelta(days=20, hours=5), tick=False) - assert KeyValueStore.get_value("test_dt") != datetime.now(timezone.utc) + assert KeyValueStore.get_value("test_dt") != datetime.now(UTC) assert KeyValueStore.get_value("test_dt") == start # Test update works - KeyValueStore.store_value("test_dt", datetime.now(timezone.utc)) - assert KeyValueStore.get_value("test_dt") == datetime.now(timezone.utc) + KeyValueStore.store_value("test_dt", datetime.now(UTC)) + assert KeyValueStore.get_value("test_dt") == datetime.now(UTC) KeyValueStore.store_value("test_float", 23.51) assert KeyValueStore.get_value("test_float") == 23.51 @@ -52,7 +52,7 @@ def test_key_value_store(time_machine): @pytest.mark.usefixtures("init_persistence") def test_set_startup_time(fee, time_machine): create_mock_trades_usdt(fee) - start = datetime.now(timezone.utc) + start = datetime.now(UTC) time_machine.move_to(start, tick=False) set_startup_time() diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index d07bd7192..5ec1a05d2 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -1,5 +1,5 @@ # pragma pylint: disable=missing-docstring, C0103 -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from types import FunctionType import pytest @@ -265,7 +265,7 @@ def test_interest(fee, exchange, is_short, lev, minutes, rate, interest, trading stake_amount=20.0, amount=30.0, open_rate=2.0, - open_date=datetime.now(timezone.utc) - timedelta(minutes=minutes), + open_date=datetime.now(UTC) - timedelta(minutes=minutes), fee_open=fee.return_value, fee_close=fee.return_value, exchange=exchange, @@ -605,7 +605,7 @@ def test_calc_open_close_trade_price( stake_amount=60.0, open_rate=2.0, amount=30.0, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=10), + open_date=datetime.now(tz=UTC) - timedelta(minutes=10), interest_rate=0.0005, fee_open=fee.return_value, fee_close=fee.return_value, @@ -812,7 +812,7 @@ def test_calc_open_trade_value( stake_amount=60.0, amount=30.0, open_rate=2.0, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=10), + open_date=datetime.now(tz=UTC) - timedelta(minutes=10), fee_open=fee_rate, fee_close=fee_rate, exchange=exchange, @@ -863,7 +863,7 @@ def test_calc_close_trade_price( stake_amount=60.0, amount=30.0, open_rate=open_rate, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=10), + open_date=datetime.now(tz=UTC) - timedelta(minutes=10), fee_open=fee_rate, fee_close=fee_rate, exchange=exchange, @@ -1164,7 +1164,7 @@ def test_calc_profit( stake_amount=60.0, amount=30.0 * lev, open_rate=2.0, - open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=10), + open_date=datetime.now(tz=UTC) - timedelta(minutes=10), interest_rate=0.0005, exchange=exchange, is_short=is_short, @@ -1882,7 +1882,7 @@ def test_get_trades_proxy(fee, use_db, is_short): assert len(trades) == 2 assert not trades[0].is_open - opendate = datetime.now(tz=timezone.utc) - timedelta(minutes=15) + opendate = datetime.now(tz=UTC) - timedelta(minutes=15) assert len(Trade.get_trades_proxy(open_date=opendate)) == 3 @@ -1989,7 +1989,7 @@ def test_fully_canceled_entry_order_count(fee, is_short): @pytest.mark.usefixtures("init_persistence") def test_update_order_from_ccxt(caplog, time_machine): - start = datetime(2023, 1, 1, 4, tzinfo=timezone.utc) + start = datetime(2023, 1, 1, 4, tzinfo=UTC) time_machine.move_to(start, tick=False) # Most basic order return (only has orderid) @@ -2172,7 +2172,7 @@ def test_trade_truncates_string_fields(): stake_amount=20.0, amount=30.0, open_rate=2.0, - open_date=datetime.now(timezone.utc) - timedelta(minutes=20), + open_date=datetime.now(UTC) - timedelta(minutes=20), fee_open=0.001, fee_close=0.001, exchange="binance", diff --git a/tests/persistence/test_trade_fromjson.py b/tests/persistence/test_trade_fromjson.py index ff717751e..1154751bd 100644 --- a/tests/persistence/test_trade_fromjson.py +++ b/tests/persistence/test_trade_fromjson.py @@ -1,5 +1,5 @@ import json -from datetime import datetime, timezone +from datetime import UTC, datetime import pytest @@ -182,7 +182,7 @@ def test_trade_fromjson(): assert trade.id == 25 assert trade.pair == "ETH/USDT" - assert trade.open_date_utc == datetime(2022, 10, 18, 9, 12, 42, tzinfo=timezone.utc) + assert trade.open_date_utc == datetime(2022, 10, 18, 9, 12, 42, tzinfo=UTC) assert isinstance(trade.open_date, datetime) assert trade.exit_reason == "no longer good" assert trade.realized_profit == 2.76315361 @@ -192,7 +192,7 @@ def test_trade_fromjson(): assert len(trade.orders) == 5 last_o = trade.orders[-1] - assert last_o.order_filled_utc == datetime(2022, 10, 18, 9, 45, 22, tzinfo=timezone.utc) + assert last_o.order_filled_utc == datetime(2022, 10, 18, 9, 45, 22, tzinfo=UTC) assert isinstance(last_o.order_date, datetime) assert last_o.funding_fee == -0.055 diff --git a/tests/plugins/test_pairlocks.py b/tests/plugins/test_pairlocks.py index f227818b3..678355f1c 100644 --- a/tests/plugins/test_pairlocks.py +++ b/tests/plugins/test_pairlocks.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta import pytest @@ -62,7 +62,7 @@ def test_PairLocks(use_db): pair = "BTC/USDT" # Lock until 14:30 - lock_time = datetime(2020, 5, 1, 14, 30, 0, tzinfo=timezone.utc) + lock_time = datetime(2020, 5, 1, 14, 30, 0, tzinfo=UTC) PairLocks.lock_pair(pair, lock_time) assert not PairLocks.is_pair_locked(pair) @@ -121,15 +121,15 @@ def test_PairLocks_getlongestlock(use_db): assert PairLocks.is_pair_locked(pair) lock = PairLocks.get_pair_longest_lock(pair) - assert lock.lock_end_time.replace(tzinfo=timezone.utc) > dt_now() + timedelta(minutes=3) - assert lock.lock_end_time.replace(tzinfo=timezone.utc) < dt_now() + timedelta(minutes=14) + assert lock.lock_end_time.replace(tzinfo=UTC) > dt_now() + timedelta(minutes=3) + assert lock.lock_end_time.replace(tzinfo=UTC) < dt_now() + timedelta(minutes=14) PairLocks.lock_pair(pair, dt_now() + timedelta(minutes=15)) assert PairLocks.is_pair_locked(pair) lock = PairLocks.get_pair_longest_lock(pair) # Must be longer than above - assert lock.lock_end_time.replace(tzinfo=timezone.utc) > dt_now() + timedelta(minutes=14) + assert lock.lock_end_time.replace(tzinfo=UTC) > dt_now() + timedelta(minutes=14) PairLocks.reset_locks() PairLocks.use_db = True diff --git a/tests/plugins/test_percentchangepairlist.py b/tests/plugins/test_percentchangepairlist.py index 7c2f16d76..7bbf92e5d 100644 --- a/tests/plugins/test_percentchangepairlist.py +++ b/tests/plugins/test_percentchangepairlist.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import MagicMock import pandas as pd @@ -141,7 +141,7 @@ def test_gen_pairlist_with_valid_change_pair_list_config(mocker, rpl_config, tic "lookback_days": 4, } ] - start = datetime(2024, 8, 1, 0, 0, 0, 0, tzinfo=timezone.utc) + start = datetime(2024, 8, 1, 0, 0, 0, 0, tzinfo=UTC) time_machine.move_to(start, tick=False) mock_ohlcv_data = { @@ -224,7 +224,7 @@ def test_filter_pairlist_with_empty_ticker(mocker, rpl_config, tickers, time_mac "lookback_days": 4, } ] - start = datetime(2024, 8, 1, 0, 0, 0, 0, tzinfo=timezone.utc) + start = datetime(2024, 8, 1, 0, 0, 0, 0, tzinfo=UTC) time_machine.move_to(start, tick=False) mock_ohlcv_data = { @@ -291,7 +291,7 @@ def test_filter_pairlist_with_max_value_set(mocker, rpl_config, tickers, time_ma } ] - start = datetime(2024, 8, 1, 0, 0, 0, 0, tzinfo=timezone.utc) + start = datetime(2024, 8, 1, 0, 0, 0, 0, tzinfo=UTC) time_machine.move_to(start, tick=False) mock_ohlcv_data = { diff --git a/tests/plugins/test_protections.py b/tests/plugins/test_protections.py index ef2c7e1d3..164fdbb08 100644 --- a/tests/plugins/test_protections.py +++ b/tests/plugins/test_protections.py @@ -1,5 +1,5 @@ import random -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta import pytest @@ -31,8 +31,8 @@ def generate_mock_trade( stake_amount=0.01, fee_open=fee, fee_close=fee, - open_date=datetime.now(timezone.utc) - timedelta(minutes=min_ago_open or 200), - close_date=datetime.now(timezone.utc) - timedelta(minutes=min_ago_close or 30), + open_date=datetime.now(UTC) - timedelta(minutes=min_ago_open or 200), + close_date=datetime.now(UTC) - timedelta(minutes=min_ago_close or 30), open_rate=open_rate, is_open=is_open, amount=0.01 / open_rate, @@ -99,9 +99,9 @@ def test_protectionmanager(mocker, default_conf): for handler in freqtrade.protections._protection_handlers: assert handler.name in AVAILABLE_PROTECTIONS if not handler.has_global_stop: - assert handler.global_stop(datetime.now(timezone.utc), "*") is None + assert handler.global_stop(datetime.now(UTC), "*") is None if not handler.has_local_stop: - assert handler.stop_per_pair("XRP/BTC", datetime.now(timezone.utc), "*") is None + assert handler.stop_per_pair("XRP/BTC", datetime.now(UTC), "*") is None @pytest.mark.parametrize( @@ -499,7 +499,7 @@ def test_CooldownPeriod_unlock_at(mocker, default_conf, fee, caplog, time_machin assert not log_has_re(message, caplog) caplog.clear() - start_dt = datetime(2024, 5, 2, 0, 30, 0, tzinfo=timezone.utc) + start_dt = datetime(2024, 5, 2, 0, 30, 0, tzinfo=UTC) time_machine.move_to(start_dt, tick=False) generate_mock_trade( @@ -527,7 +527,7 @@ def test_CooldownPeriod_unlock_at(mocker, default_conf, fee, caplog, time_machin assert not PairLocks.is_global_lock() # Force rollover to the next day. - start_dt = datetime(2024, 5, 2, 22, 00, 0, tzinfo=timezone.utc) + start_dt = datetime(2024, 5, 2, 22, 00, 0, tzinfo=UTC) time_machine.move_to(start_dt, tick=False) generate_mock_trade( "ETH/BTC", diff --git a/tests/rpc/test_rpc.py b/tests/rpc/test_rpc.py index 54f427f66..3c8490d44 100644 --- a/tests/rpc/test_rpc.py +++ b/tests/rpc/test_rpc.py @@ -1,5 +1,5 @@ from copy import deepcopy -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from unittest.mock import ANY, MagicMock, PropertyMock import pytest @@ -347,7 +347,7 @@ def test__rpc_timeunit_profit( assert day["starting_balance"] in (pytest.approx(1062.37), pytest.approx(1066.46)) assert day["fiat_value"] in (0.0,) # ensure first day is current date - assert str(days["data"][0]["date"]) == str(datetime.now(timezone.utc).date()) + assert str(days["data"][0]["date"]) == str(datetime.now(UTC).date()) # Try invalid data with pytest.raises(RPCException, match=r".*must be an integer greater than 0*"): @@ -393,7 +393,7 @@ def test_rpc_delete_trade(mocker, default_conf, fee, markets, caplog, is_short): freqtradebot.strategy.order_types["stoploss_on_exchange"] = True create_mock_trades(fee, is_short) rpc = RPC(freqtradebot) - with pytest.raises(RPCException, match="invalid argument"): + with pytest.raises(RPCException, match="Trade with id '200' not found."): rpc._rpc_delete("200") trades = Trade.session.scalars(select(Trade)).all() @@ -1296,9 +1296,9 @@ def test_rpc_add_and_delete_lock(mocker, default_conf): rpc = RPC(freqtradebot) pair = "ETH/BTC" - rpc._rpc_add_lock(pair, datetime.now(timezone.utc) + timedelta(minutes=4), "", "*") - rpc._rpc_add_lock(pair, datetime.now(timezone.utc) + timedelta(minutes=5), "", "*") - rpc._rpc_add_lock(pair, datetime.now(timezone.utc) + timedelta(minutes=10), "", "*") + rpc._rpc_add_lock(pair, datetime.now(UTC) + timedelta(minutes=4), "", "*") + rpc._rpc_add_lock(pair, datetime.now(UTC) + timedelta(minutes=5), "", "*") + rpc._rpc_add_lock(pair, datetime.now(UTC) + timedelta(minutes=10), "", "*") locks = rpc._rpc_locks() assert locks["lock_count"] == 3 diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index d0b235638..573130a4a 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -5,7 +5,7 @@ Unit test file for rpc/api_server.py import asyncio import logging import time -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import ANY, MagicMock, PropertyMock @@ -637,12 +637,12 @@ def test_api_locks(botclient): [ { "pair": "ETH/BTC", - "until": f"{format_date(datetime.now(timezone.utc) + timedelta(minutes=4))}Z", + "until": f"{format_date(datetime.now(UTC) + timedelta(minutes=4))}Z", "reason": "randreason", }, { "pair": "XRP/BTC", - "until": f"{format_date(datetime.now(timezone.utc) + timedelta(minutes=20))}Z", + "until": f"{format_date(datetime.now(UTC) + timedelta(minutes=20))}Z", "reason": "deadbeef", }, ], @@ -711,7 +711,7 @@ def test_api_daily(botclient, mocker, ticker, fee, markets): assert len(response["data"]) == 7 assert response["stake_currency"] == "BTC" assert response["fiat_display_currency"] == "USD" - assert response["data"][0]["date"] == str(datetime.now(timezone.utc).date()) + assert response["data"][0]["date"] == str(datetime.now(UTC).date()) def test_api_weekly(botclient, mocker, ticker, fee, markets, time_machine): @@ -1048,7 +1048,7 @@ def test_api_delete_trade(botclient, mocker, fee, markets, is_short): rc = client_delete(client, f"{BASE_URI}/trades/1") assert_response(rc) - assert rc.json()["result_msg"] == "Deleted trade 1. Closed 1 open orders." + assert rc.json()["result_msg"] == "Deleted trade #1 for pair ETH/BTC. Closed 1 open orders." assert len(trades) - 1 == len(Trade.session.scalars(select(Trade)).all()) assert cancel_mock.call_count == 1 @@ -1061,7 +1061,7 @@ def test_api_delete_trade(botclient, mocker, fee, markets, is_short): assert len(trades) - 1 == len(Trade.session.scalars(select(Trade)).all()) rc = client_delete(client, f"{BASE_URI}/trades/5") assert_response(rc) - assert rc.json()["result_msg"] == "Deleted trade 5. Closed 1 open orders." + assert rc.json()["result_msg"] == "Deleted trade #5 for pair XRP/BTC. Closed 1 open orders." assert len(trades) - 2 == len(Trade.session.scalars(select(Trade)).all()) assert stoploss_mock.call_count == 1 @@ -1695,7 +1695,7 @@ def test_api_force_entry(botclient, mocker, fee, endpoint): exchange="binance", stake_amount=1, open_rate=0.245441, - open_date=datetime.now(timezone.utc), + open_date=datetime.now(UTC), is_open=False, is_short=False, fee_close=fee.return_value, diff --git a/tests/rpc/test_rpc_emc.py b/tests/rpc/test_rpc_emc.py index 678379e68..ef4bbad5e 100644 --- a/tests/rpc/test_rpc_emc.py +++ b/tests/rpc/test_rpc_emc.py @@ -4,7 +4,7 @@ Unit test file for rpc/external_message_consumer.py import asyncio import logging -from datetime import datetime, timezone +from datetime import UTC, datetime from unittest.mock import MagicMock import pytest @@ -99,7 +99,7 @@ def test_emc_handle_producer_message(patched_emc, caplog, ohlcv_history): "data": { "key": ("BTC/USDT", "5m", "spot"), "df": ohlcv_history, - "la": datetime.now(timezone.utc), + "la": datetime.now(UTC), }, } patched_emc.handle_producer_message(test_producer, df_message) @@ -123,7 +123,7 @@ def test_emc_handle_producer_message(patched_emc, caplog, ohlcv_history): malformed_message = { "type": "analyzed_df", - "data": {"key": "BTC/USDT", "df": ohlcv_history, "la": datetime.now(timezone.utc)}, + "data": {"key": "BTC/USDT", "df": ohlcv_history, "la": datetime.now(UTC)}, } patched_emc.handle_producer_message(test_producer, malformed_message) @@ -137,7 +137,7 @@ def test_emc_handle_producer_message(patched_emc, caplog, ohlcv_history): "data": { "key": ("BTC/USDT", "5m", "spot"), "df": ohlcv_history.loc[ohlcv_history["open"] < 0], - "la": datetime.now(timezone.utc), + "la": datetime.now(UTC), }, } patched_emc.handle_producer_message(test_producer, malformed_message) diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py index 4d489c415..460352fff 100644 --- a/tests/rpc/test_rpc_telegram.py +++ b/tests/rpc/test_rpc_telegram.py @@ -78,18 +78,18 @@ def update(): def patch_eventloop_threading(telegrambot): - is_init = False + init_event = threading.Event() def thread_fuck(): - nonlocal is_init telegrambot._loop = asyncio.new_event_loop() - is_init = True + init_event.set() telegrambot._loop.run_forever() x = threading.Thread(target=thread_fuck, daemon=True) x.start() - while not is_init: - pass + # Wait for thread to be properly initialized with timeout + if not init_event.wait(timeout=5.0): + raise RuntimeError("Failed to initialize event loop thread") class DummyCls(Telegram): @@ -2001,7 +2001,7 @@ async def test_telegram_delete_trade(mocker, update, default_conf, fee, is_short context.args = [1] await telegram._delete_trade(update=update, context=context) assert msg_mock.call_count == 1 - assert "Deleted trade 1." in msg_mock.call_args_list[0][0][0] + assert "Deleted trade #1" in msg_mock.call_args_list[0][0][0] assert "Please make sure to take care of this asset" in msg_mock.call_args_list[0][0][0] diff --git a/tests/strategy/test_default_strategy.py b/tests/strategy/test_default_strategy.py index 494e374c4..27153c4de 100644 --- a/tests/strategy/test_default_strategy.py +++ b/tests/strategy/test_default_strategy.py @@ -1,4 +1,4 @@ -from datetime import datetime, timezone +from datetime import UTC, datetime import pytest from pandas import DataFrame @@ -47,7 +47,7 @@ def test_strategy_test_v3(dataframe_1m, fee, is_short, side): amount=0.1, rate=20000, time_in_force="gtc", - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), side=side, entry_tag=None, ) @@ -63,7 +63,7 @@ def test_strategy_test_v3(dataframe_1m, fee, is_short, side): time_in_force="gtc", exit_reason="roi", sell_reason="roi", - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), side=side, ) is True diff --git a/tests/strategy/test_interface.py b/tests/strategy/test_interface.py index f9ae4abdc..f80efb00f 100644 --- a/tests/strategy/test_interface.py +++ b/tests/strategy/test_interface.py @@ -1,7 +1,7 @@ # pragma pylint: disable=missing-docstring, C0103 import logging import math -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta from pathlib import Path from unittest.mock import MagicMock @@ -208,7 +208,7 @@ def test_ignore_expired_candle(default_conf): strategy = StrategyResolver.load_strategy(default_conf) strategy.ignore_buying_expired_candle_after = 60 - latest_date = datetime(2020, 12, 30, 7, 0, 0, tzinfo=timezone.utc) + latest_date = datetime(2020, 12, 30, 7, 0, 0, tzinfo=UTC) # Add 1 candle length as the "latest date" defines candle open. current_time = latest_date + timedelta(seconds=80 + 300) @@ -765,7 +765,7 @@ def test_leverage_callback(default_conf, side) -> None: assert ( strategy.leverage( pair="XRP/USDT", - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), current_rate=2.2, proposed_leverage=1.0, max_leverage=5.0, @@ -780,7 +780,7 @@ def test_leverage_callback(default_conf, side) -> None: assert ( strategy.leverage( pair="XRP/USDT", - current_time=datetime.now(timezone.utc), + current_time=datetime.now(UTC), current_rate=2.2, proposed_leverage=1.0, max_leverage=5.0, @@ -897,7 +897,7 @@ def test_is_pair_locked(default_conf): pair = "BTC/USDT" # Lock until 14:30 - lock_time = datetime(2020, 5, 1, 14, 30, 0, tzinfo=timezone.utc) + lock_time = datetime(2020, 5, 1, 14, 30, 0, tzinfo=UTC) # Subtract 2 seconds, as locking rounds up to the next candle. strategy.lock_pair(pair, lock_time - timedelta(seconds=2)) diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 2ae72692b..eb5e67823 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -9,8 +9,12 @@ import pytest from jsonschema import ValidationError from freqtrade.commands import Arguments -from freqtrade.configuration import Configuration, validate_config_consistency -from freqtrade.configuration.config_secrets import sanitize_config +from freqtrade.configuration import ( + Configuration, + remove_exchange_credentials, + sanitize_config, + validate_config_consistency, +) from freqtrade.configuration.config_validation import validate_config_schema from freqtrade.configuration.deprecated_settings import ( check_conflicting_settings, @@ -1587,3 +1591,17 @@ def test_sanitize_config(default_conf_usdt): res = sanitize_config(default_conf_usdt, show_sensitive=True) assert res["exchange"]["key"] == default_conf_usdt["exchange"]["key"] assert res["exchange"]["secret"] == default_conf_usdt["exchange"]["secret"] + + +def test_remove_exchange_credentials(default_conf) -> None: + conf = deepcopy(default_conf) + remove_exchange_credentials(conf["exchange"], False) + + assert conf["exchange"]["key"] != "" + assert conf["exchange"]["secret"] != "" + + remove_exchange_credentials(conf["exchange"], True) + assert conf["exchange"]["key"] == "" + assert conf["exchange"]["secret"] == "" + assert conf["exchange"].get("password", "") == "" + assert conf["exchange"].get("uid", "") == "" diff --git a/tests/test_timerange.py b/tests/test_timerange.py index c7471e263..c0f44f2b7 100644 --- a/tests/test_timerange.py +++ b/tests/test_timerange.py @@ -1,5 +1,5 @@ # pragma pylint: disable=missing-docstring, C0103 -from datetime import datetime, timezone +from datetime import UTC, datetime import pytest @@ -29,8 +29,8 @@ def test_parse_timerange_incorrect(): assert TimeRange("date", "date", 1231006505, 1233360000) == timerange assert isinstance(timerange.startdt, datetime) assert isinstance(timerange.stopdt, datetime) - assert timerange.startdt == datetime.fromtimestamp(1231006505, tz=timezone.utc) - assert timerange.stopdt == datetime.fromtimestamp(1233360000, tz=timezone.utc) + assert timerange.startdt == datetime.fromtimestamp(1231006505, tz=UTC) + assert timerange.stopdt == datetime.fromtimestamp(1233360000, tz=UTC) assert timerange.timerange_str == "20090103-20090131" timerange = TimeRange.parse_timerange("1231006505000-1233360000000") @@ -68,7 +68,7 @@ def test_subtract_start(): def test_adjust_start_if_necessary(): - min_date = datetime(2017, 11, 14, 21, 15, 00, tzinfo=timezone.utc) + min_date = datetime(2017, 11, 14, 21, 15, 00, tzinfo=UTC) x = TimeRange("date", "date", 1510694100, 1510780500) # Adjust by 20 candles - min_date == startts diff --git a/tests/util/test_datetime_helpers.py b/tests/util/test_datetime_helpers.py index 258c5a0b9..82dd6dbf6 100644 --- a/tests/util/test_datetime_helpers.py +++ b/tests/util/test_datetime_helpers.py @@ -1,4 +1,4 @@ -from datetime import datetime, timedelta, timezone +from datetime import UTC, datetime, timedelta import pytest import time_machine @@ -21,14 +21,14 @@ from freqtrade.util.datetime_helpers import dt_humanize_delta def test_dt_now(): with time_machine.travel("2021-09-01 05:01:00 +00:00", tick=False) as t: - now = datetime.now(timezone.utc) + now = datetime.now(UTC) assert dt_now() == now assert dt_ts() == int(now.timestamp() * 1000) assert dt_ts(now) == int(now.timestamp() * 1000) t.shift(timedelta(hours=5)) assert dt_now() >= now - assert dt_now() == datetime.now(timezone.utc) + assert dt_now() == datetime.now(UTC) assert dt_ts() == int(dt_now().timestamp() * 1000) # Test with different time than now assert dt_ts(now) == int(now.timestamp() * 1000) @@ -37,42 +37,38 @@ def test_dt_now(): def test_dt_ts_def(): assert dt_ts_def(None) == 0 assert dt_ts_def(None, 123) == 123 - assert dt_ts_def(datetime(2023, 5, 5, tzinfo=timezone.utc)) == 1683244800000 - assert dt_ts_def(datetime(2023, 5, 5, tzinfo=timezone.utc), 123) == 1683244800000 + assert dt_ts_def(datetime(2023, 5, 5, tzinfo=UTC)) == 1683244800000 + assert dt_ts_def(datetime(2023, 5, 5, tzinfo=UTC), 123) == 1683244800000 def test_dt_ts_none(): assert dt_ts_none(None) is None assert dt_ts_none(None) is None - assert dt_ts_none(datetime(2023, 5, 5, tzinfo=timezone.utc)) == 1683244800000 - assert dt_ts_none(datetime(2023, 5, 5, tzinfo=timezone.utc)) == 1683244800000 + assert dt_ts_none(datetime(2023, 5, 5, tzinfo=UTC)) == 1683244800000 + assert dt_ts_none(datetime(2023, 5, 5, tzinfo=UTC)) == 1683244800000 def test_dt_utc(): - assert dt_utc(2023, 5, 5) == datetime(2023, 5, 5, tzinfo=timezone.utc) - assert dt_utc(2023, 5, 5, 0, 0, 0, 555500) == datetime( - 2023, 5, 5, 0, 0, 0, 555500, tzinfo=timezone.utc - ) + assert dt_utc(2023, 5, 5) == datetime(2023, 5, 5, tzinfo=UTC) + assert dt_utc(2023, 5, 5, 0, 0, 0, 555500) == datetime(2023, 5, 5, 0, 0, 0, 555500, tzinfo=UTC) @pytest.mark.parametrize("as_ms", [True, False]) def test_dt_from_ts(as_ms): multi = 1000 if as_ms else 1 - assert dt_from_ts(1683244800.0 * multi) == datetime(2023, 5, 5, tzinfo=timezone.utc) - assert dt_from_ts(1683244800.5555 * multi) == datetime( - 2023, 5, 5, 0, 0, 0, 555500, tzinfo=timezone.utc - ) + assert dt_from_ts(1683244800.0 * multi) == datetime(2023, 5, 5, tzinfo=UTC) + assert dt_from_ts(1683244800.5555 * multi) == datetime(2023, 5, 5, 0, 0, 0, 555500, tzinfo=UTC) # As int - assert dt_from_ts(1683244800 * multi) == datetime(2023, 5, 5, tzinfo=timezone.utc) + assert dt_from_ts(1683244800 * multi) == datetime(2023, 5, 5, tzinfo=UTC) # As milliseconds - assert dt_from_ts(1683244800 * multi) == datetime(2023, 5, 5, tzinfo=timezone.utc) - assert dt_from_ts(1683242400 * multi) == datetime(2023, 5, 4, 23, 20, tzinfo=timezone.utc) + assert dt_from_ts(1683244800 * multi) == datetime(2023, 5, 5, tzinfo=UTC) + assert dt_from_ts(1683242400 * multi) == datetime(2023, 5, 4, 23, 20, tzinfo=UTC) def test_dt_floor_day(): - now = datetime(2023, 9, 1, 5, 2, 3, 455555, tzinfo=timezone.utc) + now = datetime(2023, 9, 1, 5, 2, 3, 455555, tzinfo=UTC) - assert dt_floor_day(now) == datetime(2023, 9, 1, tzinfo=timezone.utc) + assert dt_floor_day(now) == datetime(2023, 9, 1, tzinfo=UTC) def test_shorten_date() -> None: @@ -95,21 +91,21 @@ def test_format_ms_time() -> None: date_in_epoch_ms = 1523383321132 date = format_ms_time(date_in_epoch_ms) assert isinstance(date, str) - res = datetime(2018, 4, 10, 18, 2, 1, tzinfo=timezone.utc) + res = datetime(2018, 4, 10, 18, 2, 1, tzinfo=UTC) assert date == res.strftime("%Y-%m-%dT%H:%M:%S") assert date == "2018-04-10T18:02:01" - res = datetime(2017, 12, 13, 8, 2, 1, tzinfo=timezone.utc) + res = datetime(2017, 12, 13, 8, 2, 1, tzinfo=UTC) # Date 2017-12-13 08:02:01 date_in_epoch_ms = 1513152121000 assert format_ms_time(date_in_epoch_ms) == res.strftime("%Y-%m-%dT%H:%M:%S") def test_format_date() -> None: - date = datetime(2023, 9, 1, 5, 2, 3, 455555, tzinfo=timezone.utc) + date = datetime(2023, 9, 1, 5, 2, 3, 455555, tzinfo=UTC) assert format_date(date) == "2023-09-01 05:02:03" assert format_date(None) == "" - date = datetime(2021, 9, 30, 22, 59, 3, 455555, tzinfo=timezone.utc) + date = datetime(2021, 9, 30, 22, 59, 3, 455555, tzinfo=UTC) assert format_date(date) == "2021-09-30 22:59:03" assert format_date(None) == "" @@ -119,10 +115,10 @@ def test_format_ms_time_detailed() -> None: date_in_epoch_ms = 1523383321132 date = format_ms_time_det(date_in_epoch_ms) assert isinstance(date, str) - res = datetime(2018, 4, 10, 18, 2, 1, 132145, tzinfo=timezone.utc) + res = datetime(2018, 4, 10, 18, 2, 1, 132145, tzinfo=UTC) assert date == res.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3] assert date == "2018-04-10T18:02:01.132" - res = datetime(2017, 12, 13, 8, 2, 1, 512321, tzinfo=timezone.utc) + res = datetime(2017, 12, 13, 8, 2, 1, 512321, tzinfo=UTC) # Date 2017-12-13 08:02:01 date_in_epoch_ms = 1513152121512 assert format_ms_time_det(date_in_epoch_ms) == res.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-3]