diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 8637c0d68..0f64eaf5f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -12,7 +12,7 @@ Have you searched for similar issues before posting it? If you have discovered a bug in the bot, please [search the issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue). If it hasn't been reported, please create a new issue. -Please do not use bug reports to request new features. +Please do not use the bug report template to request new features. --> ## Describe your environment diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md index 9283f0e4f..52f799ed7 100644 --- a/.github/ISSUE_TEMPLATE/question.md +++ b/.github/ISSUE_TEMPLATE/question.md @@ -8,9 +8,12 @@ assignees: '' --- ## Describe your environment @@ -22,4 +25,4 @@ Please do not use the question template to report bugs or to request new feature ## Your question -*Ask the question you have not been able to find an answer in the [Documentation](https://www.freqtrade.io/en/latest/)* +*Ask the question you have not been able to find an answer in the [Documentation](https://www.freqtrade.io/)* diff --git a/.github/workflows/binance-lev-tier-update.yml b/.github/workflows/binance-lev-tier-update.yml index ba1999fd6..278d85413 100644 --- a/.github/workflows/binance-lev-tier-update.yml +++ b/.github/workflows/binance-lev-tier-update.yml @@ -34,7 +34,7 @@ jobs: run: python build_helpers/binance_update_lev_tiers.py - - uses: peter-evans/create-pull-request@v7 + - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: token: ${{ secrets.REPO_SCOPED_TOKEN }} add-paths: freqtrade/exchange/binance_leverage_tiers.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e45f85481..fabcb90ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,8 +38,9 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1 with: + activate-environment: true enable-cache: true python-version: ${{ matrix.python-version }} cache-dependency-glob: "requirements**.txt" @@ -144,7 +145,7 @@ jobs: mypy freqtrade scripts tests - name: Discord notification - uses: rjstone/discord-webhook-notify@v1 + uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: error @@ -170,8 +171,9 @@ jobs: check-latest: true - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1 with: + activate-environment: true enable-cache: true python-version: ${{ matrix.python-version }} cache-dependency-glob: "requirements**.txt" @@ -270,7 +272,7 @@ jobs: mypy freqtrade scripts - name: Discord notification - uses: rjstone/discord-webhook-notify@v1 + uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: info @@ -296,8 +298,9 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1 with: + activate-environment: true enable-cache: true python-version: ${{ matrix.python-version }} cache-dependency-glob: "requirements**.txt" @@ -363,7 +366,7 @@ jobs: shell: powershell - name: Discord notification - uses: rjstone/discord-webhook-notify@v1 + uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: error @@ -397,7 +400,7 @@ jobs: - uses: actions/setup-python@v5 with: python-version: "3.12" - - uses: pre-commit/action@v3.0.1 + - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1 docs-check: runs-on: ubuntu-22.04 @@ -421,7 +424,7 @@ jobs: mkdocs build - name: Discord notification - uses: rjstone/discord-webhook-notify@v1 + uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1 if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: error @@ -431,7 +434,7 @@ jobs: build-linux-online: # Run pytest with "live" checks - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 with: @@ -443,8 +446,9 @@ jobs: python-version: "3.12" - name: Install uv - uses: astral-sh/setup-uv@v5 + uses: astral-sh/setup-uv@6b9c6063abd6010835644d4c2e1bef4cf5cd0fca # v6.0.1 with: + activate-environment: true enable-cache: true python-version: "3.12" cache-dependency-glob: "requirements**.txt" @@ -501,14 +505,14 @@ jobs: - name: Check user permission id: check - uses: scherermichael-oss/action-has-permission@1.0.6 + uses: scherermichael-oss/action-has-permission@136e061bfe093832d87f090dd768e14e27a740d3 # 1.0.6 with: required-permission: write env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Discord notification - uses: rjstone/discord-webhook-notify@v1 + uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1 if: always() && steps.check.outputs.has-permission && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) with: severity: info @@ -580,7 +584,7 @@ jobs: merge-multiple: true - name: Publish to PyPI (Test) - uses: pypa/gh-action-pypi-publish@v1.12.4 + uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4 with: repository-url: https://test.pypi.org/legacy/ @@ -609,7 +613,7 @@ jobs: merge-multiple: true - name: Publish to PyPI - uses: pypa/gh-action-pypi-publish@v1.12.4 + uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4 deploy-docker: @@ -650,11 +654,11 @@ jobs: docker version -f '{{.Server.Experimental}}' - name: Set up QEMU - uses: docker/setup-qemu-action@v3 + uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 #v3.10.0 - name: Available platforms run: echo ${PLATFORMS} @@ -703,7 +707,7 @@ jobs: build_helpers/publish_docker_arm64.sh - name: Discord notification - uses: rjstone/discord-webhook-notify@v1 + uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.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/devcontainer-build.yml b/.github/workflows/devcontainer-build.yml index 12b55c6ed..9e49ffed3 100644 --- a/.github/workflows/devcontainer-build.yml +++ b/.github/workflows/devcontainer-build.yml @@ -28,13 +28,13 @@ jobs: with: persist-credentials: false - name: Login to GitHub Container Registry - uses: docker/login-action@v3 + uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Pre-build dev container image - uses: devcontainers/ci@v0.3 + uses: devcontainers/ci@8bf61b26e9c3a98f69cb6ce2f88d24ff59b785c6 # v0.3.19 with: subFolder: .github imageName: ghcr.io/${{ github.repository }}-devcontainer diff --git a/.github/workflows/docker-update-readme.yml b/.github/workflows/docker-update-readme.yml index 7f00c01c0..b34f8c38d 100644 --- a/.github/workflows/docker-update-readme.yml +++ b/.github/workflows/docker-update-readme.yml @@ -16,7 +16,7 @@ jobs: persist-credentials: false - name: Docker Hub Description - uses: peter-evans/dockerhub-description@v4 + uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} diff --git a/.github/workflows/pre-commit-update.yml b/.github/workflows/pre-commit-update.yml index 5996dddf9..8fb8684a6 100644 --- a/.github/workflows/pre-commit-update.yml +++ b/.github/workflows/pre-commit-update.yml @@ -28,7 +28,7 @@ jobs: - name: Run auto-update run: pre-commit autoupdate - - uses: peter-evans/create-pull-request@v7 + - uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8 with: token: ${{ secrets.REPO_SCOPED_TOKEN }} add-paths: .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5d36ce602..abd4ba424 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,8 +1,20 @@ # See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: + + - repo: local + # Keep json schema in sync with the config schema + # This will write the files - and fail pre-commit if a file has been changed. + hooks: + - id: Extract config json schema + name: extract-config-json-schema + entry: "python build_helpers/extract_config_json_schema.py" + language: python + pass_filenames: false + additional_dependencies: ["python-rapidjson", "jsonschema"] + - repo: https://github.com/pycqa/flake8 - rev: "7.1.2" + rev: "7.2.0" hooks: - id: flake8 additional_dependencies: [Flake8-pyproject] @@ -16,10 +28,10 @@ repos: additional_dependencies: - types-cachetools==5.5.0.20240820 - types-filelock==3.2.7 - - types-requests==2.32.0.20250306 + - types-requests==2.32.0.20250328 - types-tabulate==0.9.0.20241207 - types-python-dateutil==2.9.0.20241206 - - SQLAlchemy==2.0.39 + - SQLAlchemy==2.0.40 # stages: [push] - repo: https://github.com/pycqa/isort @@ -31,7 +43,7 @@ repos: - repo: https://github.com/charliermarsh/ruff-pre-commit # Ruff version. - rev: 'v0.11.2' + rev: 'v0.11.8' hooks: - id: ruff - id: ruff-format @@ -70,6 +82,6 @@ repos: # Ensure github actions remain safe - repo: https://github.com/woodruffw/zizmor-pre-commit - rev: v1.5.2 + rev: v1.6.0 hooks: - id: zizmor diff --git a/Dockerfile b/Dockerfile index 15636ed71..de20ef376 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.12.9-slim-bookworm as base +FROM python:3.12.10-slim-bookworm as base # Setup env ENV LANG C.UTF-8 diff --git a/build_helpers/binance_update_lev_tiers.py b/build_helpers/binance_update_lev_tiers.py index 6d5fa5c1d..64772abf7 100644 --- a/build_helpers/binance_update_lev_tiers.py +++ b/build_helpers/binance_update_lev_tiers.py @@ -12,7 +12,12 @@ secret = os.environ.get("FREQTRADE__EXCHANGE__SECRET") proxy = os.environ.get("CI_WEB_PROXY") exchange = ccxt.binance( - {"apiKey": key, "secret": secret, "httpsProxy": proxy, "options": {"defaultType": "swap"}} + { + "apiKey": key, + "secret": secret, + "httpsProxy": proxy, + "options": {"defaultType": "swap"}, + } ) _ = exchange.load_markets() diff --git a/build_helpers/create_command_partials.py b/build_helpers/create_command_partials.py index 7127950ed..97bec3a7d 100644 --- a/build_helpers/create_command_partials.py +++ b/build_helpers/create_command_partials.py @@ -1,4 +1,4 @@ -import subprocess +import subprocess # noqa: S404, RUF100 from pathlib import Path diff --git a/build_helpers/extract_config_json_schema.py b/build_helpers/extract_config_json_schema.py index 44ecc0f91..15bfd7720 100644 --- a/build_helpers/extract_config_json_schema.py +++ b/build_helpers/extract_config_json_schema.py @@ -4,10 +4,23 @@ from pathlib import Path import rapidjson -from freqtrade.configuration.config_schema import CONF_SCHEMA - def extract_config_json_schema(): + try: + # Try to import from the installed package + from freqtrade.config_schema import CONF_SCHEMA + except ImportError: + # If freqtrade is not installed, add the parent directory to sys.path + # to import directly from the source + import sys + + script_dir = Path(__file__).parent + freqtrade_dir = script_dir.parent + sys.path.insert(0, str(freqtrade_dir)) + + # Now try to import from the source + from freqtrade.config_schema import CONF_SCHEMA + schema_filename = Path(__file__).parent / "schema.json" with schema_filename.open("w") as f: rapidjson.dump(CONF_SCHEMA, f, indent=2) diff --git a/build_helpers/pyarrow-19.0.1-cp311-cp311-linux_armv7l.whl b/build_helpers/pyarrow-20.0.0-cp311-cp311-linux_armv7l.whl similarity index 63% rename from build_helpers/pyarrow-19.0.1-cp311-cp311-linux_armv7l.whl rename to build_helpers/pyarrow-20.0.0-cp311-cp311-linux_armv7l.whl index 0a730939a..eadefdafb 100644 Binary files a/build_helpers/pyarrow-19.0.1-cp311-cp311-linux_armv7l.whl and b/build_helpers/pyarrow-20.0.0-cp311-cp311-linux_armv7l.whl differ diff --git a/build_helpers/schema.json b/build_helpers/schema.json index c5bbeb4ef..0aa2ea416 100644 --- a/build_helpers/schema.json +++ b/build_helpers/schema.json @@ -1032,6 +1032,7 @@ "type": "string", "enum": [ "running", + "paused", "stopped" ] }, @@ -1515,6 +1516,14 @@ "type": "boolean", "default": false }, + "indicator_periods_candles": { + "description": "Time periods to calculate indicators for. The indicators are added to the base indicator dataset.", + "type": "array", + "items": { + "type": "number", + "minimum": 1 + } + }, "use_SVM_to_remove_outliers": { "description": "Use SVM to remove outliers from the features.", "type": "boolean", diff --git a/docker/Dockerfile.armhf b/docker/Dockerfile.armhf index 94049101b..9ae810a26 100644 --- a/docker/Dockerfile.armhf +++ b/docker/Dockerfile.armhf @@ -1,4 +1,4 @@ -FROM python:3.11.11-slim-bookworm as base +FROM python:3.11.12-slim-bookworm as base # Setup env ENV LANG C.UTF-8 diff --git a/docs/advanced-setup.md b/docs/advanced-setup.md index b7ab86eac..f20e91cb0 100644 --- a/docs/advanced-setup.md +++ b/docs/advanced-setup.md @@ -177,7 +177,7 @@ sudo loginctl enable-linger "$USER" If you run the bot as a service, you can use systemd service manager as a software watchdog monitoring freqtrade bot state and restarting it in the case of failures. If the `internals.sd_notify` parameter is set to true in the configuration or the `--sd-notify` command line option is used, the bot will send keep-alive ping messages to systemd -using the sd_notify (systemd notifications) protocol and will also tell systemd its current state (Running or Stopped) +using the sd_notify (systemd notifications) protocol and will also tell systemd its current state (Running, Paused or Stopped) when it changes. The `freqtrade.service.watchdog` file contains an example of the service unit configuration file which uses systemd @@ -189,13 +189,15 @@ as the watchdog. ## Advanced Logging Freqtrade uses the default logging module provided by python. -Python allows for extensive [logging configuration](https://docs.python.org/3/library/logging.config.html#logging.config.dictConfig) in this regards - way more than what can be covered here. +Python allows for extensive [logging configuration](https://docs.python.org/3/library/logging.config.html#logging.config.dictConfig) in this regard - way more than what can be covered here. -Default logging (Colored terminal output) is setup by default if no `log_config` is provided. +Default logging format (coloured terminal output) is set up by default if no `log_config` is provided in your freqtrade configuration. Using `--logfile logfile.log` will enable the RotatingFileHandler. -If you're not content with the log format - or with the default settings provided for the RotatingFileHandler, you can customize logging to your liking. -The default configuration looks roughly like the below - with the file handler being provided - but not enabled. +If you're not content with the log format, or with the default settings provided for the RotatingFileHandler, you can customize logging to your liking by adding the `log_config` configuration to your freqtrade configuration file(s). + +The default configuration looks roughly like the below, with the file handler being provided but not enabled as the `filename` is commented out. +Uncomment this line and supply a valid path/filename to enable it. ``` json hl_lines="5-7 13-16 27" { @@ -237,12 +239,12 @@ The default configuration looks roughly like the below - with the file handler b Highlighted lines in the above code-block define the Rich handler and belong together. The formatter "standard" and "file" will belong to the FileHandler. -Each handler must use one of the defined formatters (by name) - and it's class must be available and a valid logging class. -To actually use a handler - it must be in the "handlers" section inside the "root" segment. +Each handler must use one of the defined formatters (by name), its class must be available, and must be a valid logging class. +To actually use a handler, it must be in the "handlers" section inside the "root" segment. If this section is left out, freqtrade will provide no output (in the non-configured handler, anyway). !!! Tip "Explicit log configuration" - We recommend to extract the logging configuration from your main configuration, and provide it to your bot via [multiple configuration files](configuration.md#multiple-configuration-files) functionality. This will avoid unnecessary code duplication. + We recommend to extract the logging configuration from your main freqtrade configuration file, and provide it to your bot via [multiple configuration files](configuration.md#multiple-configuration-files) functionality. This will avoid unnecessary code duplication. --- diff --git a/docs/assets/freqUI-chart-annotations-dark.png b/docs/assets/freqUI-chart-annotations-dark.png new file mode 100644 index 000000000..9f7de269b Binary files /dev/null and b/docs/assets/freqUI-chart-annotations-dark.png differ diff --git a/docs/assets/freqUI-chart-annotations-light.png b/docs/assets/freqUI-chart-annotations-light.png new file mode 100644 index 000000000..ccc219647 Binary files /dev/null and b/docs/assets/freqUI-chart-annotations-light.png differ diff --git a/docs/commands/backtesting-analysis.md b/docs/commands/backtesting-analysis.md index 50707d03a..6aa18d670 100644 --- a/docs/commands/backtesting-analysis.md +++ b/docs/commands/backtesting-analysis.md @@ -59,7 +59,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/backtesting-show.md b/docs/commands/backtesting-show.md index a1b146a82..6a4565616 100644 --- a/docs/commands/backtesting-show.md +++ b/docs/commands/backtesting-show.md @@ -30,7 +30,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/backtesting.md b/docs/commands/backtesting.md index 395ab4b00..c54d9e40c 100644 --- a/docs/commands/backtesting.md +++ b/docs/commands/backtesting.md @@ -89,7 +89,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/convert-data.md b/docs/commands/convert-data.md index 3bd0fa45b..32996eba3 100644 --- a/docs/commands/convert-data.md +++ b/docs/commands/convert-data.md @@ -45,7 +45,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/convert-trade-data.md b/docs/commands/convert-trade-data.md index 25843a8da..cf53e5329 100644 --- a/docs/commands/convert-trade-data.md +++ b/docs/commands/convert-trade-data.md @@ -34,7 +34,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/download-data.md b/docs/commands/download-data.md index e70ae9a23..ce80e704e 100644 --- a/docs/commands/download-data.md +++ b/docs/commands/download-data.md @@ -63,7 +63,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/edge.md b/docs/commands/edge.md index 06f883230..c69a63583 100644 --- a/docs/commands/edge.md +++ b/docs/commands/edge.md @@ -50,7 +50,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/hyperopt-list.md b/docs/commands/hyperopt-list.md index 5e8398f51..8457aba27 100644 --- a/docs/commands/hyperopt-list.md +++ b/docs/commands/hyperopt-list.md @@ -55,7 +55,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/hyperopt-show.md b/docs/commands/hyperopt-show.md index 14d6516e9..5cd114c17 100644 --- a/docs/commands/hyperopt-show.md +++ b/docs/commands/hyperopt-show.md @@ -37,7 +37,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/hyperopt.md b/docs/commands/hyperopt.md index 2fc522d0f..e7a05bedf 100644 --- a/docs/commands/hyperopt.md +++ b/docs/commands/hyperopt.md @@ -79,6 +79,7 @@ options: SortinoHyperOptLoss, SortinoHyperOptLossDaily, CalmarHyperOptLoss, MaxDrawDownHyperOptLoss, MaxDrawDownRelativeHyperOptLoss, + MaxDrawDownPerPairHyperOptLoss, ProfitDrawDownHyperOptLoss, MultiMetricHyperOptLoss --disable-param-export Disable automatic hyperopt parameter export. @@ -102,7 +103,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/install-ui.md b/docs/commands/install-ui.md index 57e8fbda2..b8430e36e 100644 --- a/docs/commands/install-ui.md +++ b/docs/commands/install-ui.md @@ -1,9 +1,12 @@ ``` -usage: freqtrade install-ui [-h] [--erase] [--ui-version UI_VERSION] +usage: freqtrade install-ui [-h] [--erase] [--prerelease] + [--ui-version UI_VERSION] options: -h, --help show this help message and exit --erase Clean UI folder, don't download new version. + --prerelease Install the latest pre-release version of FreqUI. This + is not recommended for production use. --ui-version UI_VERSION Specify a specific version of FreqUI to install. Not specifying this installs the latest version. diff --git a/docs/commands/list-data.md b/docs/commands/list-data.md index c6e8cc94e..515207178 100644 --- a/docs/commands/list-data.md +++ b/docs/commands/list-data.md @@ -41,7 +41,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-exchanges.md b/docs/commands/list-exchanges.md index c95ae3ebd..f551c8aa8 100644 --- a/docs/commands/list-exchanges.md +++ b/docs/commands/list-exchanges.md @@ -22,7 +22,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-freqaimodels.md b/docs/commands/list-freqaimodels.md index 3e66880ab..c4a588eba 100644 --- a/docs/commands/list-freqaimodels.md +++ b/docs/commands/list-freqaimodels.md @@ -24,7 +24,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-hyperoptloss.md b/docs/commands/list-hyperoptloss.md index 1a1604b0f..2762c3fe7 100644 --- a/docs/commands/list-hyperoptloss.md +++ b/docs/commands/list-hyperoptloss.md @@ -24,7 +24,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-markets.md b/docs/commands/list-markets.md index d33b9c5d1..d2233e1da 100644 --- a/docs/commands/list-markets.md +++ b/docs/commands/list-markets.md @@ -39,7 +39,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-pairs.md b/docs/commands/list-pairs.md index 3d8e677ee..3f991e414 100644 --- a/docs/commands/list-pairs.md +++ b/docs/commands/list-pairs.md @@ -39,7 +39,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-strategies.md b/docs/commands/list-strategies.md index af5771860..95f79e175 100644 --- a/docs/commands/list-strategies.md +++ b/docs/commands/list-strategies.md @@ -27,7 +27,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/list-timeframes.md b/docs/commands/list-timeframes.md index 8dc10a789..bcd45b151 100644 --- a/docs/commands/list-timeframes.md +++ b/docs/commands/list-timeframes.md @@ -23,7 +23,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/lookahead-analysis.md b/docs/commands/lookahead-analysis.md index bb7ef5d8e..7870d212e 100644 --- a/docs/commands/lookahead-analysis.md +++ b/docs/commands/lookahead-analysis.md @@ -89,7 +89,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/plot-dataframe.md b/docs/commands/plot-dataframe.md index 81ecc0da7..e101d0d5b 100644 --- a/docs/commands/plot-dataframe.md +++ b/docs/commands/plot-dataframe.md @@ -63,7 +63,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/plot-profit.md b/docs/commands/plot-profit.md index 207697a93..2c0b0e6b5 100644 --- a/docs/commands/plot-profit.md +++ b/docs/commands/plot-profit.md @@ -49,7 +49,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/recursive-analysis.md b/docs/commands/recursive-analysis.md index b39e8fb35..39b4fc3da 100644 --- a/docs/commands/recursive-analysis.md +++ b/docs/commands/recursive-analysis.md @@ -41,7 +41,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/show-trades.md b/docs/commands/show-trades.md index 316d47448..6ac64cae7 100644 --- a/docs/commands/show-trades.md +++ b/docs/commands/show-trades.md @@ -30,7 +30,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/strategy-updater.md b/docs/commands/strategy-updater.md index ba40322ec..c2804fee2 100644 --- a/docs/commands/strategy-updater.md +++ b/docs/commands/strategy-updater.md @@ -34,7 +34,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/trade.md b/docs/commands/trade.md index b689902c2..0189669c0 100644 --- a/docs/commands/trade.md +++ b/docs/commands/trade.md @@ -36,7 +36,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/trades-to-ohlcv.md b/docs/commands/trades-to-ohlcv.md index c2d42a5cc..748a8ace5 100644 --- a/docs/commands/trades-to-ohlcv.md +++ b/docs/commands/trades-to-ohlcv.md @@ -41,7 +41,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/commands/webserver.md b/docs/commands/webserver.md index a99b83e97..1ac7bd13b 100644 --- a/docs/commands/webserver.md +++ b/docs/commands/webserver.md @@ -20,7 +20,9 @@ Common arguments: exists). Multiple --config options may be used. Can be set to `-` to read config from stdin. -d PATH, --datadir PATH, --data-dir PATH - Path to directory with historical backtesting data. + Path to the base directory of the exchange with + historical backtesting data. To see futures data, use + trading-mode additionally. --userdir PATH, --user-data-dir PATH Path to userdata directory. diff --git a/docs/configuration.md b/docs/configuration.md index f76b9360d..8c122b9b7 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -205,7 +205,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi | `exit_pricing.use_order_book` | Enable exiting of open trades using [Order Book Exit](#exit-price-with-orderbook-enabled).
*Defaults to `true`.*
**Datatype:** Boolean | `exit_pricing.order_book_top` | Bot will use the top N rate in Order Book "price_side" to exit. I.e. a value of 2 will allow the bot to pick the 2nd ask rate in [Order Book Exit](#exit-price-with-orderbook-enabled)
*Defaults to `1`.*
**Datatype:** Positive Integer | `custom_price_max_distance_ratio` | Configure maximum distance ratio between current and custom entry or exit price.
*Defaults to `0.02` 2%).*
**Datatype:** Positive float -| | **TODO** +| | **Order/Signal handling** | `use_exit_signal` | Use exit signals produced by the strategy in addition to the `minimal_roi`.
Setting this to false disables the usage of `"exit_long"` and `"exit_short"` columns. Has no influence on other exit methods (Stoploss, ROI, callbacks). [Strategy Override](#parameters-in-the-strategy).
*Defaults to `true`.*
**Datatype:** Boolean | `exit_profit_only` | Wait until the bot reaches `exit_profit_offset` before taking an exit decision. [Strategy Override](#parameters-in-the-strategy).
*Defaults to `false`.*
**Datatype:** Boolean | `exit_profit_offset` | Exit-signal is only active above this value. Only active in combination with `exit_profit_only=True`. [Strategy Override](#parameters-in-the-strategy).
*Defaults to `0.0`.*
**Datatype:** Float (as ratio) @@ -266,7 +266,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi | `bot_name` | Name of the bot. Passed via API to a client - can be shown to distinguish / name bots.
*Defaults to `freqtrade`*
**Datatype:** String | `external_message_consumer` | Enable [Producer/Consumer mode](producer-consumer.md) for more details.
**Datatype:** Dict | | **Other** -| `initial_state` | Defines the initial application state. If set to stopped, then the bot has to be explicitly started via `/start` RPC command.
*Defaults to `stopped`.*
**Datatype:** Enum, either `stopped` or `running` +| `initial_state` | Defines the initial application state. If set to stopped, then the bot has to be explicitly started via `/start` RPC command.
*Defaults to `stopped`.*
**Datatype:** Enum, either `running`, `paused` or `stopped` | `force_entry_enable` | Enables the RPC Commands to force a Trade entry. More information below.
**Datatype:** Boolean | `disable_dataframe_checks` | Disable checking the OHLCV dataframe returned from the strategy methods for correctness. Only use when intentionally changing the dataframe and understand what you are doing. [Strategy Override](#parameters-in-the-strategy).
*Defaults to `False`*.
**Datatype:** Boolean | `internals.process_throttle_secs` | Set the process throttle, or minimum loop duration for one bot iteration loop. Value in second.
*Defaults to `5` seconds.*
**Datatype:** Positive Integer @@ -281,7 +281,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi | `add_config_files` | Additional config files. These files will be loaded and merged with the current config file. The files are resolved relative to the initial file.
*Defaults to `[]`*.
**Datatype:** List of strings | `dataformat_ohlcv` | Data format to use to store historical candle (OHLCV) data.
*Defaults to `feather`*.
**Datatype:** String | `dataformat_trades` | Data format to use to store historical trades data.
*Defaults to `feather`*.
**Datatype:** String -| `reduce_df_footprint` | Recast all numeric columns to float32/int32, with the objective of reducing ram/disk usage (and decreasing train/inference timing in FreqAI). (Currently only affects FreqAI use-cases)
**Datatype:** Boolean.
Default: `False`. +| `reduce_df_footprint` | Recast all numeric columns to float32/int32, with the objective of reducing ram/disk usage (and decreasing train/inference timing backtesting/hyperopt and in FreqAI).
**Datatype:** Boolean.
Default: `False`. | `log_config` | Dictionary containing the log config for python logging. [more info](advanced-setup.md#advanced-logging)
**Datatype:** dict.
Default: `FtRichHandler` ### Parameters in the strategy diff --git a/docs/exchanges.md b/docs/exchanges.md index 953fb5f8c..f058ed86e 100644 --- a/docs/exchanges.md +++ b/docs/exchanges.md @@ -363,6 +363,10 @@ Hyperliquid handles deposits and withdrawals on the Arbitrum One chain, a Layer * Create a different software wallet, only transfer the funds you want to trade with to that wallet, and use that wallet to trade on Hyperliquid. * If you have funds you don't want to use for trading (after making a profit for example), transfer them back to your hardware wallet. +### Historic Hyperliquid data + +The Hyperliquid API does not provide historic data beyond the single call to fetch current data, so downloading data is not possible, as the downloaded data would not constitute proper historic data. + ## All exchanges Should you experience constant errors with Nonce (like `InvalidNonce`), it is best to regenerate the API keys. Resetting Nonce is difficult and it's usually easier to regenerate the API keys. diff --git a/docs/freqai-configuration.md b/docs/freqai-configuration.md index 7ae2535f6..5ab7b2602 100644 --- a/docs/freqai-configuration.md +++ b/docs/freqai-configuration.md @@ -258,6 +258,8 @@ freqtrade trade --config config_examples/config_freqai.example.json --strategy F We do provide an explicit docker-compose file for this in `docker/docker-compose-freqai.yml` - which can be used via `docker compose -f docker/docker-compose-freqai.yml run ...` - or can be copied to replace the original docker file. This docker-compose file also contains a (disabled) section to enable GPU resources within docker containers. This obviously assumes the system has GPU resources available. + PyTorch dropped support for macOS x64 (intel based Apple devices) in version 2.3. Subsequently, freqtrade also dropped support for PyTorch on this platform. + ### Structure #### Model diff --git a/docs/freqai-feature-engineering.md b/docs/freqai-feature-engineering.md index d25051291..78d26bed4 100644 --- a/docs/freqai-feature-engineering.md +++ b/docs/freqai-feature-engineering.md @@ -181,7 +181,7 @@ You can ask for each of the defined features to be included also for informative In total, the number of features the user of the presented example strategy has created is: length of `include_timeframes` * no. features in `feature_engineering_expand_*()` * length of `include_corr_pairlist` * no. `include_shifted_candles` * length of `indicator_periods_candles` $= 3 * 3 * 3 * 2 * 2 = 108$. - !!! note "Learn more about creative feature engineering" +!!! note "Learn more about creative feature engineering" Check out our [medium article](https://emergentmethods.medium.com/freqai-from-price-to-prediction-6fadac18b665) geared toward helping users learn how to creatively engineer features. ### Gain finer control over `feature_engineering_*` functions with `metadata` diff --git a/docs/hyperopt.md b/docs/hyperopt.md index b8c3cc7ef..3a8100972 100644 --- a/docs/hyperopt.md +++ b/docs/hyperopt.md @@ -471,6 +471,7 @@ Currently, the following loss functions are builtin: * `SortinoHyperOptLossDaily` - optimizes Sortino Ratio calculated on **daily** trade returns relative to **downside** standard deviation. * `MaxDrawDownHyperOptLoss` - Optimizes Maximum absolute drawdown. * `MaxDrawDownRelativeHyperOptLoss` - Optimizes both maximum absolute drawdown while also adjusting for maximum relative drawdown. +* `MaxDrawDownPerPairHyperOptLoss` - Calculates the profit/drawdown ratio per pair and returns the worst result as objective, forcing hyperopt to optimize the parameters for all pairs in the pairlist. This way, we prevent one or more pairs with good results from inflating the metrics, while the pairs with poor results are not represented and therefore not optimized. * `CalmarHyperOptLoss` - Optimizes Calmar Ratio calculated on trade returns relative to max drawdown. * `ProfitDrawDownHyperOptLoss` - Optimizes by max Profit & min Drawdown objective. `DRAWDOWN_MULT` variable within the hyperoptloss file can be adjusted to be stricter or more flexible on drawdown purposes. * `MultiMetricHyperOptLoss` - Optimizes by several key metrics to achieve balanced performance. The primary focus is on maximizing Profit and minimizing Drawdown, while also considering additional metrics such as Profit Factor, Expectancy Ratio and Winrate. Moreover, it applies a penalty for epochs with a low number of trades, encouraging strategies with adequate trade frequency. diff --git a/docs/includes/showcase.md b/docs/includes/showcase.md index 766703b9f..6fb5f15cf 100644 --- a/docs/includes/showcase.md +++ b/docs/includes/showcase.md @@ -3,7 +3,7 @@ This section will highlight a few projects from members of the community. The projects below are for the most part not maintained by the freqtrade , therefore use your own caution before using them. - [Example freqtrade strategies](https://github.com/freqtrade/freqtrade-strategies/) -- [FrequentHippo - Grafana dashboard with dry/live runs and backtests](http://frequenthippo.ddns.net:3000/) (by hippocritical). +- [FrequentHippo - Statistics of dry/live runs and backtests](http://frequenthippo.ddns.net) (by hippocritical). - [Online pairlist generator](https://remotepairlist.com/) (by Blood4rc). - [Freqtrade Backtesting Project](https://strat.ninja/) (by Blood4rc). - [Freqtrade analysis notebook](https://github.com/froggleston/freqtrade_analysis_notebook) (by Froggleston). diff --git a/docs/lookahead-analysis.md b/docs/lookahead-analysis.md index a64479fe6..126135862 100644 --- a/docs/lookahead-analysis.md +++ b/docs/lookahead-analysis.md @@ -1,23 +1,21 @@ # Lookahead analysis -This page explains how to validate your strategy in terms of look ahead bias. +This page explains how to validate your strategy in terms of lookahead bias. -Checking look ahead bias is the bane of any strategy since it is sometimes very easy to introduce backtest bias - -but very hard to detect. +Lookahead bias is the bane of any strategy since it is sometimes very easy to introduce this bias, but can be very hard to detect. -Backtesting initializes all timestamps at once and calculates all indicators in the beginning. -This means that if your indicators or entry/exit signals could look into future candles and falsify your backtest. +Backtesting initializes all timestamps (loads the whole dataframe into memory) and calculates all indicators at once. +This means that if your indicators or entry/exit signals look into future candles, this will falsify your backtest. -Lookahead-analysis requires historic data to be available. +The `lookahead-analysis` command requires historic data to be available. To learn how to get data for the pairs and exchange you're interested in, head over to the [Data Downloading](data-download.md) section of the documentation. +`lookahead-analysis` also supports freqai strategies. -This command is built upon backtesting since it internally chains backtests and pokes at the strategy to provoke it to show look ahead bias. -This is done by not looking at the strategy itself - but at the results it returned. -The results are things like changed indicator-values and moved entries/exits compared to the full backtest. +This command internally chains backtests and pokes at the strategy to provoke it to show lookahead bias. +This is done by not looking at the strategy code itself, but at changed indicator values and moved entries/exits compared to the full backtest. -You can use commands of [Backtesting](backtesting.md). -It also supports the lookahead-analysis of freqai strategies. +`lookahead-analysis` can use the typical options of [Backtesting](backtesting.md), but forces the following options: - `--cache` is forced to "none". - `--max-open-trades` is forced to be at least equal to the number of pairs. @@ -25,48 +23,83 @@ It also supports the lookahead-analysis of freqai strategies. - `--stake-amount` is forced to be a static 10000 (10k). - `--enable-protections` is forced to be off. -Those are set to avoid users accidentally generating false positives. +These are set to avoid users accidentally generating false positives. ## Lookahead-analysis command reference --8<-- "commands/lookahead-analysis.md" -!!! Note "" - The above Output was reduced to options `lookahead-analysis` adds on top of regular backtesting commands. - -### Summary - -Checks a given strategy for look ahead bias via lookahead-analysis -Look ahead bias means that the backtest uses data from future candles thereby not making it viable beyond backtesting -and producing false hopes for the one backtesting. +!!! Note + The above output was reduced to options that `lookahead-analysis` adds on top of regular backtesting commands. ### Introduction -Many strategies - without the programmer knowing - have fallen prey to look ahead bias. +Many strategies, without the programmer knowing, have fallen prey to lookahead bias. +This typically makes the strategy backtest look profitable, sometimes to extremes, but this is not realistic as the strategy is "cheating" by looking at data it would not have in dry or live modes. -Any backtest will populate the full dataframe including all time stamps at the beginning. -If the programmer is not careful or oblivious how things work internally -(which sometimes can be really hard to find out) then it will just look into the future making the strategy amazing -but not realistic. +The reason why strategies can "cheat" is because the freqtrade backtesting process populates the full dataframe including all candle timestamps at the outset. +If the programmer is not careful or oblivious how things work internally +(which sometimes can be really hard to find out) then the strategy will look into the future. -This command is made to try to verify the validity in the form of the aforementioned look ahead bias. +This command is made to try to verify the validity in the form of the aforementioned lookahead bias. ### How does the command work? It will start with a backtest of all pairs to generate a baseline for indicators and entries/exits. -After the backtest ran, it will look if the `minimum-trade-amount` is met -and if not cancel the lookahead-analysis for this strategy. +After this initial backtest runs, it will look if the `minimum-trade-amount` is met and if not cancel the lookahead-analysis for this strategy. +If this happens, use a wider timerange to get more trades for the analysis, or use a timerange where more trades occur. -After setting the baseline it will then do additional runs for every entry and exit separately. -When a verification-backtest is done, it will compare the indicators as the signal (either entry or exit) and report the bias. -After all signals have been verified or falsified a result-table will be generated for the user to see. +After setting the baseline it will then do additional backtest runs for every entry and exit separately. +When these verification backtests complete, it will compare the indicators at the signal candles (both entry or exit) +and report the bias. +After all signals have been verified or falsified a result table will be generated for the user to see. + +### How to find and remove bias? How can I salvage a biased strategy? + +If you found a biased strategy online and want to have the same results, just without bias, +then you will be out of luck most of the time. +Usually the bias in the strategy is THE driving factor for "too good to be true" profits. +Removing conditions or indicators that push the profits up from bias will usually make the strategy significantly worse. +You might be able to salvage it partially if the biased indicators or conditions are not the core of the strategy, or there +are other entry and exit signals that are not biased. + +### Examples of lookahead-bias + +- `shift(-10)` looks 10 candles into the future. +- Using `iloc[]` in populate_* functions to access a specific row in the dataframe. +- For-loops are prone to introduce lookahead bias if you don't tightly control which numbers are looped through. +- Aggregation functions like `.mean()`, `.min()` and `.max()`, without a rolling window, + will calculate the value over the **whole** dataframe, so the signal candle will "see" a value including future candles. + A non-biased example would be to look back candles using `rolling()` instead: + e.g. `dataframe['volume_mean_12'] = dataframe['volume'].rolling(12).mean()` +- `ta.MACD(dataframe, 12, 26, 1)` will introduce bias with a signalperiod of 1. + +### What do the columns in the results table mean? + +- `filename`: name of the checked strategy file +- `strategy`: checked strategy class name +- `has_bias`: result of the lookahead-analysis. `No` would be good, `Yes` would be bad. +- `total_signals`: number of checked signals (default is 20) +- `biased_entry_signals`: found bias in that many entries +- `biased_exit_signals`: found bias in that many exits +- `biased_indicators`: shows you the indicators themselves that are defined in populate_indicators + +You might get false positives in the `biased_exit_signals` if you have biased entry signals paired with those exits. +However, a biased entry will usually result in a biased exit too, +even if the exit itself does not produce the bias - +especially if your entry and exit conditions use the same biased indicator. + +**Address the bias in the entries first, then address the exits.** ### Caveats - `lookahead-analysis` can only verify / falsify the trades it calculated and verified. -If the strategy has many different signals / signal types, it's up to you to select appropriate parameters to ensure that all signals have triggered at least once. Not triggered signals will not have been verified. -This could lead to a false-negative (the strategy will then be reported as non-biased). -- `lookahead-analysis` has access to everything that backtesting has too. -Please don't provoke any configs like enabling position stacking. -If you decide to do so, then make doubly sure that you won't ever run out of `max_open_trades` amount and neither leftover money in your wallet. -- In the results table, the `biased_indicators` column will falsely flag FreqAI target indicators defined in `set_freqai_targets()` as biased. These are not biased and can safely be ignored. +If the strategy has many different signals / signal types, it's up to you to select appropriate parameters to ensure that all signals have triggered at least once. Signals that are not triggered will not have been verified. +This would lead to a false-negative, i.e. the strategy will be reported as non-biased. +- `lookahead-analysis` has access to the same backtesting options and this can introduce problems. +Please don't use any options like enabling position stacking as this will distort the number of checked signals. +If you decide to do so, then make doubly sure that you won't ever run out of `max_open_trades` slots, +and that you have enough capital in the backtest wallet configuration. +- In the results table, the `biased_indicators` column +will falsely flag FreqAI target indicators defined in `set_freqai_targets()` as biased. +**These are not biased and can safely be ignored.** diff --git a/docs/producer-consumer.md b/docs/producer-consumer.md index 0bd52ac93..d7d40df71 100644 --- a/docs/producer-consumer.md +++ b/docs/producer-consumer.md @@ -50,6 +50,7 @@ Enable subscribing to an instance by adding the `external_message_consumer` sect | `ping_timeout` | Ping timeout
*Defaults to `10`.*
**Datatype:** Integer - in seconds. | `sleep_time` | Sleep time before retrying to connect.
*Defaults to `10`.*
**Datatype:** Integer - in seconds. | `remove_entry_exit_signals` | Remove signal columns from the dataframe (set them to 0) on dataframe receipt.
*Defaults to `false`.*
**Datatype:** Boolean. +| `initial_candle_limit` | Initial candles to expect from the Producer.
*Defaults to `1500`.*
**Datatype:** Integer - Number of candles. | `message_size_limit` | Size limit per message
*Defaults to `8`.*
**Datatype:** Integer - Megabytes. Instead of (or as well as) calculating indicators in `populate_indicators()` the follower instance listens on the connection to a producer instance's messages (or multiple producer instances in advanced configurations) and requests the producer's most recently analyzed dataframes for each pair in the active whitelist. diff --git a/docs/requirements-docs.txt b/docs/requirements-docs.txt index c1c90d274..d498cacdc 100644 --- a/docs/requirements-docs.txt +++ b/docs/requirements-docs.txt @@ -1,7 +1,7 @@ -markdown==3.7 +markdown==3.8 mkdocs==1.6.1 -mkdocs-material==9.6.9 +mkdocs-material==9.6.12 mdx_truly_sane_lists==1.3 -pymdown-extensions==10.14.3 +pymdown-extensions==10.15 jinja2==3.1.6 mike==2.1.3 diff --git a/docs/rest-api.md b/docs/rest-api.md index 10e4534c0..cea4d2ee9 100644 --- a/docs/rest-api.md +++ b/docs/rest-api.md @@ -268,6 +268,9 @@ show_config start Start the bot if it's in the stopped state. +pause + Pause the bot if it's in the running state. If triggered on stopped state will handle open positions. + stats Return the stats report (durations, sell-reasons). @@ -333,6 +336,7 @@ All endpoints in the below table need to be prefixed with the base URL of the AP |-----------|--------|--------------------------| | `/ping` | GET | Simple command testing the API Readiness - requires no authentication. | `/start` | POST | Starts the trader. +| `/pause` | POST | Pause the trader. Gracefully handle open trades according to their rules. Do not enter new positions. | `/stop` | POST | Stops the trader. | `/stopbuy` | POST | Stops the trader from opening new trades. Gracefully closes open trades according to their rules. | `/reload_config` | POST | Reloads the configuration file. diff --git a/docs/strategy-101.md b/docs/strategy-101.md index 9226537e1..a5e100b8d 100644 --- a/docs/strategy-101.md +++ b/docs/strategy-101.md @@ -165,18 +165,23 @@ If there is any significant difference, verify that your entry and exit signals ## Controlling or monitoring a running bot -Once your bot is running in dry or live mode, Freqtrade has five mechanisms to control or monitor a running bot: +Once your bot is running in dry or live mode, Freqtrade has six mechanisms to control or monitor a running bot: - **[FreqUI](freq-ui.md)**: The easiest to get started with, FreqUI is a web interface to see and control current activity of your bot. - **[Telegram](telegram-usage.md)**: On mobile devices, Telegram integration is available to get alerts about your bot activity and to control certain aspects. - **[FTUI](https://github.com/freqtrade/ftui)**: FTUI is a terminal (command line) interface to Freqtrade, and allows monitoring of a running bot only. -- **[REST API](rest-api.md)**: The REST API allows programmers to develop their own tools to interact with a Freqtrade bot. +- **[freqtrade-client](rest-api.md#consuming-the-api)**: A python implementation of the REST API, making it easy to make requests and consume bot responses from your python apps or the command line. +- **[REST API endpoints](rest-api.md#available-endpoints)**: The REST API allows programmers to develop their own tools to interact with a Freqtrade bot. - **[Webhooks](webhook-config.md)**: Freqtrade can send information to other services, e.g. discord, by webhooks. ### Logs Freqtrade generates extensive debugging logs to help you understand what's happening. Please familiarise yourself with the information and error messages you might see in your bot logs. +Logging by default occurs on standard out (the command line). If you want to write out to a file instead, many freqtrade commands, including the `trade` command, accept the `--logfile` option to write to a file. + +Check the [FAQ](faq.md#how-do-i-search-the-bot-logs-for-something) for examples. + ## Final Thoughts Algo trading is difficult, and most public strategies are not good performers due to the time and effort to make a strategy work profitably in multiple scenarios. diff --git a/docs/strategy-callbacks.md b/docs/strategy-callbacks.md index 4564a0f03..541b48c62 100644 --- a/docs/strategy-callbacks.md +++ b/docs/strategy-callbacks.md @@ -1107,3 +1107,119 @@ class AwesomeStrategy(IStrategy): return None ``` + +## Plot annotations callback + +The plot annotations callback is called whenever freqUI requests data to display a chart. +This callback has no meaning in the trade cycle context and is only used for charting purposes. + +The strategy can then return a list of `AnnotationType` objects to be displayed on the chart. +Depending on the content returned - the chart can display horizontal areas, vertical areas, or boxes. + +The full object looks like this: + +``` json +{ + "type": "area", // Type of the annotation, currently only "area" is supported + "start": "2024-01-01 15:00:00", // Start date of the area + "end": "2024-01-01 16:00:00", // End date of the area + "y_start": 94000.2, // Price / y axis value + "y_end": 98000, // Price / y axis value + "color": "", + "label": "some label" +} +``` + +The below example will mark the chart with areas for the hours 8 and 15, with a grey color, highlighting the market open and close hours. +This is obviously a very basic example. + +``` python +# Default imports + +class AwesomeStrategy(IStrategy): + def plot_annotations( + self, pair: str, start_date: datetime, end_date: datetime, dataframe: DataFrame, **kwargs + ) -> list[AnnotationType]: + """ + Retrieve area annotations for a chart. + Must be returned as array, with type, label, color, start, end, y_start, y_end. + All settings except for type are optional - though it usually makes sense to include either + "start and end" or "y_start and y_end" for either horizontal or vertical plots + (or all 4 for boxes). + :param pair: Pair that's currently analyzed + :param start_date: Start date of the chart data being requested + :param end_date: End date of the chart data being requested + :param dataframe: DataFrame with the analyzed data for the chart + :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. + :return: List of AnnotationType objects + """ + annotations = [] + while start_dt < end_date: + start_dt += timedelta(hours=1) + if start_dt.hour in (8, 15): + annotations.append( + { + "type": "area", + "label": "Trade open and close hours", + "start": start_dt, + "end": start_dt + timedelta(hours=1), + # Omitting y_start and y_end will result in a vertical area spanning the whole height of the main Chart + "color": "rgba(133, 133, 133, 0.4)", + } + ) + + return annotations + +``` + +Entries will be validated, and won't be passed to the UI if they don't correspond to the expected schema and will log an error if they don't. + +!!! Warning "Many annotations" + Using too many annotations can cause the UI to hang, especially when plotting large amounts of historic data. + Use the annotation feature with care. + +### Plot annotations example + +![FreqUI - plot Annotations](assets/freqUI-chart-annotations-dark.png#only-dark) +![FreqUI - plot Annotations](assets/freqUI-chart-annotations-light.png#only-light) + +??? Info "Code used for the plot above" + This is an example code and should be treated as such. + + ``` python + # Default imports + + class AwesomeStrategy(IStrategy): + def plot_annotations( + self, pair: str, start_date: datetime, end_date: datetime, dataframe: DataFrame, **kwargs + ) -> list[AnnotationType]: + annotations = [] + while start_dt < end_date: + start_dt += timedelta(hours=1) + if (start_dt.hour % 4) == 0: + mark_areas.append( + { + "type": "area", + "label": "4h", + "start": start_dt, + "end": start_dt + timedelta(hours=1), + "color": "rgba(133, 133, 133, 0.4)", + } + ) + elif (start_dt.hour % 2) == 0: + price = dataframe.loc[dataframe["date"] == start_dt, ["close"]].mean() + mark_areas.append( + { + "type": "area", + "label": "2h", + "start": start_dt, + "end": start_dt + timedelta(hours=1), + "y_end": price * 1.01, + "y_start": price * 0.99, + "color": "rgba(0, 255, 0, 0.4)", + } + ) + + return annotations + + ``` diff --git a/docs/telegram-usage.md b/docs/telegram-usage.md index c7c434140..a7a27f150 100644 --- a/docs/telegram-usage.md +++ b/docs/telegram-usage.md @@ -188,7 +188,7 @@ You can create your own keyboard in `config.json`: !!! Note "Supported Commands" Only the following commands are allowed. Command arguments are not supported! - `/start`, `/stop`, `/status`, `/status table`, `/trades`, `/profit`, `/performance`, `/daily`, `/stats`, `/count`, `/locks`, `/balance`, `/stopentry`, `/reload_config`, `/show_config`, `/logs`, `/whitelist`, `/blacklist`, `/edge`, `/help`, `/version`, `/marketdir` + `/start`, `/pause`, `/stop`, `/status`, `/status table`, `/trades`, `/profit`, `/performance`, `/daily`, `/stats`, `/count`, `/locks`, `/balance`, `/stopentry`, `/reload_config`, `/show_config`, `/logs`, `/whitelist`, `/blacklist`, `/edge`, `/help`, `/version`, `/marketdir` ## Telegram commands @@ -200,8 +200,8 @@ official commands. You can ask at any moment for help with `/help`. |----------|-------------| | **System commands** | `/start` | Starts the trader +| `/pause | /stopentry | /stopbuy` | Pause the trader. Gracefully handle open trades according to their rules. Do not enter new positions. | `/stop` | Stops the trader -| `/stopbuy | /stopentry` | Stops the trader from opening new trades. Gracefully closes open trades according to their rules. | `/reload_config` | Reloads the configuration file | `/show_config` | Shows part of the current configuration with relevant settings to operation | `/logs [limit]` | Show last log messages. @@ -250,25 +250,27 @@ Below, example of Telegram message you will receive for each command. > **Status:** `running` +### /pause | /stopentry | /stopbuy + +> **Status:** `paused, no more entries will occur from now. Run /start to enable entries.` + +Prevents the bot from opening new trades by changing the state to `paused`. +Open trades will continue to be managed according to their regular rules (ROI/exit signals, stop-loss, etc.). +Note that position adjustment remains active, but only on the exit side — meaning that when the bot is `paused`, it can only reduce the position size of open trades. + +After this, give the bot time to close off open trades (can be checked via `/status table`). +Once all positions are closed, run `/stop` to completely stop the bot. + +Use `/start` to resume the bot to the `running` state, allowing it to open new positions. + +!!! Warning + The pause/stopentry signal is ONLY active while the bot is running, and is not persisted anyway, so restarting the bot will cause this to reset. + ### /stop > `Stopping trader ...` > **Status:** `stopped` -### /stopbuy - -> **status:** `Setting max_open_trades to 0. Run /reload_config to reset.` - -Prevents the bot from opening new trades by temporarily setting "max_open_trades" to 0. Open trades will be handled via their regular rules (ROI / Sell-signal, stoploss, ...). - -After this, give the bot time to close off open trades (can be checked via `/status table`). -Once all positions are sold, run `/stop` to completely stop the bot. - -`/reload_config` resets "max_open_trades" to the value set in the configuration and resets this command. - -!!! Warning - The stop-buy signal is ONLY active while the bot is running, and is not persisted anyway, so restarting the bot will cause this to reset. - ### /status For each open trade, the bot will send you the following message. diff --git a/docs/trade-object.md b/docs/trade-object.md index 26f5e9131..78b130fcc 100644 --- a/docs/trade-object.md +++ b/docs/trade-object.md @@ -25,6 +25,7 @@ The following attributes / properties are available for each individual trade - | `close_date_utc` | datetime | Timestamp when trade was closed - in UTC. | | `close_profit` | float | Relative profit at the time of trade closure. `0.01` == 1% | | `close_profit_abs` | float | Absolute profit (in stake currency) at the time of trade closure. | +| `realized_profit` | float | Absolute already realized profit (in stake currency) while the trade is still open. | | `leverage` | float | Leverage used for this trade - defaults to 1.0 in spot markets. | | `enter_tag` | string | Tag provided on entry via the `enter_tag` column in the dataframe. | | `is_short` | boolean | True for short trades, False otherwise. | diff --git a/freqtrade/__init__.py b/freqtrade/__init__.py index 8644f9eab..97e8aa355 100644 --- a/freqtrade/__init__.py +++ b/freqtrade/__init__.py @@ -1,12 +1,12 @@ """Freqtrade bot""" -__version__ = "2025.4-dev" +__version__ = "2025.5-dev" if "dev" in __version__: from pathlib import Path try: - import subprocess # noqa: S404 + import subprocess # noqa: S404, RUF100 freqtrade_basedir = Path(__file__).parent diff --git a/freqtrade/commands/arguments.py b/freqtrade/commands/arguments.py index d0bad4567..c42e46711 100755 --- a/freqtrade/commands/arguments.py +++ b/freqtrade/commands/arguments.py @@ -21,6 +21,8 @@ ARGS_COMMON = [ "user_data_dir", ] +ARGS_MAIN = ["version_main"] + ARGS_STRATEGY = [ "strategy", "strategy_path", @@ -43,7 +45,8 @@ ARGS_COMMON_OPTIMIZE = [ "pairs", ] -ARGS_BACKTEST = ARGS_COMMON_OPTIMIZE + [ +ARGS_BACKTEST = [ + *ARGS_COMMON_OPTIMIZE, "position_stacking", "enable_protections", "dry_run_wallet", @@ -56,7 +59,8 @@ ARGS_BACKTEST = ARGS_COMMON_OPTIMIZE + [ "freqai_backtest_live_models", ] -ARGS_HYPEROPT = ARGS_COMMON_OPTIMIZE + [ +ARGS_HYPEROPT = [ + *ARGS_COMMON_OPTIMIZE, "hyperopt", "hyperopt_path", "position_stacking", @@ -76,7 +80,7 @@ ARGS_HYPEROPT = ARGS_COMMON_OPTIMIZE + [ "analyze_per_epoch", ] -ARGS_EDGE = ARGS_COMMON_OPTIMIZE + ["stoploss_range"] +ARGS_EDGE = [*ARGS_COMMON_OPTIMIZE, "stoploss_range"] ARGS_LIST_STRATEGIES = [ "strategy_path", @@ -125,7 +129,7 @@ ARGS_BUILD_STRATEGY = ["user_data_dir", "strategy", "strategy_path", "template"] ARGS_CONVERT_DATA_TRADES = ["pairs", "format_from_trades", "format_to", "erase", "exchange"] ARGS_CONVERT_DATA = ["pairs", "format_from", "format_to", "erase", "exchange"] -ARGS_CONVERT_DATA_OHLCV = ARGS_CONVERT_DATA + ["timeframes", "trading_mode", "candle_types"] +ARGS_CONVERT_DATA_OHLCV = [*ARGS_CONVERT_DATA, "timeframes", "trading_mode", "candle_types"] ARGS_CONVERT_TRADES = [ "pairs", @@ -191,7 +195,7 @@ ARGS_PLOT_PROFIT = [ ARGS_CONVERT_DB = ["db_url", "db_url_from"] -ARGS_INSTALL_UI = ["erase_ui_only", "ui_version"] +ARGS_INSTALL_UI = ["erase_ui_only", "ui_prerelease", "ui_version"] ARGS_SHOW_TRADES = ["db_url", "trade_ids", "print_json"] @@ -347,7 +351,7 @@ class Arguments: self.parser = ArgumentParser( prog="freqtrade", description="Free, open source crypto trading bot" ) - self._build_args(optionlist=["version_main"], parser=self.parser) + self._build_args(optionlist=ARGS_MAIN, parser=self.parser) from freqtrade.commands import ( start_analysis_entries_exits, diff --git a/freqtrade/commands/cli_options.py b/freqtrade/commands/cli_options.py index 6eaa9e3a5..f05907808 100755 --- a/freqtrade/commands/cli_options.py +++ b/freqtrade/commands/cli_options.py @@ -83,7 +83,8 @@ AVAILABLE_CLI_OPTIONS = { "-d", "--datadir", "--data-dir", - help="Path to directory with historical backtesting data.", + help="Path to the base directory of the exchange with historical backtesting data. " + "To see futures data, use trading-mode additionally.", metavar="PATH", ), "user_data_dir": Arg( @@ -463,7 +464,7 @@ AVAILABLE_CLI_OPTIONS = { "format_from_trades": Arg( "--format-from", help="Source format for data conversion.", - choices=constants.AVAILABLE_DATAHANDLERS + ["kraken_csv"], + choices=[*constants.AVAILABLE_DATAHANDLERS, "kraken_csv"], required=True, ), "format_from": Arg( @@ -527,6 +528,15 @@ AVAILABLE_CLI_OPTIONS = { ), type=str, ), + "ui_prerelease": Arg( + "--prerelease", + help=( + "Install the latest pre-release version of FreqUI. " + "This is not recommended for production use." + ), + action="store_true", + default=False, + ), # Templating options "template": Arg( "--template", diff --git a/freqtrade/commands/deploy_commands.py b/freqtrade/commands/deploy_commands.py index acd975b9b..c2a715971 100644 --- a/freqtrade/commands/deploy_commands.py +++ b/freqtrade/commands/deploy_commands.py @@ -23,8 +23,8 @@ def start_create_userdir(args: dict[str, Any]) -> None: """ from freqtrade.configuration.directory_operations import copy_sample_files, create_userdata_dir - if "user_data_dir" in args and args["user_data_dir"]: - userdir = create_userdata_dir(args["user_data_dir"], create_dir=True) + if user_data_dir := args.get("user_data_dir"): + userdir = create_userdata_dir(user_data_dir, create_dir=True) copy_sample_files(userdir, overwrite=args["reset"]) else: logger.warning("`create-userdir` requires --userdir to be set.") @@ -85,22 +85,22 @@ def start_new_strategy(args: dict[str, Any]) -> None: config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE) - if "strategy" in args and args["strategy"]: - if "strategy_path" in args and args["strategy_path"]: - strategy_dir = Path(args["strategy_path"]) + if strategy := args.get("strategy"): + if strategy_path := args.get("strategy_path"): + strategy_dir = Path(strategy_path) else: strategy_dir = config["user_data_dir"] / USERPATH_STRATEGIES if not strategy_dir.is_dir(): logger.info(f"Creating strategy directory {strategy_dir}") strategy_dir.mkdir(parents=True) - new_path = strategy_dir / (args["strategy"] + ".py") + new_path = strategy_dir / (strategy + ".py") if new_path.exists(): raise OperationalException( f"`{new_path}` already exists. Please choose another Strategy Name." ) - deploy_new_strategy(args["strategy"], new_path, args["template"]) + deploy_new_strategy(strategy, new_path, args["template"]) else: raise ConfigurationError("`new-strategy` requires --strategy to be set.") @@ -116,7 +116,9 @@ def start_install_ui(args: dict[str, Any]) -> None: dest_folder = Path(__file__).parents[1] / "rpc/api_server/ui/installed/" # First make sure the assets are removed. - dl_url, latest_version = get_ui_download_url(args.get("ui_version")) + dl_url, latest_version = get_ui_download_url( + args.get("ui_version"), args.get("ui_prerelease", False) + ) curr_version = read_ui_version(dest_folder) if curr_version == latest_version and not args.get("erase_ui_only"): diff --git a/freqtrade/commands/deploy_ui.py b/freqtrade/commands/deploy_ui.py index a02315bfc..be96d6d11 100644 --- a/freqtrade/commands/deploy_ui.py +++ b/freqtrade/commands/deploy_ui.py @@ -51,7 +51,7 @@ def download_and_install_ui(dest_folder: Path, dl_url: str, version: str): f.write(version) -def get_ui_download_url(version: str | None = None) -> tuple[str, str]: +def get_ui_download_url(version: str | None, prerelease: bool) -> tuple[str, str]: base_url = "https://api.github.com/repos/freqtrade/frequi/" # Get base UI Repo path @@ -61,14 +61,18 @@ def get_ui_download_url(version: str | None = None) -> tuple[str, str]: if version: tmp = [x for x in r if x["name"] == version] - if tmp: - latest_version = tmp[0]["name"] - assets = tmp[0].get("assets", []) - else: - raise ValueError("UI-Version not found.") else: - latest_version = r[0]["name"] - assets = r[0].get("assets", []) + tmp = [x for x in r if prerelease or not x.get("prerelease")] + + if tmp: + # Ensure we have the latest version + if version is None: + tmp.sort(key=lambda x: x["created_at"], reverse=True) + latest_version = tmp[0]["name"] + assets = tmp[0].get("assets", []) + else: + raise ValueError("UI-Version not found.") + dl_url = "" if assets and len(assets) > 0: dl_url = assets[0]["browser_download_url"] diff --git a/freqtrade/commands/list_commands.py b/freqtrade/commands/list_commands.py index 846b97693..6a1ca819d 100644 --- a/freqtrade/commands/list_commands.py +++ b/freqtrade/commands/list_commands.py @@ -5,7 +5,6 @@ from typing import Any from freqtrade.enums import RunMode from freqtrade.exceptions import ConfigurationError, OperationalException -from freqtrade.ft_types import ValidExchangesType logger = logging.getLogger(__name__) @@ -21,6 +20,7 @@ def start_list_exchanges(args: dict[str, Any]) -> None: from rich.text import Text from freqtrade.exchange import list_available_exchanges + from freqtrade.ft_types import ValidExchangesType from freqtrade.loggers.rich_console import get_rich_console available_exchanges: list[ValidExchangesType] = list_available_exchanges( diff --git a/freqtrade/config_schema/__init__.py b/freqtrade/config_schema/__init__.py new file mode 100644 index 000000000..0a5c19c1f --- /dev/null +++ b/freqtrade/config_schema/__init__.py @@ -0,0 +1,4 @@ +from freqtrade.config_schema.config_schema import CONF_SCHEMA + + +__all__ = ["CONF_SCHEMA"] diff --git a/freqtrade/configuration/config_schema.py b/freqtrade/config_schema/config_schema.py similarity index 98% rename from freqtrade/configuration/config_schema.py rename to freqtrade/config_schema/config_schema.py index 166d4f4f6..8b88e655a 100644 --- a/freqtrade/configuration/config_schema.py +++ b/freqtrade/config_schema/config_schema.py @@ -689,7 +689,7 @@ CONF_SCHEMA = { "initial_state": { "description": "Initial state of the system.", "type": "string", - "enum": ["running", "stopped"], + "enum": ["running", "paused", "stopped"], }, "force_entry_enable": { "description": "Force enable entry.", @@ -1146,6 +1146,14 @@ CONF_SCHEMA = { "type": "boolean", "default": False, }, + "indicator_periods_candles": { + "description": ( + "Time periods to calculate indicators for. " + "The indicators are added to the base indicator dataset." + ), + "type": "array", + "items": {"type": "number", "minimum": 1}, + }, "use_SVM_to_remove_outliers": { "description": "Use SVM to remove outliers from the features.", "type": "boolean", @@ -1338,7 +1346,8 @@ SCHEMA_BACKTEST_REQUIRED = [ "dataformat_ohlcv", "dataformat_trades", ] -SCHEMA_BACKTEST_REQUIRED_FINAL = SCHEMA_BACKTEST_REQUIRED + [ +SCHEMA_BACKTEST_REQUIRED_FINAL = [ + *SCHEMA_BACKTEST_REQUIRED, "stoploss", "minimal_roi", "max_open_trades", @@ -1350,6 +1359,4 @@ SCHEMA_MINIMAL_REQUIRED = [ "dataformat_ohlcv", "dataformat_trades", ] -SCHEMA_MINIMAL_WEBSERVER = SCHEMA_MINIMAL_REQUIRED + [ - "api_server", -] +SCHEMA_MINIMAL_WEBSERVER = [*SCHEMA_MINIMAL_REQUIRED, "api_server"] diff --git a/freqtrade/configuration/config_validation.py b/freqtrade/configuration/config_validation.py index 8640542a1..07a109bd7 100644 --- a/freqtrade/configuration/config_validation.py +++ b/freqtrade/configuration/config_validation.py @@ -6,7 +6,7 @@ from typing import Any from jsonschema import Draft4Validator, validators from jsonschema.exceptions import ValidationError, best_match -from freqtrade.configuration.config_schema import ( +from freqtrade.config_schema.config_schema import ( CONF_SCHEMA, SCHEMA_BACKTEST_REQUIRED, SCHEMA_BACKTEST_REQUIRED_FINAL, @@ -361,7 +361,7 @@ def _validate_freqai_include_timeframes(conf: dict[str, Any], preliminary: bool) # Ensure that the base timeframe is included in the include_timeframes list if not preliminary and main_tf not in freqai_include_timeframes: feature_parameters = conf.get("freqai", {}).get("feature_parameters", {}) - include_timeframes = [main_tf] + freqai_include_timeframes + include_timeframes = [main_tf, *freqai_include_timeframes] conf.get("freqai", {}).get("feature_parameters", {}).update( {**feature_parameters, "include_timeframes": include_timeframes} ) diff --git a/freqtrade/configuration/configuration.py b/freqtrade/configuration/configuration.py index 3fc30c375..11aff879f 100644 --- a/freqtrade/configuration/configuration.py +++ b/freqtrade/configuration/configuration.py @@ -135,7 +135,7 @@ class Configuration: {"verbosity": safe_value_fallback(self.args, "verbosity", default_value=0)} ) - if "logfile" in self.args and self.args["logfile"]: + if self.args.get("logfile"): config.update({"logfile": self.args["logfile"]}) if "print_colorized" in self.args and not self.args["print_colorized"]: @@ -187,7 +187,7 @@ class Configuration: logger.warning("`force_entry_enable` RPC message enabled.") # Support for sd_notify - if "sd_notify" in self.args and self.args["sd_notify"]: + if self.args.get("sd_notify"): config["internals"].update({"sd_notify": True}) def _process_datadir_options(self, config: Config) -> None: @@ -196,14 +196,14 @@ class Configuration: --user-data, --datadir """ # Check exchange parameter here - otherwise `datadir` might be wrong. - if "exchange" in self.args and self.args["exchange"]: + if self.args.get("exchange"): config["exchange"]["name"] = self.args["exchange"] logger.info(f"Using exchange {config['exchange']['name']}") if "pair_whitelist" not in config["exchange"]: config["exchange"]["pair_whitelist"] = [] - if "user_data_dir" in self.args and self.args["user_data_dir"]: + if self.args.get("user_data_dir"): config.update({"user_data_dir": self.args["user_data_dir"]}) elif "user_data_dir" not in config: # Default to cwd/user_data (legacy option ...) @@ -251,7 +251,7 @@ class Configuration: logstring="Parameter --enable-protections detected, enabling Protections. ...", ) - if "max_open_trades" in self.args and self.args["max_open_trades"]: + if self.args.get("max_open_trades"): config.update({"max_open_trades": self.args["max_open_trades"]}) logger.info( "Parameter --max-open-trades detected, overriding max_open_trades to: %s ...", @@ -314,7 +314,7 @@ class Configuration: self._args_to_config_loop(config, configurations) # Edge section: - if "stoploss_range" in self.args and self.args["stoploss_range"]: + if self.args.get("stoploss_range"): txt_range = ast.literal_eval(self.args["stoploss_range"]) config["edge"].update({"stoploss_range_min": txt_range[0]}) config["edge"].update({"stoploss_range_max": txt_range[1]}) @@ -493,7 +493,7 @@ class Configuration: config["exchange"]["pair_whitelist"] = config["pairs"] return - if "pairs_file" in self.args and self.args["pairs_file"]: + if self.args.get("pairs_file"): pairs_file = Path(self.args["pairs_file"]) logger.info(f'Reading pairs file "{pairs_file}".') # Download pairs from the pairs file if no config is specified @@ -505,7 +505,7 @@ class Configuration: config["pairs"].sort() return - if "config" in self.args and self.args["config"]: + if self.args.get("config"): logger.info("Using pairlist from configuration.") config["pairs"] = config.get("exchange", {}).get("pair_whitelist") else: diff --git a/freqtrade/configuration/directory_operations.py b/freqtrade/configuration/directory_operations.py index 4cbd444a3..1fa5c7947 100644 --- a/freqtrade/configuration/directory_operations.py +++ b/freqtrade/configuration/directory_operations.py @@ -37,7 +37,7 @@ def chown_user_directory(directory: Path) -> None: """ if running_in_docker(): try: - import subprocess # noqa: S404 + import subprocess # noqa: S404, RUF100 subprocess.check_output(["sudo", "chown", "-R", "ftuser:", str(directory.resolve())]) except Exception: diff --git a/freqtrade/constants.py b/freqtrade/constants.py index 1b99dd6ec..807b0888b 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -37,6 +37,7 @@ HYPEROPT_LOSS_BUILTIN = [ "CalmarHyperOptLoss", "MaxDrawDownHyperOptLoss", "MaxDrawDownRelativeHyperOptLoss", + "MaxDrawDownPerPairHyperOptLoss", "ProfitDrawDownHyperOptLoss", "MultiMetricHyperOptLoss", ] @@ -70,6 +71,19 @@ DEFAULT_DATAFRAME_COLUMNS = ["date", "open", "high", "low", "close", "volume"] # it has wide consequences for stored trades files DEFAULT_TRADES_COLUMNS = ["timestamp", "id", "type", "side", "price", "amount", "cost"] DEFAULT_ORDERFLOW_COLUMNS = ["level", "bid", "ask", "delta"] +ORDERFLOW_ADDED_COLUMNS = [ + "trades", + "orderflow", + "imbalances", + "stacked_imbalances_bid", + "stacked_imbalances_ask", + "max_delta", + "min_delta", + "bid", + "ask", + "delta", + "total_trades", +] TRADES_DTYPES = { "timestamp": "int64", "id": "str", @@ -99,7 +113,7 @@ DL_DATA_TIMEFRAMES = ["1m", "5m"] ENV_VAR_PREFIX = "FREQTRADE__" CANCELED_EXCHANGE_STATES = ("cancelled", "canceled", "expired", "rejected") -NON_OPEN_EXCHANGE_STATES = CANCELED_EXCHANGE_STATES + ("closed",) +NON_OPEN_EXCHANGE_STATES = (*CANCELED_EXCHANGE_STATES, "closed") # Define decimals per coin for outputs # Only used for outputs. diff --git a/freqtrade/data/btanalysis/__init__.py b/freqtrade/data/btanalysis/__init__.py new file mode 100644 index 000000000..48fdcd9b5 --- /dev/null +++ b/freqtrade/data/btanalysis/__init__.py @@ -0,0 +1,31 @@ +# flake8: noqa: F401 +from .bt_fileutils import ( + BT_DATA_COLUMNS, + delete_backtest_result, + extract_trades_of_period, + find_existing_backtest_stats, + get_backtest_market_change, + get_backtest_result, + get_backtest_resultlist, + get_latest_backtest_filename, + get_latest_hyperopt_file, + get_latest_hyperopt_filename, + get_latest_optimize_filename, + load_and_merge_backtest_result, + load_backtest_analysis_data, + load_backtest_data, + load_backtest_metadata, + load_backtest_stats, + load_exit_signal_candles, + load_file_from_zip, + load_rejected_signals, + load_signal_candles, + load_trades, + load_trades_from_db, + trade_list_to_dataframe, + update_backtest_metadata, +) +from .trade_parallelism import ( + analyze_trade_parallelism, + evaluate_result_multi, +) diff --git a/freqtrade/data/btanalysis.py b/freqtrade/data/btanalysis/bt_fileutils.py similarity index 90% rename from freqtrade/data/btanalysis.py rename to freqtrade/data/btanalysis/bt_fileutils.py index 7b0109fa9..50de33974 100644 --- a/freqtrade/data/btanalysis.py +++ b/freqtrade/data/btanalysis/bt_fileutils.py @@ -13,7 +13,7 @@ from typing import Any, Literal import numpy as np import pandas as pd -from freqtrade.constants import LAST_BT_RESULT_FN, IntOrInf +from freqtrade.constants import LAST_BT_RESULT_FN from freqtrade.exceptions import ConfigurationError, OperationalException from freqtrade.ft_types import BacktestHistoryEntryType, BacktestResultType from freqtrade.misc import file_dump_json, json_load @@ -52,6 +52,7 @@ BT_DATA_COLUMNS = [ "open_timestamp", "close_timestamp", "orders", + "funding_fees", ] @@ -356,6 +357,8 @@ def _load_backtest_data_df_compatibility(df: pd.DataFrame) -> pd.DataFrame: df["max_stake_amount"] = df["stake_amount"] if "orders" not in df.columns: df["orders"] = None + if "funding_fees" not in df.columns: + df["funding_fees"] = 0.0 return df @@ -376,7 +379,7 @@ def load_backtest_data(filename: Path | str, strategy: str | None = None) -> pd. if not strategy: if len(data["strategy"]) == 1: - strategy = list(data["strategy"].keys())[0] + strategy = next(iter(data["strategy"].keys())) else: raise ValueError( "Detected backtest result with more than one strategy. " @@ -491,55 +494,6 @@ def load_exit_signal_candles(backtest_dir: Path) -> dict[str, dict[str, pd.DataF return load_backtest_analysis_data(backtest_dir, "exited") -def analyze_trade_parallelism(results: pd.DataFrame, timeframe: str) -> pd.DataFrame: - """ - Find overlapping trades by expanding each trade once per period it was open - and then counting overlaps. - :param results: Results Dataframe - can be loaded - :param timeframe: Timeframe used for backtest - :return: dataframe with open-counts per time-period in timeframe - """ - from freqtrade.exchange import timeframe_to_resample_freq - - timeframe_freq = timeframe_to_resample_freq(timeframe) - dates = [ - pd.Series( - pd.date_range( - row[1]["open_date"], - row[1]["close_date"], - freq=timeframe_freq, - # Exclude right boundary - the date is the candle open date. - inclusive="left", - ) - ) - for row in results[["open_date", "close_date"]].iterrows() - ] - deltas = [len(x) for x in dates] - dates = pd.Series(pd.concat(dates).values, name="date") - df2 = pd.DataFrame(np.repeat(results.values, deltas, axis=0), columns=results.columns) - - df2 = pd.concat([dates, df2], axis=1) - df2 = df2.set_index("date") - df_final = df2.resample(timeframe_freq)[["pair"]].count() - df_final = df_final.rename({"pair": "open_trades"}, axis=1) - return df_final - - -def evaluate_result_multi( - results: pd.DataFrame, timeframe: str, max_open_trades: IntOrInf -) -> pd.DataFrame: - """ - Find overlapping trades by expanding each trade once per period it was open - and then counting overlaps - :param results: Results Dataframe - can be loaded - :param timeframe: Frequency used for the backtest - :param max_open_trades: parameter max_open_trades used during backtest run - :return: dataframe with open-counts per time-period in freq - """ - df_final = analyze_trade_parallelism(results, timeframe) - return df_final[df_final["open_trades"] > max_open_trades] - - def trade_list_to_dataframe(trades: list[Trade] | list[LocalTrade]) -> pd.DataFrame: """ Convert list of Trade objects to pandas Dataframe diff --git a/freqtrade/data/btanalysis/trade_parallelism.py b/freqtrade/data/btanalysis/trade_parallelism.py new file mode 100644 index 000000000..eabdcf08a --- /dev/null +++ b/freqtrade/data/btanalysis/trade_parallelism.py @@ -0,0 +1,60 @@ +import logging + +import numpy as np +import pandas as pd + +from freqtrade.constants import IntOrInf + + +logger = logging.getLogger(__name__) + + +def analyze_trade_parallelism(trades: pd.DataFrame, timeframe: str) -> pd.DataFrame: + """ + Find overlapping trades by expanding each trade once per period it was open + and then counting overlaps. + :param trades: Trades Dataframe - can be loaded from backtest, or created + via trade_list_to_dataframe + :param timeframe: Timeframe used for backtest + :return: dataframe with open-counts per time-period in timeframe + """ + from freqtrade.exchange import timeframe_to_resample_freq + + timeframe_freq = timeframe_to_resample_freq(timeframe) + dates = [ + pd.Series( + pd.date_range( + row[1]["open_date"], + row[1]["close_date"], + freq=timeframe_freq, + # Exclude right boundary - the date is the candle open date. + inclusive="left", + ) + ) + for row in trades[["open_date", "close_date"]].iterrows() + ] + deltas = [len(x) for x in dates] + dates = pd.Series(pd.concat(dates).values, name="date") + df2 = pd.DataFrame(np.repeat(trades.values, deltas, axis=0), columns=trades.columns) + + df2 = pd.concat([dates, df2], axis=1) + df2 = df2.set_index("date") + df_final = df2.resample(timeframe_freq)[["pair"]].count() + df_final = df_final.rename({"pair": "open_trades"}, axis=1) + return df_final + + +def evaluate_result_multi( + trades: pd.DataFrame, timeframe: str, max_open_trades: IntOrInf +) -> pd.DataFrame: + """ + Find overlapping trades by expanding each trade once per period it was open + and then counting overlaps + :param trades: Trades Dataframe - can be loaded from backtest, or created + via trade_list_to_dataframe + :param timeframe: Frequency used for the backtest + :param max_open_trades: parameter max_open_trades used during backtest run + :return: dataframe with open-counts per time-period in freq + """ + df_final = analyze_trade_parallelism(trades, timeframe) + return df_final[df_final["open_trades"] > max_open_trades] diff --git a/freqtrade/data/converter/orderflow.py b/freqtrade/data/converter/orderflow.py index 4b4923cfb..2b4a1fc61 100644 --- a/freqtrade/data/converter/orderflow.py +++ b/freqtrade/data/converter/orderflow.py @@ -9,26 +9,12 @@ from datetime import datetime import numpy as np import pandas as pd -from freqtrade.constants import DEFAULT_ORDERFLOW_COLUMNS, Config +from freqtrade.constants import DEFAULT_ORDERFLOW_COLUMNS, ORDERFLOW_ADDED_COLUMNS, Config from freqtrade.exceptions import DependencyException logger = logging.getLogger(__name__) -ORDERFLOW_ADDED_COLUMNS = [ - "trades", - "orderflow", - "imbalances", - "stacked_imbalances_bid", - "stacked_imbalances_ask", - "max_delta", - "min_delta", - "bid", - "ask", - "delta", - "total_trades", -] - def _init_dataframe_with_trades_columns(dataframe: pd.DataFrame): """ diff --git a/freqtrade/data/entryexitanalysis.py b/freqtrade/data/entryexitanalysis.py index 0c49b775c..2bea8a5db 100644 --- a/freqtrade/data/entryexitanalysis.py +++ b/freqtrade/data/entryexitanalysis.py @@ -281,7 +281,7 @@ def _merge_dfs( ): merge_on = ["pair", "open_date"] signal_wide_indicators = list(set(available_inds) - set(BT_DATA_COLUMNS)) - columns_to_keep = merge_on + ["enter_reason", "exit_reason"] + columns_to_keep = [*merge_on, "enter_reason", "exit_reason"] if exit_df is None or exit_df.empty or entry_only is True: return entry_df[columns_to_keep + available_inds] diff --git a/freqtrade/data/history/history_utils.py b/freqtrade/data/history/history_utils.py index 806fd49da..9fd254057 100644 --- a/freqtrade/data/history/history_utils.py +++ b/freqtrade/data/history/history_utils.py @@ -116,7 +116,7 @@ def load_data( result[pair] = hist else: if candle_type is CandleType.FUNDING_RATE and user_futures_funding_rate is not None: - logger.warn(f"{pair} using user specified [{user_futures_funding_rate}]") + logger.warning(f"{pair} using user specified [{user_futures_funding_rate}]") elif candle_type not in (CandleType.SPOT, CandleType.FUTURES): result[pair] = DataFrame(columns=["date", "open", "close", "high", "low", "volume"]) diff --git a/freqtrade/data/metrics.py b/freqtrade/data/metrics.py index d2ae2d64b..6a1ad2766 100644 --- a/freqtrade/data/metrics.py +++ b/freqtrade/data/metrics.py @@ -10,7 +10,9 @@ import pandas as pd logger = logging.getLogger(__name__) -def calculate_market_change(data: dict[str, pd.DataFrame], column: str = "close") -> float: +def calculate_market_change( + data: dict[str, pd.DataFrame], column: str = "close", min_date: datetime | None = None +) -> float: """ Calculate market change based on "column". Calculation is done by taking the first non-null and the last non-null element of each column @@ -19,14 +21,24 @@ def calculate_market_change(data: dict[str, pd.DataFrame], column: str = "close" :param data: Dict of Dataframes, dict key should be pair. :param column: Column in the original dataframes to use + :param min_date: Minimum date to consider for calculations. Market change should only be + calculated for data actually backtested, excluding startup periods. :return: """ tmp_means = [] for pair, df in data.items(): - start = df[column].dropna().iloc[0] - end = df[column].dropna().iloc[-1] + df1 = df + if min_date is not None: + df1 = df1[df1["date"] >= min_date] + if df1.empty: + logger.warning(f"Pair {pair} has no data after {min_date}.") + continue + start = df1[column].dropna().iloc[0] + end = df1[column].dropna().iloc[-1] tmp_means.append((end - start) / start) + if not tmp_means: + return 0.0 return float(np.mean(tmp_means)) @@ -118,7 +130,7 @@ def _calc_drawdown_series( ) -> pd.DataFrame: max_drawdown_df = pd.DataFrame() max_drawdown_df["cumulative"] = profit_results[value_col].cumsum() - max_drawdown_df["high_value"] = max_drawdown_df["cumulative"].cummax() + max_drawdown_df["high_value"] = np.maximum(0, max_drawdown_df["cumulative"].cummax()) max_drawdown_df["drawdown"] = max_drawdown_df["cumulative"] - max_drawdown_df["high_value"] max_drawdown_df["date"] = profit_results.loc[:, date_col] if starting_balance: @@ -201,13 +213,11 @@ def calculate_max_drawdown( if relative else max_drawdown_df["drawdown"].idxmin() ) - if idxmin == 0: - raise ValueError("No losing trade, therefore no drawdown.") - high_date = profit_results.loc[max_drawdown_df.iloc[:idxmin]["high_value"].idxmax(), date_col] + + high_idx = max_drawdown_df.iloc[: idxmin + 1]["high_value"].idxmax() + high_date = profit_results.loc[high_idx, date_col] low_date = profit_results.loc[idxmin, date_col] - high_val = max_drawdown_df.loc[ - max_drawdown_df.iloc[:idxmin]["high_value"].idxmax(), "cumulative" - ] + high_val = max_drawdown_df.loc[high_idx, "cumulative"] low_val = max_drawdown_df.loc[idxmin, "cumulative"] max_drawdown_rel = max_drawdown_df.loc[idxmin, "drawdown_relative"] diff --git a/freqtrade/enums/state.py b/freqtrade/enums/state.py index 1ce486920..20b3766b9 100644 --- a/freqtrade/enums/state.py +++ b/freqtrade/enums/state.py @@ -7,8 +7,9 @@ class State(Enum): """ RUNNING = 1 - STOPPED = 2 - RELOAD_CONFIG = 3 + PAUSED = 2 + STOPPED = 3 + RELOAD_CONFIG = 4 def __str__(self): return f"{self.name.lower()}" diff --git a/freqtrade/exchange/binance.py b/freqtrade/exchange/binance.py index c67263096..57b7da2e0 100644 --- a/freqtrade/exchange/binance.py +++ b/freqtrade/exchange/binance.py @@ -143,7 +143,7 @@ class Binance(Exchange): Does not work for other exchanges, which don't return the earliest data when called with "0" :param candle_type: Any of the enum CandleType (must match trading mode!) """ - if is_new_pair: + if is_new_pair and candle_type in (CandleType.SPOT, CandleType.FUTURES, CandleType.MARK): with self._loop_lock: x = self.loop.run_until_complete( self._async_get_candle_history(pair, timeframe, candle_type, 0) diff --git a/freqtrade/exchange/binance_leverage_tiers.json b/freqtrade/exchange/binance_leverage_tiers.json index 4eb970b2c..663bd15b9 100644 --- a/freqtrade/exchange/binance_leverage_tiers.json +++ b/freqtrade/exchange/binance_leverage_tiers.json @@ -298,13 +298,13 @@ "symbol": "1000BONK/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" @@ -314,136 +314,153 @@ "tier": 2.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 100000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "100000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "500000", - "notionalFloor": "100000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "550.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "3050.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 5000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "5000000", - "notionalFloor": "1000000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "28050.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 6000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "6000000", - "notionalFloor": "5000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "278050.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 7000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "7000000", - "notionalFloor": "6000000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "428050.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 7000000.0, - "maxNotional": 8000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "8000000", - "notionalFloor": "7000000", - "maintMarginRatio": "0.25", - "cum": "1303050.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "1000BONK/USDT:USDT", "currency": "USDT", - "minNotional": 8000000.0, - "maxNotional": 9000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "1000BONK/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "9000000", - "notionalFloor": "8000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "3303050.0" + "cum": "1568050.0" } } ], @@ -455,10 +472,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -472,10 +489,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -489,10 +506,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -506,10 +523,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -523,10 +540,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -572,33 +589,50 @@ "symbol": "1000CAT/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "1000CAT/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "1000CAT/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -763,13 +797,13 @@ "symbol": "1000FLOKI/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" @@ -779,136 +813,153 @@ "tier": 2.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 3000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "3000000", - "notionalFloor": "600000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3500000", - "notionalFloor": "3000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "166850.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 3500000.0, - "maxNotional": 4000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3500000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "254350.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "4500000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.25", - "cum": "754350.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "1000FLOKI/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 3000000.0, "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "1000FLOKI/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "4500000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1879350.0" + "cum": "1568050.0" } } ], @@ -1351,10 +1402,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -1368,10 +1419,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -1385,10 +1436,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -1402,10 +1453,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -1419,10 +1470,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -1468,33 +1519,50 @@ "symbol": "1000RATS/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 2750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3000000", + "initialLeverage": "3", + "notionalCap": "2750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "1000RATS/USDT:USDT", "currency": "USDT", + "minNotional": 2750000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "3000000", + "notionalFloor": "2750000", + "maintMarginRatio": "0.25", + "cum": "438975.0" + } + }, + { + "tier": 10.0, + "symbol": "1000RATS/USDT:USDT", + "currency": "USDT", "minNotional": 3000000.0, "maxNotional": 3500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "3500000", "notionalFloor": "3000000", "maintMarginRatio": "0.5", - "cum": "1168150.0" + "cum": "1188975.0" } } ], @@ -1506,10 +1574,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "10", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -1521,13 +1589,13 @@ "symbol": "1000SATS/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 60000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "60000", + "initialLeverage": "8", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.015", "cum": "50.0" @@ -1537,119 +1605,119 @@ "tier": 3.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 50000.0, + "maxNotional": 200000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "initialLeverage": "7", + "notionalCap": "200000", + "notionalFloor": "50000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "300.0" } }, { "tier": 4.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 200000.0, + "maxNotional": 400000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "initialLeverage": "6", + "notionalCap": "400000", + "notionalFloor": "200000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "1300.0" } }, { "tier": 5.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 3000000.0, + "minNotional": 400000.0, + "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "3000000", - "notionalFloor": "600000", + "initialLeverage": "5", + "notionalCap": "800000", + "notionalFloor": "400000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "11300.0" } }, { "tier": 6.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 6000000.0, + "minNotional": 800000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", - "notionalCap": "6000000", - "notionalFloor": "3000000", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "166850.0" + "cum": "51300.0" } }, { "tier": 7.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 7000000.0, + "minNotional": 1000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "7000000", - "notionalFloor": "6000000", + "initialLeverage": "3", + "notionalCap": "2000000", + "notionalFloor": "1000000", "maintMarginRatio": "0.125", - "cum": "316850.0" + "cum": "76300.0" } }, { "tier": 8.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 7000000.0, - "maxNotional": 8000000.0, + "minNotional": 2000000.0, + "maxNotional": 3000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "8000000", - "notionalFloor": "7000000", + "notionalCap": "3000000", + "notionalFloor": "2000000", "maintMarginRatio": "0.25", - "cum": "1191850.0" + "cum": "326300.0" } }, { "tier": 9.0, "symbol": "1000SATS/USDT:USDT", "currency": "USDT", - "minNotional": 8000000.0, - "maxNotional": 9000000.0, + "minNotional": 3000000.0, + "maxNotional": 3500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "9000000", - "notionalFloor": "8000000", + "notionalCap": "3500000", + "notionalFloor": "3000000", "maintMarginRatio": "0.5", - "cum": "3191850.0" + "cum": "1076300.0" } } ], @@ -2260,13 +2328,13 @@ "symbol": "1000X/USDT:USDT", "currency": "USDT", "minNotional": 700000.0, - "maxNotional": 800000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "800000", + "notionalCap": "1500000", "notionalFloor": "700000", "maintMarginRatio": "0.25", "cum": "119225.0" @@ -2276,17 +2344,17 @@ "tier": 9.0, "symbol": "1000X/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, - "maxNotional": 900000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "900000", - "notionalFloor": "800000", + "notionalCap": "2500000", + "notionalFloor": "1500000", "maintMarginRatio": "0.5", - "cum": "319225.0" + "cum": "494225.0" } } ], @@ -2453,10 +2521,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -2470,10 +2538,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -2487,10 +2555,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -2504,10 +2572,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -2521,10 +2589,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -2570,33 +2638,50 @@ "symbol": "1INCH/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "1INCH/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "1INCH/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -2608,10 +2693,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -2623,13 +2708,13 @@ "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 30000.0, + "maxNotional": 40000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "30000", + "initialLeverage": "10", + "notionalCap": "40000", "notionalFloor": "10000", "maintMarginRatio": "0.015", "cum": "50.0" @@ -2639,51 +2724,51 @@ "tier": 3.0, "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", - "minNotional": 30000.0, - "maxNotional": 150000.0, + "minNotional": 40000.0, + "maxNotional": 200000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "150000", - "notionalFloor": "30000", + "initialLeverage": "7", + "notionalCap": "200000", + "notionalFloor": "40000", "maintMarginRatio": "0.02", - "cum": "200.0" + "cum": "250.0" } }, { "tier": 4.0, "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 300000.0, + "minNotional": 200000.0, + "maxNotional": 400000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "300000", - "notionalFloor": "150000", + "initialLeverage": "6", + "notionalCap": "400000", + "notionalFloor": "200000", "maintMarginRatio": "0.025", - "cum": "950.0" + "cum": "1250.0" } }, { "tier": 5.0, "symbol": "1MBABYDOGE/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, + "minNotional": 400000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1500000", - "notionalFloor": "300000", + "notionalFloor": "400000", "maintMarginRatio": "0.05", - "cum": "8450.0" + "cum": "11250.0" } }, { @@ -2693,14 +2778,14 @@ "minNotional": 1500000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.1", - "cum": "83450.0" + "cum": "86250.0" } }, { @@ -2710,14 +2795,14 @@ "minNotional": 2000000.0, "maxNotional": 2500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.125", - "cum": "133450.0" + "cum": "136250.0" } }, { @@ -2734,7 +2819,7 @@ "notionalCap": "3000000", "notionalFloor": "2500000", "maintMarginRatio": "0.25", - "cum": "445950.0" + "cum": "448750.0" } }, { @@ -2751,7 +2836,7 @@ "notionalCap": "3500000", "notionalFloor": "3000000", "maintMarginRatio": "0.5", - "cum": "1195950.0" + "cum": "1198750.0" } } ], @@ -2916,15 +3001,15 @@ "symbol": "ACE/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -2932,72 +3017,89 @@ "tier": 2.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1400.0" + "initialLeverage": "7", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "500000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1420.0" + } + }, + { + "tier": 6.0, + "symbol": "ACE/USDT:USDT", + "currency": "USDT", "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", - "cum": "26400.0" + "cum": "26420.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, @@ -3005,46 +3107,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", - "cum": "51400.0" - } - }, - { - "tier": 7.0, - "symbol": "ACE/USDT:USDT", - "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "207650.0" + "cum": "51420.0" } }, { "tier": 8.0, "symbol": "ACE/USDT:USDT", "currency": "USDT", + "minNotional": 1250000.0, + "maxNotional": 1875000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1875000", + "notionalFloor": "1250000", + "maintMarginRatio": "0.1667", + "cum": "103545.0" + } + }, + { + "tier": 9.0, + "symbol": "ACE/USDT:USDT", + "currency": "USDT", + "minNotional": 1875000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1875000", + "maintMarginRatio": "0.25", + "cum": "259732.5" + } + }, + { + "tier": 10.0, + "symbol": "ACE/USDT:USDT", + "currency": "USDT", "minNotional": 2500000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "5000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "832650.0" + "cum": "884732.5" } } ], @@ -3194,10 +3313,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -3209,13 +3328,13 @@ "symbol": "ACT/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 80000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "80000", + "initialLeverage": "8", + "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.015", "cum": "50.0" @@ -3225,119 +3344,119 @@ "tier": 3.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 400000.0, + "minNotional": 50000.0, + "maxNotional": 300000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "15", - "notionalCap": "400000", - "notionalFloor": "80000", + "initialLeverage": "7", + "notionalCap": "300000", + "notionalFloor": "50000", "maintMarginRatio": "0.02", - "cum": "450.0" + "cum": "300.0" } }, { "tier": 4.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 800000.0, + "minNotional": 300000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "400000", + "initialLeverage": "6", + "notionalCap": "500000", + "notionalFloor": "300000", "maintMarginRatio": "0.025", - "cum": "2450.0" + "cum": "1800.0" } }, { "tier": 5.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, - "maxNotional": 4000000.0, + "minNotional": 500000.0, + "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "8", - "notionalCap": "4000000", - "notionalFloor": "800000", + "initialLeverage": "5", + "notionalCap": "800000", + "notionalFloor": "500000", "maintMarginRatio": "0.05", - "cum": "22450.0" + "cum": "14300.0" } }, { "tier": 6.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 8000000.0, + "minNotional": 800000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", - "notionalCap": "8000000", - "notionalFloor": "4000000", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "222450.0" + "cum": "54300.0" } }, { "tier": 7.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 8000000.0, - "maxNotional": 8500000.0, + "minNotional": 1000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "8500000", - "notionalFloor": "8000000", + "initialLeverage": "3", + "notionalCap": "2000000", + "notionalFloor": "1000000", "maintMarginRatio": "0.125", - "cum": "422450.0" + "cum": "79300.0" } }, { "tier": 8.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 8500000.0, - "maxNotional": 9000000.0, + "minNotional": 2000000.0, + "maxNotional": 3000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "9000000", - "notionalFloor": "8500000", + "notionalCap": "3000000", + "notionalFloor": "2000000", "maintMarginRatio": "0.25", - "cum": "1484950.0" + "cum": "329300.0" } }, { "tier": 9.0, "symbol": "ACT/USDT:USDT", "currency": "USDT", - "minNotional": 9000000.0, - "maxNotional": 10000000.0, + "minNotional": 3000000.0, + "maxNotional": 3500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "10000000", - "notionalFloor": "9000000", + "notionalCap": "3500000", + "notionalFloor": "3000000", "maintMarginRatio": "0.5", - "cum": "3734950.0" + "cum": "1079300.0" } } ], @@ -3349,10 +3468,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -3366,10 +3485,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -3383,10 +3502,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -3400,10 +3519,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -3417,10 +3536,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -3466,33 +3585,50 @@ "symbol": "ACX/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "ACX/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "ACX/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -3829,15 +3965,15 @@ "symbol": "AERGO/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 40000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 7.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "7", - "notionalCap": "40000", + "initialLeverage": "50", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.025", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -3845,85 +3981,136 @@ "tier": 2.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "6", - "notionalCap": "200000", - "notionalFloor": "40000", - "maintMarginRatio": "0.05", - "cum": "1000.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", - "maintMarginRatio": "0.1", - "cum": "11000.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "150.0" } }, { "tier": 4.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", - "maintMarginRatio": "0.125", - "cum": "21000.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1400.0" } }, { "tier": 5.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "2", - "notionalCap": "600000", - "notionalFloor": "500000", - "maintMarginRatio": "0.25", - "cum": "83500.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13900.0" } }, { "tier": 6.0, "symbol": "AERGO/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 700000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26400.0" + } + }, + { + "tier": 7.0, + "symbol": "AERGO/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68100.0" + } + }, + { + "tier": 8.0, + "symbol": "AERGO/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318000.0" + } + }, + { + "tier": 9.0, + "symbol": "AERGO/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "6", + "bracket": "9", "initialLeverage": "1", - "notionalCap": "700000", - "notionalFloor": "600000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "233500.0" + "cum": "1568000.0" } } ], @@ -4089,14 +4276,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -4105,15 +4292,15 @@ "symbol": "AEVO/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "50", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -4121,102 +4308,136 @@ "tier": 3.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", - "maintMarginRatio": "0.025", - "cum": "275.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "1000000", - "notionalFloor": "100000", - "maintMarginRatio": "0.05", - "cum": "2775.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.1", - "cum": "52775.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "2500000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.125", - "cum": "102775.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "2", - "notionalCap": "5000000", - "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "415275.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "AEVO/USDT:USDT", "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" + } + }, + { + "tier": 9.0, + "symbol": "AEVO/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "AEVO/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, - "maxNotional": 10000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "10000000", + "notionalCap": "8000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1665275.0" + "cum": "1568050.0" } } ], @@ -4502,15 +4723,15 @@ "symbol": "AI/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -4518,72 +4739,89 @@ "tier": 2.0, "symbol": "AI/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "AI/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "AI/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 800000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "80000", - "maintMarginRatio": "0.05", - "cum": "2150.0" + "initialLeverage": "7", + "notionalCap": "80000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "AI/USDT:USDT", "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "800000", + "notionalFloor": "80000", + "maintMarginRatio": "0.05", + "cum": "2170.0" + } + }, + { + "tier": 6.0, + "symbol": "AI/USDT:USDT", + "currency": "USDT", "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "42150.0" + "cum": "42170.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "AI/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -4591,46 +4829,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "82150.0" - } - }, - { - "tier": 7.0, - "symbol": "AI/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "332150.0" + "cum": "82170.0" } }, { "tier": 8.0, "symbol": "AI/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "165570.0" + } + }, + { + "tier": 9.0, + "symbol": "AI/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "415470.0" + } + }, + { + "tier": 10.0, + "symbol": "AI/USDT:USDT", + "currency": "USDT", "minNotional": 4000000.0, "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "8000000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "1332150.0" + "cum": "1415470.0" } } ], @@ -4642,10 +4897,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -4659,10 +4914,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -4676,10 +4931,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -4693,10 +4948,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -4710,10 +4965,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -4727,10 +4982,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -4744,10 +4999,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -4789,6 +5044,161 @@ } } ], + "AIOT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "AIOT/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": "AIOT/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": "AIOT/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "AIOT/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "AIOT/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "AIOT/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "AIOT/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "AIOT/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": "159625.0" + } + }, + { + "tier": 9.0, + "symbol": "AIOT/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": "784625.0" + } + } + ], "AIXBT/USDT:USDT": [ { "tier": 1.0, @@ -5107,10 +5517,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -5124,10 +5534,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "8", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -5141,10 +5551,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "7", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -5158,10 +5568,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -5175,10 +5585,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -5192,10 +5602,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -5209,10 +5619,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -5553,15 +5963,15 @@ "symbol": "ALPACA/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 10.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.08, + "maxLeverage": 5.0, "info": { "bracket": "1", - "initialLeverage": "10", - "notionalCap": "5000", + "initialLeverage": "5", + "notionalCap": "100000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.08", "cum": "0.0" } }, @@ -5569,123 +5979,55 @@ "tier": 2.0, "symbol": "ALPACA/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 9.0, + "minNotional": 100000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 4.0, "info": { "bracket": "2", - "initialLeverage": "9", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.015", - "cum": "25.0" + "initialLeverage": "4", + "notionalCap": "200000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1", + "cum": "2000.0" } }, { "tier": 3.0, "symbol": "ALPACA/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 20000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 8.0, + "minNotional": 200000.0, + "maxNotional": 400000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 3.0, "info": { "bracket": "3", - "initialLeverage": "8", - "notionalCap": "20000", - "notionalFloor": "10000", - "maintMarginRatio": "0.02", - "cum": "75.0" + "initialLeverage": "3", + "notionalCap": "400000", + "notionalFloor": "200000", + "maintMarginRatio": "0.125", + "cum": "7000.0" } }, { "tier": 4.0, "symbol": "ALPACA/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 40000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 7.0, - "info": { - "bracket": "4", - "initialLeverage": "7", - "notionalCap": "40000", - "notionalFloor": "20000", - "maintMarginRatio": "0.025", - "cum": "175.0" - } - }, - { - "tier": 5.0, - "symbol": "ALPACA/USDT:USDT", - "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, - "info": { - "bracket": "5", - "initialLeverage": "6", - "notionalCap": "200000", - "notionalFloor": "40000", - "maintMarginRatio": "0.05", - "cum": "1175.0" - } - }, - { - "tier": 6.0, - "symbol": "ALPACA/USDT:USDT", - "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "6", - "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", - "maintMarginRatio": "0.1", - "cum": "11175.0" - } - }, - { - "tier": 7.0, - "symbol": "ALPACA/USDT:USDT", - "currency": "USDT", "minNotional": 400000.0, - "maxNotional": 450000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "450000", - "notionalFloor": "400000", - "maintMarginRatio": "0.125", - "cum": "21175.0" - } - }, - { - "tier": 8.0, - "symbol": "ALPACA/USDT:USDT", - "currency": "USDT", - "minNotional": 450000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "4", "initialLeverage": "2", "notionalCap": "500000", - "notionalFloor": "450000", + "notionalFloor": "400000", "maintMarginRatio": "0.25", - "cum": "77425.0" + "cum": "57000.0" } }, { - "tier": 9.0, + "tier": 5.0, "symbol": "ALPACA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -5693,12 +6035,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "5", "initialLeverage": "1", "notionalCap": "550000", "notionalFloor": "500000", "maintMarginRatio": "0.5", - "cum": "202425.0" + "cum": "182000.0" } } ], @@ -5848,10 +6190,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -5865,10 +6207,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -5882,10 +6224,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -5899,10 +6241,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -5916,10 +6258,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -5933,10 +6275,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -5950,10 +6292,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -6383,10 +6725,10 @@ "minNotional": 0.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.0065, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "25000", "notionalFloor": "0", "maintMarginRatio": "0.0065", @@ -6400,10 +6742,10 @@ "minNotional": 25000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "25000", "maintMarginRatio": "0.01", @@ -6417,10 +6759,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 40.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "40", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.015", @@ -6434,10 +6776,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.02", @@ -6451,10 +6793,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.025", @@ -6468,10 +6810,10 @@ "minNotional": 1000000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "3000000", "notionalFloor": "1000000", "maintMarginRatio": "0.05", @@ -6485,10 +6827,10 @@ "minNotional": 3000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "4000000", "notionalFloor": "3000000", "maintMarginRatio": "0.1", @@ -6502,10 +6844,10 @@ "minNotional": 4000000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "5000000", "notionalFloor": "4000000", "maintMarginRatio": "0.125", @@ -6555,10 +6897,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.015", @@ -6572,10 +6914,10 @@ "minNotional": 5000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", @@ -6589,10 +6931,10 @@ "minNotional": 25000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "25000", "maintMarginRatio": "0.05", @@ -6606,10 +6948,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.06, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "8", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.06", @@ -6623,10 +6965,10 @@ "minNotional": 500000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -6640,10 +6982,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -6848,10 +7190,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -6865,10 +7207,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -6882,10 +7224,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -6899,10 +7241,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -6916,10 +7258,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -6965,33 +7307,50 @@ "symbol": "AR/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "AR/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "AR/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -7432,12 +7791,150 @@ "symbol": "ARK/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 10.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 8.0, "info": { "bracket": "1", - "initialLeverage": "10", + "initialLeverage": "8", + "notionalCap": "20000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 40000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, + "info": { + "bracket": "2", + "initialLeverage": "7", + "notionalCap": "40000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "100.0" + } + }, + { + "tier": 3.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 40000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "3", + "initialLeverage": "6", + "notionalCap": "200000", + "notionalFloor": "40000", + "maintMarginRatio": "0.05", + "cum": "1100.0" + } + }, + { + "tier": 4.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "200000", + "maintMarginRatio": "0.1", + "cum": "11100.0" + } + }, + { + "tier": 5.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "23600.0" + } + }, + { + "tier": 6.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "65300.0" + } + }, + { + "tier": 7.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.25", + "cum": "231900.0" + } + }, + { + "tier": 8.0, + "symbol": "ARK/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 3500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "3500000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.5", + "cum": "981900.0" + } + } + ], + "ARKM/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ARKM/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", @@ -7446,15 +7943,15 @@ }, { "tier": 2.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 9.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "9", + "initialLeverage": "50", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -7463,16 +7960,16 @@ }, { "tier": 3.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 20000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 8.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "8", - "notionalCap": "20000", + "initialLeverage": "25", + "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -7480,43 +7977,43 @@ }, { "tier": 4.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 40000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 7.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "7", - "notionalCap": "40000", - "notionalFloor": "20000", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "175.0" + "cum": "200.0" } }, { "tier": 5.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 6.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "6", - "notionalCap": "200000", - "notionalFloor": "40000", + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "1175.0" + "cum": "1450.0" } }, { "tier": 6.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, + "minNotional": 250000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, @@ -7524,14 +8021,14 @@ "bracket": "6", "initialLeverage": "5", "notionalCap": "500000", - "notionalFloor": "200000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "11175.0" + "cum": "13950.0" } }, { "tier": 7.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, "maxNotional": 1000000.0, @@ -7543,196 +8040,58 @@ "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "23675.0" + "cum": "26450.0" } }, { "tier": 8.0, - "symbol": "ARK/USDT:USDT", + "symbol": "ARKM/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", + "initialLeverage": "3", "notionalCap": "3000000", "notionalFloor": "1000000", - "maintMarginRatio": "0.25", - "cum": "148675.0" + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, - "symbol": "ARK/USDT:USDT", - "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "9", - "initialLeverage": "1", - "notionalCap": "3500000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.5", - "cum": "898675.0" - } - } - ], - "ARKM/USDT:USDT": [ - { - "tier": 1.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, - "info": { - "bracket": "1", - "initialLeverage": "75", - "notionalCap": "10000", - "notionalFloor": "0", - "maintMarginRatio": "0.01", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 30000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, - "info": { - "bracket": "2", - "initialLeverage": "50", - "notionalCap": "30000", - "notionalFloor": "10000", - "maintMarginRatio": "0.015", - "cum": "50.0" - } - }, - { - "tier": 3.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 30000.0, - "maxNotional": 150000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, - "info": { - "bracket": "3", - "initialLeverage": "25", - "notionalCap": "150000", - "notionalFloor": "30000", - "maintMarginRatio": "0.02", - "cum": "200.0" - } - }, - { - "tier": 4.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 300000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "4", - "initialLeverage": "20", - "notionalCap": "300000", - "notionalFloor": "150000", - "maintMarginRatio": "0.025", - "cum": "950.0" - } - }, - { - "tier": 5.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "5", - "initialLeverage": "10", - "notionalCap": "1500000", - "notionalFloor": "300000", - "maintMarginRatio": "0.05", - "cum": "8450.0" - } - }, - { - "tier": 6.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "6", - "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1500000", - "maintMarginRatio": "0.1", - "cum": "83450.0" - } - }, - { - "tier": 7.0, "symbol": "ARKM/USDT:USDT", "currency": "USDT", "minNotional": 3000000.0, - "maxNotional": 3750000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "3750000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.125", - "cum": "158450.0" - } - }, - { - "tier": 8.0, - "symbol": "ARKM/USDT:USDT", - "currency": "USDT", - "minNotional": 3750000.0, - "maxNotional": 7500000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "9", "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "3750000", + "notionalCap": "5000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "627200.0" + "cum": "318050.0" } }, { - "tier": 9.0, + "tier": 10.0, "symbol": "ARKM/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 15000000.0, + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "15000000", - "notionalFloor": "7500000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "2502200.0" + "cum": "1568050.0" } } ], @@ -7761,10 +8120,10 @@ "minNotional": 5000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 15.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "15", + "initialLeverage": "10", "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", @@ -7778,10 +8137,10 @@ "minNotional": 25000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "600000", "notionalFloor": "25000", "maintMarginRatio": "0.05", @@ -7795,10 +8154,10 @@ "minNotional": 600000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "600000", "maintMarginRatio": "0.1", @@ -7812,10 +8171,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "5", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -8099,6 +8458,144 @@ } } ], + "ATH/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ATH/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": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "20000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "30000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "125.0" + } + }, + { + "tier": 4.0, + "symbol": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "30000", + "maintMarginRatio": "0.05", + "cum": "875.0" + } + }, + { + "tier": 5.0, + "symbol": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "15875.0" + } + }, + { + "tier": 6.0, + "symbol": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "30875.0" + } + }, + { + "tier": 7.0, + "symbol": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "124625.0" + } + }, + { + "tier": 8.0, + "symbol": "ATH/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "499625.0" + } + } + ], "ATOM/USDT:USDT": [ { "tier": 1.0, @@ -8279,10 +8776,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.015", @@ -8296,10 +8793,10 @@ "minNotional": 5000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "15", + "initialLeverage": "8", "notionalCap": "20000", "notionalFloor": "5000", "maintMarginRatio": "0.02", @@ -8313,10 +8810,10 @@ "minNotional": 20000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "30000", "notionalFloor": "20000", "maintMarginRatio": "0.025", @@ -8330,10 +8827,10 @@ "minNotional": 30000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "8", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "30000", "maintMarginRatio": "0.05", @@ -8347,10 +8844,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -8364,10 +8861,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -8396,13 +8893,13 @@ "symbol": "AUCTION/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "3000000", + "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.5", "cum": "499625.0" @@ -9190,15 +9687,15 @@ "symbol": "AXS/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 20000.0, - "maintenanceMarginRate": 0.007, - "maxLeverage": 50.0, + "maxNotional": 8600.0, + "maintenanceMarginRate": 0.0067, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "20000", + "initialLeverage": "20", + "notionalCap": "8600", "notionalFloor": "0", - "maintMarginRatio": "0.007", + "maintMarginRatio": "0.0067", "cum": "0.0" } }, @@ -9206,136 +9703,170 @@ "tier": 2.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 400000.0, + "minNotional": 8600.0, + "maxNotional": 163000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "400000", - "notionalFloor": "20000", + "initialLeverage": "10", + "notionalCap": "163000", + "notionalFloor": "8600", "maintMarginRatio": "0.01", - "cum": "60.0" + "cum": "28.38" } }, { "tier": 3.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 20.0, + "minNotional": 163000.0, + "maxNotional": 206000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 9.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "400000", - "maintMarginRatio": "0.02", - "cum": "4060.0" + "initialLeverage": "9", + "notionalCap": "206000", + "notionalFloor": "163000", + "maintMarginRatio": "0.015", + "cum": "843.38" } }, { "tier": 4.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 1200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 206000.0, + "maxNotional": 255000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 8.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "1200000", - "notionalFloor": "600000", - "maintMarginRatio": "0.05", - "cum": "22060.0" + "initialLeverage": "8", + "notionalCap": "255000", + "notionalFloor": "206000", + "maintMarginRatio": "0.02", + "cum": "1873.38" } }, { "tier": 5.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 1200000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 255000.0, + "maxNotional": 390000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "1200000", - "maintMarginRatio": "0.1", - "cum": "82060.0" + "initialLeverage": "7", + "notionalCap": "390000", + "notionalFloor": "255000", + "maintMarginRatio": "0.025", + "cum": "3148.38" } }, { "tier": 6.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 390000.0, + "maxNotional": 630000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "2500000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.125", - "cum": "132060.0" + "initialLeverage": "6", + "notionalCap": "630000", + "notionalFloor": "390000", + "maintMarginRatio": "0.05", + "cum": "12898.38" } }, { "tier": 7.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.15, - "maxLeverage": 3.0, + "minNotional": 630000.0, + "maxNotional": 1100000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "7", - "initialLeverage": "3", - "notionalCap": "3000000", - "notionalFloor": "2500000", - "maintMarginRatio": "0.15", - "cum": "194560.0" + "initialLeverage": "5", + "notionalCap": "1100000", + "notionalFloor": "630000", + "maintMarginRatio": "0.1", + "cum": "44398.38" } }, { "tier": 8.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1100000.0, + "maxNotional": 1600000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3500000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.25", - "cum": "494560.0" + "initialLeverage": "4", + "notionalCap": "1600000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.125", + "cum": "71898.38" } }, { "tier": 9.0, "symbol": "AXS/USDT:USDT", "currency": "USDT", - "minNotional": 3500000.0, - "maxNotional": 4000000.0, + "minNotional": 1600000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1600000", + "maintMarginRatio": "0.1667", + "cum": "138618.38" + } + }, + { + "tier": 10.0, + "symbol": "AXS/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4400000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "10", + "initialLeverage": "2", + "notionalCap": "4400000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "388518.38" + } + }, + { + "tier": 11.0, + "symbol": "AXS/USDT:USDT", + "currency": "USDT", + "minNotional": 4400000.0, + "maxNotional": 6400000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "11", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "3500000", + "notionalCap": "6400000", + "notionalFloor": "4400000", "maintMarginRatio": "0.5", - "cum": "1369560.0" + "cum": "1488518.38" } } ], @@ -9494,6 +10025,144 @@ } } ], + "BABY/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "BABY/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": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "125000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 150000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "150000", + "notionalFloor": "125000", + "maintMarginRatio": "0.025", + "cum": "650.0" + } + }, + { + "tier": 4.0, + "symbol": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 150000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "150000", + "maintMarginRatio": "0.05", + "cum": "4400.0" + } + }, + { + "tier": 5.0, + "symbol": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 1250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "1250000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "19400.0" + } + }, + { + "tier": 6.0, + "symbol": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 1250000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "1250000", + "maintMarginRatio": "0.125", + "cum": "50650.0" + } + }, + { + "tier": 7.0, + "symbol": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "2000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "238150.0" + } + }, + { + "tier": 8.0, + "symbol": "BABY/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "2500000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.5", + "cum": "738150.0" + } + } + ], "BADGER/USDT:USDT": [ { "tier": 1.0, @@ -9986,10 +10655,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -10003,10 +10672,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -10020,10 +10689,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -10037,10 +10706,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -10054,10 +10723,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -10071,10 +10740,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -10088,10 +10757,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -10392,6 +11061,161 @@ } } ], + "BANK/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "BANK/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": "BANK/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": "BANK/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "BANK/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "BANK/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "BANK/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "BANK/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "BANK/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": "159625.0" + } + }, + { + "tier": 9.0, + "symbol": "BANK/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": "784625.0" + } + } + ], "BAT/USDT:USDT": [ { "tier": 1.0, @@ -10536,15 +11360,15 @@ "symbol": "BB/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -10552,72 +11376,89 @@ "tier": 2.0, "symbol": "BB/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "BB/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "BB/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 800000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "80000", - "maintMarginRatio": "0.05", - "cum": "2150.0" + "initialLeverage": "7", + "notionalCap": "80000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "BB/USDT:USDT", "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "800000", + "notionalFloor": "80000", + "maintMarginRatio": "0.05", + "cum": "2170.0" + } + }, + { + "tier": 6.0, + "symbol": "BB/USDT:USDT", + "currency": "USDT", "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "42150.0" + "cum": "42170.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "BB/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -10625,46 +11466,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "82150.0" - } - }, - { - "tier": 7.0, - "symbol": "BB/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "332150.0" + "cum": "82170.0" } }, { "tier": 8.0, "symbol": "BB/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "165570.0" + } + }, + { + "tier": 9.0, + "symbol": "BB/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "415470.0" + } + }, + { + "tier": 10.0, + "symbol": "BB/USDT:USDT", + "currency": "USDT", "minNotional": 4000000.0, "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "8000000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "1332150.0" + "cum": "1415470.0" } } ], @@ -11451,10 +12309,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -11468,10 +12326,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -11485,10 +12343,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -11502,10 +12360,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -11519,10 +12377,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -11536,10 +12394,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -11553,10 +12411,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -11606,10 +12464,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -11623,10 +12481,10 @@ "minNotional": 5000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", @@ -11640,10 +12498,10 @@ "minNotional": 25000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "200000", "notionalFloor": "25000", "maintMarginRatio": "0.05", @@ -11657,10 +12515,10 @@ "minNotional": 200000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "200000", "maintMarginRatio": "0.1", @@ -11674,10 +12532,10 @@ "minNotional": 500000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "5", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "500000", "maintMarginRatio": "0.125", @@ -11727,10 +12585,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -11744,10 +12602,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -11761,10 +12619,10 @@ "minNotional": 30000.0, "maxNotional": 150000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "150000", "notionalFloor": "30000", "maintMarginRatio": "0.02", @@ -11778,10 +12636,10 @@ "minNotional": 150000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "300000", "notionalFloor": "150000", "maintMarginRatio": "0.025", @@ -11795,10 +12653,10 @@ "minNotional": 300000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1500000", "notionalFloor": "300000", "maintMarginRatio": "0.05", @@ -11812,10 +12670,10 @@ "minNotional": 1500000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "3000000", "notionalFloor": "1500000", "maintMarginRatio": "0.1", @@ -11829,10 +12687,10 @@ "minNotional": 3000000.0, "maxNotional": 3500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "3500000", "notionalFloor": "3000000", "maintMarginRatio": "0.125", @@ -12035,15 +12893,15 @@ "symbol": "BLUR/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -12051,72 +12909,89 @@ "tier": 2.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "600000", - "notionalFloor": "100000", - "maintMarginRatio": "0.05", - "cum": "2650.0" + "initialLeverage": "7", + "notionalCap": "100000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "600000", + "notionalFloor": "100000", + "maintMarginRatio": "0.05", + "cum": "2670.0" + } + }, + { + "tier": 6.0, + "symbol": "BLUR/USDT:USDT", + "currency": "USDT", "minNotional": 600000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "600000", "maintMarginRatio": "0.1", - "cum": "32650.0" + "cum": "32670.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -12124,46 +12999,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "72650.0" - } - }, - { - "tier": 7.0, - "symbol": "BLUR/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "6000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "322650.0" + "cum": "72670.0" } }, { "tier": 8.0, "symbol": "BLUR/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "156070.0" + } + }, + { + "tier": 9.0, + "symbol": "BLUR/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "6000000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.25", + "cum": "489270.0" + } + }, + { + "tier": 10.0, + "symbol": "BLUR/USDT:USDT", + "currency": "USDT", "minNotional": 6000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "6000000", "maintMarginRatio": "0.5", - "cum": "1822650.0" + "cum": "1989270.0" } } ], @@ -12952,10 +13844,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -12969,10 +13861,10 @@ "minNotional": 5000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "5000", "maintMarginRatio": "0.02", @@ -12986,10 +13878,10 @@ "minNotional": 50000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "600000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -13003,10 +13895,10 @@ "minNotional": 600000.0, "maxNotional": 1200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1200000", "notionalFloor": "600000", "maintMarginRatio": "0.05", @@ -13020,10 +13912,10 @@ "minNotional": 1200000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "3000000", "notionalFloor": "1200000", "maintMarginRatio": "0.1", @@ -13037,10 +13929,10 @@ "minNotional": 3000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "4000000", "notionalFloor": "3000000", "maintMarginRatio": "0.125", @@ -13088,13 +13980,13 @@ "symbol": "BOME/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" @@ -13104,136 +13996,153 @@ "tier": 2.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 1000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "1000000", - "notionalFloor": "600000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1500000", - "notionalFloor": "1000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "66850.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "104350.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "354350.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "BOME/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 3000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "BOME/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "3000000", - "notionalFloor": "2500000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "979350.0" + "cum": "1568050.0" } } ], @@ -14003,15 +14912,15 @@ "symbol": "BSW/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "5000", + "initialLeverage": "10", + "notionalCap": "20000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -14019,89 +14928,55 @@ "tier": 2.0, "symbol": "BSW/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "minNotional": 20000.0, + "maxNotional": 40000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.015", - "cum": "25.0" + "initialLeverage": "7", + "notionalCap": "40000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "100.0" } }, { "tier": 3.0, "symbol": "BSW/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 20000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 40000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "20000", - "notionalFloor": "10000", - "maintMarginRatio": "0.02", - "cum": "75.0" + "initialLeverage": "6", + "notionalCap": "200000", + "notionalFloor": "40000", + "maintMarginRatio": "0.05", + "cum": "1100.0" } }, { "tier": 4.0, "symbol": "BSW/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 40000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "4", - "initialLeverage": "20", - "notionalCap": "40000", - "notionalFloor": "20000", - "maintMarginRatio": "0.025", - "cum": "175.0" - } - }, - { - "tier": 5.0, - "symbol": "BSW/USDT:USDT", - "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "5", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "40000", - "maintMarginRatio": "0.05", - "cum": "1175.0" - } - }, - { - "tier": 6.0, - "symbol": "BSW/USDT:USDT", - "currency": "USDT", "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "6", + "bracket": "4", "initialLeverage": "5", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.1", - "cum": "11175.0" + "cum": "11100.0" } }, { - "tier": 7.0, + "tier": 5.0, "symbol": "BSW/USDT:USDT", "currency": "USDT", "minNotional": 400000.0, @@ -14109,33 +14984,50 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "7", + "bracket": "5", "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "400000", "maintMarginRatio": "0.125", - "cum": "21175.0" + "cum": "21100.0" } }, { - "tier": 8.0, + "tier": 6.0, "symbol": "BSW/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "750000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "41950.0" + } + }, + { + "tier": 7.0, + "symbol": "BSW/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "2", "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalFloor": "750000", "maintMarginRatio": "0.25", - "cum": "83675.0" + "cum": "104425.0" } }, { - "tier": 9.0, + "tier": 8.0, "symbol": "BSW/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, @@ -14143,12 +15035,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "8", "initialLeverage": "1", "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.5", - "cum": "333675.0" + "cum": "354425.0" } } ], @@ -14530,144 +15422,6 @@ } } ], - "BTC/USDT:USDT-250328": [ - { - "tier": 1.0, - "symbol": "BTC/USDT:USDT-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250627": [ { "tier": 1.0, @@ -14806,6 +15560,144 @@ } } ], + "BTC/USDT:USDT-250926": [ + { + "tier": 1.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "50000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 375000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "375000", + "notionalFloor": "50000", + "maintMarginRatio": "0.02", + "cum": "500.0" + } + }, + { + "tier": 3.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 375000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "2000000", + "notionalFloor": "375000", + "maintMarginRatio": "0.05", + "cum": "11750.0" + } + }, + { + "tier": 4.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "4000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1", + "cum": "111750.0" + } + }, + { + "tier": 5.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.125", + "cum": "211750.0" + } + }, + { + "tier": 6.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 10000000.0, + "maxNotional": 20000000.0, + "maintenanceMarginRate": 0.15, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "20000000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.15", + "cum": "461750.0" + } + }, + { + "tier": 7.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 20000000.0, + "maxNotional": 40000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "40000000", + "notionalFloor": "20000000", + "maintMarginRatio": "0.25", + "cum": "2461750.0" + } + }, + { + "tier": 8.0, + "symbol": "BTC/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 40000000.0, + "maxNotional": 120000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "120000000", + "notionalFloor": "40000000", + "maintMarginRatio": "0.5", + "cum": "12461750.0" + } + } + ], "BTCDOM/USDT:USDT": [ { "tier": 1.0, @@ -15298,10 +16190,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -15315,10 +16207,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -15332,10 +16224,10 @@ "minNotional": 30000.0, "maxNotional": 150000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "150000", "notionalFloor": "30000", "maintMarginRatio": "0.02", @@ -15349,10 +16241,10 @@ "minNotional": 150000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "300000", "notionalFloor": "150000", "maintMarginRatio": "0.025", @@ -15366,10 +16258,10 @@ "minNotional": 300000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "300000", "maintMarginRatio": "0.05", @@ -15383,10 +16275,10 @@ "minNotional": 800000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -15400,10 +16292,10 @@ "minNotional": 1000000.0, "maxNotional": 1200000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1200000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -15453,10 +16345,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -15470,10 +16362,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -15487,10 +16379,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -15504,10 +16396,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -15521,10 +16413,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -15538,10 +16430,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -15555,10 +16447,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -15587,13 +16479,13 @@ "symbol": "CELO/USDT:USDT", "currency": "USDT", "minNotional": 4000000.0, - "maxNotional": 8000000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "8000000", + "notionalCap": "4500000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", "cum": "1334505.0" @@ -15882,13 +16774,13 @@ "symbol": "CFX/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" @@ -15898,136 +16790,153 @@ "tier": 2.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 400000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "400000", - "notionalFloor": "60000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "400000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "2350.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 2000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "600000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "17350.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "2500000", - "notionalFloor": "2000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "117350.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 3000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "3000000", - "notionalFloor": "2500000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "179850.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3500000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.25", - "cum": "554850.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "CFX/USDT:USDT", "currency": "USDT", - "minNotional": 3500000.0, - "maxNotional": 4000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "CFX/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "4000000", - "notionalFloor": "3500000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1429850.0" + "cum": "1568050.0" } } ], @@ -16194,10 +17103,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -16211,10 +17120,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -16226,13 +17135,13 @@ "symbol": "CHESS/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 20000.0, + "maxNotional": 23000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "20000", + "initialLeverage": "10", + "notionalCap": "23000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -16242,102 +17151,119 @@ "tier": 4.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 40000.0, + "minNotional": 23000.0, + "maxNotional": 46000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "40000", - "notionalFloor": "20000", + "initialLeverage": "7", + "notionalCap": "46000", + "notionalFloor": "23000", "maintMarginRatio": "0.025", - "cum": "175.0" + "cum": "190.0" } }, { "tier": 5.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, + "minNotional": 46000.0, + "maxNotional": 230000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "40000", + "initialLeverage": "6", + "notionalCap": "230000", + "notionalFloor": "46000", "maintMarginRatio": "0.05", - "cum": "1175.0" + "cum": "1340.0" } }, { "tier": 6.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 230000.0, + "maxNotional": 460000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "460000", + "notionalFloor": "230000", "maintMarginRatio": "0.1", - "cum": "11175.0" + "cum": "12840.0" } }, { "tier": 7.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 460000.0, + "maxNotional": 800000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "800000", + "notionalFloor": "460000", "maintMarginRatio": "0.125", - "cum": "21175.0" + "cum": "24340.0" } }, { "tier": 8.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 800000.0, + "maxNotional": 2100000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.25", - "cum": "83675.0" + "initialLeverage": "3", + "notionalCap": "2100000", + "notionalFloor": "800000", + "maintMarginRatio": "0.1667", + "cum": "57700.0" } }, { "tier": 9.0, "symbol": "CHESS/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 2100000.0, + "maxNotional": 3400000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "3400000", + "notionalFloor": "2100000", + "maintMarginRatio": "0.25", + "cum": "232630.0" + } + }, + { + "tier": 10.0, + "symbol": "CHESS/USDT:USDT", + "currency": "USDT", + "minNotional": 3400000.0, + "maxNotional": 5600000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "5600000", + "notionalFloor": "3400000", "maintMarginRatio": "0.5", - "cum": "333675.0" + "cum": "1082630.0" } } ], @@ -16504,10 +17430,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -16521,10 +17447,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -16536,13 +17462,13 @@ "symbol": "CHR/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "35000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -16552,102 +17478,119 @@ "tier": 4.0, "symbol": "CHR/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 35000.0, + "maxNotional": 70000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "250.0" } }, { "tier": 5.0, "symbol": "CHR/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 70000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "2000.0" } }, { "tier": 6.0, "symbol": "CHR/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 350000.0, + "maxNotional": 700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "700000", + "notionalFloor": "350000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "19500.0" } }, { "tier": 7.0, "symbol": "CHR/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 700000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "1100000", + "notionalFloor": "700000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "37000.0" } }, { "tier": 8.0, "symbol": "CHR/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1100000.0, + "maxNotional": 2550000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "209075.0" + "initialLeverage": "3", + "notionalCap": "2550000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" } }, { "tier": 9.0, "symbol": "CHR/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 5000000.0, + "minNotional": 2550000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "2550000", + "maintMarginRatio": "0.25", + "cum": "295285.0" + } + }, + { + "tier": 10.0, + "symbol": "CHR/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "2500000", + "notionalCap": "6800000", + "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "834075.0" + "cum": "1295285.0" } } ], @@ -16814,10 +17757,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -16831,10 +17774,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -16848,10 +17791,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -16865,10 +17808,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -16882,10 +17825,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -16931,33 +17874,50 @@ "symbol": "CKB/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "CKB/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "CKB/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -17073,10 +18033,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -17090,10 +18050,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -17105,13 +18065,13 @@ "symbol": "COMP/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "35000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -17121,102 +18081,119 @@ "tier": 4.0, "symbol": "COMP/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 35000.0, + "maxNotional": 70000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "250.0" } }, { "tier": 5.0, "symbol": "COMP/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 70000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "2000.0" } }, { "tier": 6.0, "symbol": "COMP/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 350000.0, + "maxNotional": 700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "700000", + "notionalFloor": "350000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "19500.0" } }, { "tier": 7.0, "symbol": "COMP/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 700000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "1100000", + "notionalFloor": "700000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "37000.0" } }, { "tier": 8.0, "symbol": "COMP/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1100000.0, + "maxNotional": 2550000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "209075.0" + "initialLeverage": "3", + "notionalCap": "2550000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" } }, { "tier": 9.0, "symbol": "COMP/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 5000000.0, + "minNotional": 2550000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "2550000", + "maintMarginRatio": "0.25", + "cum": "295285.0" + } + }, + { + "tier": 10.0, + "symbol": "COMP/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "2500000", + "notionalCap": "6800000", + "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "834075.0" + "cum": "1295285.0" } } ], @@ -17383,10 +18360,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -17400,10 +18377,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -17417,10 +18394,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -17434,10 +18411,10 @@ "minNotional": 20000.0, "maxNotional": 40000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "40000", "notionalFloor": "20000", "maintMarginRatio": "0.025", @@ -17451,10 +18428,10 @@ "minNotional": 40000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "200000", "notionalFloor": "40000", "maintMarginRatio": "0.05", @@ -17468,10 +18445,10 @@ "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.1", @@ -17485,10 +18462,10 @@ "minNotional": 400000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "500000", "notionalFloor": "400000", "maintMarginRatio": "0.125", @@ -17676,10 +18653,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -17693,10 +18670,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -17710,10 +18687,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -17727,10 +18704,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -17744,10 +18721,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -17761,10 +18738,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -17778,10 +18755,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -18123,110 +19100,6 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 11.0, - "info": { - "bracket": "1", - "initialLeverage": "11", - "notionalCap": "5000", - "notionalFloor": "0", - "maintMarginRatio": "0.02", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "CTK/USDT:USDT", - "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, - "info": { - "bracket": "2", - "initialLeverage": "10", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "CTK/USDT:USDT", - "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, - "info": { - "bracket": "3", - "initialLeverage": "8", - "notionalCap": "100000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "650.0" - } - }, - { - "tier": 4.0, - "symbol": "CTK/USDT:USDT", - "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "4", - "initialLeverage": "5", - "notionalCap": "250000", - "notionalFloor": "100000", - "maintMarginRatio": "0.1", - "cum": "5650.0" - } - }, - { - "tier": 5.0, - "symbol": "CTK/USDT:USDT", - "currency": "USDT", - "minNotional": 250000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 2.0, - "info": { - "bracket": "5", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "250000", - "maintMarginRatio": "0.125", - "cum": "11900.0" - } - }, - { - "tier": 6.0, - "symbol": "CTK/USDT:USDT", - "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "6", - "initialLeverage": "1", - "notionalCap": "1500000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.5", - "cum": "386900.0" - } - } - ], - "CTSI/USDT:USDT": [ - { - "tier": 1.0, - "symbol": "CTSI/USDT:USDT", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { @@ -18240,7 +19113,7 @@ }, { "tier": 2.0, - "symbol": "CTSI/USDT:USDT", + "symbol": "CTK/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, @@ -18257,15 +19130,187 @@ }, { "tier": 3.0, - "symbol": "CTSI/USDT:USDT", + "symbol": "CTK/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.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": "CTK/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": "CTK/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": "CTK/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": "CTK/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": "CTK/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "CTK/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "159750.0" + } + }, + { + "tier": 10.0, + "symbol": "CTK/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "784750.0" + } + } + ], + "CTSI/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "CTSI/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "CTSI/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "CTSI/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -18279,10 +19324,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -18296,10 +19341,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -18313,10 +19358,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -18330,10 +19375,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -18988,10 +20033,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -19005,10 +20050,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -19020,13 +20065,13 @@ "symbol": "DASH/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "35000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -19036,75 +20081,247 @@ "tier": 4.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 35000.0, + "maxNotional": 70000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "250.0" } }, { "tier": 5.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 70000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "2000.0" } }, { "tier": 6.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 350000.0, + "maxNotional": 700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "700000", + "notionalFloor": "350000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "19500.0" } }, { "tier": 7.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 700000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "1100000", + "notionalFloor": "700000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "37000.0" } }, { "tier": 8.0, "symbol": "DASH/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, + "minNotional": 1100000.0, + "maxNotional": 2550000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "2550000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" + } + }, + { + "tier": 9.0, + "symbol": "DASH/USDT:USDT", + "currency": "USDT", + "minNotional": 2550000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "2550000", + "maintMarginRatio": "0.25", + "cum": "295285.0" + } + }, + { + "tier": 10.0, + "symbol": "DASH/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6800000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "6800000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.5", + "cum": "1295285.0" + } + } + ], + "DEEP/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "DEEP/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": "DEEP/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": "DEEP/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "DEEP/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "DEEP/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "DEEP/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "DEEP/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "DEEP/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, "maxNotional": 2500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, @@ -19112,26 +20329,26 @@ "bracket": "8", "initialLeverage": "2", "notionalCap": "2500000", - "notionalFloor": "1250000", + "notionalFloor": "1500000", "maintMarginRatio": "0.25", - "cum": "209075.0" + "cum": "159625.0" } }, { "tier": 9.0, - "symbol": "DASH/USDT:USDT", + "symbol": "DEEP/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "5000000", + "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "834075.0" + "cum": "784625.0" } } ], @@ -19678,10 +20895,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -19695,10 +20912,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -19712,10 +20929,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 12.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "12", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -19729,10 +20946,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -19746,10 +20963,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 8.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "8", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -19812,13 +21029,13 @@ "symbol": "DEXE/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "3000000", + "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.5", "cum": "500475.0" @@ -20092,10 +21309,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -20109,10 +21326,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -20126,10 +21343,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -20143,10 +21360,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -20160,10 +21377,10 @@ "minNotional": 200000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "300000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -20209,33 +21426,50 @@ "symbol": "DIA/USDT:USDT", "currency": "USDT", "minNotional": 600000.0, - "maxNotional": 700000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 650000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "700000", + "initialLeverage": "3", + "notionalCap": "650000", "notionalFloor": "600000", - "maintMarginRatio": "0.25", - "cum": "108150.0" + "maintMarginRatio": "0.1667", + "cum": "58170.0" } }, { "tier": 9.0, "symbol": "DIA/USDT:USDT", "currency": "USDT", + "minNotional": 650000.0, + "maxNotional": 700000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "700000", + "notionalFloor": "650000", + "maintMarginRatio": "0.25", + "cum": "112315.0" + } + }, + { + "tier": 10.0, + "symbol": "DIA/USDT:USDT", + "currency": "USDT", "minNotional": 700000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "800000", "notionalFloor": "700000", "maintMarginRatio": "0.5", - "cum": "283150.0" + "cum": "287315.0" } } ], @@ -20710,13 +21944,13 @@ "symbol": "DOGS/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 7000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "7000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -20726,136 +21960,308 @@ "tier": 2.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 7000.0, + "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "30000", + "notionalFloor": "7000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "35.0" } }, { "tier": 3.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 30000.0, + "maxNotional": 135000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "initialLeverage": "8", + "notionalCap": "135000", + "notionalFloor": "30000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "185.0" } }, { "tier": 4.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 135000.0, + "maxNotional": 270000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "initialLeverage": "7", + "notionalCap": "270000", + "notionalFloor": "135000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "860.0" } }, { "tier": 5.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 1500000.0, + "minNotional": 270000.0, + "maxNotional": 750000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "1500000", - "notionalFloor": "600000", + "initialLeverage": "6", + "notionalCap": "750000", + "notionalFloor": "270000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "7610.0" } }, { "tier": 6.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "minNotional": 750000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalCap": "1100000", + "notionalFloor": "750000", "maintMarginRatio": "0.1", - "cum": "91850.0" + "cum": "45110.0" } }, { "tier": 7.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, + "minNotional": 1100000.0, + "maxNotional": 1600000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "2500000", - "notionalFloor": "2000000", + "notionalCap": "1600000", + "notionalFloor": "1100000", "maintMarginRatio": "0.125", - "cum": "141850.0" + "cum": "72610.0" } }, { "tier": 8.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1600000.0, + "maxNotional": 2900000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3000000", - "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "454350.0" + "initialLeverage": "3", + "notionalCap": "2900000", + "notionalFloor": "1600000", + "maintMarginRatio": "0.1667", + "cum": "139330.0" } }, { "tier": 9.0, "symbol": "DOGS/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, + "minNotional": 2900000.0, + "maxNotional": 4200000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4200000", + "notionalFloor": "2900000", + "maintMarginRatio": "0.25", + "cum": "380900.0" + } + }, + { + "tier": 10.0, + "symbol": "DOGS/USDT:USDT", + "currency": "USDT", + "minNotional": 4200000.0, + "maxNotional": 6200000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "6200000", + "notionalFloor": "4200000", + "maintMarginRatio": "0.5", + "cum": "1430900.0" + } + } + ], + "DOLO/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "DOLO/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": "DOLO/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": "DOLO/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "DOLO/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "DOLO/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "DOLO/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "DOLO/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "DOLO/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": "159625.0" + } + }, + { + "tier": 9.0, + "symbol": "DOLO/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "3500000", - "notionalFloor": "3000000", + "notionalCap": "4000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "1204350.0" + "cum": "784625.0" } } ], @@ -21039,10 +22445,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -21056,10 +22462,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -21073,10 +22479,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -21090,10 +22496,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -21107,10 +22513,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -21156,33 +22562,50 @@ "symbol": "DRIFT/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "DRIFT/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "DRIFT/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -21194,10 +22617,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -21211,10 +22634,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -21228,10 +22651,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -21245,10 +22668,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -21262,10 +22685,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -21279,10 +22702,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -21296,10 +22719,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -21502,15 +22925,15 @@ "symbol": "DYM/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -21518,72 +22941,89 @@ "tier": 2.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 800000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "80000", - "maintMarginRatio": "0.05", - "cum": "2150.0" + "initialLeverage": "7", + "notionalCap": "80000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "800000", + "notionalFloor": "80000", + "maintMarginRatio": "0.05", + "cum": "2170.0" + } + }, + { + "tier": 6.0, + "symbol": "DYM/USDT:USDT", + "currency": "USDT", "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "42150.0" + "cum": "42170.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -21591,46 +23031,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "82150.0" - } - }, - { - "tier": 7.0, - "symbol": "DYM/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "332150.0" + "cum": "82170.0" } }, { "tier": 8.0, "symbol": "DYM/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "165570.0" + } + }, + { + "tier": 9.0, + "symbol": "DYM/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "415470.0" + } + }, + { + "tier": 10.0, + "symbol": "DYM/USDT:USDT", + "currency": "USDT", "minNotional": 4000000.0, "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "8000000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "1332150.0" + "cum": "1415470.0" } } ], @@ -21763,10 +23220,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -21780,10 +23237,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -21797,10 +23254,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -21814,10 +23271,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -21831,10 +23288,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -21880,33 +23337,50 @@ "symbol": "EGLD/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "6000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "EGLD/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "EGLD/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1918150.0" + "cum": "1772275.0" } } ], @@ -21916,13 +23390,13 @@ "symbol": "EIGEN/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 7000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "7000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -21932,136 +23406,153 @@ "tier": 2.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 7000.0, + "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "30000", + "notionalFloor": "7000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "35.0" } }, { "tier": 3.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 30000.0, + "maxNotional": 135000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "initialLeverage": "8", + "notionalCap": "135000", + "notionalFloor": "30000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "185.0" } }, { "tier": 4.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 135000.0, + "maxNotional": 270000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "initialLeverage": "7", + "notionalCap": "270000", + "notionalFloor": "135000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "860.0" } }, { "tier": 5.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 2000000.0, + "minNotional": 270000.0, + "maxNotional": 950000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "600000", + "initialLeverage": "6", + "notionalCap": "950000", + "notionalFloor": "270000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "7610.0" } }, { "tier": 6.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 3000000.0, + "minNotional": 950000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "2000000", + "notionalCap": "1500000", + "notionalFloor": "950000", "maintMarginRatio": "0.1", - "cum": "116850.0" + "cum": "55110.0" } }, { "tier": 7.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, + "minNotional": 1500000.0, + "maxNotional": 2200000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3000000", + "notionalCap": "2200000", + "notionalFloor": "1500000", "maintMarginRatio": "0.125", - "cum": "191850.0" + "cum": "92610.0" } }, { "tier": 8.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 2200000.0, + "maxNotional": 3500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "4500000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.25", - "cum": "691850.0" + "initialLeverage": "3", + "notionalCap": "3500000", + "notionalFloor": "2200000", + "maintMarginRatio": "0.1667", + "cum": "184350.0" } }, { "tier": 9.0, "symbol": "EIGEN/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 5000000.0, + "minNotional": 3500000.0, + "maxNotional": 4800000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4800000", + "notionalFloor": "3500000", + "maintMarginRatio": "0.25", + "cum": "475900.0" + } + }, + { + "tier": 10.0, + "symbol": "EIGEN/USDT:USDT", + "currency": "USDT", + "minNotional": 4800000.0, + "maxNotional": 6800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "4500000", + "notionalCap": "6800000", + "notionalFloor": "4800000", "maintMarginRatio": "0.5", - "cum": "1816850.0" + "cum": "1675900.0" } } ], @@ -22831,10 +24322,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -22848,10 +24339,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -22865,10 +24356,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -22882,10 +24373,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -22899,10 +24390,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -22916,10 +24407,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -22933,10 +24424,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -22978,6 +24469,161 @@ } } ], + "EPT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "EPT/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": "EPT/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": "EPT/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "EPT/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "EPT/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "EPT/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "EPT/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "EPT/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": "159625.0" + } + }, + { + "tier": 9.0, + "symbol": "EPT/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": "784625.0" + } + } + ], "ETC/USDT:USDT": [ { "tier": 1.0, @@ -23717,144 +25363,6 @@ } } ], - "ETH/USDT:USDT-250328": [ - { - "tier": 1.0, - "symbol": "ETH/USDT:USDT-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250328", - "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-250627": [ { "tier": 1.0, @@ -23993,6 +25501,144 @@ } } ], + "ETH/USDT:USDT-250926": [ + { + "tier": 1.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 50.0, + "info": { + "bracket": "1", + "initialLeverage": "50", + "notionalCap": "50000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 375000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "375000", + "notionalFloor": "50000", + "maintMarginRatio": "0.02", + "cum": "500.0" + } + }, + { + "tier": 3.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 375000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "2000000", + "notionalFloor": "375000", + "maintMarginRatio": "0.05", + "cum": "11750.0" + } + }, + { + "tier": 4.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "4000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1", + "cum": "111750.0" + } + }, + { + "tier": 5.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "10000000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.125", + "cum": "211750.0" + } + }, + { + "tier": 6.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 10000000.0, + "maxNotional": 20000000.0, + "maintenanceMarginRate": 0.15, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "20000000", + "notionalFloor": "10000000", + "maintMarginRatio": "0.15", + "cum": "461750.0" + } + }, + { + "tier": 7.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 20000000.0, + "maxNotional": 40000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "40000000", + "notionalFloor": "20000000", + "maintMarginRatio": "0.25", + "cum": "2461750.0" + } + }, + { + "tier": 8.0, + "symbol": "ETH/USDT:USDT-250926", + "currency": "USDT", + "minNotional": 40000000.0, + "maxNotional": 120000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "120000000", + "notionalFloor": "40000000", + "maintMarginRatio": "0.5", + "cum": "12461750.0" + } + } + ], "ETHFI/USDC:USDC": [ { "tier": 1.0, @@ -24001,10 +25647,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -24018,10 +25664,10 @@ "minNotional": 5000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "5000", "maintMarginRatio": "0.02", @@ -24035,10 +25681,10 @@ "minNotional": 50000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "600000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -24052,10 +25698,10 @@ "minNotional": 600000.0, "maxNotional": 1200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1200000", "notionalFloor": "600000", "maintMarginRatio": "0.05", @@ -24069,10 +25715,10 @@ "minNotional": 1200000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "3000000", "notionalFloor": "1200000", "maintMarginRatio": "0.1", @@ -24086,10 +25732,10 @@ "minNotional": 3000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "4000000", "notionalFloor": "3000000", "maintMarginRatio": "0.125", @@ -24139,10 +25785,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -24156,10 +25802,10 @@ "minNotional": 10000.0, "maxNotional": 40000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "40000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -24173,10 +25819,10 @@ "minNotional": 40000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "40000", "maintMarginRatio": "0.02", @@ -24190,10 +25836,10 @@ "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.025", @@ -24207,10 +25853,10 @@ "minNotional": 400000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "2000000", "notionalFloor": "400000", "maintMarginRatio": "0.05", @@ -24224,10 +25870,10 @@ "minNotional": 2000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "4000000", "notionalFloor": "2000000", "maintMarginRatio": "0.1", @@ -24241,10 +25887,10 @@ "minNotional": 4000000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "5000000", "notionalFloor": "4000000", "maintMarginRatio": "0.125", @@ -24447,13 +26093,13 @@ "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "75", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -24463,17 +26109,17 @@ "tier": 2.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, + "minNotional": 5000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "20000", - "notionalFloor": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { @@ -24481,50 +26127,50 @@ "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", "minNotional": 20000.0, - "maxNotional": 100000.0, + "maxNotional": 300000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "15", - "notionalCap": "100000", + "initialLeverage": "25", + "notionalCap": "300000", "notionalFloor": "20000", "maintMarginRatio": "0.02", - "cum": "150.0" + "cum": "125.0" } }, { "tier": 4.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 200000.0, + "minNotional": 300000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "100000", + "initialLeverage": "20", + "notionalCap": "500000", + "notionalFloor": "300000", "maintMarginRatio": "0.025", - "cum": "650.0" + "cum": "1625.0" } }, { "tier": 5.0, "symbol": "FARTCOIN/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, + "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "10", "notionalCap": "1000000", - "notionalFloor": "200000", + "notionalFloor": "500000", "maintMarginRatio": "0.05", - "cum": "5650.0" + "cum": "14125.0" } }, { @@ -24541,7 +26187,7 @@ "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.1", - "cum": "55650.0" + "cum": "64125.0" } }, { @@ -24558,7 +26204,7 @@ "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.125", - "cum": "105650.0" + "cum": "114125.0" } }, { @@ -24575,7 +26221,7 @@ "notionalCap": "5000000", "notionalFloor": "2500000", "maintMarginRatio": "0.25", - "cum": "418150.0" + "cum": "426625.0" } }, { @@ -24592,7 +26238,7 @@ "notionalCap": "6000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1676625.0" } } ], @@ -24751,6 +26397,127 @@ } } ], + "FHE/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.025", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.033, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.033", + "cum": "40.0" + } + }, + { + "tier": 3.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "100000", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "465.0" + } + }, + { + "tier": 4.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "200000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1", + "cum": "5465.0" + } + }, + { + "tier": 5.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "200000", + "maintMarginRatio": "0.125", + "cum": "10465.0" + } + }, + { + "tier": 6.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "6", + "initialLeverage": "2", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.25", + "cum": "72965.0" + } + }, + { + "tier": 7.0, + "symbol": "FHE/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "7", + "initialLeverage": "1", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.5", + "cum": "322965.0" + } + } + ], "FIDA/USDT:USDT": [ { "tier": 1.0, @@ -24759,10 +26526,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -24776,10 +26543,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -24793,10 +26560,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -24810,10 +26577,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -24827,10 +26594,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -24844,10 +26611,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -24861,10 +26628,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -25241,10 +27008,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -25258,10 +27025,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -25275,10 +27042,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -25292,10 +27059,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -25309,10 +27076,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -25326,10 +27093,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -25343,10 +27110,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -25388,21 +27155,193 @@ } } ], + "FIS/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "FIS/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": "FIS/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": "FIS/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": "FIS/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": "FIS/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": "FIS/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": "FIS/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": "FIS/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "FIS/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "159750.0" + } + }, + { + "tier": 10.0, + "symbol": "FIS/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "784750.0" + } + } + ], "FLM/USDT:USDT": [ { "tier": 1.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 15.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "15", + "notionalCap": "20000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -25410,72 +27349,55 @@ "tier": 2.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 20000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 20000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "20000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "100.0" } }, { "tier": 3.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 25000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "20000", - "maintMarginRatio": "0.025", - "cum": "125.0" + "initialLeverage": "6", + "notionalCap": "200000", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "725.0" } }, { "tier": 4.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "4", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "750.0" - } - }, - { - "tier": 5.0, - "symbol": "FLM/USDT:USDT", - "currency": "USDT", "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "4", "initialLeverage": "5", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.1", - "cum": "10750.0" + "cum": "10725.0" } }, { - "tier": 6.0, + "tier": 5.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", "minNotional": 400000.0, @@ -25483,19 +27405,36 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "400000", "maintMarginRatio": "0.125", - "cum": "20750.0" + "cum": "20725.0" + } + }, + { + "tier": 6.0, + "symbol": "FLM/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "750000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "41575.0" } }, { "tier": 7.0, "symbol": "FLM/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 750000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, @@ -25503,9 +27442,9 @@ "bracket": "7", "initialLeverage": "2", "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalFloor": "750000", "maintMarginRatio": "0.25", - "cum": "83250.0" + "cum": "104050.0" } }, { @@ -25522,7 +27461,7 @@ "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.5", - "cum": "333250.0" + "cum": "354050.0" } } ], @@ -25974,6 +27913,127 @@ } } ], + "FORTH/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 10.0, + "info": { + "bracket": "2", + "initialLeverage": "10", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 60000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 5.0, + "info": { + "bracket": "3", + "initialLeverage": "5", + "notionalCap": "60000", + "notionalFloor": "10000", + "maintMarginRatio": "0.05", + "cum": "275.0" + } + }, + { + "tier": 4.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 60000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 4.0, + "info": { + "bracket": "4", + "initialLeverage": "4", + "notionalCap": "300000", + "notionalFloor": "60000", + "maintMarginRatio": "0.1", + "cum": "3275.0" + } + }, + { + "tier": 5.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 400000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 3.0, + "info": { + "bracket": "5", + "initialLeverage": "3", + "notionalCap": "400000", + "notionalFloor": "300000", + "maintMarginRatio": "0.125", + "cum": "10775.0" + } + }, + { + "tier": 6.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 400000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "6", + "initialLeverage": "2", + "notionalCap": "1000000", + "notionalFloor": "400000", + "maintMarginRatio": "0.25", + "cum": "60775.0" + } + }, + { + "tier": 7.0, + "symbol": "FORTH/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "7", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.5", + "cum": "310775.0" + } + } + ], "FTM/USDT:USDT": [ { "tier": 1.0, @@ -26233,6 +28293,144 @@ } } ], + "FUN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 25.0, + "info": { + "bracket": "1", + "initialLeverage": "25", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "20000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "30000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "125.0" + } + }, + { + "tier": 4.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "300000", + "notionalFloor": "30000", + "maintMarginRatio": "0.05", + "cum": "875.0" + } + }, + { + "tier": 5.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "15875.0" + } + }, + { + "tier": 6.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "30875.0" + } + }, + { + "tier": 7.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "124625.0" + } + }, + { + "tier": 8.0, + "symbol": "FUN/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "499625.0" + } + } + ], "FXS/USDT:USDT": [ { "tier": 1.0, @@ -26481,15 +28679,15 @@ "symbol": "GALA/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.006, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "10000", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.006", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -26497,153 +28695,153 @@ "tier": 2.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 10000.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": "10000", - "maintMarginRatio": "0.01", - "cum": "40.0" + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "GALA/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": "290.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 200000.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": "200000", - "notionalFloor": "80000", - "maintMarginRatio": "0.02", - "cum": "690.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 900000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "20", - "notionalCap": "900000", - "notionalFloor": "200000", - "maintMarginRatio": "0.025", - "cum": "1690.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 900000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "900000", - "maintMarginRatio": "0.05", - "cum": "24190.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", - "notionalCap": "5000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.1", - "cum": "124190.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", - "notionalCap": "6000000", - "notionalFloor": "5000000", - "maintMarginRatio": "0.125", - "cum": "249190.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 18000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "18000000", - "notionalFloor": "6000000", + "notionalCap": "5000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "999190.0" + "cum": "318050.0" } }, { "tier": 10.0, "symbol": "GALA/USDT:USDT", "currency": "USDT", - "minNotional": 18000000.0, - "maxNotional": 30000000.0, + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "30000000", - "notionalFloor": "18000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "5499190.0" + "cum": "1568050.0" } } ], @@ -27205,15 +29403,15 @@ "symbol": "GMT/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "50000", + "initialLeverage": "75", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -27221,102 +29419,153 @@ "tier": 2.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 150000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "150000", - "notionalFloor": "50000", - "maintMarginRatio": "0.025", - "cum": "500.0" + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "600000", - "notionalFloor": "150000", - "maintMarginRatio": "0.05", - "cum": "4250.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 1600000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "1600000", - "notionalFloor": "600000", - "maintMarginRatio": "0.1", - "cum": "34250.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 1600000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "2000000", - "notionalFloor": "1600000", - "maintMarginRatio": "0.125", - "cum": "74250.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "324250.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "GMT/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" + } + }, + { + "tier": 8.0, + "symbol": "GMT/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" + } + }, + { + "tier": 9.0, + "symbol": "GMT/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "GMT/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "4000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1324250.0" + "cum": "1568050.0" } } ], @@ -27447,13 +29696,13 @@ "symbol": "GOAT/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 4600.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "4600", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -27463,136 +29712,153 @@ "tier": 2.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 80000.0, + "minNotional": 4600.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "35000", + "notionalFloor": "4600", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "23.0" } }, { "tier": 3.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 400000.0, + "minNotional": 35000.0, + "maxNotional": 175000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "15", - "notionalCap": "400000", - "notionalFloor": "80000", + "initialLeverage": "8", + "notionalCap": "175000", + "notionalFloor": "35000", "maintMarginRatio": "0.02", - "cum": "450.0" + "cum": "198.0" } }, { "tier": 4.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 800000.0, + "minNotional": 175000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "400000", + "initialLeverage": "7", + "notionalCap": "350000", + "notionalFloor": "175000", "maintMarginRatio": "0.025", - "cum": "2450.0" + "cum": "1073.0" } }, { "tier": 5.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, - "maxNotional": 3000000.0, + "minNotional": 350000.0, + "maxNotional": 1350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "8", - "notionalCap": "3000000", - "notionalFloor": "800000", + "initialLeverage": "6", + "notionalCap": "1350000", + "notionalFloor": "350000", "maintMarginRatio": "0.05", - "cum": "22450.0" + "cum": "9823.0" } }, { "tier": 6.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, + "minNotional": 1350000.0, + "maxNotional": 1900000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "4000000", - "notionalFloor": "3000000", + "notionalCap": "1900000", + "notionalFloor": "1350000", "maintMarginRatio": "0.1", - "cum": "172450.0" + "cum": "77323.0" } }, { "tier": 7.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 5000000.0, + "minNotional": 1900000.0, + "maxNotional": 2600000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "5000000", - "notionalFloor": "4000000", + "notionalCap": "2600000", + "notionalFloor": "1900000", "maintMarginRatio": "0.125", - "cum": "272450.0" + "cum": "124823.0" } }, { "tier": 8.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 5500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 2600000.0, + "maxNotional": 3900000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5500000", - "notionalFloor": "5000000", - "maintMarginRatio": "0.25", - "cum": "897450.0" + "initialLeverage": "3", + "notionalCap": "3900000", + "notionalFloor": "2600000", + "maintMarginRatio": "0.1667", + "cum": "233243.0" } }, { "tier": 9.0, "symbol": "GOAT/USDT:USDT", "currency": "USDT", - "minNotional": 5500000.0, - "maxNotional": 6000000.0, + "minNotional": 3900000.0, + "maxNotional": 5200000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5200000", + "notionalFloor": "3900000", + "maintMarginRatio": "0.25", + "cum": "558113.0" + } + }, + { + "tier": 10.0, + "symbol": "GOAT/USDT:USDT", + "currency": "USDT", + "minNotional": 5200000.0, + "maxNotional": 7200000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "6000000", - "notionalFloor": "5500000", + "notionalCap": "7200000", + "notionalFloor": "5200000", "maintMarginRatio": "0.5", - "cum": "2272450.0" + "cum": "1858113.0" } } ], @@ -27687,33 +29953,50 @@ "symbol": "GPS/USDT:USDT", "currency": "USDT", "minNotional": 750000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 1125000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "1500000", + "initialLeverage": "3", + "notionalCap": "1125000", "notionalFloor": "750000", - "maintMarginRatio": "0.25", - "cum": "116900.0" + "maintMarginRatio": "0.1667", + "cum": "54425.0" } }, { "tier": 7.0, "symbol": "GPS/USDT:USDT", "currency": "USDT", + "minNotional": 1125000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "1125000", + "maintMarginRatio": "0.25", + "cum": "148137.5" + } + }, + { + "tier": 8.0, + "symbol": "GPS/USDT:USDT", + "currency": "USDT", "minNotional": 1500000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "8", "initialLeverage": "1", "notionalCap": "3000000", "notionalFloor": "1500000", "maintMarginRatio": "0.5", - "cum": "491900.0" + "cum": "523137.5" } } ], @@ -28156,10 +30439,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -28173,10 +30456,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -28190,10 +30473,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -28207,10 +30490,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -28224,10 +30507,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -28241,10 +30524,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -28258,10 +30541,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -28303,6 +30586,316 @@ } } ], + "GUN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "GUN/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": "GUN/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": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "30000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 60000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "60000", + "notionalFloor": "30000", + "maintMarginRatio": "0.025", + "cum": "225.0" + } + }, + { + "tier": 5.0, + "symbol": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 60000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "60000", + "maintMarginRatio": "0.05", + "cum": "1725.0" + } + }, + { + "tier": 6.0, + "symbol": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "16725.0" + } + }, + { + "tier": 7.0, + "symbol": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "31725.0" + } + }, + { + "tier": 8.0, + "symbol": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "125475.0" + } + }, + { + "tier": 9.0, + "symbol": "GUN/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "500475.0" + } + } + ], + "HAEDAL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "HAEDAL/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": "HAEDAL/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": "HAEDAL/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "HAEDAL/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "HAEDAL/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "HAEDAL/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "HAEDAL/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "HAEDAL/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": "159625.0" + } + }, + { + "tier": 9.0, + "symbol": "HAEDAL/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": "784625.0" + } + } + ], "HBAR/USDC:USDC": [ { "tier": 1.0, @@ -28621,10 +31214,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -28638,10 +31231,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -28655,10 +31248,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -28672,10 +31265,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -28689,10 +31282,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -28706,10 +31299,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -28723,10 +31316,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -29139,10 +31732,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -29156,10 +31749,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -29173,10 +31766,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -29190,10 +31783,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -29207,10 +31800,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -29224,10 +31817,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -29241,10 +31834,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -29449,10 +32042,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -29466,10 +32059,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -29483,10 +32076,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -29500,10 +32093,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -29517,10 +32110,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -29566,33 +32159,50 @@ "symbol": "HMSTR/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "HMSTR/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "HMSTR/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -29708,6 +32318,178 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 35000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "35000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 35000.0, + "maxNotional": 70000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, + "info": { + "bracket": "4", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", + "maintMarginRatio": "0.025", + "cum": "250.0" + } + }, + { + "tier": 5.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 70000.0, + "maxNotional": 350000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", + "maintMarginRatio": "0.05", + "cum": "2000.0" + } + }, + { + "tier": 6.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 350000.0, + "maxNotional": 700000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "700000", + "notionalFloor": "350000", + "maintMarginRatio": "0.1", + "cum": "19500.0" + } + }, + { + "tier": 7.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 700000.0, + "maxNotional": 1100000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "1100000", + "notionalFloor": "700000", + "maintMarginRatio": "0.125", + "cum": "37000.0" + } + }, + { + "tier": 8.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 1100000.0, + "maxNotional": 2550000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "2550000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" + } + }, + { + "tier": 9.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 2550000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "2550000", + "maintMarginRatio": "0.25", + "cum": "295285.0" + } + }, + { + "tier": 10.0, + "symbol": "HOT/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6800000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "6800000", + "notionalFloor": "4000000", + "maintMarginRatio": "0.5", + "cum": "1295285.0" + } + } + ], + "HYPER/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "HYPER/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", @@ -29720,7 +32502,7 @@ }, { "tier": 2.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, @@ -29737,16 +32519,16 @@ }, { "tier": 3.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", "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" @@ -29754,104 +32536,121 @@ }, { "tier": 4.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "200.0" } }, { "tier": 5.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 50000.0, + "maxNotional": 125000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "notionalCap": "125000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "1450.0" } }, { "tier": 6.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 125000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "250000", + "notionalFloor": "125000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "7700.0" } }, { "tier": 7.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "13950.0" } }, { "tier": 8.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "209075.0" + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" } }, { "tier": 9.0, - "symbol": "HOT/USDT:USDT", + "symbol": "HYPER/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "159750.0" + } + }, + { + "tier": 10.0, + "symbol": "HYPER/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", + "notionalCap": "4000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "834075.0" + "cum": "784750.0" } } ], @@ -30156,10 +32955,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -30173,10 +32972,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -30190,10 +32989,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -30207,10 +33006,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -30224,10 +33023,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -30241,10 +33040,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -30258,10 +33057,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -30666,6 +33465,178 @@ } } ], + "INIT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "INIT/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": "INIT/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": "INIT/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": "INIT/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": "INIT/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "INIT/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" + } + }, + { + "tier": 7.0, + "symbol": "INIT/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" + } + }, + { + "tier": 8.0, + "symbol": "INIT/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" + } + }, + { + "tier": 9.0, + "symbol": "INIT/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "INIT/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "8000000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.5", + "cum": "1568050.0" + } + } + ], "INJ/USDT:USDT": [ { "tier": 1.0, @@ -30827,13 +33798,13 @@ "symbol": "IO/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" @@ -30843,136 +33814,153 @@ "tier": 2.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 30000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "30000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 30000.0, - "maxNotional": 150000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "150000", - "notionalFloor": "30000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "200.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "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": "950.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 1500000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "1500000", - "notionalFloor": "300000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "8450.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "83450.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3750000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "3750000", - "notionalFloor": "3000000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "158450.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 3750000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "3750000", - "maintMarginRatio": "0.25", - "cum": "627200.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "IO/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 15000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "IO/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "15000000", - "notionalFloor": "7500000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "2502200.0" + "cum": "1568050.0" } } ], @@ -31672,15 +34660,15 @@ "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 10.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 9.0, "info": { "bracket": "1", - "initialLeverage": "10", - "notionalCap": "5000", + "initialLeverage": "9", + "notionalCap": "25000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -31688,38 +34676,21 @@ "tier": 2.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 9.0, - "info": { - "bracket": "2", - "initialLeverage": "9", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "JASMY/USDT:USDT", - "currency": "USDT", "minNotional": 25000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 8.0, "info": { - "bracket": "3", + "bracket": "2", "initialLeverage": "8", "notionalCap": "80000", "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "150.0" + "cum": "125.0" } }, { - "tier": 4.0, + "tier": 3.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 80000.0, @@ -31727,16 +34698,16 @@ "maintenanceMarginRate": 0.05, "maxLeverage": 6.0, "info": { - "bracket": "4", + "bracket": "3", "initialLeverage": "6", "notionalCap": "800000", "notionalFloor": "80000", "maintMarginRatio": "0.05", - "cum": "2150.0" + "cum": "2125.0" } }, { - "tier": 5.0, + "tier": 4.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 800000.0, @@ -31744,16 +34715,16 @@ "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "4", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "42150.0" + "cum": "42125.0" } }, { - "tier": 6.0, + "tier": 5.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -31761,19 +34732,36 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "82150.0" + "cum": "82125.0" + } + }, + { + "tier": 6.0, + "symbol": "JASMY/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "165525.0" } }, { "tier": 7.0, "symbol": "JASMY/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, + "minNotional": 3000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, @@ -31781,9 +34769,9 @@ "bracket": "7", "initialLeverage": "2", "notionalCap": "4000000", - "notionalFloor": "2000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "332150.0" + "cum": "415425.0" } }, { @@ -31800,7 +34788,7 @@ "notionalCap": "4500000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "1332150.0" + "cum": "1415425.0" } } ], @@ -31812,10 +34800,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -31829,10 +34817,10 @@ "minNotional": 5000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", @@ -31846,10 +34834,10 @@ "minNotional": 25000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "200000", "notionalFloor": "25000", "maintMarginRatio": "0.05", @@ -31863,10 +34851,10 @@ "minNotional": 200000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "300000", "notionalFloor": "200000", "maintMarginRatio": "0.1", @@ -31880,10 +34868,10 @@ "minNotional": 300000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "5", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "400000", "notionalFloor": "300000", "maintMarginRatio": "0.125", @@ -31933,10 +34921,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -31950,10 +34938,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -31967,10 +34955,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -31984,10 +34972,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -32001,10 +34989,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -32018,10 +35006,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -32035,10 +35023,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -32080,6 +35068,178 @@ } } ], + "JST/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "JST/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": "JST/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": "JST/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": "JST/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": "JST/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": "JST/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": "JST/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": "JST/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "JST/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "159750.0" + } + }, + { + "tier": 10.0, + "symbol": "JST/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "784750.0" + } + } + ], "JTO/USDT:USDT": [ { "tier": 1.0, @@ -33303,6 +36463,161 @@ } } ], + "KERNEL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "KERNEL/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": "KERNEL/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": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "30000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 60000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "60000", + "notionalFloor": "30000", + "maintMarginRatio": "0.025", + "cum": "225.0" + } + }, + { + "tier": 5.0, + "symbol": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 60000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "60000", + "maintMarginRatio": "0.05", + "cum": "1725.0" + } + }, + { + "tier": 6.0, + "symbol": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "16725.0" + } + }, + { + "tier": 7.0, + "symbol": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "31725.0" + } + }, + { + "tier": 8.0, + "symbol": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "125475.0" + } + }, + { + "tier": 9.0, + "symbol": "KERNEL/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "500475.0" + } + } + ], "KEY/USDT:USDT": [ { "tier": 1.0, @@ -35033,15 +38348,15 @@ "symbol": "LISTA/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -35049,72 +38364,89 @@ "tier": 2.0, "symbol": "LISTA/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "LISTA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "LISTA/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1400.0" + "initialLeverage": "7", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "LISTA/USDT:USDT", "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "500000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1420.0" + } + }, + { + "tier": 6.0, + "symbol": "LISTA/USDT:USDT", + "currency": "USDT", "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", - "cum": "26400.0" + "cum": "26420.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "LISTA/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, @@ -35122,46 +38454,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", - "cum": "51400.0" - } - }, - { - "tier": 7.0, - "symbol": "LISTA/USDT:USDT", - "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "207650.0" + "cum": "51420.0" } }, { "tier": 8.0, "symbol": "LISTA/USDT:USDT", "currency": "USDT", + "minNotional": 1250000.0, + "maxNotional": 1875000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1875000", + "notionalFloor": "1250000", + "maintMarginRatio": "0.1667", + "cum": "103545.0" + } + }, + { + "tier": 9.0, + "symbol": "LISTA/USDT:USDT", + "currency": "USDT", + "minNotional": 1875000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1875000", + "maintMarginRatio": "0.25", + "cum": "259732.5" + } + }, + { + "tier": 10.0, + "symbol": "LISTA/USDT:USDT", + "currency": "USDT", "minNotional": 2500000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "5000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "832650.0" + "cum": "884732.5" } } ], @@ -35311,10 +38660,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -35328,10 +38677,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -35345,10 +38694,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -35362,10 +38711,10 @@ "minNotional": 20000.0, "maxNotional": 40000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "40000", "notionalFloor": "20000", "maintMarginRatio": "0.025", @@ -35379,10 +38728,10 @@ "minNotional": 40000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "200000", "notionalFloor": "40000", "maintMarginRatio": "0.05", @@ -35396,10 +38745,10 @@ "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.1", @@ -35413,10 +38762,10 @@ "minNotional": 400000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "500000", "notionalFloor": "400000", "maintMarginRatio": "0.125", @@ -35570,10 +38919,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -35587,10 +38936,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -35604,10 +38953,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -35621,10 +38970,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -35638,10 +38987,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -35655,10 +39004,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -35672,10 +39021,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -35704,13 +39053,13 @@ "symbol": "LPT/USDT:USDT", "currency": "USDT", "minNotional": 4000000.0, - "maxNotional": 8000000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "8000000", + "notionalCap": "4500000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", "cum": "1334505.0" @@ -36570,10 +39919,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -36587,10 +39936,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -36604,10 +39953,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -36621,10 +39970,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -36638,10 +39987,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -36655,10 +40004,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -36672,10 +40021,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -36725,10 +40074,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -36742,10 +40091,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -36759,10 +40108,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -36776,10 +40125,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -36793,10 +40142,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -36810,10 +40159,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -36827,10 +40176,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -36878,13 +40227,13 @@ "symbol": "MANA/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, + "maxNotional": 10600.0, "maintenanceMarginRate": 0.0065, - "maxLeverage": 50.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "20", + "notionalCap": "10600", "notionalFloor": "0", "maintMarginRatio": "0.0065", "cum": "0.0" @@ -36894,89 +40243,106 @@ "tier": 2.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.0075, - "maxLeverage": 40.0, + "minNotional": 10600.0, + "maxNotional": 23000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "40", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.0075", - "cum": "5.0" + "initialLeverage": "10", + "notionalCap": "23000", + "notionalFloor": "10600", + "maintMarginRatio": "0.01", + "cum": "37.1" } }, { "tier": 3.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "minNotional": 23000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 9.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.01", - "cum": "67.5" + "initialLeverage": "9", + "notionalCap": "30000", + "notionalFloor": "23000", + "maintMarginRatio": "0.015", + "cum": "152.1" } }, { "tier": 4.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 150000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 30000.0, + "maxNotional": 47000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 8.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "150000", - "notionalFloor": "50000", - "maintMarginRatio": "0.025", - "cum": "817.5" + "initialLeverage": "8", + "notionalCap": "47000", + "notionalFloor": "30000", + "maintMarginRatio": "0.02", + "cum": "302.1" } }, { "tier": 5.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 250000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 47000.0, + "maxNotional": 90000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "250000", - "notionalFloor": "150000", - "maintMarginRatio": "0.05", - "cum": "4567.5" + "initialLeverage": "7", + "notionalCap": "90000", + "notionalFloor": "47000", + "maintMarginRatio": "0.025", + "cum": "537.1" } }, { "tier": 6.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", + "minNotional": 90000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "6", + "initialLeverage": "6", + "notionalCap": "250000", + "notionalFloor": "90000", + "maintMarginRatio": "0.05", + "cum": "2787.1" + } + }, + { + "tier": 7.0, + "symbol": "MANA/USDT:USDT", + "currency": "USDT", "minNotional": 250000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "17067.5" + "cum": "15287.1" } }, { - "tier": 7.0, + "tier": 8.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -36984,46 +40350,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "7", + "bracket": "8", "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "29567.5" - } - }, - { - "tier": 8.0, - "symbol": "MANA/USDT:USDT", - "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.25", - "cum": "154567.5" + "cum": "27787.1" } }, { "tier": 9.0, "symbol": "MANA/USDT:USDT", "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "69487.1" + } + }, + { + "tier": 10.0, + "symbol": "MANA/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "10", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "319387.1" + } + }, + { + "tier": 11.0, + "symbol": "MANA/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, - "maxNotional": 10000000.0, + "maxNotional": 8800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "11", "initialLeverage": "1", - "notionalCap": "10000000", + "notionalCap": "8800000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1404567.5" + "cum": "1569387.1" } } ], @@ -37035,282 +40418,6 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, - "info": { - "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", - "notionalFloor": "0", - "maintMarginRatio": "0.01", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, - "info": { - "bracket": "2", - "initialLeverage": "25", - "notionalCap": "50000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "50.0" - } - }, - { - "tier": 3.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "3", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", - "maintMarginRatio": "0.025", - "cum": "300.0" - } - }, - { - "tier": 4.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "4", - "initialLeverage": "10", - "notionalCap": "1000000", - "notionalFloor": "100000", - "maintMarginRatio": "0.05", - "cum": "2800.0" - } - }, - { - "tier": 5.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.1", - "cum": "52800.0" - } - }, - { - "tier": 6.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "6", - "initialLeverage": "4", - "notionalCap": "2500000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.125", - "cum": "102800.0" - } - }, - { - "tier": 7.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "5000000", - "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "415300.0" - } - }, - { - "tier": 8.0, - "symbol": "MANTA/USDT:USDT", - "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 10000000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "8", - "initialLeverage": "1", - "notionalCap": "10000000", - "notionalFloor": "5000000", - "maintMarginRatio": "0.5", - "cum": "1665300.0" - } - } - ], - "MASK/USDT:USDT": [ - { - "tier": 1.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, - "info": { - "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", - "notionalFloor": "0", - "maintMarginRatio": "0.01", - "cum": "0.0" - } - }, - { - "tier": 2.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, - "info": { - "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "50.0" - } - }, - { - "tier": 3.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 900000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "3", - "initialLeverage": "20", - "notionalCap": "900000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "175.0" - } - }, - { - "tier": 4.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 900000.0, - "maxNotional": 1800000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "4", - "initialLeverage": "10", - "notionalCap": "1800000", - "notionalFloor": "900000", - "maintMarginRatio": "0.05", - "cum": "22675.0" - } - }, - { - "tier": 5.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 1800000.0, - "maxNotional": 4800000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, - "info": { - "bracket": "5", - "initialLeverage": "5", - "notionalCap": "4800000", - "notionalFloor": "1800000", - "maintMarginRatio": "0.1", - "cum": "112675.0" - } - }, - { - "tier": 6.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 4800000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "6", - "initialLeverage": "4", - "notionalCap": "6000000", - "notionalFloor": "4800000", - "maintMarginRatio": "0.125", - "cum": "232675.0" - } - }, - { - "tier": 7.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 18000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "18000000", - "notionalFloor": "6000000", - "maintMarginRatio": "0.25", - "cum": "982675.0" - } - }, - { - "tier": 8.0, - "symbol": "MASK/USDT:USDT", - "currency": "USDT", - "minNotional": 18000000.0, - "maxNotional": 30000000.0, - "maintenanceMarginRate": 0.5, - "maxLeverage": 1.0, - "info": { - "bracket": "8", - "initialLeverage": "1", - "notionalCap": "30000000", - "notionalFloor": "18000000", - "maintMarginRatio": "0.5", - "cum": "5482675.0" - } - } - ], - "MAV/USDT:USDT": [ - { - "tier": 1.0, - "symbol": "MAV/USDT:USDT", - "currency": "USDT", - "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", @@ -37323,7 +40430,7 @@ }, { "tier": 2.0, - "symbol": "MAV/USDT:USDT", + "symbol": "MANTA/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, "maxNotional": 10000.0, @@ -37340,15 +40447,359 @@ }, { "tier": 3.0, - "symbol": "MAV/USDT:USDT", + "symbol": "MANTA/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.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": "MANTA/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": "MANTA/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "MANTA/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" + } + }, + { + "tier": 7.0, + "symbol": "MANTA/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" + } + }, + { + "tier": 8.0, + "symbol": "MANTA/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" + } + }, + { + "tier": 9.0, + "symbol": "MANTA/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "MANTA/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "8000000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.5", + "cum": "1568050.0" + } + } + ], + "MASK/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 900000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, + "info": { + "bracket": "4", + "initialLeverage": "7", + "notionalCap": "900000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" + } + }, + { + "tier": 5.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 900000.0, + "maxNotional": 1800000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "1800000", + "notionalFloor": "900000", + "maintMarginRatio": "0.05", + "cum": "22700.0" + } + }, + { + "tier": 6.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 1800000.0, + "maxNotional": 4800000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "4800000", + "notionalFloor": "1800000", + "maintMarginRatio": "0.1", + "cum": "112700.0" + } + }, + { + "tier": 7.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 4800000.0, + "maxNotional": 6000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "6000000", + "notionalFloor": "4800000", + "maintMarginRatio": "0.125", + "cum": "232700.0" + } + }, + { + "tier": 8.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 6000000.0, + "maxNotional": 12000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "12000000", + "notionalFloor": "6000000", + "maintMarginRatio": "0.1667", + "cum": "482900.0" + } + }, + { + "tier": 9.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 12000000.0, + "maxNotional": 18000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "18000000", + "notionalFloor": "12000000", + "maintMarginRatio": "0.25", + "cum": "1482500.0" + } + }, + { + "tier": 10.0, + "symbol": "MASK/USDT:USDT", + "currency": "USDT", + "minNotional": 18000000.0, + "maxNotional": 30000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "30000000", + "notionalFloor": "18000000", + "maintMarginRatio": "0.5", + "cum": "5982500.0" + } + } + ], + "MAV/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MAV/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.01", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "MAV/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "MAV/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -37362,10 +40813,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -37379,10 +40830,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -37396,10 +40847,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -37413,10 +40864,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -38139,10 +41590,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -38156,10 +41607,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -38173,10 +41624,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -38190,10 +41641,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -38207,10 +41658,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -38224,10 +41675,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -38241,10 +41692,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -38286,6 +41737,161 @@ } } ], + "MEMEFI/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MEMEFI/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": "MEMEFI/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": "MEMEFI/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "MEMEFI/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "125000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1325.0" + } + }, + { + "tier": 5.0, + "symbol": "MEMEFI/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.1", + "cum": "7575.0" + } + }, + { + "tier": 6.0, + "symbol": "MEMEFI/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.125", + "cum": "13825.0" + } + }, + { + "tier": 7.0, + "symbol": "MEMEFI/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34675.0" + } + }, + { + "tier": 8.0, + "symbol": "MEMEFI/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": "159625.0" + } + }, + { + "tier": 9.0, + "symbol": "MEMEFI/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": "784625.0" + } + } + ], "METIS/USDT:USDT": [ { "tier": 1.0, @@ -38413,15 +42019,15 @@ "symbol": "MEW/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "10000", + "initialLeverage": "50", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -38429,136 +42035,136 @@ "tier": 2.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", - "maintMarginRatio": "0.015", - "cum": "50.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", - "maintMarginRatio": "0.02", - "cum": "350.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "150.0" } }, { "tier": 4.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", - "maintMarginRatio": "0.025", - "cum": "1850.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1400.0" } }, { "tier": 5.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 900000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "900000", - "notionalFloor": "600000", - "maintMarginRatio": "0.05", - "cum": "16850.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13900.0" } }, { "tier": 6.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 900000.0, - "maxNotional": 1200000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", - "notionalCap": "1200000", - "notionalFloor": "900000", - "maintMarginRatio": "0.1", - "cum": "61850.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26400.0" } }, { "tier": 7.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 1200000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "1500000", - "notionalFloor": "1200000", - "maintMarginRatio": "0.125", - "cum": "91850.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68100.0" } }, { "tier": 8.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 1800000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "1800000", - "notionalFloor": "1500000", + "notionalCap": "5000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "279350.0" + "cum": "318000.0" } }, { "tier": 9.0, "symbol": "MEW/USDT:USDT", "currency": "USDT", - "minNotional": 1800000.0, - "maxNotional": 2000000.0, + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1800000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "729350.0" + "cum": "1568000.0" } } ], @@ -38855,6 +42461,144 @@ } } ], + "MLN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "MLN/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": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "2", + "initialLeverage": "25", + "notionalCap": "20000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 20000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "30000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "125.0" + } + }, + { + "tier": 4.0, + "symbol": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "30000", + "maintMarginRatio": "0.05", + "cum": "875.0" + } + }, + { + "tier": 5.0, + "symbol": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "15875.0" + } + }, + { + "tier": 6.0, + "symbol": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "30875.0" + } + }, + { + "tier": 7.0, + "symbol": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "124625.0" + } + }, + { + "tier": 8.0, + "symbol": "MLN/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "499625.0" + } + } + ], "MOCA/USDT:USDT": [ { "tier": 1.0, @@ -39016,13 +42760,13 @@ "symbol": "MOODENG/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 4600.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "4600", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -39032,136 +42776,153 @@ "tier": 2.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 80000.0, + "minNotional": 4600.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "35000", + "notionalFloor": "4600", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "23.0" } }, { "tier": 3.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 400000.0, + "minNotional": 35000.0, + "maxNotional": 175000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "15", - "notionalCap": "400000", - "notionalFloor": "80000", + "initialLeverage": "8", + "notionalCap": "175000", + "notionalFloor": "35000", "maintMarginRatio": "0.02", - "cum": "450.0" + "cum": "198.0" } }, { "tier": 4.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 800000.0, + "minNotional": 175000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "400000", + "initialLeverage": "7", + "notionalCap": "350000", + "notionalFloor": "175000", "maintMarginRatio": "0.025", - "cum": "2450.0" + "cum": "1073.0" } }, { "tier": 5.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, - "maxNotional": 4000000.0, + "minNotional": 350000.0, + "maxNotional": 1750000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "8", - "notionalCap": "4000000", - "notionalFloor": "800000", + "initialLeverage": "6", + "notionalCap": "1750000", + "notionalFloor": "350000", "maintMarginRatio": "0.05", - "cum": "22450.0" + "cum": "9823.0" } }, { "tier": 6.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 4500000.0, + "minNotional": 1750000.0, + "maxNotional": 2100000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "4500000", - "notionalFloor": "4000000", + "notionalCap": "2100000", + "notionalFloor": "1750000", "maintMarginRatio": "0.1", - "cum": "222450.0" + "cum": "97323.0" } }, { "tier": 7.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, - "maxNotional": 5000000.0, + "minNotional": 2100000.0, + "maxNotional": 2600000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "5000000", - "notionalFloor": "4500000", + "notionalCap": "2600000", + "notionalFloor": "2100000", "maintMarginRatio": "0.125", - "cum": "334950.0" + "cum": "149823.0" } }, { "tier": 8.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 5500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 2600000.0, + "maxNotional": 3900000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5500000", - "notionalFloor": "5000000", - "maintMarginRatio": "0.25", - "cum": "959950.0" + "initialLeverage": "3", + "notionalCap": "3900000", + "notionalFloor": "2600000", + "maintMarginRatio": "0.1667", + "cum": "258243.0" } }, { "tier": 9.0, "symbol": "MOODENG/USDT:USDT", "currency": "USDT", - "minNotional": 5500000.0, - "maxNotional": 6000000.0, + "minNotional": 3900000.0, + "maxNotional": 5200000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5200000", + "notionalFloor": "3900000", + "maintMarginRatio": "0.25", + "cum": "583113.0" + } + }, + { + "tier": 10.0, + "symbol": "MOODENG/USDT:USDT", + "currency": "USDT", + "minNotional": 5200000.0, + "maxNotional": 7200000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "6000000", - "notionalFloor": "5500000", + "notionalCap": "7200000", + "notionalFloor": "5200000", "maintMarginRatio": "0.5", - "cum": "2334950.0" + "cum": "1883113.0" } } ], @@ -39602,15 +43363,15 @@ "symbol": "MTL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 4200.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 26.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "5000", + "initialLeverage": "26", + "notionalCap": "4200", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -39618,102 +43379,153 @@ "tier": 2.0, "symbol": "MTL/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 4200.0, + "maxNotional": 7600.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" + "initialLeverage": "25", + "notionalCap": "7600", + "notionalFloor": "4200", + "maintMarginRatio": "0.015", + "cum": "21.0" } }, { "tier": 3.0, "symbol": "MTL/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 600000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 7600.0, + "maxNotional": 17000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "10", - "notionalCap": "600000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "650.0" + "initialLeverage": "20", + "notionalCap": "17000", + "notionalFloor": "7600", + "maintMarginRatio": "0.02", + "cum": "59.0" } }, { "tier": 4.0, "symbol": "MTL/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 1600000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 17000.0, + "maxNotional": 40000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 10.0, "info": { "bracket": "4", - "initialLeverage": "5", - "notionalCap": "1600000", - "notionalFloor": "600000", - "maintMarginRatio": "0.1", - "cum": "30650.0" + "initialLeverage": "10", + "notionalCap": "40000", + "notionalFloor": "17000", + "maintMarginRatio": "0.025", + "cum": "144.0" } }, { "tier": 5.0, "symbol": "MTL/USDT:USDT", "currency": "USDT", - "minNotional": 1600000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 40000.0, + "maxNotional": 390000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "4", - "notionalCap": "2000000", - "notionalFloor": "1600000", - "maintMarginRatio": "0.125", - "cum": "70650.0" + "initialLeverage": "6", + "notionalCap": "390000", + "notionalFloor": "40000", + "maintMarginRatio": "0.05", + "cum": "1144.0" } }, { "tier": 6.0, "symbol": "MTL/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 390000.0, + "maxNotional": 940000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "6000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "320650.0" + "initialLeverage": "5", + "notionalCap": "940000", + "notionalFloor": "390000", + "maintMarginRatio": "0.1", + "cum": "20644.0" } }, { "tier": 7.0, "symbol": "MTL/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, + "minNotional": 940000.0, + "maxNotional": 1400000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "1400000", + "notionalFloor": "940000", + "maintMarginRatio": "0.125", + "cum": "44144.0" + } + }, + { + "tier": 8.0, + "symbol": "MTL/USDT:USDT", + "currency": "USDT", + "minNotional": 1400000.0, + "maxNotional": 3400000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3400000", + "notionalFloor": "1400000", + "maintMarginRatio": "0.1667", + "cum": "102524.0" + } + }, + { + "tier": 9.0, + "symbol": "MTL/USDT:USDT", + "currency": "USDT", + "minNotional": 3400000.0, + "maxNotional": 5400000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5400000", + "notionalFloor": "3400000", + "maintMarginRatio": "0.25", + "cum": "385744.0" + } + }, + { + "tier": 10.0, + "symbol": "MTL/USDT:USDT", + "currency": "USDT", + "minNotional": 5400000.0, + "maxNotional": 8800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalCap": "8800000", + "notionalFloor": "5400000", "maintMarginRatio": "0.5", - "cum": "1820650.0" + "cum": "1735744.0" } } ], @@ -40294,10 +44106,10 @@ "minNotional": 0.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "20000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -40311,10 +44123,10 @@ "minNotional": 20000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "8", "notionalCap": "160000", "notionalFloor": "20000", "maintMarginRatio": "0.015", @@ -40328,10 +44140,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.02", @@ -40345,10 +44157,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.025", @@ -40362,10 +44174,10 @@ "minNotional": 1600000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "3000000", "notionalFloor": "1600000", "maintMarginRatio": "0.05", @@ -40379,10 +44191,10 @@ "minNotional": 3000000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "5000000", "notionalFloor": "3000000", "maintMarginRatio": "0.1", @@ -40396,10 +44208,10 @@ "minNotional": 5000000.0, "maxNotional": 7000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "7000000", "notionalFloor": "5000000", "maintMarginRatio": "0.125", @@ -40604,10 +44416,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.006, - "maxLeverage": 50.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.006", @@ -40621,10 +44433,10 @@ "minNotional": 5000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "15", "notionalCap": "50000", "notionalFloor": "5000", "maintMarginRatio": "0.01", @@ -40636,13 +44448,13 @@ "symbol": "NEO/USDC:USDC", "currency": "USDC", "minNotional": 50000.0, - "maxNotional": 400000.0, + "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "400000", + "initialLeverage": "10", + "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", "cum": "770.0" @@ -40652,85 +44464,85 @@ "tier": 4.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 400000.0, - "maxNotional": 800000.0, + "minNotional": 100000.0, + "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "400000", + "initialLeverage": "5", + "notionalCap": "300000", + "notionalFloor": "100000", "maintMarginRatio": "0.05", - "cum": "10770.0" + "cum": "3270.0" } }, { "tier": 5.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 800000.0, - "maxNotional": 2000000.0, + "minNotional": 300000.0, + "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "800000", + "initialLeverage": "4", + "notionalCap": "600000", + "notionalFloor": "300000", "maintMarginRatio": "0.1", - "cum": "50770.0" + "cum": "18270.0" } }, { "tier": 6.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 2000000.0, - "maxNotional": 5000000.0, + "minNotional": 600000.0, + "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "5000000", - "notionalFloor": "2000000", + "initialLeverage": "3", + "notionalCap": "750000", + "notionalFloor": "600000", "maintMarginRatio": "0.125", - "cum": "100770.0" + "cum": "33270.0" } }, { "tier": 7.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 5000000.0, - "maxNotional": 12000000.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "7", "initialLeverage": "2", - "notionalCap": "12000000", - "notionalFloor": "5000000", + "notionalCap": "1500000", + "notionalFloor": "750000", "maintMarginRatio": "0.25", - "cum": "725770.0" + "cum": "127020.0" } }, { "tier": 8.0, "symbol": "NEO/USDC:USDC", "currency": "USDC", - "minNotional": 12000000.0, - "maxNotional": 20000000.0, + "minNotional": 1500000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "8", "initialLeverage": "1", - "notionalCap": "20000000", - "notionalFloor": "12000000", + "notionalCap": "2500000", + "notionalFloor": "1500000", "maintMarginRatio": "0.5", - "cum": "3725770.0" + "cum": "502020.0" } } ], @@ -40742,10 +44554,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.006, - "maxLeverage": 50.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.006", @@ -40759,10 +44571,10 @@ "minNotional": 5000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "25", + "initialLeverage": "15", "notionalCap": "50000", "notionalFloor": "5000", "maintMarginRatio": "0.01", @@ -40774,13 +44586,13 @@ "symbol": "NEO/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, - "maxNotional": 400000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "400000", + "initialLeverage": "10", + "notionalCap": "250000", "notionalFloor": "50000", "maintMarginRatio": "0.025", "cum": "770.0" @@ -40790,34 +44602,34 @@ "tier": 4.0, "symbol": "NEO/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 800000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "400000", + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.05", - "cum": "10770.0" + "cum": "7020.0" } }, { "tier": 5.0, "symbol": "NEO/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, + "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", - "notionalFloor": "800000", + "notionalFloor": "500000", "maintMarginRatio": "0.1", - "cum": "50770.0" + "cum": "32020.0" } }, { @@ -40825,23 +44637,23 @@ "symbol": "NEO/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, - "maxNotional": 1500000.0, + "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "1500000", + "initialLeverage": "3", + "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", - "cum": "75770.0" + "cum": "57020.0" } }, { "tier": 7.0, "symbol": "NEO/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, + "minNotional": 1250000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, @@ -40849,9 +44661,9 @@ "bracket": "7", "initialLeverage": "2", "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalFloor": "1250000", "maintMarginRatio": "0.25", - "cum": "263270.0" + "cum": "213270.0" } }, { @@ -40868,7 +44680,7 @@ "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.5", - "cum": "763270.0" + "cum": "713270.0" } } ], @@ -40878,15 +44690,15 @@ "symbol": "NFP/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -40894,72 +44706,89 @@ "tier": 2.0, "symbol": "NFP/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "NFP/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "50000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "NFP/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "50000", - "maintMarginRatio": "0.05", - "cum": "1400.0" + "initialLeverage": "7", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "NFP/USDT:USDT", "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "500000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1420.0" + } + }, + { + "tier": 6.0, + "symbol": "NFP/USDT:USDT", + "currency": "USDT", "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", - "cum": "26400.0" + "cum": "26420.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "NFP/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, @@ -40967,46 +44796,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", - "cum": "51400.0" - } - }, - { - "tier": 7.0, - "symbol": "NFP/USDT:USDT", - "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "207650.0" + "cum": "51420.0" } }, { "tier": 8.0, "symbol": "NFP/USDT:USDT", "currency": "USDT", + "minNotional": 1250000.0, + "maxNotional": 1875000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1875000", + "notionalFloor": "1250000", + "maintMarginRatio": "0.1667", + "cum": "103545.0" + } + }, + { + "tier": 9.0, + "symbol": "NFP/USDT:USDT", + "currency": "USDT", + "minNotional": 1875000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1875000", + "maintMarginRatio": "0.25", + "cum": "259732.5" + } + }, + { + "tier": 10.0, + "symbol": "NFP/USDT:USDT", + "currency": "USDT", "minNotional": 2500000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "5000000", "notionalFloor": "2500000", "maintMarginRatio": "0.5", - "cum": "832650.0" + "cum": "884732.5" } } ], @@ -41241,10 +45087,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 2.0, + "maxLeverage": 4.0, "info": { "bracket": "5", - "initialLeverage": "2", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.125", @@ -41256,16 +45102,50 @@ "symbol": "NKN/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "65475.0" + } + }, + { + "tier": 7.0, + "symbol": "NKN/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "2000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "190425.0" + } + }, + { + "tier": 8.0, + "symbol": "NKN/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "6", + "bracket": "8", "initialLeverage": "1", "notionalCap": "3000000", - "notionalFloor": "1000000", + "notionalFloor": "2000000", "maintMarginRatio": "0.5", - "cum": "398775.0" + "cum": "690425.0" } } ], @@ -41396,13 +45276,13 @@ "symbol": "NOT/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" @@ -41412,136 +45292,153 @@ "tier": 2.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 2000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "2000000", - "notionalFloor": "600000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 3000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "2000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "116850.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 4000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3000000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "191850.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.25", - "cum": "691850.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "NOT/USDT:USDT", "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "NOT/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, - "maxNotional": 6000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "6000000", + "notionalCap": "8000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1941850.0" + "cum": "1568050.0" } } ], @@ -42069,15 +45966,15 @@ "symbol": "OM/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 400000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 5.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "5", - "notionalCap": "400000", + "initialLeverage": "75", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.05", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -42085,68 +45982,153 @@ "tier": 2.0, "symbol": "OM/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 4.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "4", - "notionalCap": "1500000", - "notionalFloor": "400000", - "maintMarginRatio": "0.1", - "cum": "20000.0" + "initialLeverage": "50", + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "OM/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 1800000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 3.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "3", - "notionalCap": "1800000", - "notionalFloor": "1500000", - "maintMarginRatio": "0.125", - "cum": "57500.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "OM/USDT:USDT", "currency": "USDT", - "minNotional": 1800000.0, - "maxNotional": 1900000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "2", - "notionalCap": "1900000", - "notionalFloor": "1800000", - "maintMarginRatio": "0.25", - "cum": "282500.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "OM/USDT:USDT", "currency": "USDT", - "minNotional": 1900000.0, - "maxNotional": 2000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" + } + }, + { + "tier": 6.0, + "symbol": "OM/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" + } + }, + { + "tier": 7.0, + "symbol": "OM/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" + } + }, + { + "tier": 8.0, + "symbol": "OM/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" + } + }, + { + "tier": 9.0, + "symbol": "OM/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "OM/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "5", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1900000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "757500.0" + "cum": "1568050.0" } } ], @@ -42572,10 +46554,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -42589,10 +46571,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -42604,13 +46586,13 @@ "symbol": "ONE/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "35000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -42620,102 +46602,119 @@ "tier": 4.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 35000.0, + "maxNotional": 70000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "250.0" } }, { "tier": 5.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 70000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "2000.0" } }, { "tier": 6.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 350000.0, + "maxNotional": 700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "700000", + "notionalFloor": "350000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "19500.0" } }, { "tier": 7.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 700000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "1100000", + "notionalFloor": "700000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "37000.0" } }, { "tier": 8.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1100000.0, + "maxNotional": 2550000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "209075.0" + "initialLeverage": "3", + "notionalCap": "2550000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" } }, { "tier": 9.0, "symbol": "ONE/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 5000000.0, + "minNotional": 2550000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "2550000", + "maintMarginRatio": "0.25", + "cum": "295285.0" + } + }, + { + "tier": 10.0, + "symbol": "ONE/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "2500000", + "notionalCap": "6800000", + "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "834075.0" + "cum": "1295285.0" } } ], @@ -43296,10 +47295,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 30.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "30", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -43311,13 +47310,13 @@ "symbol": "ORCA/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 10000.0, + "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", + "initialLeverage": "25", + "notionalCap": "20000", "notionalFloor": "5000", "maintMarginRatio": "0.015", "cum": "25.0" @@ -43327,34 +47326,34 @@ "tier": 3.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 30000.0, + "minNotional": 20000.0, + "maxNotional": 45000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 18.0, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "18", - "notionalCap": "30000", - "notionalFloor": "10000", + "initialLeverage": "20", + "notionalCap": "45000", + "notionalFloor": "20000", "maintMarginRatio": "0.02", - "cum": "75.0" + "cum": "125.0" } }, { "tier": 4.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 30000.0, + "minNotional": 45000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 15.0, + "maxLeverage": 18.0, "info": { "bracket": "4", - "initialLeverage": "15", + "initialLeverage": "18", "notionalCap": "60000", - "notionalFloor": "30000", + "notionalFloor": "45000", "maintMarginRatio": "0.025", - "cum": "225.0" + "cum": "350.0" } }, { @@ -43362,84 +47361,101 @@ "symbol": "ORCA/USDT:USDT", "currency": "USDT", "minNotional": 60000.0, - "maxNotional": 300000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.03, + "maxLeverage": 15.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "300000", + "initialLeverage": "15", + "notionalCap": "80000", "notionalFloor": "60000", - "maintMarginRatio": "0.05", - "cum": "1725.0" + "maintMarginRatio": "0.03", + "cum": "650.0" } }, { "tier": 6.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "6", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "80000", + "maintMarginRatio": "0.05", + "cum": "2250.0" + } + }, + { + "tier": 7.0, + "symbol": "ORCA/USDT:USDT", + "currency": "USDT", "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "5", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", - "cum": "16725.0" - } - }, - { - "tier": 7.0, - "symbol": "ORCA/USDT:USDT", - "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 750000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, - "info": { - "bracket": "7", - "initialLeverage": "4", - "notionalCap": "750000", - "notionalFloor": "600000", - "maintMarginRatio": "0.125", - "cum": "31725.0" + "cum": "17250.0" } }, { "tier": 8.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", - "minNotional": 750000.0, - "maxNotional": 1500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 600000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "1500000", - "notionalFloor": "750000", - "maintMarginRatio": "0.25", - "cum": "125475.0" + "initialLeverage": "4", + "notionalCap": "800000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "32250.0" } }, { "tier": 9.0, "symbol": "ORCA/USDT:USDT", "currency": "USDT", + "minNotional": 800000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "800000", + "maintMarginRatio": "0.25", + "cum": "132250.0" + } + }, + { + "tier": 10.0, + "symbol": "ORCA/USDT:USDT", + "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "2000000", + "notionalCap": "2500000", "notionalFloor": "1500000", "maintMarginRatio": "0.5", - "cum": "500475.0" + "cum": "507250.0" } } ], @@ -43451,10 +47467,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.0065, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.0065", @@ -43468,10 +47484,10 @@ "minNotional": 5000.0, "maxNotional": 75000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "75000", "notionalFloor": "5000", "maintMarginRatio": "0.01", @@ -43485,10 +47501,10 @@ "minNotional": 75000.0, "maxNotional": 150000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 40.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "40", + "initialLeverage": "8", "notionalCap": "150000", "notionalFloor": "75000", "maintMarginRatio": "0.015", @@ -43502,10 +47518,10 @@ "minNotional": 150000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "300000", "notionalFloor": "150000", "maintMarginRatio": "0.02", @@ -43519,10 +47535,10 @@ "minNotional": 300000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "300000", "maintMarginRatio": "0.025", @@ -43536,10 +47552,10 @@ "minNotional": 1000000.0, "maxNotional": 3000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "3000000", "notionalFloor": "1000000", "maintMarginRatio": "0.05", @@ -43553,10 +47569,10 @@ "minNotional": 3000000.0, "maxNotional": 6000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "6000000", "notionalFloor": "3000000", "maintMarginRatio": "0.1", @@ -43570,10 +47586,10 @@ "minNotional": 6000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "10000000", "notionalFloor": "6000000", "maintMarginRatio": "0.125", @@ -43621,15 +47637,15 @@ "symbol": "ORDI/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.0065, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.01, "maxLeverage": 75.0, "info": { "bracket": "1", "initialLeverage": "75", - "notionalCap": "10000", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.0065", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -43637,153 +47653,153 @@ "tier": 2.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.01, + "minNotional": 5000.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "80000", - "notionalFloor": "10000", - "maintMarginRatio": "0.01", - "cum": "35.0" + "notionalCap": "10000", + "notionalFloor": "5000", + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 150000.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": "150000", - "notionalFloor": "80000", - "maintMarginRatio": "0.015", - "cum": "435.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 400000.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": "400000", - "notionalFloor": "150000", - "maintMarginRatio": "0.02", - "cum": "1185.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "20", - "notionalCap": "1000000", - "notionalFloor": "400000", - "maintMarginRatio": "0.025", - "cum": "3185.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", - "notionalCap": "4000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.05", - "cum": "28185.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 8000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", - "notionalCap": "8000000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.1", - "cum": "228185.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 8000000.0, - "maxNotional": 10000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", - "notionalCap": "10000000", - "notionalFloor": "8000000", - "maintMarginRatio": "0.125", - "cum": "428185.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 20000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "20000000", - "notionalFloor": "10000000", + "notionalCap": "5000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "1678185.0" + "cum": "318050.0" } }, { "tier": 10.0, "symbol": "ORDI/USDT:USDT", "currency": "USDT", - "minNotional": 20000000.0, - "maxNotional": 40000000.0, + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "40000000", - "notionalFloor": "20000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "6678185.0" + "cum": "1568050.0" } } ], @@ -44063,6 +48079,161 @@ } } ], + "PAXG/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "PAXG/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": "PAXG/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": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "30000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "300000", + "notionalFloor": "30000", + "maintMarginRatio": "0.025", + "cum": "225.0" + } + }, + { + "tier": 5.0, + "symbol": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 900000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "900000", + "notionalFloor": "300000", + "maintMarginRatio": "0.05", + "cum": "7725.0" + } + }, + { + "tier": 6.0, + "symbol": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 900000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "2000000", + "notionalFloor": "900000", + "maintMarginRatio": "0.1", + "cum": "52725.0" + } + }, + { + "tier": 7.0, + "symbol": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.125", + "cum": "102725.0" + } + }, + { + "tier": 8.0, + "symbol": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "477725.0" + } + }, + { + "tier": 9.0, + "symbol": "PAXG/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 10000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "10000000", + "notionalFloor": "5000000", + "maintMarginRatio": "0.5", + "cum": "1727725.0" + } + } + ], "PENDLE/USDT:USDT": [ { "tier": 1.0, @@ -44224,13 +48395,13 @@ "symbol": "PENGU/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 7000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "7000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -44240,136 +48411,153 @@ "tier": 2.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 7000.0, + "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "30000", + "notionalFloor": "7000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "35.0" } }, { "tier": 3.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 30000.0, + "maxNotional": 135000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "initialLeverage": "8", + "notionalCap": "135000", + "notionalFloor": "30000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "185.0" } }, { "tier": 4.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 135000.0, + "maxNotional": 270000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "initialLeverage": "7", + "notionalCap": "270000", + "notionalFloor": "135000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "860.0" } }, { "tier": 5.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 3000000.0, + "minNotional": 270000.0, + "maxNotional": 1350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "3000000", - "notionalFloor": "600000", + "initialLeverage": "6", + "notionalCap": "1350000", + "notionalFloor": "270000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "7610.0" } }, { "tier": 6.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 6000000.0, + "minNotional": 1350000.0, + "maxNotional": 2700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "6000000", - "notionalFloor": "3000000", + "notionalCap": "2700000", + "notionalFloor": "1350000", "maintMarginRatio": "0.1", - "cum": "166850.0" + "cum": "75110.0" } }, { "tier": 7.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 7500000.0, + "minNotional": 2700000.0, + "maxNotional": 3600000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "7500000", - "notionalFloor": "6000000", + "notionalCap": "3600000", + "notionalFloor": "2700000", "maintMarginRatio": "0.125", - "cum": "316850.0" + "cum": "142610.0" } }, { "tier": 8.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 15000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 3600000.0, + "maxNotional": 6300000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "15000000", - "notionalFloor": "7500000", - "maintMarginRatio": "0.25", - "cum": "1254350.0" + "initialLeverage": "3", + "notionalCap": "6300000", + "notionalFloor": "3600000", + "maintMarginRatio": "0.1667", + "cum": "292730.0" } }, { "tier": 9.0, "symbol": "PENGU/USDT:USDT", "currency": "USDT", - "minNotional": 15000000.0, - "maxNotional": 30000000.0, + "minNotional": 6300000.0, + "maxNotional": 9000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "9000000", + "notionalFloor": "6300000", + "maintMarginRatio": "0.25", + "cum": "817520.0" + } + }, + { + "tier": 10.0, + "symbol": "PENGU/USDT:USDT", + "currency": "USDT", + "minNotional": 9000000.0, + "maxNotional": 16800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "30000000", - "notionalFloor": "15000000", + "notionalCap": "16800000", + "notionalFloor": "9000000", "maintMarginRatio": "0.5", - "cum": "5004350.0" + "cum": "3067520.0" } } ], @@ -44381,10 +48569,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -44398,10 +48586,10 @@ "minNotional": 10000.0, "maxNotional": 40000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "40000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -44415,10 +48603,10 @@ "minNotional": 40000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "40000", "maintMarginRatio": "0.02", @@ -44432,10 +48620,10 @@ "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.025", @@ -44449,10 +48637,10 @@ "minNotional": 400000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1500000", "notionalFloor": "400000", "maintMarginRatio": "0.05", @@ -44466,10 +48654,10 @@ "minNotional": 1500000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.1", @@ -44483,10 +48671,10 @@ "minNotional": 2000000.0, "maxNotional": 2500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.125", @@ -44535,14 +48723,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", + "initialLeverage": "25", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -44560,7 +48748,7 @@ "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", - "cum": "50.0" + "cum": "25.0" } }, { @@ -44577,7 +48765,7 @@ "notionalCap": "200000", "notionalFloor": "25000", "maintMarginRatio": "0.05", - "cum": "675.0" + "cum": "650.0" } }, { @@ -44594,7 +48782,7 @@ "notionalCap": "500000", "notionalFloor": "200000", "maintMarginRatio": "0.1", - "cum": "10675.0" + "cum": "10650.0" } }, { @@ -44611,7 +48799,7 @@ "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "23175.0" + "cum": "23150.0" } }, { @@ -44619,33 +48807,50 @@ "symbol": "PERP/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "3000000", + "initialLeverage": "3", + "notionalCap": "2000000", "notionalFloor": "1000000", - "maintMarginRatio": "0.25", - "cum": "148175.0" + "maintMarginRatio": "0.1667", + "cum": "64850.0" } }, { "tier": 7.0, "symbol": "PERP/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.25", + "cum": "231450.0" + } + }, + { + "tier": 8.0, + "symbol": "PERP/USDT:USDT", + "currency": "USDT", "minNotional": 3000000.0, "maxNotional": 3005000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "8", "initialLeverage": "1", "notionalCap": "3005000", "notionalFloor": "3000000", "maintMarginRatio": "0.5", - "cum": "898175.0" + "cum": "981450.0" } } ], @@ -44916,10 +49121,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -44933,10 +49138,10 @@ "minNotional": 5000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", @@ -44950,10 +49155,10 @@ "minNotional": 25000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "200000", "notionalFloor": "25000", "maintMarginRatio": "0.05", @@ -44967,10 +49172,10 @@ "minNotional": 200000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "200000", "maintMarginRatio": "0.1", @@ -44984,10 +49189,10 @@ "minNotional": 500000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "5", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "500000", "maintMarginRatio": "0.125", @@ -45037,10 +49242,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -45054,10 +49259,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -45071,10 +49276,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -45088,10 +49293,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -45105,10 +49310,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -45122,10 +49327,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -45139,10 +49344,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -45466,13 +49671,13 @@ "symbol": "PNUT/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 20000.0, + "maxNotional": 15000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "20000", + "initialLeverage": "20", + "notionalCap": "15000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -45482,136 +49687,136 @@ "tier": 2.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 160000.0, + "minNotional": 15000.0, + "maxNotional": 120000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "160000", - "notionalFloor": "20000", + "initialLeverage": "8", + "notionalCap": "120000", + "notionalFloor": "15000", "maintMarginRatio": "0.015", - "cum": "100.0" + "cum": "75.0" } }, { "tier": 3.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 160000.0, - "maxNotional": 800000.0, + "minNotional": 120000.0, + "maxNotional": 600000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "800000", - "notionalFloor": "160000", + "initialLeverage": "7", + "notionalCap": "600000", + "notionalFloor": "120000", "maintMarginRatio": "0.02", - "cum": "900.0" + "cum": "675.0" } }, { "tier": 4.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, - "maxNotional": 1600000.0, + "minNotional": 600000.0, + "maxNotional": 1200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "1600000", - "notionalFloor": "800000", + "initialLeverage": "6", + "notionalCap": "1200000", + "notionalFloor": "600000", "maintMarginRatio": "0.025", - "cum": "4900.0" + "cum": "3675.0" } }, { "tier": 5.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 1600000.0, - "maxNotional": 6000000.0, + "minNotional": 1200000.0, + "maxNotional": 1800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "6000000", - "notionalFloor": "1600000", + "initialLeverage": "5", + "notionalCap": "1800000", + "notionalFloor": "1200000", "maintMarginRatio": "0.05", - "cum": "44900.0" + "cum": "33675.0" } }, { "tier": 6.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 10000000.0, + "minNotional": 1800000.0, + "maxNotional": 2500000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", - "notionalCap": "10000000", - "notionalFloor": "6000000", + "initialLeverage": "4", + "notionalCap": "2500000", + "notionalFloor": "1800000", "maintMarginRatio": "0.1", - "cum": "344900.0" + "cum": "123675.0" } }, { "tier": 7.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 12000000.0, + "minNotional": 2500000.0, + "maxNotional": 3000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "12000000", - "notionalFloor": "10000000", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2500000", "maintMarginRatio": "0.125", - "cum": "594900.0" + "cum": "186175.0" } }, { "tier": 8.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 12000000.0, - "maxNotional": 14000000.0, + "minNotional": 3000000.0, + "maxNotional": 3500000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "14000000", - "notionalFloor": "12000000", + "notionalCap": "3500000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "2094900.0" + "cum": "561175.0" } }, { "tier": 9.0, "symbol": "PNUT/USDT:USDT", "currency": "USDT", - "minNotional": 14000000.0, - "maxNotional": 16000000.0, + "minNotional": 3500000.0, + "maxNotional": 4000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "16000000", - "notionalFloor": "14000000", + "notionalCap": "4000000", + "notionalFloor": "3500000", "maintMarginRatio": "0.5", - "cum": "5594900.0" + "cum": "1436175.0" } } ], @@ -45776,15 +49981,15 @@ "symbol": "POLYX/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -45792,72 +49997,89 @@ "tier": 2.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 800000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "80000", - "maintMarginRatio": "0.05", - "cum": "2150.0" + "initialLeverage": "7", + "notionalCap": "80000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "800000", + "notionalFloor": "80000", + "maintMarginRatio": "0.05", + "cum": "2170.0" + } + }, + { + "tier": 6.0, + "symbol": "POLYX/USDT:USDT", + "currency": "USDT", "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "42150.0" + "cum": "42170.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -45865,46 +50087,63 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "82150.0" - } - }, - { - "tier": 7.0, - "symbol": "POLYX/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "332150.0" + "cum": "82170.0" } }, { "tier": 8.0, "symbol": "POLYX/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "165570.0" + } + }, + { + "tier": 9.0, + "symbol": "POLYX/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "415470.0" + } + }, + { + "tier": 10.0, + "symbol": "POLYX/USDT:USDT", + "currency": "USDT", "minNotional": 4000000.0, "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "8000000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "1332150.0" + "cum": "1415470.0" } } ], @@ -46069,15 +50308,15 @@ "symbol": "POPCAT/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "50", + "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.01", + "maintMarginRatio": "0.015", "cum": "0.0" } }, @@ -46085,126 +50324,126 @@ "tier": 2.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "10000", - "maintMarginRatio": "0.015", - "cum": "50.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "3", - "initialLeverage": "15", - "notionalCap": "500000", - "notionalFloor": "100000", - "maintMarginRatio": "0.02", - "cum": "550.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "150.0" } }, { "tier": 4.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.025, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "4", "initialLeverage": "10", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.025", - "cum": "3050.0" + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1400.0" } }, { "tier": 5.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "8", - "notionalCap": "3000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.05", - "cum": "28050.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13900.0" } }, { "tier": 6.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", - "notionalCap": "5000000", - "notionalFloor": "3000000", - "maintMarginRatio": "0.1", - "cum": "178050.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26400.0" } }, { "tier": 7.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", - "notionalCap": "6000000", - "notionalFloor": "5000000", - "maintMarginRatio": "0.125", - "cum": "303050.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68100.0" } }, { "tier": 8.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, - "maxNotional": 7000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "8", "initialLeverage": "2", - "notionalCap": "7000000", - "notionalFloor": "6000000", + "notionalCap": "5000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "1053050.0" + "cum": "318000.0" } }, { "tier": 9.0, "symbol": "POPCAT/USDT:USDT", "currency": "USDT", - "minNotional": 7000000.0, + "minNotional": 5000000.0, "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, @@ -46212,9 +50451,9 @@ "bracket": "9", "initialLeverage": "1", "notionalCap": "8000000", - "notionalFloor": "7000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "2803050.0" + "cum": "1568000.0" } } ], @@ -46615,6 +50854,437 @@ } } ], + "PROMPT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 25.0, + "info": { + "bracket": "1", + "initialLeverage": "25", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.015", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 150000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "150000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "150.0" + } + }, + { + "tier": 4.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 150000.0, + "maxNotional": 350000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "350000", + "notionalFloor": "150000", + "maintMarginRatio": "0.05", + "cum": "3900.0" + } + }, + { + "tier": 5.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 350000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "800000", + "notionalFloor": "350000", + "maintMarginRatio": "0.1", + "cum": "21400.0" + } + }, + { + "tier": 6.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 800000.0, + "maxNotional": 900000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "900000", + "notionalFloor": "800000", + "maintMarginRatio": "0.125", + "cum": "41400.0" + } + }, + { + "tier": 7.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 900000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "900000", + "maintMarginRatio": "0.25", + "cum": "153900.0" + } + }, + { + "tier": 8.0, + "symbol": "PROMPT/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "8", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "528900.0" + } + } + ], + "PUMP/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.025", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.033, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.033", + "cum": "40.0" + } + }, + { + "tier": 3.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "100000", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "465.0" + } + }, + { + "tier": 4.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "200000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1", + "cum": "5465.0" + } + }, + { + "tier": 5.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "200000", + "maintMarginRatio": "0.125", + "cum": "10465.0" + } + }, + { + "tier": 6.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "6", + "initialLeverage": "2", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.25", + "cum": "72965.0" + } + }, + { + "tier": 7.0, + "symbol": "PUMP/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "7", + "initialLeverage": "1", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.5", + "cum": "322965.0" + } + } + ], + "PUNDIX/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "PUNDIX/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": "PUNDIX/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": "PUNDIX/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": "PUNDIX/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": "PUNDIX/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": "PUNDIX/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": "PUNDIX/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": "PUNDIX/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "PUNDIX/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "159750.0" + } + }, + { + "tier": 10.0, + "symbol": "PUNDIX/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "784750.0" + } + } + ], "PYTH/USDT:USDT": [ { "tier": 1.0, @@ -47054,10 +51724,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -47071,10 +51741,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -47086,13 +51756,13 @@ "symbol": "QUICK/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 20000.0, + "maxNotional": 23000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "20000", + "initialLeverage": "10", + "notionalCap": "23000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -47102,102 +51772,119 @@ "tier": 4.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 40000.0, + "minNotional": 23000.0, + "maxNotional": 46000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "40000", - "notionalFloor": "20000", + "initialLeverage": "7", + "notionalCap": "46000", + "notionalFloor": "23000", "maintMarginRatio": "0.025", - "cum": "175.0" + "cum": "190.0" } }, { "tier": 5.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 40000.0, - "maxNotional": 200000.0, + "minNotional": 46000.0, + "maxNotional": 230000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "40000", + "initialLeverage": "6", + "notionalCap": "230000", + "notionalFloor": "46000", "maintMarginRatio": "0.05", - "cum": "1175.0" + "cum": "1340.0" } }, { "tier": 6.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 200000.0, - "maxNotional": 400000.0, + "minNotional": 230000.0, + "maxNotional": 460000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "400000", - "notionalFloor": "200000", + "notionalCap": "460000", + "notionalFloor": "230000", "maintMarginRatio": "0.1", - "cum": "11175.0" + "cum": "12840.0" } }, { "tier": 7.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 500000.0, + "minNotional": 460000.0, + "maxNotional": 800000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "500000", - "notionalFloor": "400000", + "notionalCap": "800000", + "notionalFloor": "460000", "maintMarginRatio": "0.125", - "cum": "21175.0" + "cum": "24340.0" } }, { "tier": 8.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 800000.0, + "maxNotional": 2100000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "1000000", - "notionalFloor": "500000", - "maintMarginRatio": "0.25", - "cum": "83675.0" + "initialLeverage": "3", + "notionalCap": "2100000", + "notionalFloor": "800000", + "maintMarginRatio": "0.1667", + "cum": "57700.0" } }, { "tier": 9.0, "symbol": "QUICK/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, + "minNotional": 2100000.0, + "maxNotional": 3400000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "3400000", + "notionalFloor": "2100000", + "maintMarginRatio": "0.25", + "cum": "232630.0" + } + }, + { + "tier": 10.0, + "symbol": "QUICK/USDT:USDT", + "currency": "USDT", + "minNotional": 3400000.0, + "maxNotional": 5600000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "2000000", - "notionalFloor": "1000000", + "notionalCap": "5600000", + "notionalFloor": "3400000", "maintMarginRatio": "0.5", - "cum": "333675.0" + "cum": "1082630.0" } } ], @@ -47744,10 +52431,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -47761,10 +52448,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -47778,10 +52465,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -47795,10 +52482,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -47812,10 +52499,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -47829,10 +52516,10 @@ "minNotional": 1000000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.1", @@ -47846,10 +52533,10 @@ "minNotional": 2000000.0, "maxNotional": 2500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.125", @@ -49107,10 +53794,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -49124,10 +53811,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -49141,10 +53828,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -49158,10 +53845,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -49175,10 +53862,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -49192,10 +53879,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -49209,10 +53896,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -49417,10 +54104,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -49434,10 +54121,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -49449,13 +54136,13 @@ "symbol": "RSR/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "35000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -49465,102 +54152,119 @@ "tier": 4.0, "symbol": "RSR/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 35000.0, + "maxNotional": 70000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "250.0" } }, { "tier": 5.0, "symbol": "RSR/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 70000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "2000.0" } }, { "tier": 6.0, "symbol": "RSR/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 350000.0, + "maxNotional": 700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "700000", + "notionalFloor": "350000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "19500.0" } }, { "tier": 7.0, "symbol": "RSR/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 700000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "1100000", + "notionalFloor": "700000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "37000.0" } }, { "tier": 8.0, "symbol": "RSR/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1100000.0, + "maxNotional": 2650000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3000000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "209075.0" + "initialLeverage": "3", + "notionalCap": "2650000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" } }, { "tier": 9.0, "symbol": "RSR/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 5000000.0, + "minNotional": 2650000.0, + "maxNotional": 4200000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4200000", + "notionalFloor": "2650000", + "maintMarginRatio": "0.25", + "cum": "303615.0" + } + }, + { + "tier": 10.0, + "symbol": "RSR/USDT:USDT", + "currency": "USDT", + "minNotional": 4200000.0, + "maxNotional": 6800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "3000000", + "notionalCap": "6800000", + "notionalFloor": "4200000", "maintMarginRatio": "0.5", - "cum": "959075.0" + "cum": "1353615.0" } } ], @@ -50175,10 +54879,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -50192,10 +54896,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -50209,10 +54913,10 @@ "minNotional": 30000.0, "maxNotional": 150000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "150000", "notionalFloor": "30000", "maintMarginRatio": "0.02", @@ -50226,10 +54930,10 @@ "minNotional": 150000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "300000", "notionalFloor": "150000", "maintMarginRatio": "0.025", @@ -50243,10 +54947,10 @@ "minNotional": 300000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "1500000", "notionalFloor": "300000", "maintMarginRatio": "0.05", @@ -50260,10 +54964,10 @@ "minNotional": 1500000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.1", @@ -50277,10 +54981,10 @@ "minNotional": 2000000.0, "maxNotional": 2500000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.125", @@ -50502,10 +55206,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -50519,10 +55223,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -50536,10 +55240,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -50553,10 +55257,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -50570,10 +55274,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -50587,10 +55291,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -50604,10 +55308,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -50761,10 +55465,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -50778,10 +55482,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -50795,10 +55499,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -50812,10 +55516,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -50829,10 +55533,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -50846,10 +55550,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -50863,10 +55567,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -50895,13 +55599,13 @@ "symbol": "SCR/USDT:USDT", "currency": "USDT", "minNotional": 4000000.0, - "maxNotional": 8000000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "8000000", + "notionalCap": "4500000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", "cum": "1334505.0" @@ -51069,13 +55773,13 @@ "symbol": "SEI/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" @@ -51085,136 +55789,153 @@ "tier": 2.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 100000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "100000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "500000", - "notionalFloor": "100000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "550.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "3050.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 5000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "5000000", - "notionalFloor": "1000000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "28050.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 5000000.0, - "maxNotional": 10000000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "10000000", - "notionalFloor": "5000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "278050.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 11000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "11000000", - "notionalFloor": "10000000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "528050.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 11000000.0, - "maxNotional": 12000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "12000000", - "notionalFloor": "11000000", - "maintMarginRatio": "0.25", - "cum": "1903050.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "SEI/USDT:USDT", "currency": "USDT", - "minNotional": 12000000.0, - "maxNotional": 13000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "SEI/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "13000000", - "notionalFloor": "12000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "4903050.0" + "cum": "1568050.0" } } ], @@ -51443,6 +56164,178 @@ } } ], + "SIGN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "SIGN/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": "SIGN/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": "SIGN/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": "SIGN/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": "SIGN/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": "SIGN/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": "SIGN/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": "SIGN/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "1500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "SIGN/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "2500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "159750.0" + } + }, + { + "tier": 10.0, + "symbol": "SIGN/USDT:USDT", + "currency": "USDT", + "minNotional": 2500000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "4000000", + "notionalFloor": "2500000", + "maintMarginRatio": "0.5", + "cum": "784750.0" + } + } + ], "SIREN/USDT:USDT": [ { "tier": 1.0, @@ -53209,10 +58102,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -53226,10 +58119,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -53243,10 +58136,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -53260,10 +58153,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -53277,10 +58170,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -53294,10 +58187,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -53311,10 +58204,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -53685,6 +58578,127 @@ } } ], + "STO/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "1", + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.025", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.033, + "maxLeverage": 15.0, + "info": { + "bracket": "2", + "initialLeverage": "15", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.033", + "cum": "40.0" + } + }, + { + "tier": 3.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "100000", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "465.0" + } + }, + { + "tier": 4.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "200000", + "notionalFloor": "100000", + "maintMarginRatio": "0.1", + "cum": "5465.0" + } + }, + { + "tier": 5.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "500000", + "notionalFloor": "200000", + "maintMarginRatio": "0.125", + "cum": "10465.0" + } + }, + { + "tier": 6.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "6", + "initialLeverage": "2", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.25", + "cum": "72965.0" + } + }, + { + "tier": 7.0, + "symbol": "STO/USDT:USDT", + "currency": "USDT", + "minNotional": 1000000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "7", + "initialLeverage": "1", + "notionalCap": "2000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.5", + "cum": "322965.0" + } + } + ], "STORJ/USDT:USDT": [ { "tier": 1.0, @@ -54642,10 +59656,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -54659,10 +59673,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -54676,10 +59690,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -54693,10 +59707,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -54710,10 +59724,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -54727,10 +59741,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -54744,10 +59758,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -55383,10 +60397,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -55400,10 +60414,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -55417,10 +60431,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -55434,10 +60448,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -55451,10 +60465,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -55500,33 +60514,50 @@ "symbol": "SXP/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 6000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "6000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "SXP/USDT:USDT", "currency": "USDT", - "minNotional": 6000000.0, + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "SXP/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", - "notionalFloor": "6000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1918150.0" + "cum": "1772275.0" } } ], @@ -56107,10 +61138,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -56124,10 +61155,10 @@ "minNotional": 10000.0, "maxNotional": 40000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "40000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -56141,10 +61172,10 @@ "minNotional": 40000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "200000", "notionalFloor": "40000", "maintMarginRatio": "0.02", @@ -56158,10 +61189,10 @@ "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.025", @@ -56175,10 +61206,10 @@ "minNotional": 400000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "2000000", "notionalFloor": "400000", "maintMarginRatio": "0.05", @@ -56192,10 +61223,10 @@ "minNotional": 2000000.0, "maxNotional": 3500000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "3500000", "notionalFloor": "2000000", "maintMarginRatio": "0.1", @@ -56209,10 +61240,10 @@ "minNotional": 3500000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "4000000", "notionalFloor": "3500000", "maintMarginRatio": "0.125", @@ -56814,10 +61845,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -56831,10 +61862,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -56848,10 +61879,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -56865,10 +61896,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -56882,10 +61913,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -56899,10 +61930,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -56916,10 +61947,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -57244,14 +62275,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 26.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "26", + "initialLeverage": "75", "notionalCap": "5000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -57260,15 +62291,15 @@ "symbol": "TRB/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 50000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "50", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.015", "cum": "25.0" } }, @@ -57276,102 +62307,136 @@ "tier": 3.0, "symbol": "TRB/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", - "maintMarginRatio": "0.025", - "cum": "275.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "TRB/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 400000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "400000", - "notionalFloor": "100000", - "maintMarginRatio": "0.05", - "cum": "2775.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "TRB/USDT:USDT", "currency": "USDT", - "minNotional": 400000.0, - "maxNotional": 1000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "400000", - "maintMarginRatio": "0.1", - "cum": "22775.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "TRB/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "4", - "notionalCap": "2000000", - "notionalFloor": "1000000", - "maintMarginRatio": "0.125", - "cum": "47775.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "TRB/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "297775.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "TRB/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 4500000.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" + } + }, + { + "tier": 9.0, + "symbol": "TRB/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "TRB/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "4500000", - "notionalFloor": "4000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1297775.0" + "cum": "1568050.0" } } ], @@ -57538,10 +62603,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -57555,10 +62620,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -57572,10 +62637,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -57589,10 +62654,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -57606,10 +62671,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -57623,10 +62688,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -57640,10 +62705,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -57846,13 +62911,13 @@ "symbol": "TRUMP/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "75", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -57862,17 +62927,17 @@ "tier": 2.0, "symbol": "TRUMP/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, + "minNotional": 5000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "20000", - "notionalFloor": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { @@ -57882,14 +62947,14 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 25.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "25", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", - "cum": "150.0" + "cum": "125.0" } }, { @@ -57899,14 +62964,14 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 20.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "20", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", - "cum": "650.0" + "cum": "625.0" } }, { @@ -57916,14 +62981,14 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "10", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", - "cum": "5650.0" + "cum": "5625.0" } }, { @@ -57940,7 +63005,7 @@ "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.1", - "cum": "55650.0" + "cum": "55625.0" } }, { @@ -57957,7 +63022,7 @@ "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.125", - "cum": "105650.0" + "cum": "105625.0" } }, { @@ -57965,33 +63030,50 @@ "symbol": "TRUMP/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209875.0" } }, { "tier": 9.0, "symbol": "TRUMP/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522250.0" + } + }, + { + "tier": 10.0, + "symbol": "TRUMP/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 6000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "6000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772250.0" } } ], @@ -58175,10 +63257,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "10", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -58192,10 +63274,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "8", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -58209,10 +63291,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -58226,10 +63308,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -58243,10 +63325,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -58260,10 +63342,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -58277,10 +63359,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -58309,13 +63391,13 @@ "symbol": "TST/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "3000000", + "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.5", "cum": "500475.0" @@ -58328,13 +63410,13 @@ "symbol": "TURBO/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" @@ -58344,136 +63426,153 @@ "tier": 2.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 60000.0, + "minNotional": 5000.0, + "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "60000", - "notionalFloor": "10000", + "notionalCap": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { "tier": 3.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 300000.0, + "minNotional": 10000.0, + "maxNotional": 25000.0, "maintenanceMarginRate": 0.02, "maxLeverage": 25.0, "info": { "bracket": "3", "initialLeverage": "25", - "notionalCap": "300000", - "notionalFloor": "60000", + "notionalCap": "25000", + "notionalFloor": "10000", "maintMarginRatio": "0.02", - "cum": "350.0" + "cum": "75.0" } }, { "tier": 4.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 600000.0, + "minNotional": 25000.0, + "maxNotional": 50000.0, "maintenanceMarginRate": 0.025, "maxLeverage": 20.0, "info": { "bracket": "4", "initialLeverage": "20", - "notionalCap": "600000", - "notionalFloor": "300000", + "notionalCap": "50000", + "notionalFloor": "25000", "maintMarginRatio": "0.025", - "cum": "1850.0" + "cum": "200.0" } }, { "tier": 5.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 600000.0, - "maxNotional": 3000000.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { "bracket": "5", "initialLeverage": "10", - "notionalCap": "3000000", - "notionalFloor": "600000", + "notionalCap": "250000", + "notionalFloor": "50000", "maintMarginRatio": "0.05", - "cum": "16850.0" + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3500000", - "notionalFloor": "3000000", + "notionalCap": "500000", + "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "166850.0" + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 3500000.0, - "maxNotional": 4000000.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "4000000", - "notionalFloor": "3500000", + "notionalCap": "1000000", + "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "254350.0" + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 4000000.0, - "maxNotional": 4500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "4500000", - "notionalFloor": "4000000", - "maintMarginRatio": "0.25", - "cum": "754350.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "TURBO/USDT:USDT", "currency": "USDT", - "minNotional": 4500000.0, + "minNotional": 3000000.0, "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "318050.0" + } + }, + { + "tier": 10.0, + "symbol": "TURBO/USDT:USDT", + "currency": "USDT", + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "4500000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1879350.0" + "cum": "1568050.0" } } ], @@ -58485,10 +63584,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.02", @@ -58502,10 +63601,10 @@ "minNotional": 5000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 8.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "8", "notionalCap": "25000", "notionalFloor": "5000", "maintMarginRatio": "0.025", @@ -58519,10 +63618,10 @@ "minNotional": 25000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "3", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "200000", "notionalFloor": "25000", "maintMarginRatio": "0.05", @@ -58536,10 +63635,10 @@ "minNotional": 200000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "4", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "200000", "maintMarginRatio": "0.1", @@ -58553,10 +63652,10 @@ "minNotional": 500000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "5", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "500000", "maintMarginRatio": "0.125", @@ -58585,13 +63684,13 @@ "symbol": "TUT/USDT:USDT", "currency": "USDT", "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "maxNotional": 2000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "7", "initialLeverage": "1", - "notionalCap": "3000000", + "notionalCap": "2000000", "notionalFloor": "1500000", "maintMarginRatio": "0.5", "cum": "491900.0" @@ -58727,10 +63826,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -58744,10 +63843,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -58761,10 +63860,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -58778,10 +63877,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -58795,10 +63894,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -58812,10 +63911,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -58829,10 +63928,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -59415,13 +64514,13 @@ "symbol": "USUAL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 7000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "7000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -59431,136 +64530,153 @@ "tier": 2.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 30000.0, + "minNotional": 7000.0, + "maxNotional": 18000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", - "notionalCap": "30000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "18000", + "notionalFloor": "7000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "35.0" } }, { "tier": 3.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 30000.0, - "maxNotional": 150000.0, + "minNotional": 18000.0, + "maxNotional": 75000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "15", - "notionalCap": "150000", - "notionalFloor": "30000", + "initialLeverage": "8", + "notionalCap": "75000", + "notionalFloor": "18000", "maintMarginRatio": "0.02", - "cum": "200.0" + "cum": "125.0" } }, { "tier": 4.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 300000.0, + "minNotional": 75000.0, + "maxNotional": 150000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "300000", - "notionalFloor": "150000", + "initialLeverage": "7", + "notionalCap": "150000", + "notionalFloor": "75000", "maintMarginRatio": "0.025", - "cum": "950.0" + "cum": "500.0" } }, { "tier": 5.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 1500000.0, + "minNotional": 150000.0, + "maxNotional": 750000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "8", - "notionalCap": "1500000", - "notionalFloor": "300000", + "initialLeverage": "6", + "notionalCap": "750000", + "notionalFloor": "150000", "maintMarginRatio": "0.05", - "cum": "8450.0" + "cum": "4250.0" } }, { "tier": 6.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 3000000.0, + "minNotional": 750000.0, + "maxNotional": 1500000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "3000000", - "notionalFloor": "1500000", + "notionalCap": "1500000", + "notionalFloor": "750000", "maintMarginRatio": "0.1", - "cum": "83450.0" + "cum": "41750.0" } }, { "tier": 7.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3750000.0, + "minNotional": 1500000.0, + "maxNotional": 2100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "3750000", - "notionalFloor": "3000000", + "notionalCap": "2100000", + "notionalFloor": "1500000", "maintMarginRatio": "0.125", - "cum": "158450.0" + "cum": "79250.0" } }, { "tier": 8.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 3750000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 2100000.0, + "maxNotional": 4050000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "7500000", - "notionalFloor": "3750000", - "maintMarginRatio": "0.25", - "cum": "627200.0" + "initialLeverage": "3", + "notionalCap": "4050000", + "notionalFloor": "2100000", + "maintMarginRatio": "0.1667", + "cum": "166820.0" } }, { "tier": 9.0, "symbol": "USUAL/USDT:USDT", "currency": "USDT", - "minNotional": 7500000.0, - "maxNotional": 8500000.0, + "minNotional": 4050000.0, + "maxNotional": 6000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "6000000", + "notionalFloor": "4050000", + "maintMarginRatio": "0.25", + "cum": "504185.0" + } + }, + { + "tier": 10.0, + "symbol": "USUAL/USDT:USDT", + "currency": "USDT", + "minNotional": 6000000.0, + "maxNotional": 8200000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "8500000", - "notionalFloor": "7500000", + "notionalCap": "8200000", + "notionalFloor": "6000000", "maintMarginRatio": "0.5", - "cum": "2502200.0" + "cum": "2004185.0" } } ], @@ -59572,10 +64688,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -59589,10 +64705,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -59606,10 +64722,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -59623,10 +64739,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -59640,10 +64756,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -59657,10 +64773,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -59674,10 +64790,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -59727,10 +64843,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -59744,10 +64860,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -59761,10 +64877,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -59778,10 +64894,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -59795,10 +64911,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -59844,33 +64960,50 @@ "symbol": "VANA/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 2750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3000000", + "initialLeverage": "3", + "notionalCap": "2750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "VANA/USDT:USDT", "currency": "USDT", + "minNotional": 2750000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "3000000", + "notionalFloor": "2750000", + "maintMarginRatio": "0.25", + "cum": "438975.0" + } + }, + { + "tier": 10.0, + "symbol": "VANA/USDT:USDT", + "currency": "USDT", "minNotional": 3000000.0, "maxNotional": 3500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "3500000", "notionalFloor": "3000000", "maintMarginRatio": "0.5", - "cum": "1168150.0" + "cum": "1188975.0" } } ], @@ -60330,10 +65463,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -60347,10 +65480,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -60364,10 +65497,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -60381,10 +65514,10 @@ "minNotional": 30000.0, "maxNotional": 60000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "60000", "notionalFloor": "30000", "maintMarginRatio": "0.025", @@ -60398,10 +65531,10 @@ "minNotional": 60000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "300000", "notionalFloor": "60000", "maintMarginRatio": "0.05", @@ -60415,10 +65548,10 @@ "minNotional": 300000.0, "maxNotional": 600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "600000", "notionalFloor": "300000", "maintMarginRatio": "0.1", @@ -60432,10 +65565,10 @@ "minNotional": 600000.0, "maxNotional": 750000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "750000", "notionalFloor": "600000", "maintMarginRatio": "0.125", @@ -60708,13 +65841,13 @@ "symbol": "VIRTUAL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 25.0, + "maxLeverage": 75.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "10000", + "initialLeverage": "75", + "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -60724,17 +65857,17 @@ "tier": 2.0, "symbol": "VIRTUAL/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, + "minNotional": 5000.0, "maxNotional": 40000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 20.0, + "maxLeverage": 50.0, "info": { "bracket": "2", - "initialLeverage": "20", + "initialLeverage": "50", "notionalCap": "40000", - "notionalFloor": "10000", + "notionalFloor": "5000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "25.0" } }, { @@ -60744,14 +65877,14 @@ "minNotional": 40000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 15.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "15", + "initialLeverage": "10", "notionalCap": "200000", "notionalFloor": "40000", "maintMarginRatio": "0.02", - "cum": "250.0" + "cum": "225.0" } }, { @@ -60761,14 +65894,14 @@ "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.025", - "cum": "1250.0" + "cum": "1225.0" } }, { @@ -60778,14 +65911,14 @@ "minNotional": 400000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 8.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "8", + "initialLeverage": "5", "notionalCap": "2000000", "notionalFloor": "400000", "maintMarginRatio": "0.05", - "cum": "11250.0" + "cum": "11225.0" } }, { @@ -60795,14 +65928,14 @@ "minNotional": 2000000.0, "maxNotional": 4000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "4000000", "notionalFloor": "2000000", "maintMarginRatio": "0.1", - "cum": "111250.0" + "cum": "111225.0" } }, { @@ -60812,14 +65945,14 @@ "minNotional": 4000000.0, "maxNotional": 5000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "5000000", "notionalFloor": "4000000", "maintMarginRatio": "0.125", - "cum": "211250.0" + "cum": "211225.0" } }, { @@ -60836,7 +65969,7 @@ "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.25", - "cum": "836250.0" + "cum": "836225.0" } }, { @@ -60853,7 +65986,7 @@ "notionalCap": "11000000", "notionalFloor": "10000000", "maintMarginRatio": "0.5", - "cum": "3336250.0" + "cum": "3336225.0" } } ], @@ -60863,15 +65996,15 @@ "symbol": "VOXEL/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 20000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 15.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "15", + "notionalCap": "20000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -60879,72 +66012,55 @@ "tier": 2.0, "symbol": "VOXEL/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 20000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 20000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "20000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "20000", + "maintMarginRatio": "0.025", + "cum": "100.0" } }, { "tier": 3.0, "symbol": "VOXEL/USDT:USDT", "currency": "USDT", - "minNotional": 20000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 25000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "25000", - "notionalFloor": "20000", - "maintMarginRatio": "0.025", - "cum": "125.0" + "initialLeverage": "6", + "notionalCap": "200000", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "725.0" } }, { "tier": 4.0, "symbol": "VOXEL/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 200000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, - "info": { - "bracket": "4", - "initialLeverage": "10", - "notionalCap": "200000", - "notionalFloor": "25000", - "maintMarginRatio": "0.05", - "cum": "750.0" - } - }, - { - "tier": 5.0, - "symbol": "VOXEL/USDT:USDT", - "currency": "USDT", "minNotional": 200000.0, "maxNotional": 400000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "4", "initialLeverage": "5", "notionalCap": "400000", "notionalFloor": "200000", "maintMarginRatio": "0.1", - "cum": "10750.0" + "cum": "10725.0" } }, { - "tier": 6.0, + "tier": 5.0, "symbol": "VOXEL/USDT:USDT", "currency": "USDT", "minNotional": 400000.0, @@ -60952,19 +66068,36 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "4", "notionalCap": "500000", "notionalFloor": "400000", "maintMarginRatio": "0.125", - "cum": "20750.0" + "cum": "20725.0" + } + }, + { + "tier": 6.0, + "symbol": "VOXEL/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "6", + "initialLeverage": "3", + "notionalCap": "750000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "41575.0" } }, { "tier": 7.0, "symbol": "VOXEL/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, + "minNotional": 750000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, @@ -60972,9 +66105,9 @@ "bracket": "7", "initialLeverage": "2", "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalFloor": "750000", "maintMarginRatio": "0.25", - "cum": "83250.0" + "cum": "104050.0" } }, { @@ -60991,7 +66124,7 @@ "notionalCap": "2000000", "notionalFloor": "1000000", "maintMarginRatio": "0.5", - "cum": "333250.0" + "cum": "354050.0" } } ], @@ -61279,10 +66412,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -61296,10 +66429,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -61313,10 +66446,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -61330,10 +66463,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -61347,10 +66480,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -61396,33 +66529,171 @@ "symbol": "W/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "W/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "W/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" + } + } + ], + "WAL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "1", + "initialLeverage": "25", + "notionalCap": "5000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.025", + "cum": "25.0" + } + }, + { + "tier": 3.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 200000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "200000", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "650.0" + } + }, + { + "tier": 4.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 200000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "200000", + "maintMarginRatio": "0.1", + "cum": "10650.0" + } + }, + { + "tier": 5.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "23150.0" + } + }, + { + "tier": 6.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "6", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "116900.0" + } + }, + { + "tier": 7.0, + "symbol": "WAL/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "7", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "491900.0" } } ], @@ -61668,6 +66939,161 @@ } } ], + "WCT/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "WCT/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": "WCT/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": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "30000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 60000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "60000", + "notionalFloor": "30000", + "maintMarginRatio": "0.025", + "cum": "225.0" + } + }, + { + "tier": 5.0, + "symbol": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 60000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "5", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "60000", + "maintMarginRatio": "0.05", + "cum": "1725.0" + } + }, + { + "tier": 6.0, + "symbol": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "6", + "initialLeverage": "5", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "16725.0" + } + }, + { + "tier": 7.0, + "symbol": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "7", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "31725.0" + } + }, + { + "tier": 8.0, + "symbol": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "125475.0" + } + }, + { + "tier": 9.0, + "symbol": "WCT/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "500475.0" + } + } + ], "WIF/USDC:USDC": [ { "tier": 1.0, @@ -62123,14 +67549,14 @@ "currency": "USDT", "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" } }, @@ -62139,152 +67565,152 @@ "symbol": "WLD/USDT:USDT", "currency": "USDT", "minNotional": 5000.0, - "maxNotional": 60000.0, - "maintenanceMarginRate": 0.01, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.015, "maxLeverage": 50.0, "info": { "bracket": "2", "initialLeverage": "50", - "notionalCap": "60000", + "notionalCap": "10000", "notionalFloor": "5000", - "maintMarginRatio": "0.01", - "cum": "20.0" + "maintMarginRatio": "0.015", + "cum": "25.0" } }, { "tier": 3.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 60000.0, - "maxNotional": 160000.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": "160000", - "notionalFloor": "60000", - "maintMarginRatio": "0.015", - "cum": "320.0" + "initialLeverage": "25", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" } }, { "tier": 4.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 160000.0, - "maxNotional": 800000.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": "800000", - "notionalFloor": "160000", - "maintMarginRatio": "0.02", - "cum": "1120.0" + "initialLeverage": "20", + "notionalCap": "50000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "200.0" } }, { "tier": 5.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 800000.0, - "maxNotional": 1600000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 50000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, "info": { "bracket": "5", - "initialLeverage": "20", - "notionalCap": "1600000", - "notionalFloor": "800000", - "maintMarginRatio": "0.025", - "cum": "5120.0" + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "50000", + "maintMarginRatio": "0.05", + "cum": "1450.0" } }, { "tier": 6.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 1600000.0, - "maxNotional": 8000000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 250000.0, + "maxNotional": 500000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, "info": { "bracket": "6", - "initialLeverage": "10", - "notionalCap": "8000000", - "notionalFloor": "1600000", - "maintMarginRatio": "0.05", - "cum": "45120.0" + "initialLeverage": "5", + "notionalCap": "500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "13950.0" } }, { "tier": 7.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 8000000.0, - "maxNotional": 10000000.0, - "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "minNotional": 500000.0, + "maxNotional": 1000000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, "info": { "bracket": "7", - "initialLeverage": "5", - "notionalCap": "10000000", - "notionalFloor": "8000000", - "maintMarginRatio": "0.1", - "cum": "445120.0" + "initialLeverage": "4", + "notionalCap": "1000000", + "notionalFloor": "500000", + "maintMarginRatio": "0.125", + "cum": "26450.0" } }, { "tier": 8.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 10000000.0, - "maxNotional": 12000000.0, - "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "minNotional": 1000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "4", - "notionalCap": "12000000", - "notionalFloor": "10000000", - "maintMarginRatio": "0.125", - "cum": "695120.0" + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "1000000", + "maintMarginRatio": "0.1667", + "cum": "68150.0" } }, { "tier": 9.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 12000000.0, - "maxNotional": 14000000.0, + "minNotional": 3000000.0, + "maxNotional": 5000000.0, "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { "bracket": "9", "initialLeverage": "2", - "notionalCap": "14000000", - "notionalFloor": "12000000", + "notionalCap": "5000000", + "notionalFloor": "3000000", "maintMarginRatio": "0.25", - "cum": "2195120.0" + "cum": "318050.0" } }, { "tier": 10.0, "symbol": "WLD/USDT:USDT", "currency": "USDT", - "minNotional": 14000000.0, - "maxNotional": 16000000.0, + "minNotional": 5000000.0, + "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "10", "initialLeverage": "1", - "notionalCap": "16000000", - "notionalFloor": "14000000", + "notionalCap": "8000000", + "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "5695120.0" + "cum": "1568050.0" } } ], @@ -62398,15 +67824,15 @@ "symbol": "XAI/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxNotional": 4000.0, + "maintenanceMarginRate": 0.01, + "maxLeverage": 25.0, "info": { "bracket": "1", - "initialLeverage": "50", - "notionalCap": "5000", + "initialLeverage": "25", + "notionalCap": "4000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.01", "cum": "0.0" } }, @@ -62414,72 +67840,89 @@ "tier": 2.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 25000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "minNotional": 4000.0, + "maxNotional": 5000.0, + "maintenanceMarginRate": 0.015, + "maxLeverage": 20.0, "info": { "bracket": "2", - "initialLeverage": "25", - "notionalCap": "25000", - "notionalFloor": "5000", - "maintMarginRatio": "0.02", - "cum": "25.0" + "initialLeverage": "20", + "notionalCap": "5000", + "notionalFloor": "4000", + "maintMarginRatio": "0.015", + "cum": "20.0" } }, { "tier": 3.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", - "minNotional": 25000.0, - "maxNotional": 80000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "minNotional": 5000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "20", - "notionalCap": "80000", - "notionalFloor": "25000", - "maintMarginRatio": "0.025", - "cum": "150.0" + "initialLeverage": "10", + "notionalCap": "25000", + "notionalFloor": "5000", + "maintMarginRatio": "0.02", + "cum": "45.0" } }, { "tier": 4.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", - "minNotional": 80000.0, - "maxNotional": 800000.0, - "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "minNotional": 25000.0, + "maxNotional": 80000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "10", - "notionalCap": "800000", - "notionalFloor": "80000", - "maintMarginRatio": "0.05", - "cum": "2150.0" + "initialLeverage": "7", + "notionalCap": "80000", + "notionalFloor": "25000", + "maintMarginRatio": "0.025", + "cum": "170.0" } }, { "tier": 5.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", + "minNotional": 80000.0, + "maxNotional": 800000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 6.0, + "info": { + "bracket": "5", + "initialLeverage": "6", + "notionalCap": "800000", + "notionalFloor": "80000", + "maintMarginRatio": "0.05", + "cum": "2170.0" + } + }, + { + "tier": 6.0, + "symbol": "XAI/USDT:USDT", + "currency": "USDT", "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "5", + "bracket": "6", "initialLeverage": "5", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", - "cum": "42150.0" + "cum": "42170.0" } }, { - "tier": 6.0, + "tier": 7.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", "minNotional": 1600000.0, @@ -62487,46 +67930,184 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "6", + "bracket": "7", "initialLeverage": "4", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", - "cum": "82150.0" - } - }, - { - "tier": 7.0, - "symbol": "XAI/USDT:USDT", - "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 4000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, - "info": { - "bracket": "7", - "initialLeverage": "2", - "notionalCap": "4000000", - "notionalFloor": "2000000", - "maintMarginRatio": "0.25", - "cum": "332150.0" + "cum": "82170.0" } }, { "tier": 8.0, "symbol": "XAI/USDT:USDT", "currency": "USDT", + "minNotional": 2000000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "3000000", + "notionalFloor": "2000000", + "maintMarginRatio": "0.1667", + "cum": "165570.0" + } + }, + { + "tier": 9.0, + "symbol": "XAI/USDT:USDT", + "currency": "USDT", + "minNotional": 3000000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "3000000", + "maintMarginRatio": "0.25", + "cum": "415470.0" + } + }, + { + "tier": 10.0, + "symbol": "XAI/USDT:USDT", + "currency": "USDT", "minNotional": 4000000.0, "maxNotional": 8000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "10", "initialLeverage": "1", "notionalCap": "8000000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "1332150.0" + "cum": "1415470.0" + } + } + ], + "XCN/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 0.0, + "maxNotional": 30000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "1", + "initialLeverage": "25", + "notionalCap": "30000", + "notionalFloor": "0", + "maintMarginRatio": "0.02", + "cum": "0.0" + } + }, + { + "tier": 2.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 30000.0, + "maxNotional": 60000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "2", + "initialLeverage": "20", + "notionalCap": "60000", + "notionalFloor": "30000", + "maintMarginRatio": "0.025", + "cum": "150.0" + } + }, + { + "tier": 3.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 60000.0, + "maxNotional": 300000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "3", + "initialLeverage": "10", + "notionalCap": "300000", + "notionalFloor": "60000", + "maintMarginRatio": "0.05", + "cum": "1650.0" + } + }, + { + "tier": 4.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 300000.0, + "maxNotional": 600000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "4", + "initialLeverage": "5", + "notionalCap": "600000", + "notionalFloor": "300000", + "maintMarginRatio": "0.1", + "cum": "16650.0" + } + }, + { + "tier": 5.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 600000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "5", + "initialLeverage": "4", + "notionalCap": "750000", + "notionalFloor": "600000", + "maintMarginRatio": "0.125", + "cum": "31650.0" + } + }, + { + "tier": 6.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "6", + "initialLeverage": "2", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.25", + "cum": "125400.0" + } + }, + { + "tier": 7.0, + "symbol": "XCN/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 3000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "7", + "initialLeverage": "1", + "notionalCap": "3000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.5", + "cum": "500400.0" } } ], @@ -63538,10 +69119,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -63555,10 +69136,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -63572,10 +69153,10 @@ "minNotional": 10000.0, "maxNotional": 50000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 7.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "7", "notionalCap": "50000", "notionalFloor": "10000", "maintMarginRatio": "0.02", @@ -63589,10 +69170,10 @@ "minNotional": 50000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.025", @@ -63606,10 +69187,10 @@ "minNotional": 100000.0, "maxNotional": 500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "500000", "notionalFloor": "100000", "maintMarginRatio": "0.05", @@ -63623,10 +69204,10 @@ "minNotional": 500000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.1", @@ -63640,10 +69221,10 @@ "minNotional": 1000000.0, "maxNotional": 1250000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "1250000", "notionalFloor": "1000000", "maintMarginRatio": "0.125", @@ -63934,14 +69515,14 @@ "currency": "USDT", "minNotional": 0.0, "maxNotional": 50000.0, - "maintenanceMarginRate": 0.015, + "maintenanceMarginRate": 0.02, "maxLeverage": 10.0, "info": { "bracket": "1", "initialLeverage": "10", "notionalCap": "50000", "notionalFloor": "0", - "maintMarginRatio": "0.015", + "maintMarginRatio": "0.02", "cum": "0.0" } }, @@ -63959,7 +69540,7 @@ "notionalCap": "150000", "notionalFloor": "50000", "maintMarginRatio": "0.025", - "cum": "500.0" + "cum": "250.0" } }, { @@ -63976,7 +69557,7 @@ "notionalCap": "250000", "notionalFloor": "150000", "maintMarginRatio": "0.05", - "cum": "4250.0" + "cum": "4000.0" } }, { @@ -63993,7 +69574,7 @@ "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.1", - "cum": "16750.0" + "cum": "16500.0" } }, { @@ -64010,7 +69591,7 @@ "notionalCap": "1000000", "notionalFloor": "500000", "maintMarginRatio": "0.125", - "cum": "29250.0" + "cum": "29000.0" } }, { @@ -64018,33 +69599,50 @@ "symbol": "ZEC/USDT:USDT", "currency": "USDT", "minNotional": 1000000.0, - "maxNotional": 2000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "6", - "initialLeverage": "2", - "notionalCap": "2000000", + "initialLeverage": "3", + "notionalCap": "1500000", "notionalFloor": "1000000", - "maintMarginRatio": "0.25", - "cum": "154250.0" + "maintMarginRatio": "0.1667", + "cum": "70700.0" } }, { "tier": 7.0, "symbol": "ZEC/USDT:USDT", "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 2000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "7", + "initialLeverage": "2", + "notionalCap": "2000000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.25", + "cum": "195650.0" + } + }, + { + "tier": 8.0, + "symbol": "ZEC/USDT:USDT", + "currency": "USDT", "minNotional": 2000000.0, "maxNotional": 2500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "7", + "bracket": "8", "initialLeverage": "1", "notionalCap": "2500000", "notionalFloor": "2000000", "maintMarginRatio": "0.5", - "cum": "654250.0" + "cum": "695650.0" } } ], @@ -64054,13 +69652,13 @@ "symbol": "ZEN/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 10000.0, + "maxNotional": 7000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", - "notionalCap": "10000", + "initialLeverage": "20", + "notionalCap": "7000", "notionalFloor": "0", "maintMarginRatio": "0.01", "cum": "0.0" @@ -64070,136 +69668,153 @@ "tier": 2.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 10000.0, - "maxNotional": 30000.0, + "minNotional": 7000.0, + "maxNotional": 18000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", - "notionalCap": "30000", - "notionalFloor": "10000", + "initialLeverage": "10", + "notionalCap": "18000", + "notionalFloor": "7000", "maintMarginRatio": "0.015", - "cum": "50.0" + "cum": "35.0" } }, { "tier": 3.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 30000.0, - "maxNotional": 150000.0, + "minNotional": 18000.0, + "maxNotional": 75000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "150000", - "notionalFloor": "30000", + "initialLeverage": "8", + "notionalCap": "75000", + "notionalFloor": "18000", "maintMarginRatio": "0.02", - "cum": "200.0" + "cum": "125.0" } }, { "tier": 4.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 150000.0, - "maxNotional": 300000.0, + "minNotional": 75000.0, + "maxNotional": 150000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "300000", - "notionalFloor": "150000", + "initialLeverage": "7", + "notionalCap": "150000", + "notionalFloor": "75000", "maintMarginRatio": "0.025", - "cum": "950.0" + "cum": "500.0" } }, { "tier": 5.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 300000.0, - "maxNotional": 1500000.0, + "minNotional": 150000.0, + "maxNotional": 750000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "1500000", - "notionalFloor": "300000", + "initialLeverage": "6", + "notionalCap": "750000", + "notionalFloor": "150000", "maintMarginRatio": "0.05", - "cum": "8450.0" + "cum": "4250.0" } }, { "tier": 6.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 1500000.0, - "maxNotional": 2000000.0, + "minNotional": 750000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "2000000", - "notionalFloor": "1500000", + "notionalCap": "1100000", + "notionalFloor": "750000", "maintMarginRatio": "0.1", - "cum": "83450.0" + "cum": "41750.0" } }, { "tier": 7.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 2000000.0, - "maxNotional": 2500000.0, + "minNotional": 1100000.0, + "maxNotional": 1600000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "2500000", - "notionalFloor": "2000000", + "notionalCap": "1600000", + "notionalFloor": "1100000", "maintMarginRatio": "0.125", - "cum": "133450.0" + "cum": "69250.0" } }, { "tier": 8.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 3000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1600000.0, + "maxNotional": 2900000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "3000000", - "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "445950.0" + "initialLeverage": "3", + "notionalCap": "2900000", + "notionalFloor": "1600000", + "maintMarginRatio": "0.1667", + "cum": "135970.0" } }, { "tier": 9.0, "symbol": "ZEN/USDT:USDT", "currency": "USDT", - "minNotional": 3000000.0, - "maxNotional": 3500000.0, + "minNotional": 2900000.0, + "maxNotional": 4200000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4200000", + "notionalFloor": "2900000", + "maintMarginRatio": "0.25", + "cum": "377540.0" + } + }, + { + "tier": 10.0, + "symbol": "ZEN/USDT:USDT", + "currency": "USDT", + "minNotional": 4200000.0, + "maxNotional": 6200000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "3500000", - "notionalFloor": "3000000", + "notionalCap": "6200000", + "notionalFloor": "4200000", "maintMarginRatio": "0.5", - "cum": "1195950.0" + "cum": "1427540.0" } } ], @@ -64366,10 +69981,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -64383,10 +69998,10 @@ "minNotional": 5000.0, "maxNotional": 16000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "16000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -64400,10 +70015,10 @@ "minNotional": 16000.0, "maxNotional": 80000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "10", "notionalCap": "80000", "notionalFloor": "16000", "maintMarginRatio": "0.02", @@ -64417,10 +70032,10 @@ "minNotional": 80000.0, "maxNotional": 160000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 6.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "6", "notionalCap": "160000", "notionalFloor": "80000", "maintMarginRatio": "0.025", @@ -64434,10 +70049,10 @@ "minNotional": 160000.0, "maxNotional": 800000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 5.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "5", "notionalCap": "800000", "notionalFloor": "160000", "maintMarginRatio": "0.05", @@ -64451,10 +70066,10 @@ "minNotional": 800000.0, "maxNotional": 1600000.0, "maintenanceMarginRate": 0.1, - "maxLeverage": 5.0, + "maxLeverage": 4.0, "info": { "bracket": "6", - "initialLeverage": "5", + "initialLeverage": "4", "notionalCap": "1600000", "notionalFloor": "800000", "maintMarginRatio": "0.1", @@ -64468,10 +70083,10 @@ "minNotional": 1600000.0, "maxNotional": 2000000.0, "maintenanceMarginRate": 0.125, - "maxLeverage": 4.0, + "maxLeverage": 3.0, "info": { "bracket": "7", - "initialLeverage": "4", + "initialLeverage": "3", "notionalCap": "2000000", "notionalFloor": "1600000", "maintMarginRatio": "0.125", @@ -64500,13 +70115,13 @@ "symbol": "ZETA/USDT:USDT", "currency": "USDT", "minNotional": 4000000.0, - "maxNotional": 8000000.0, + "maxNotional": 4500000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { "bracket": "9", "initialLeverage": "1", - "notionalCap": "8000000", + "notionalCap": "4500000", "notionalFloor": "4000000", "maintMarginRatio": "0.5", "cum": "1334505.0" @@ -64642,10 +70257,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -64659,10 +70274,10 @@ "minNotional": 10000.0, "maxNotional": 20000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "20000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -64676,10 +70291,10 @@ "minNotional": 20000.0, "maxNotional": 100000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "100000", "notionalFloor": "20000", "maintMarginRatio": "0.02", @@ -64693,10 +70308,10 @@ "minNotional": 100000.0, "maxNotional": 200000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "200000", "notionalFloor": "100000", "maintMarginRatio": "0.025", @@ -64710,10 +70325,10 @@ "minNotional": 200000.0, "maxNotional": 1000000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1000000", "notionalFloor": "200000", "maintMarginRatio": "0.05", @@ -64759,33 +70374,50 @@ "symbol": "ZK/USDT:USDT", "currency": "USDT", "minNotional": 2500000.0, - "maxNotional": 5000000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 3750000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "5000000", + "initialLeverage": "3", + "notionalCap": "3750000", "notionalFloor": "2500000", - "maintMarginRatio": "0.25", - "cum": "418150.0" + "maintMarginRatio": "0.1667", + "cum": "209900.0" } }, { "tier": 9.0, "symbol": "ZK/USDT:USDT", "currency": "USDT", + "minNotional": 3750000.0, + "maxNotional": 5000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "5000000", + "notionalFloor": "3750000", + "maintMarginRatio": "0.25", + "cum": "522275.0" + } + }, + { + "tier": 10.0, + "symbol": "ZK/USDT:USDT", + "currency": "USDT", "minNotional": 5000000.0, "maxNotional": 10000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "10000000", "notionalFloor": "5000000", "maintMarginRatio": "0.5", - "cum": "1668150.0" + "cum": "1772275.0" } } ], @@ -64797,10 +70429,10 @@ "minNotional": 0.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "10000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -64814,10 +70446,10 @@ "minNotional": 10000.0, "maxNotional": 30000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 10.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "10", "notionalCap": "30000", "notionalFloor": "10000", "maintMarginRatio": "0.015", @@ -64831,10 +70463,10 @@ "minNotional": 30000.0, "maxNotional": 150000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 8.0, "info": { "bracket": "3", - "initialLeverage": "25", + "initialLeverage": "8", "notionalCap": "150000", "notionalFloor": "30000", "maintMarginRatio": "0.02", @@ -64848,10 +70480,10 @@ "minNotional": 150000.0, "maxNotional": 300000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", + "initialLeverage": "7", "notionalCap": "300000", "notionalFloor": "150000", "maintMarginRatio": "0.025", @@ -64865,10 +70497,10 @@ "minNotional": 300000.0, "maxNotional": 1500000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", + "initialLeverage": "6", "notionalCap": "1500000", "notionalFloor": "300000", "maintMarginRatio": "0.05", @@ -64914,33 +70546,50 @@ "symbol": "ZRO/USDT:USDT", "currency": "USDT", "minNotional": 3750000.0, - "maxNotional": 7500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "maxNotional": 5625000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "7500000", + "initialLeverage": "3", + "notionalCap": "5625000", "notionalFloor": "3750000", - "maintMarginRatio": "0.25", - "cum": "627200.0" + "maintMarginRatio": "0.1667", + "cum": "314825.0" } }, { "tier": 9.0, "symbol": "ZRO/USDT:USDT", "currency": "USDT", + "minNotional": 5625000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "5625000", + "maintMarginRatio": "0.25", + "cum": "783387.5" + } + }, + { + "tier": 10.0, + "symbol": "ZRO/USDT:USDT", + "currency": "USDT", "minNotional": 7500000.0, "maxNotional": 15000000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", "notionalCap": "15000000", "notionalFloor": "7500000", "maintMarginRatio": "0.5", - "cum": "2502200.0" + "cum": "2658387.5" } } ], @@ -64952,10 +70601,10 @@ "minNotional": 0.0, "maxNotional": 5000.0, "maintenanceMarginRate": 0.01, - "maxLeverage": 75.0, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "75", + "initialLeverage": "20", "notionalCap": "5000", "notionalFloor": "0", "maintMarginRatio": "0.01", @@ -64969,10 +70618,10 @@ "minNotional": 5000.0, "maxNotional": 10000.0, "maintenanceMarginRate": 0.015, - "maxLeverage": 50.0, + "maxLeverage": 15.0, "info": { "bracket": "2", - "initialLeverage": "50", + "initialLeverage": "15", "notionalCap": "10000", "notionalFloor": "5000", "maintMarginRatio": "0.015", @@ -64984,13 +70633,13 @@ "symbol": "ZRX/USDT:USDT", "currency": "USDT", "minNotional": 10000.0, - "maxNotional": 50000.0, + "maxNotional": 35000.0, "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxLeverage": 10.0, "info": { "bracket": "3", - "initialLeverage": "25", - "notionalCap": "50000", + "initialLeverage": "10", + "notionalCap": "35000", "notionalFloor": "10000", "maintMarginRatio": "0.02", "cum": "75.0" @@ -65000,102 +70649,119 @@ "tier": 4.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 50000.0, - "maxNotional": 100000.0, + "minNotional": 35000.0, + "maxNotional": 70000.0, "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, + "maxLeverage": 7.0, "info": { "bracket": "4", - "initialLeverage": "20", - "notionalCap": "100000", - "notionalFloor": "50000", + "initialLeverage": "7", + "notionalCap": "70000", + "notionalFloor": "35000", "maintMarginRatio": "0.025", - "cum": "325.0" + "cum": "250.0" } }, { "tier": 5.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 100000.0, - "maxNotional": 500000.0, + "minNotional": 70000.0, + "maxNotional": 350000.0, "maintenanceMarginRate": 0.05, - "maxLeverage": 10.0, + "maxLeverage": 6.0, "info": { "bracket": "5", - "initialLeverage": "10", - "notionalCap": "500000", - "notionalFloor": "100000", + "initialLeverage": "6", + "notionalCap": "350000", + "notionalFloor": "70000", "maintMarginRatio": "0.05", - "cum": "2825.0" + "cum": "2000.0" } }, { "tier": 6.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 500000.0, - "maxNotional": 1000000.0, + "minNotional": 350000.0, + "maxNotional": 700000.0, "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { "bracket": "6", "initialLeverage": "5", - "notionalCap": "1000000", - "notionalFloor": "500000", + "notionalCap": "700000", + "notionalFloor": "350000", "maintMarginRatio": "0.1", - "cum": "27825.0" + "cum": "19500.0" } }, { "tier": 7.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 1000000.0, - "maxNotional": 1250000.0, + "minNotional": 700000.0, + "maxNotional": 1100000.0, "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { "bracket": "7", "initialLeverage": "4", - "notionalCap": "1250000", - "notionalFloor": "1000000", + "notionalCap": "1100000", + "notionalFloor": "700000", "maintMarginRatio": "0.125", - "cum": "52825.0" + "cum": "37000.0" } }, { "tier": 8.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 1250000.0, - "maxNotional": 2500000.0, - "maintenanceMarginRate": 0.25, - "maxLeverage": 2.0, + "minNotional": 1100000.0, + "maxNotional": 2550000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, "info": { "bracket": "8", - "initialLeverage": "2", - "notionalCap": "2500000", - "notionalFloor": "1250000", - "maintMarginRatio": "0.25", - "cum": "209075.0" + "initialLeverage": "3", + "notionalCap": "2550000", + "notionalFloor": "1100000", + "maintMarginRatio": "0.1667", + "cum": "82870.0" } }, { "tier": 9.0, "symbol": "ZRX/USDT:USDT", "currency": "USDT", - "minNotional": 2500000.0, - "maxNotional": 5000000.0, + "minNotional": 2550000.0, + "maxNotional": 4000000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "4000000", + "notionalFloor": "2550000", + "maintMarginRatio": "0.25", + "cum": "295285.0" + } + }, + { + "tier": 10.0, + "symbol": "ZRX/USDT:USDT", + "currency": "USDT", + "minNotional": 4000000.0, + "maxNotional": 6800000.0, "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "9", + "bracket": "10", "initialLeverage": "1", - "notionalCap": "5000000", - "notionalFloor": "2500000", + "notionalCap": "6800000", + "notionalFloor": "4000000", "maintMarginRatio": "0.5", - "cum": "834075.0" + "cum": "1295285.0" } } ] diff --git a/freqtrade/exchange/exchange.py b/freqtrade/exchange/exchange.py index 3a5974a8b..9072d5948 100644 --- a/freqtrade/exchange/exchange.py +++ b/freqtrade/exchange/exchange.py @@ -148,6 +148,7 @@ class Exchange: "trades_has_history": False, "l2_limit_range": None, "l2_limit_range_required": True, # Allow Empty L2 limit (kucoin) + "l2_limit_upper": None, # Upper limit for L2 limit "mark_ohlcv_price": "mark", "mark_ohlcv_timeframe": "8h", "funding_fee_timeframe": "8h", @@ -960,7 +961,7 @@ class Exchange: return 1 / pow(10, precision) def get_min_pair_stake_amount( - self, pair: str, price: float, stoploss: float, leverage: float | None = 1.0 + self, pair: str, price: float, stoploss: float, leverage: float = 1.0 ) -> float | None: return self._get_stake_amount_limit(pair, price, stoploss, "min", leverage) @@ -979,7 +980,7 @@ class Exchange: price: float, stoploss: float, limit: Literal["min", "max"], - leverage: float | None = 1.0, + leverage: float = 1.0, ) -> float | None: isMin = limit == "min" @@ -988,6 +989,8 @@ class Exchange: except KeyError: raise ValueError(f"Can't get market information for symbol {pair}") + stake_limits = [] + limits = market["limits"] if isMin: # reserve some percent defined in config (5% default) + stoploss margin_reserve: float = 1.0 + self._config.get( @@ -997,11 +1000,12 @@ class Exchange: # it should not be more than 50% stoploss_reserve = max(min(stoploss_reserve, 1.5), 1) else: + # is_max margin_reserve = 1.0 stoploss_reserve = 1.0 + if max_from_tiers := self._get_max_notional_from_tiers(pair, leverage=leverage): + stake_limits.append(max_from_tiers) - stake_limits = [] - limits = market["limits"] if limits["cost"][limit] is not None: stake_limits.append( self._contracts_to_amount(pair, limits["cost"][limit]) * stoploss_reserve @@ -1365,8 +1369,8 @@ class Exchange: ordertype = available_order_Types[user_order_type] else: # Otherwise pick only one available - ordertype = list(available_order_Types.values())[0] - user_order_type = list(available_order_Types.keys())[0] + ordertype = next(iter(available_order_Types.values())) + user_order_type = next(iter(available_order_Types.keys())) return ordertype, user_order_type def _get_stop_limit_rate(self, stop_price: float, order_types: dict, side: str) -> float: @@ -1955,14 +1959,18 @@ class Exchange: @staticmethod def get_next_limit_in_list( - limit: int, limit_range: list[int] | None, range_required: bool = True + limit: int, + limit_range: list[int] | None, + range_required: bool = True, + upper_limit: int | None = None, ): """ Get next greater value in the list. Used by fetch_l2_order_book if the api only supports a limited range + if both limit_range and upper_limit is provided, limit_range wins. """ if not limit_range: - return limit + return min(limit, upper_limit) if upper_limit else limit result = min([x for x in limit_range if limit <= x] + [max(limit_range)]) if not range_required and limit > result: @@ -1979,7 +1987,10 @@ class Exchange: {'asks': [price, volume], 'bids': [price, volume]} """ limit1 = self.get_next_limit_in_list( - limit, self._ft_has["l2_limit_range"], self._ft_has["l2_limit_range_required"] + limit, + self._ft_has["l2_limit_range"], + self._ft_has["l2_limit_range_required"], + self._ft_has["l2_limit_upper"], ) try: return self._api.fetch_l2_order_book(pair, limit1) @@ -2790,7 +2801,7 @@ class Exchange: pair, timeframe, candle_type = pairwt since_ms = None new_ticks: list = [] - all_stored_ticks_df = DataFrame(columns=DEFAULT_TRADES_COLUMNS + ["date"]) + all_stored_ticks_df = DataFrame(columns=[*DEFAULT_TRADES_COLUMNS, "date"]) first_candle_ms = self.needed_candle_for_trades_ms(timeframe, candle_type) # refresh, if # a. not in _trades @@ -2835,7 +2846,7 @@ class Exchange: else: # Skip cache, it's too old all_stored_ticks_df = DataFrame( - columns=DEFAULT_TRADES_COLUMNS + ["date"] + columns=[*DEFAULT_TRADES_COLUMNS, "date"] ) # from_id overrules with exchange set to id paginate @@ -3353,42 +3364,22 @@ class Exchange: pair_tiers = self._leverage_tiers[pair] if stake_amount == 0: - return self._leverage_tiers[pair][0]["maxLeverage"] # Max lev for lowest amount + return pair_tiers[0]["maxLeverage"] # Max lev for lowest amount - for tier_index in range(len(pair_tiers)): - tier = pair_tiers[tier_index] - lev = tier["maxLeverage"] + # Find the appropriate tier based on stake_amount + prior_max_lev = None + for tier in pair_tiers: + 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 tier_index < len(pair_tiers) - 1: - next_tier = pair_tiers[tier_index + 1] - next_floor = next_tier["minNotional"] / next_tier["maxLeverage"] - if next_floor > stake_amount: # Next tier min too high for stake amount - return min((tier["maxNotional"] / stake_amount), lev) - # - # With the two leverage tiers below, - # - a stake amount of 150 would mean a max leverage of (10000 / 150) = 66.66 - # - stakes below 133.33 = max_lev of 75 - # - stakes between 133.33-200 = max_lev of 10000/stake = 50.01-74.99 - # - stakes from 200 + 1000 = max_lev of 50 - # - # { - # "min": 0, # stake = 0.0 - # "max": 10000, # max_stake@75 = 10000/75 = 133.33333333333334 - # "lev": 75, - # }, - # { - # "min": 10000, # stake = 200.0 - # "max": 50000, # max_stake@50 = 50000/50 = 1000.0 - # "lev": 50, - # } - # - - else: # if on the last tier - if stake_amount > tier["maxNotional"]: - # If stake is > than max tradeable amount - raise InvalidOrderException(f"Amount {stake_amount} too high for {pair}") - else: - 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 OperationalException( "Looped through all tiers without finding a max leverage. Should never be reached" @@ -3403,6 +3394,23 @@ class Exchange: else: return 1.0 + def _get_max_notional_from_tiers(self, pair: str, leverage: float) -> float | None: + """ + get max_notional from leverage_tiers + :param pair: The base/quote currency pair being traded + :param leverage: The leverage to be used + :return: The maximum notional value for the given leverage or None if not found + """ + if self.trading_mode != TradingMode.FUTURES: + return None + if pair not in self._leverage_tiers: + return None + pair_tiers = self._leverage_tiers[pair] + for tier in reversed(pair_tiers): + if leverage <= tier["maxLeverage"]: + return tier["maxNotional"] + return None + @retrier def _set_leverage( self, diff --git a/freqtrade/exchange/exchange_types.py b/freqtrade/exchange/exchange_types.py index 9687057bd..fed6bff70 100644 --- a/freqtrade/exchange/exchange_types.py +++ b/freqtrade/exchange/exchange_types.py @@ -37,6 +37,7 @@ class FtHas(TypedDict, total=False): # Orderbook l2_limit_range: list[int] | None l2_limit_range_required: bool + l2_limit_upper: int | None # Futures ccxt_futures_name: str # usually swap mark_ohlcv_price: str @@ -44,6 +45,7 @@ class FtHas(TypedDict, total=False): funding_fee_timeframe: str funding_fee_candle_limit: int floor_leverage: bool + uses_leverage_tiers: bool needs_trading_fees: bool order_props_in_contracts: list[Literal["amount", "cost", "filled", "remaining"]] diff --git a/freqtrade/exchange/gate.py b/freqtrade/exchange/gate.py index 95e1a00ca..49f0ee74b 100644 --- a/freqtrade/exchange/gate.py +++ b/freqtrade/exchange/gate.py @@ -35,6 +35,7 @@ class Gate(Exchange): "stoploss_order_types": {"limit": "limit"}, "stop_price_param": "stopPrice", "stop_price_prop": "stopPrice", + "l2_limit_upper": 1000, "marketOrderRequiresPrice": True, "trades_has_history": False, # Endpoint would support this - but ccxt doesn't. } @@ -44,6 +45,7 @@ class Gate(Exchange): "marketOrderRequiresPrice": False, "funding_fee_candle_limit": 90, "stop_price_type_field": "price_type", + "l2_limit_upper": 300, "stop_price_type_value_mapping": { PriceType.LAST: 0, PriceType.MARK: 1, diff --git a/freqtrade/exchange/hyperliquid.py b/freqtrade/exchange/hyperliquid.py index a75a77892..b6ec23942 100644 --- a/freqtrade/exchange/hyperliquid.py +++ b/freqtrade/exchange/hyperliquid.py @@ -35,6 +35,7 @@ class Hyperliquid(Exchange): "stop_price_prop": "stopPrice", "funding_fee_timeframe": "1h", "funding_fee_candle_limit": 500, + "uses_leverage_tiers": False, } _supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [ diff --git a/freqtrade/exchange/kraken.py b/freqtrade/exchange/kraken.py index 03c97569a..d82725bbb 100644 --- a/freqtrade/exchange/kraken.py +++ b/freqtrade/exchange/kraken.py @@ -69,7 +69,7 @@ class Kraken(Exchange): consolidated: CcxtBalances = {} for currency, balance in balances.items(): base_currency = currency[:-2] if currency.endswith(".F") else currency - base_currency = self._api.commonCurrencies.get(base_currency, base_currency) + if base_currency in consolidated: consolidated[base_currency]["free"] += balance["free"] consolidated[base_currency]["used"] += balance["used"] diff --git a/freqtrade/freqai/data_drawer.py b/freqtrade/freqai/data_drawer.py index 1080b9070..cf3e828bf 100644 --- a/freqtrade/freqai/data_drawer.py +++ b/freqtrade/freqai/data_drawer.py @@ -569,7 +569,7 @@ class FreqaiDataDrawer: dk.training_features_list = dk.data["training_features_list"] dk.label_list = dk.data["label_list"] - def load_data(self, coin: str, dk: FreqaiDataKitchen) -> Any: # noqa: C901 + def load_data(self, coin: str, dk: FreqaiDataKitchen) -> Any: """ loads all data required to make a prediction on a sub-train time range :returns: diff --git a/freqtrade/freqai/data_kitchen.py b/freqtrade/freqai/data_kitchen.py index 6cb52eb29..c03dbb276 100644 --- a/freqtrade/freqai/data_kitchen.py +++ b/freqtrade/freqai/data_kitchen.py @@ -16,7 +16,7 @@ from pandas import DataFrame from sklearn.model_selection import train_test_split from freqtrade.configuration import TimeRange -from freqtrade.constants import DOCS_LINK, Config +from freqtrade.constants import DOCS_LINK, ORDERFLOW_ADDED_COLUMNS, Config from freqtrade.data.converter import reduce_dataframe_footprint from freqtrade.exceptions import OperationalException from freqtrade.exchange import timeframe_to_seconds @@ -709,6 +709,11 @@ class FreqaiDataKitchen: skip_columns = [ (f"{s}_{suffix}") for s in ["date", "open", "high", "low", "close", "volume"] ] + + for s in ORDERFLOW_ADDED_COLUMNS: + if s in dataframe.columns and f"{s}_{suffix}" in dataframe.columns: + skip_columns.append(f"{s}_{suffix}") + dataframe = dataframe.drop(columns=skip_columns) return dataframe diff --git a/freqtrade/freqai/prediction_models/XGBoostRegressorMultiTarget.py b/freqtrade/freqai/prediction_models/XGBoostRegressorMultiTarget.py index 0586882b9..5cee0148d 100644 --- a/freqtrade/freqai/prediction_models/XGBoostRegressorMultiTarget.py +++ b/freqtrade/freqai/prediction_models/XGBoostRegressorMultiTarget.py @@ -4,8 +4,8 @@ from typing import Any from xgboost import XGBRegressor from freqtrade.freqai.base_models.BaseRegressionModel import BaseRegressionModel -from freqtrade.freqai.base_models.FreqaiMultiOutputRegressor import FreqaiMultiOutputRegressor from freqtrade.freqai.data_kitchen import FreqaiDataKitchen +from freqtrade.freqai.tensorboard import TBCallback logger = logging.getLogger(__name__) @@ -19,6 +19,7 @@ class XGBoostRegressorMultiTarget(BaseRegressionModel): `predict()` methods to add their custom data handling tools or change various aspects of the training that cannot be configured via the top level config.json file. + This is an exact copy of XGBoostRegressor kept for compatibility reasons. """ def fit(self, data_dictionary: dict, dk: FreqaiDataKitchen, **kwargs) -> Any: @@ -29,45 +30,32 @@ class XGBoostRegressorMultiTarget(BaseRegressionModel): :param dk: The datakitchen object for the current coin/model """ - xgb = XGBRegressor(**self.model_training_parameters) - X = data_dictionary["train_features"] y = data_dictionary["train_labels"] + + if self.freqai_info.get("data_split_parameters", {}).get("test_size", 0.1) == 0: + eval_set = None + eval_weights = None + else: + eval_set = [(data_dictionary["test_features"], data_dictionary["test_labels"]), (X, y)] + eval_weights = [data_dictionary["test_weights"], data_dictionary["train_weights"]] + sample_weight = data_dictionary["train_weights"] - eval_weights = None - eval_sets = [None] * y.shape[1] + xgb_model = self.get_init_model(dk.pair) - if self.freqai_info.get("data_split_parameters", {}).get("test_size", 0.1) != 0: - eval_weights = [data_dictionary["test_weights"]] - for i in range(data_dictionary["test_labels"].shape[1]): - eval_sets[i] = [ # type: ignore - ( - data_dictionary["test_features"], - data_dictionary["test_labels"].iloc[:, i], - ) - ] + model = XGBRegressor(**self.model_training_parameters) - init_model = self.get_init_model(dk.pair) - if init_model: - init_models = init_model.estimators_ - else: - init_models = [None] * y.shape[1] - - fit_params = [] - for i in range(len(eval_sets)): - fit_params.append( - { - "eval_set": eval_sets[i], - "sample_weight_eval_set": eval_weights, - "xgb_model": init_models[i], - } - ) - - model = FreqaiMultiOutputRegressor(estimator=xgb) - thread_training = self.freqai_info.get("multitarget_parallel_training", False) - if thread_training: - model.n_jobs = y.shape[1] - model.fit(X=X, y=y, sample_weight=sample_weight, fit_params=fit_params) + model.set_params(callbacks=[TBCallback(dk.data_path)]) + model.fit( + X=X, + y=y, + sample_weight=sample_weight, + eval_set=eval_set, + sample_weight_eval_set=eval_weights, + xgb_model=xgb_model, + ) + # set the callbacks to empty so that we can serialize to disk later + model.set_params(callbacks=[]) return model diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 4156b50e1..8ee65e2dd 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -293,6 +293,7 @@ class FreqtradeBot(LoggingMixin): trades = Trade.get_open_trades() # First process current opened trades (positions) self.exit_positions(trades) + Trade.commit() # Check if we need to adjust our current positions before attempting to enter new trades. if self.strategy.position_adjustment_enable: @@ -300,7 +301,7 @@ class FreqtradeBot(LoggingMixin): self.process_open_trade_positions() # Then looking for entry opportunities - if self.get_free_open_trades(): + if self.state == State.RUNNING and self.get_free_open_trades(): self.enter_positions() self._schedule.run_pending() Trade.commit() @@ -759,12 +760,14 @@ class FreqtradeBot(LoggingMixin): current_exit_profit = trade.calc_profit_ratio(current_exit_rate) min_entry_stake = self.exchange.get_min_pair_stake_amount( - trade.pair, current_entry_rate, 0.0 + trade.pair, current_entry_rate, 0.0, trade.leverage ) min_exit_stake = self.exchange.get_min_pair_stake_amount( - trade.pair, current_exit_rate, self.strategy.stoploss + trade.pair, current_exit_rate, self.strategy.stoploss, trade.leverage + ) + max_entry_stake = self.exchange.get_max_pair_stake_amount( + trade.pair, current_entry_rate, trade.leverage ) - max_entry_stake = self.exchange.get_max_pair_stake_amount(trade.pair, current_entry_rate) stake_available = self.wallets.get_available_stake_amount() logger.debug(f"Calling adjust_trade_position for pair {trade.pair}") stake_amount, order_tag = self.strategy._adjust_trade_position_internal( @@ -781,6 +784,10 @@ class FreqtradeBot(LoggingMixin): ) if stake_amount is not None and stake_amount > 0.0: + if self.state == State.PAUSED: + logger.debug("Position adjustment aborted because the bot is in PAUSED state") + return + # We should increase our position if self.strategy.max_entry_position_adjustment > -1: count_of_entries = trade.nr_of_successful_entries diff --git a/freqtrade/ft_types/__init__.py b/freqtrade/ft_types/__init__.py index 2eb4e5dda..6cd74f7b2 100644 --- a/freqtrade/ft_types/__init__.py +++ b/freqtrade/ft_types/__init__.py @@ -1,8 +1,11 @@ # flake8: noqa: F401 from freqtrade.ft_types.backtest_result_type import ( + BacktestContentType, + BacktestContentTypeIcomplete, BacktestHistoryEntryType, BacktestMetadataType, BacktestResultType, get_BacktestResultType_default, ) +from freqtrade.ft_types.plot_annotation_type import AnnotationType from freqtrade.ft_types.valid_exchanges_type import ValidExchangesType diff --git a/freqtrade/ft_types/backtest_result_type.py b/freqtrade/ft_types/backtest_result_type.py index b8ddbb4b6..b253231a1 100644 --- a/freqtrade/ft_types/backtest_result_type.py +++ b/freqtrade/ft_types/backtest_result_type.py @@ -1,8 +1,11 @@ from copy import deepcopy from typing import Any, cast +from pandas import DataFrame from typing_extensions import TypedDict +from freqtrade.constants import Config + class BacktestMetadataType(TypedDict): run_id: str @@ -36,3 +39,23 @@ class BacktestHistoryEntryType(BacktestMetadataType): backtest_end_ts: int | None timeframe: str | None timeframe_detail: str | None + + +class BacktestContentTypeIcomplete(TypedDict, total=False): + results: DataFrame + config: Config + locks: Any + rejected_signals: int + timedout_entry_orders: int + timedout_exit_orders: int + canceled_trade_entries: int + canceled_entry_orders: int + replaced_entry_orders: int + final_balance: float + backtest_start_time: int + backtest_end_time: int + run_id: str + + +class BacktestContentType(BacktestContentTypeIcomplete, total=True): + pass diff --git a/freqtrade/ft_types/plot_annotation_type.py b/freqtrade/ft_types/plot_annotation_type.py new file mode 100644 index 000000000..b08db3c57 --- /dev/null +++ b/freqtrade/ft_types/plot_annotation_type.py @@ -0,0 +1,18 @@ +from datetime import datetime +from typing import Literal + +from pydantic import TypeAdapter +from typing_extensions import Required, TypedDict + + +class AnnotationType(TypedDict, total=False): + type: Required[Literal["area"]] + start: str | datetime + end: str | datetime + y_start: float + y_end: float + color: str + label: str + + +AnnotationTypeTA = TypeAdapter(AnnotationType) diff --git a/freqtrade/loggers/__init__.py b/freqtrade/loggers/__init__.py index e39dcdd45..e54097bc2 100644 --- a/freqtrade/loggers/__init__.py +++ b/freqtrade/loggers/__init__.py @@ -123,7 +123,7 @@ def _add_formatter(log_config: dict[str, Any], format_name: str, format_: str): def _create_log_config(config: Config) -> dict[str, Any]: # Get log_config from user config or use default - log_config = config.get("log_config", deepcopy(FT_LOGGING_CONFIG)) + log_config = deepcopy(config.get("log_config", FT_LOGGING_CONFIG)) if logfile := config.get("logfile"): s = logfile.split(":") diff --git a/freqtrade/mixins/logging_mixin.py b/freqtrade/mixins/logging_mixin.py index 58399e738..91ad2c25e 100644 --- a/freqtrade/mixins/logging_mixin.py +++ b/freqtrade/mixins/logging_mixin.py @@ -20,12 +20,13 @@ class LoggingMixin: self.refresh_period = refresh_period self._log_cache: TTLCache = TTLCache(maxsize=1024, ttl=self.refresh_period) - def log_once(self, message: str, logmethod: Callable) -> None: + def log_once(self, message: str, logmethod: Callable, force_show: bool = False) -> None: """ Logs message - not more often than "refresh_period" to avoid log spamming Logs the log-message as debug as well to simplify debugging. :param message: String containing the message to be sent to the function. :param logmethod: Function that'll be called. Most likely `logger.info`. + :param force_show: If True, sends the message regardless of show_output value. :return: None. """ @@ -35,6 +36,7 @@ class LoggingMixin: # Log as debug first self.logger.debug(message) - # Call hidden function. - if self.show_output: + + # Call hidden function if show_output is True or force_show is True + if self.show_output or force_show: _log_once(message) diff --git a/freqtrade/optimize/analysis/lookahead.py b/freqtrade/optimize/analysis/lookahead.py index 70cb6913d..2e7fac421 100755 --- a/freqtrade/optimize/analysis/lookahead.py +++ b/freqtrade/optimize/analysis/lookahead.py @@ -129,7 +129,6 @@ class LookaheadAnalysis(BaseAnalysis): backtesting._set_strategy(backtesting.strategylist[0]) varholder.data, varholder.timerange = backtesting.load_bt_data() - backtesting.load_bt_data_detail() varholder.timeframe = backtesting.timeframe varholder.indicators = backtesting.strategy.advise_all_indicators(varholder.data) diff --git a/freqtrade/optimize/analysis/recursive.py b/freqtrade/optimize/analysis/recursive.py index 50d1b75d6..4d164d8b4 100644 --- a/freqtrade/optimize/analysis/recursive.py +++ b/freqtrade/optimize/analysis/recursive.py @@ -149,7 +149,6 @@ class RecursiveAnalysis(BaseAnalysis): backtesting._set_strategy(backtesting.strategylist[0]) varholder.data, varholder.timerange = backtesting.load_bt_data() - backtesting.load_bt_data_detail() varholder.timeframe = backtesting.timeframe varholder.indicators = backtesting.strategy.advise_all_indicators(varholder.data) diff --git a/freqtrade/optimize/backtesting.py b/freqtrade/optimize/backtesting.py index 9a5e58c92..cbc77604b 100644 --- a/freqtrade/optimize/backtesting.py +++ b/freqtrade/optimize/backtesting.py @@ -8,7 +8,6 @@ import logging from collections import defaultdict from copy import deepcopy from datetime import datetime, timedelta -from typing import Any from numpy import nan from pandas import DataFrame @@ -37,7 +36,12 @@ from freqtrade.exchange import ( timeframe_to_seconds, ) from freqtrade.exchange.exchange import Exchange -from freqtrade.ft_types import BacktestResultType, get_BacktestResultType_default +from freqtrade.ft_types import ( + BacktestContentType, + BacktestContentTypeIcomplete, + BacktestResultType, + get_BacktestResultType_default, +) from freqtrade.leverage.liquidation_price import update_liquidation_prices from freqtrade.mixins import LoggingMixin from freqtrade.optimize.backtest_caching import get_strategy_run_id @@ -119,7 +123,7 @@ class Backtesting: config["dry_run"] = True self.run_ids: dict[str, str] = {} self.strategylist: list[IStrategy] = [] - self.all_results: dict[str, dict] = {} + self.all_bt_content: dict[str, BacktestContentType] = {} self.analysis_results: dict[str, dict[str, DataFrame]] = { "signals": {}, "rejected": {}, @@ -311,9 +315,10 @@ class Backtesting: ) self.progress.set_new_value(1) + self._load_bt_data_detail() return data, self.timerange - def load_bt_data_detail(self) -> None: + def _load_bt_data_detail(self) -> None: """ Loads backtest detail data (smaller timeframe) if necessary. """ @@ -360,8 +365,9 @@ class Backtesting: ) # Combine data to avoid combining the data per trade. unavailable_pairs = [] + uses_leverage_tiers = self.exchange.get_option("uses_leverage_tiers", True) for pair in self.pairlists.whitelist: - if pair not in self.exchange._leverage_tiers: + if uses_leverage_tiers and pair not in self.exchange._leverage_tiers: unavailable_pairs.append(pair) continue @@ -1610,7 +1616,9 @@ class Backtesting: yield current_time_det, pair, row, is_last_row, trade_dir self.progress.increment() - def backtest(self, processed: dict, start_date: datetime, end_date: datetime) -> dict[str, Any]: + def backtest( + self, processed: dict, start_date: datetime, end_date: datetime + ) -> BacktestContentTypeIcomplete: """ Implement backtesting functionality @@ -1710,7 +1718,7 @@ class Backtesting: "backtest_end_time": int(backtest_end_time.timestamp()), } ) - self.all_results[strategy_name] = results + self.all_bt_content[strategy_name] = results if ( self.config.get("export", "none") == "signals" @@ -1760,7 +1768,6 @@ class Backtesting: data: dict[str, DataFrame] = {} data, timerange = self.load_bt_data() - self.load_bt_data_detail() logger.info("Dataload complete. Calculating indicators") self.load_prior_backtest() @@ -1773,9 +1780,9 @@ class Backtesting: min_date, max_date = self.backtest_one_strategy(strat, data, timerange) # Update old results with new ones. - if len(self.all_results) > 0: + if len(self.all_bt_content) > 0: results = generate_backtest_stats( - data, self.all_results, min_date=min_date, max_date=max_date + data, self.all_bt_content, min_date=min_date, max_date=max_date ) if self.results: self.results["metadata"].update(results["metadata"]) diff --git a/freqtrade/optimize/hyperopt/hyperopt_optimizer.py b/freqtrade/optimize/hyperopt/hyperopt_optimizer.py index 891bfcbee..99e81e4b3 100644 --- a/freqtrade/optimize/hyperopt/hyperopt_optimizer.py +++ b/freqtrade/optimize/hyperopt/hyperopt_optimizer.py @@ -22,6 +22,7 @@ from freqtrade.data.history import get_timerange from freqtrade.data.metrics import calculate_market_change from freqtrade.enums import HyperoptState from freqtrade.exceptions import OperationalException +from freqtrade.ft_types import BacktestContentType from freqtrade.misc import deep_merge_dicts, round_dict from freqtrade.optimize.backtesting import Backtesting @@ -337,7 +338,7 @@ class HyperOptimizer: def _get_results_dict( self, - backtesting_results: dict[str, Any], + backtesting_results: BacktestContentType, min_date: datetime, max_date: datetime, params_dict: dict[str, Any], @@ -443,7 +444,6 @@ class HyperOptimizer: def prepare_hyperopt_data(self) -> None: HyperoptStateContainer.set_state(HyperoptState.DATALOAD) data, self.timerange = self.backtesting.load_bt_data() - self.backtesting.load_bt_data_detail() logger.info("Dataload complete. Calculating indicators") if not self.analyze_per_epoch: diff --git a/freqtrade/optimize/hyperopt_loss/hyperopt_loss_max_drawdown_per_pair.py b/freqtrade/optimize/hyperopt_loss/hyperopt_loss_max_drawdown_per_pair.py new file mode 100644 index 000000000..19ce29455 --- /dev/null +++ b/freqtrade/optimize/hyperopt_loss/hyperopt_loss_max_drawdown_per_pair.py @@ -0,0 +1,59 @@ +""" +MaxDrawDownPerPairHyperOptLoss + +This module defines the alternative HyperOptLoss class which can be used for +Hyperoptimization. +""" + +from typing import Any + +from freqtrade.optimize.hyperopt import IHyperOptLoss + + +class MaxDrawDownPerPairHyperOptLoss(IHyperOptLoss): + """ + Defines the loss function for hyperopt. + + This implementation calculates the profit/drawdown ratio per pair and + returns the worst result as objective, forcing hyperopt to optimize + the parameters for all pairs in the pairlist. + + This way, we prevent one or more pairs with good results from inflating + the metrics, while the rest of the pairs with poor results are not + represented and therefore not optimized. + """ + + @staticmethod + def hyperopt_loss_function(backtest_stats: dict[str, Any], *args, **kwargs) -> float: + """ + Objective function, returns smaller number for better results. + """ + + ############################################## + # Configurable parameters + ############################################## + # Minimum acceptable profit/drawdown per pair + min_acceptable_profit_dd = 1.0 + # Penalty when acceptable minimum are not met + penalty = 20 + ############################################## + + score_per_pair = [] + for p in backtest_stats["results_per_pair"]: + if p["key"] != "TOTAL": + profit = p.get("profit_total_abs", 0) + drawdown = p.get("max_drawdown_abs", 0) + + if drawdown != 0 and profit != 0: + profit_dd = profit / drawdown + else: + profit_dd = profit + + if profit_dd < min_acceptable_profit_dd: + score = profit_dd - penalty + else: + score = profit_dd + + score_per_pair.append(score) + + return -min(score_per_pair) diff --git a/freqtrade/optimize/optimize_reports/bt_output.py b/freqtrade/optimize/optimize_reports/bt_output.py index 7dea7224b..cc179410a 100644 --- a/freqtrade/optimize/optimize_reports/bt_output.py +++ b/freqtrade/optimize/optimize_reports/bt_output.py @@ -102,7 +102,9 @@ def text_table_tags( [ *( ( - (t["key"] if isinstance(t["key"], list) else [t["key"], ""]) + list(t["key"]) + if isinstance(t["key"], list | tuple) + else [t["key"], ""] if is_list else [t["key"]] ) diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index e5b526779..1478ee2be 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -18,7 +18,11 @@ from freqtrade.data.metrics import ( calculate_sortino, calculate_sqn, ) -from freqtrade.ft_types import BacktestResultType, get_BacktestResultType_default +from freqtrade.ft_types import ( + BacktestContentType, + BacktestResultType, + get_BacktestResultType_default, +) from freqtrade.util import decimals_per_coin, fmt_coin, get_dry_run_wallet @@ -26,7 +30,7 @@ logger = logging.getLogger(__name__) def generate_trade_signal_candles( - preprocessed_df: dict[str, DataFrame], bt_results: dict[str, Any], date_col: str + preprocessed_df: dict[str, DataFrame], bt_results: BacktestContentType, date_col: str ) -> dict[str, DataFrame]: signal_candles_only = {} for pair in preprocessed_df.keys(): @@ -70,7 +74,11 @@ def generate_rejected_signals( def _generate_result_line( - result: DataFrame, starting_balance: float, first_column: str | list[str] + result: DataFrame, + min_date: datetime, + max_date: datetime, + starting_balance: float, + first_column: str | list[str], ) -> dict: """ Generate one result dict, with "first_column" as key. @@ -78,6 +86,20 @@ def _generate_result_line( profit_sum = result["profit_ratio"].sum() # (end-capital - starting capital) / starting capital profit_total = result["profit_abs"].sum() / starting_balance + backtest_days = (max_date - min_date).days or 1 + final_balance = starting_balance + result["profit_abs"].sum() + expectancy, expectancy_ratio = calculate_expectancy(result) + winning_profit = result.loc[result["profit_abs"] > 0, "profit_abs"].sum() + losing_profit = result.loc[result["profit_abs"] < 0, "profit_abs"].sum() + profit_factor = winning_profit / abs(losing_profit) if losing_profit else 0.0 + + try: + drawdown = calculate_max_drawdown( + result, value_col="profit_abs", starting_balance=starting_balance + ) + + except ValueError: + drawdown = None return { "key": first_column, @@ -106,6 +128,16 @@ def _generate_result_line( "draws": len(result[result["profit_abs"] == 0]), "losses": len(result[result["profit_abs"] < 0]), "winrate": len(result[result["profit_abs"] > 0]) / len(result) if len(result) else 0.0, + "cagr": calculate_cagr(backtest_days, starting_balance, final_balance), + "expectancy": expectancy, + "expectancy_ratio": expectancy_ratio, + "sortino": calculate_sortino(result, min_date, max_date, starting_balance), + "sharpe": calculate_sharpe(result, min_date, max_date, starting_balance), + "calmar": calculate_calmar(result, min_date, max_date, starting_balance), + "sqn": calculate_sqn(result, starting_balance), + "profit_factor": profit_factor, + "max_drawdown_account": drawdown.relative_account_drawdown if drawdown else 0.0, + "max_drawdown_abs": drawdown.drawdown_abs if drawdown else 0.0, } @@ -121,6 +153,8 @@ def generate_pair_metrics( # stake_currency: str, starting_balance: float, results: DataFrame, + min_date: datetime, + max_date: datetime, skip_nan: bool = False, ) -> list[dict]: """ @@ -140,13 +174,18 @@ def generate_pair_metrics( # if skip_nan and result["profit_abs"].isnull().all(): continue - tabular_data.append(_generate_result_line(result, starting_balance, pair)) + tabular_data.append( + _generate_result_line(result, min_date, max_date, starting_balance, pair) + ) # Sort by total profit %: tabular_data = sorted(tabular_data, key=lambda k: k["profit_total_abs"], reverse=True) # Append Total - tabular_data.append(_generate_result_line(results, starting_balance, "TOTAL")) + tabular_data.append( + _generate_result_line(results, min_date, max_date, starting_balance, "TOTAL") + ) + return tabular_data @@ -154,6 +193,8 @@ def generate_tag_metrics( tag_type: Literal["enter_tag", "exit_reason"] | list[Literal["enter_tag", "exit_reason"]], starting_balance: float, results: DataFrame, + min_date: datetime, + max_date: datetime, skip_nan: bool = False, ) -> list[dict]: """ @@ -173,13 +214,17 @@ def generate_tag_metrics( if skip_nan and group["profit_abs"].isnull().all(): continue - tabular_data.append(_generate_result_line(group, starting_balance, tags)) + tabular_data.append( + _generate_result_line(group, min_date, max_date, starting_balance, tags) + ) # Sort by total profit %: tabular_data = sorted(tabular_data, key=lambda k: k["profit_total_abs"], reverse=True) # Append Total - tabular_data.append(_generate_result_line(results, starting_balance, "TOTAL")) + tabular_data.append( + _generate_result_line(results, min_date, max_date, starting_balance, "TOTAL") + ) return tabular_data else: return [] @@ -366,7 +411,7 @@ def generate_daily_stats(results: DataFrame) -> dict[str, Any]: def generate_strategy_stats( pairlist: list[str], strategy: str, - content: dict[str, Any], + content: BacktestContentType, min_date: datetime, max_date: datetime, market_change: float, @@ -395,19 +440,33 @@ def generate_strategy_stats( stake_currency=stake_currency, starting_balance=start_balance, results=results, + min_date=min_date, + max_date=max_date, skip_nan=False, ) enter_tag_stats = generate_tag_metrics( - "enter_tag", starting_balance=start_balance, results=results, skip_nan=False + "enter_tag", + starting_balance=start_balance, + results=results, + min_date=min_date, + max_date=max_date, + skip_nan=False, ) exit_reason_stats = generate_tag_metrics( - "exit_reason", starting_balance=start_balance, results=results, skip_nan=False + "exit_reason", + starting_balance=start_balance, + results=results, + min_date=min_date, + max_date=max_date, + skip_nan=False, ) mix_tag_stats = generate_tag_metrics( ["enter_tag", "exit_reason"], starting_balance=start_balance, results=results, + min_date=min_date, + max_date=max_date, skip_nan=False, ) left_open_results = generate_pair_metrics( @@ -415,6 +474,8 @@ def generate_strategy_stats( stake_currency=stake_currency, starting_balance=start_balance, results=results.loc[results["exit_reason"] == "force_exit"], + min_date=min_date, + max_date=max_date, skip_nan=True, ) @@ -575,7 +636,7 @@ def generate_strategy_stats( def generate_backtest_stats( btdata: dict[str, DataFrame], - all_results: dict[str, dict[str, DataFrame | dict]], + all_results: dict[str, BacktestContentType], min_date: datetime, max_date: datetime, ) -> BacktestResultType: @@ -588,7 +649,7 @@ def generate_backtest_stats( :return: Dictionary containing results per strategy and a strategy summary. """ result: BacktestResultType = get_BacktestResultType_default() - market_change = calculate_market_change(btdata, "close") + market_change = calculate_market_change(btdata, "close", min_date=min_date) metadata = {} pairlist = list(btdata.keys()) for strategy, content in all_results.items(): diff --git a/freqtrade/persistence/key_value_store.py b/freqtrade/persistence/key_value_store.py index e7b782ac4..814748da6 100644 --- a/freqtrade/persistence/key_value_store.py +++ b/freqtrade/persistence/key_value_store.py @@ -1,6 +1,6 @@ from datetime import datetime, timezone from enum import Enum -from typing import ClassVar +from typing import ClassVar, Literal from sqlalchemy import String from sqlalchemy.orm import Mapped, mapped_column @@ -18,9 +18,11 @@ class ValueTypesEnum(str, Enum): INT = "int" -class KeyStoreKeys(str, Enum): - BOT_START_TIME = "bot_start_time" - STARTUP_TIME = "startup_time" +KeyStoreKeys = Literal[ + "bot_start_time", + "startup_time", + "binance_migration", +] class _KeyValueStoreModel(ModelBase): @@ -192,7 +194,7 @@ class KeyValueStore: return kv.int_value -def set_startup_time(): +def set_startup_time() -> None: """ sets bot_start_time to the first trade open date - or "now" on new databases. sets startup_time to "now" diff --git a/freqtrade/persistence/migrations.py b/freqtrade/persistence/migrations.py index f0aa2f289..59d717d57 100644 --- a/freqtrade/persistence/migrations.py +++ b/freqtrade/persistence/migrations.py @@ -1,6 +1,6 @@ import logging -from sqlalchemy import inspect, select, text, update +from sqlalchemy import Engine, inspect, select, text, update from freqtrade.exceptions import OperationalException from freqtrade.persistence.trade_model import Order, Trade @@ -9,7 +9,7 @@ from freqtrade.persistence.trade_model import Order, Trade logger = logging.getLogger(__name__) -def get_table_names_for_table(inspector, tabletype) -> list[str]: +def get_table_names_for_table(inspector, tabletype: str) -> list[str]: return [t for t in inspector.get_table_names() if t.startswith(tabletype)] @@ -350,7 +350,7 @@ def fix_wrong_max_stake_amount(engine): connection.execute(stmt) -def check_migrate(engine, decl_base, previous_tables) -> None: +def check_migrate(engine: Engine, decl_base, previous_tables: list[str]) -> None: """ Checks if migration is necessary and migrates if necessary """ diff --git a/freqtrade/persistence/trade_model.py b/freqtrade/persistence/trade_model.py index c1fbbc30c..5f3101b0d 100644 --- a/freqtrade/persistence/trade_model.py +++ b/freqtrade/persistence/trade_model.py @@ -1027,12 +1027,12 @@ class LocalTrade: Calculate the open_rate including open_fee. :return: Price in of the open trade incl. Fees """ - open_trade = FtPrecise(amount) * FtPrecise(open_rate) - fees = open_trade * FtPrecise(self.fee_open) + open_value = FtPrecise(amount) * FtPrecise(open_rate) + fees = open_value * FtPrecise(self.fee_open) if self.is_short: - return float(open_trade - fees) + return float(open_value - fees) else: - return float(open_trade + fees) + return float(open_value + fees) def recalc_open_trade_value(self) -> None: """ @@ -1062,13 +1062,13 @@ class LocalTrade: return interest(exchange_name=self.exchange, borrowed=borrowed, rate=rate, hours=hours) def _calc_base_close(self, amount: FtPrecise, rate: float, fee: float | None) -> FtPrecise: - close_trade = amount * FtPrecise(rate) - fees = close_trade * FtPrecise(fee or 0.0) + close_value = amount * FtPrecise(rate) + fees = close_value * FtPrecise(fee or 0.0) if self.is_short: - return close_trade + fees + return close_value + fees else: - return close_trade - fees + return close_value - fees def calc_close_trade_value(self, rate: float, amount: float | None = None) -> float: """ @@ -1155,18 +1155,21 @@ class LocalTrade: profit_ratio = 0.0 total_profit_abs = profit_abs + self.realized_profit - total_profit_ratio = ( - (total_profit_abs / self.max_stake_amount) * self.leverage - if self.max_stake_amount - else 0.0 - ) - total_profit_ratio = float(f"{total_profit_ratio:.8f}") + if self.max_stake_amount: + max_stake = self.max_stake_amount * ( + (1 - self.fee_open) if self.is_short else (1 + self.fee_open) + ) + total_profit_ratio = total_profit_abs / max_stake + total_profit_ratio = float(f"{total_profit_ratio:.8f}") + else: + total_profit_ratio = 0.0 profit_abs = float(f"{profit_abs:.8f}") + total_profit_abs = float(f"{total_profit_abs:.8f}") return ProfitStruct( profit_abs=profit_abs, profit_ratio=profit_ratio, - total_profit=profit_abs + self.realized_profit, + total_profit=total_profit_abs, total_profit_ratio=total_profit_ratio, ) @@ -1799,11 +1802,15 @@ class Trade(ModelBase, LocalTrade): close_date: datetime | None = None, ) -> list["LocalTrade"]: """ - Helper function to query Trades.j + Helper function to query Trades. Returns a List of trades, filtered on the parameters given. In live mode, converts the filter to a database query and returns all rows In Backtest mode, uses filters on Trade.bt_trades to get the result. - + :param pair: Filter by pair + :param is_open: Filter by open/closed status + :param open_date: Filter by open_date (filters via trade.open_date > input) + :param close_date: Filter by close_date (filters via trade.close_date > input) + and will implicitly only return closed trades. :return: unsorted List[Trade] """ if Trade.use_db: diff --git a/freqtrade/plot/plotting.py b/freqtrade/plot/plotting.py index 4f486d8a1..6419ab0c2 100644 --- a/freqtrade/plot/plotting.py +++ b/freqtrade/plot/plotting.py @@ -460,7 +460,7 @@ def generate_candlestick_graph( rows=rows, cols=1, shared_xaxes=True, - row_width=row_widths + [1, 4], + row_width=[*row_widths, 1, 4], vertical_spacing=0.0001, ) fig["layout"].update(title=pair) diff --git a/freqtrade/plugins/pairlist/IPairList.py b/freqtrade/plugins/pairlist/IPairList.py index 89a9e68cd..9cb5d7744 100644 --- a/freqtrade/plugins/pairlist/IPairList.py +++ b/freqtrade/plugins/pairlist/IPairList.py @@ -251,6 +251,7 @@ class IPairList(LoggingMixin, ABC): f"Pair {pair} is not compatible with exchange " f"{self._exchange.name}. Removing it from whitelist..", logger.warning, + True, ) continue @@ -258,6 +259,7 @@ class IPairList(LoggingMixin, ABC): self.log_once( f"Pair {pair} is not tradable with Freqtrade. Removing it from whitelist..", logger.warning, + True, ) continue @@ -266,13 +268,18 @@ class IPairList(LoggingMixin, ABC): f"Pair {pair} is not compatible with your stake currency " f"{self._config['stake_currency']}. Removing it from whitelist..", logger.warning, + True, ) continue # Check if market is active market = markets[pair] if not market_is_active(market): - self.log_once(f"Ignoring {pair} from whitelist. Market is not active.", logger.info) + self.log_once( + f"Ignoring {pair} from whitelist. Market is not active.", + logger.info, + True, + ) continue if pair not in sanitized_whitelist: sanitized_whitelist.append(pair) diff --git a/freqtrade/rpc/api_server/api_backtest.py b/freqtrade/rpc/api_server/api_backtest.py index 5d06e8a48..98a7586df 100644 --- a/freqtrade/rpc/api_server/api_backtest.py +++ b/freqtrade/rpc/api_server/api_backtest.py @@ -62,7 +62,6 @@ def __run_backtest_bg(btconfig: Config): from freqtrade.optimize.backtesting import Backtesting ApiBG.bt["bt"] = Backtesting(btconfig) - ApiBG.bt["bt"].load_bt_data_detail() else: ApiBG.bt["bt"].config = btconfig ApiBG.bt["bt"].init_backtest() @@ -96,7 +95,10 @@ def __run_backtest_bg(btconfig: Config): ) ApiBG.bt["bt"].results = generate_backtest_stats( - ApiBG.bt["data"], ApiBG.bt["bt"].all_results, min_date=min_date, max_date=max_date + ApiBG.bt["data"], + ApiBG.bt["bt"].all_bt_content, + min_date=min_date, + max_date=max_date, ) if btconfig.get("export", "none") == "trades": diff --git a/freqtrade/rpc/api_server/api_schemas.py b/freqtrade/rpc/api_server/api_schemas.py index 975166458..bb5dfafa7 100644 --- a/freqtrade/rpc/api_server/api_schemas.py +++ b/freqtrade/rpc/api_server/api_schemas.py @@ -5,7 +5,7 @@ from pydantic import AwareDatetime, BaseModel, RootModel, SerializeAsAny, model_ from freqtrade.constants import DL_DATA_TIMEFRAMES, IntOrInf from freqtrade.enums import MarginMode, OrderTypeValues, SignalDirection, TradingMode -from freqtrade.ft_types import ValidExchangesType +from freqtrade.ft_types import AnnotationType, ValidExchangesType from freqtrade.rpc.api_server.webserver_bgwork import ProgressTask @@ -539,6 +539,7 @@ class PairHistory(BaseModel): columns: list[str] all_columns: list[str] = [] data: SerializeAsAny[list[Any]] + annotations: list[AnnotationType] | None = None length: int buy_signals: int sell_signals: int diff --git a/freqtrade/rpc/api_server/api_v1.py b/freqtrade/rpc/api_server/api_v1.py index afab46cc8..348ffd7a3 100644 --- a/freqtrade/rpc/api_server/api_v1.py +++ b/freqtrade/rpc/api_server/api_v1.py @@ -200,9 +200,12 @@ def status(rpc: RPC = Depends(get_rpc)): def trades( limit: int = Query(500, ge=1, description="Maximum number of different trades to return data"), offset: int = Query(0, ge=0, description="Number of trades to skip for pagination"), + order_by_id: bool = Query( + True, description="Sort trades by id (default: True). If False, sorts by latest timestamp" + ), rpc: RPC = Depends(get_rpc), ): - return rpc._rpc_trade_history(limit, offset=offset, order_by_id=True) + return rpc._rpc_trade_history(limit, offset=offset, order_by_id=order_by_id) @router.get("/trade/{tradeid}", response_model=OpenTradeSchema, tags=["info", "trading"]) @@ -369,10 +372,11 @@ def stop(rpc: RPC = Depends(get_rpc)): return rpc._rpc_stop() +@router.post("/pause", response_model=StatusMsg, tags=["botcontrol"]) @router.post("/stopentry", response_model=StatusMsg, tags=["botcontrol"]) @router.post("/stopbuy", response_model=StatusMsg, tags=["botcontrol"]) -def stop_buy(rpc: RPC = Depends(get_rpc)): - return rpc._rpc_stopentry() +def pause(rpc: RPC = Depends(get_rpc)): + return rpc._rpc_pause() @router.post("/reload_config", response_model=StatusMsg, tags=["botcontrol"]) diff --git a/freqtrade/rpc/api_server/uvicorn_threaded.py b/freqtrade/rpc/api_server/uvicorn_threaded.py index 07faaff53..d765472f6 100644 --- a/freqtrade/rpc/api_server/uvicorn_threaded.py +++ b/freqtrade/rpc/api_server/uvicorn_threaded.py @@ -41,7 +41,7 @@ class UvicornServer(uvicorn.Server): but we need to create uvloop event loop manually """ try: - import uvloop # noqa + import uvloop except ImportError: # pragma: no cover asyncio_setup() else: diff --git a/freqtrade/rpc/rpc.py b/freqtrade/rpc/rpc.py index 075ddd374..696fec7b7 100644 --- a/freqtrade/rpc/rpc.py +++ b/freqtrade/rpc/rpc.py @@ -32,8 +32,9 @@ from freqtrade.enums import ( from freqtrade.exceptions import ExchangeError, PricingError from freqtrade.exchange import Exchange, timeframe_to_minutes, timeframe_to_msecs from freqtrade.exchange.exchange_utils import price_to_precision +from freqtrade.ft_types import AnnotationType from freqtrade.loggers import bufferHandler -from freqtrade.persistence import CustomDataWrapper, KeyStoreKeys, KeyValueStore, PairLocks, Trade +from freqtrade.persistence import CustomDataWrapper, KeyValueStore, PairLocks, Trade from freqtrade.persistence.models import PairLock from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist from freqtrade.rpc.fiat_convert import CryptoToFiatConverter @@ -635,7 +636,7 @@ class RPC: first_date = trades[0].open_date_utc if trades else None last_date = trades[-1].open_date_utc if trades else None num = float(len(durations) or 1) - bot_start = KeyValueStore.get_datetime_value(KeyStoreKeys.BOT_START_TIME) + bot_start = KeyValueStore.get_datetime_value("bot_start_time") return { "profit_closed_coin": profit_closed_coin_sum, "profit_closed_percent_mean": round(profit_closed_ratio_mean * 100, 2), @@ -838,7 +839,7 @@ class RPC: def _rpc_stop(self) -> dict[str, str]: """Handler for stop""" - if self._freqtrade.state == State.RUNNING: + if self._freqtrade.state != State.STOPPED: self._freqtrade.state = State.STOPPED return {"status": "stopping trader ..."} @@ -849,16 +850,25 @@ class RPC: self._freqtrade.state = State.RELOAD_CONFIG return {"status": "Reloading config ..."} - def _rpc_stopentry(self) -> dict[str, str]: + def _rpc_pause(self) -> dict[str, str]: """ - Handler to stop buying, but handle open trades gracefully. + Handler to pause trading (stop entering new trades), but handle open trades gracefully. """ if self._freqtrade.state == State.RUNNING: - # Set 'max_open_trades' to 0 - self._freqtrade.config["max_open_trades"] = 0 - self._freqtrade.strategy.max_open_trades = 0 + self._freqtrade.state = State.PAUSED - return {"status": "No more entries will occur from now. Run /reload_config to reset."} + if self._freqtrade.state == State.STOPPED: + self._freqtrade.state = State.PAUSED + return { + "status": ( + "starting bot with trader in paused state, no entries will occur. " + "Run /start to enable entries." + ) + } + + return { + "status": "paused, no more entries will occur from now. Run /start to enable entries." + } def _rpc_reload_trade_from_exchange(self, trade_id: int) -> dict[str, str]: """ @@ -930,7 +940,7 @@ class RPC: Sells the given trade at current price """ - if self._freqtrade.state != State.RUNNING: + if self._freqtrade.state == State.STOPPED: raise RPCException("trader is not running") with self._freqtrade._exit_lock: @@ -1046,7 +1056,7 @@ class RPC: raise RPCException(f"Failed to enter position for {pair}.") def _rpc_cancel_open_order(self, trade_id: int): - if self._freqtrade.state != State.RUNNING: + if self._freqtrade.state == State.STOPPED: raise RPCException("trader is not running") with self._freqtrade._exit_lock: # Query for trade @@ -1214,7 +1224,7 @@ class RPC: def _rpc_count(self) -> dict[str, float]: """Returns the number of trades running""" - if self._freqtrade.state != State.RUNNING: + if self._freqtrade.state == State.STOPPED: raise RPCException("trader is not running") trades = Trade.get_open_trades() @@ -1347,6 +1357,7 @@ class RPC: dataframe: DataFrame, last_analyzed: datetime, selected_cols: list[str] | None, + annotations: list[AnnotationType], ) -> dict[str, Any]: has_content = len(dataframe) != 0 dataframe_columns = list(dataframe.columns) @@ -1402,6 +1413,7 @@ class RPC: "data_start_ts": 0, "data_stop": "", "data_stop_ts": 0, + "annotations": annotations, } if has_content: res.update( @@ -1420,8 +1432,16 @@ class RPC: """Analyzed dataframe in Dict form""" _data, last_analyzed = self.__rpc_analysed_dataframe_raw(pair, timeframe, limit) + annotations = self._freqtrade.strategy.ft_plot_annotations(pair=pair, dataframe=_data) + return RPC._convert_dataframe_to_dict( - self._freqtrade.config["strategy"], pair, timeframe, _data, last_analyzed, selected_cols + self._freqtrade.config["strategy"], + pair, + timeframe, + _data, + last_analyzed, + selected_cols, + annotations, ) def __rpc_analysed_dataframe_raw( @@ -1522,6 +1542,7 @@ class RPC: ) data = _data[pair] + annotations = [] if config.get("strategy"): strategy.dp = DataProvider(config, exchange=exchange, pairlists=None) strategy.ft_bot_start() @@ -1530,6 +1551,8 @@ class RPC: df_analyzed = trim_dataframe( df_analyzed, timerange_parsed, startup_candles=startup_candles ) + annotations = strategy.ft_plot_annotations(pair=pair, dataframe=df_analyzed) + else: df_analyzed = data @@ -1540,6 +1563,7 @@ class RPC: df_analyzed.copy(), dt_now(), selected_cols, + annotations, ) def _rpc_plot_config(self) -> dict[str, Any]: @@ -1592,7 +1616,7 @@ class RPC: } ) - if bot_start := KeyValueStore.get_datetime_value(KeyStoreKeys.BOT_START_TIME): + if bot_start := KeyValueStore.get_datetime_value("bot_start_time"): res.update( { "bot_start": str(bot_start), @@ -1600,7 +1624,7 @@ class RPC: "bot_start_ts": int(bot_start.timestamp()), } ) - if bot_startup := KeyValueStore.get_datetime_value(KeyStoreKeys.STARTUP_TIME): + if bot_startup := KeyValueStore.get_datetime_value("startup_time"): res.update( { "bot_startup": str(bot_startup), diff --git a/freqtrade/rpc/telegram.py b/freqtrade/rpc/telegram.py index 739a2af86..f3f4a4196 100644 --- a/freqtrade/rpc/telegram.py +++ b/freqtrade/rpc/telegram.py @@ -178,6 +178,7 @@ class Telegram(RPCHandler): # problem in _help()). valid_keys: list[str] = [ r"/start$", + r"/pause$", r"/stop$", r"/status$", r"/status table$", @@ -293,7 +294,7 @@ class Telegram(RPCHandler): CommandHandler(["unlock", "delete_locks"], self._delete_locks), CommandHandler(["reload_config", "reload_conf"], self._reload_config), CommandHandler(["show_config", "show_conf"], self._show_config), - CommandHandler(["stopbuy", "stopentry"], self._stopentry), + CommandHandler(["stopbuy", "stopentry", "pause"], self._pause), CommandHandler("whitelist", self._whitelist), CommandHandler("blacklist", self._blacklist), CommandHandler(["blacklist_delete", "bl_delete"], self._blacklist_delete), @@ -1269,15 +1270,15 @@ class Telegram(RPCHandler): await self._send_msg(f"Status: `{msg['status']}`") @authorized_only - async def _stopentry(self, update: Update, context: CallbackContext) -> None: + async def _pause(self, update: Update, context: CallbackContext) -> None: """ - Handler for /stop_buy. - Sets max_open_trades to 0 and gracefully sells all open trades + Handler for /stop_buy /stop_entry and /pause. + Sets bot state to paused :param bot: telegram bot :param update: message update :return: None """ - msg = self._rpc._rpc_stopentry() + msg = self._rpc._rpc_pause() await self._send_msg(f"Status: `{msg['status']}`") @authorized_only @@ -1829,6 +1830,7 @@ class Telegram(RPCHandler): "_Bot Control_\n" "------------\n" "*/start:* `Starts the trader`\n" + "*/pause:* `Pause the new entries for trader, but handles open trades gracefully`\n" "*/stop:* `Stops the trader`\n" "*/stopentry:* `Stops entering, but handles open trades gracefully` \n" "*/forceexit |all:* `Instantly exits the given trade or all trades, " diff --git a/freqtrade/strategy/__init__.py b/freqtrade/strategy/__init__.py index e99473b4e..f1a6c687c 100644 --- a/freqtrade/strategy/__init__.py +++ b/freqtrade/strategy/__init__.py @@ -6,6 +6,7 @@ from freqtrade.exchange import ( timeframe_to_prev_date, timeframe_to_seconds, ) +from freqtrade.ft_types import AnnotationType from freqtrade.persistence import Order, PairLocks, Trade from freqtrade.strategy.informative_decorator import informative from freqtrade.strategy.interface import IStrategy @@ -44,4 +45,5 @@ __all__ = [ "merge_informative_pair", "stoploss_from_absolute", "stoploss_from_open", + "AnnotationType", ] diff --git a/freqtrade/strategy/interface.py b/freqtrade/strategy/interface.py index 5cd873f23..bb4cd264a 100644 --- a/freqtrade/strategy/interface.py +++ b/freqtrade/strategy/interface.py @@ -9,9 +9,11 @@ from datetime import datetime, timedelta, timezone from math import isinf, isnan from pandas import DataFrame +from pydantic import ValidationError from freqtrade.constants import CUSTOM_TAG_MAX_LENGTH, Config, IntOrInf, ListPairsWithTimeframes from freqtrade.data.converter import populate_dataframe_with_trades +from freqtrade.data.converter.converter import reduce_dataframe_footprint from freqtrade.data.dataprovider import DataProvider from freqtrade.enums import ( CandleType, @@ -26,6 +28,7 @@ from freqtrade.enums import ( ) from freqtrade.exceptions import OperationalException, StrategyError from freqtrade.exchange import timeframe_to_minutes, timeframe_to_next_date, timeframe_to_seconds +from freqtrade.ft_types import AnnotationType from freqtrade.misc import remove_entry_exit_signals from freqtrade.persistence import Order, PairLocks, Trade from freqtrade.strategy.hyper import HyperStrategyMixin @@ -833,6 +836,24 @@ class IStrategy(ABC, HyperStrategyMixin): """ return None + def plot_annotations( + self, pair: str, start_date: datetime, end_date: datetime, dataframe: DataFrame, **kwargs + ) -> list[AnnotationType]: + """ + Retrieve area annotations for a chart. + Must be returned as array, with type, label, color, start, end, y_start, y_end. + All settings except for type are optional - though it usually makes sense to include either + "start and end" or "y_start and y_end" for either horizontal or vertical plots + (or all 4 for boxes). + :param pair: Pair that's currently analyzed + :param start_date: Start date of the chart data being requested + :param end_date: End date of the chart data being requested + :param dataframe: DataFrame with the analyzed data for the chart + :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. + :return: List of AnnotationType objects + """ + return [] + def populate_any_indicators( self, pair: str, @@ -1699,12 +1720,12 @@ class IStrategy(ABC, HyperStrategyMixin): dataframe = self.advise_exit(dataframe, metadata) return dataframe - def _if_enabled_populate_trades(self, dataframe: DataFrame, metadata: dict): + def _if_enabled_populate_trades(self, dataframe: DataFrame, metadata: dict) -> DataFrame: use_public_trades = self.config.get("exchange", {}).get("use_public_trades", False) if use_public_trades: - trades = self.dp.trades(pair=metadata["pair"], copy=False) - pair = metadata["pair"] + trades = self.dp.trades(pair=pair, copy=False) + # TODO: slice trades to size of dataframe for faster backtesting cached_grouped_trades: DataFrame | None = self._cached_grouped_trades_per_pair.get(pair) dataframe, cached_grouped_trades = populate_dataframe_with_trades( @@ -1717,6 +1738,7 @@ class IStrategy(ABC, HyperStrategyMixin): self._cached_grouped_trades_per_pair[pair] = cached_grouped_trades logger.debug("Populated dataframe with trades.") + return dataframe def advise_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ @@ -1734,8 +1756,14 @@ class IStrategy(ABC, HyperStrategyMixin): self, dataframe, metadata, inf_data, populate_fn ) - self._if_enabled_populate_trades(dataframe, metadata) - return self.populate_indicators(dataframe, metadata) + dataframe = self._if_enabled_populate_trades(dataframe, metadata) + dataframe = self.populate_indicators(dataframe, metadata) + if self.config.get("reduce_df_footprint", False) and self.config.get("runmode") not in [ + RunMode.DRY_RUN, + RunMode.LIVE, + ]: + dataframe = reduce_dataframe_footprint(dataframe) + return dataframe def advise_entry(self, dataframe: DataFrame, metadata: dict) -> DataFrame: """ @@ -1772,3 +1800,33 @@ class IStrategy(ABC, HyperStrategyMixin): if "exit_long" not in df.columns: df = df.rename({"sell": "exit_long"}, axis="columns") return df + + def ft_plot_annotations(self, pair: str, dataframe: DataFrame) -> list[AnnotationType]: + """ + Internal wrapper around plot_dataframe + """ + if len(dataframe) > 0: + annotations = strategy_safe_wrapper(self.plot_annotations)( + pair=pair, + dataframe=dataframe, + start_date=dataframe.iloc[0]["date"].to_pydatetime(), + end_date=dataframe.iloc[-1]["date"].to_pydatetime(), + ) + + from freqtrade.ft_types.plot_annotation_type import AnnotationTypeTA + + annotations_new: list[AnnotationType] = [] + for annotation in annotations: + if isinstance(annotation, dict): + # Convert to AnnotationType + try: + AnnotationTypeTA.validate_python(annotation) + annotations_new.append(annotation) + except ValidationError as e: + logger.error(f"Invalid annotation data: {annotation}. Error: {e}") + else: + # Already an AnnotationType + annotations_new.append(annotation) + + return annotations_new + return [] diff --git a/freqtrade/strategy/strategyupdater.py b/freqtrade/strategy/strategyupdater.py index 05494537d..998a3aac3 100644 --- a/freqtrade/strategy/strategyupdater.py +++ b/freqtrade/strategy/strategyupdater.py @@ -83,7 +83,7 @@ class StrategyUpdater: return updated_code # function that uses the ast module to update the code - def modify_ast(self, tree): # noqa + def modify_ast(self, tree): # use the visitor to update the names and functions in the AST NameUpdater().visit(tree) diff --git a/freqtrade/templates/base_strategy.py.j2 b/freqtrade/templates/base_strategy.py.j2 index fe577826a..e4c617ddf 100644 --- a/freqtrade/templates/base_strategy.py.j2 +++ b/freqtrade/templates/base_strategy.py.j2 @@ -28,12 +28,12 @@ from freqtrade.strategy import ( merge_informative_pair, stoploss_from_absolute, stoploss_from_open, + AnnotationType, ) # -------------------------------- # Add your lib to import here import talib.abstract as ta -import pandas_ta as pta from technical import qtpylib diff --git a/freqtrade/templates/strategy_subtemplates/strategy_methods_advanced.j2 b/freqtrade/templates/strategy_subtemplates/strategy_methods_advanced.j2 index dc133c75a..306329742 100644 --- a/freqtrade/templates/strategy_subtemplates/strategy_methods_advanced.j2 +++ b/freqtrade/templates/strategy_subtemplates/strategy_methods_advanced.j2 @@ -399,3 +399,21 @@ def order_filled( :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. """ pass + +def plot_annotations( + self, pair: str, start_date: datetime, end_date: datetime, dataframe: DataFrame, **kwargs +) -> list[AnnotationType]: + """ + Retrieve area annotations for a chart. + Must be returned as array, with type, label, color, start, end, y_start, y_end. + All settings except for type are optional - though it usually makes sense to include either + "start and end" or "y_start and y_end" for either horizontal or vertical plots + (or all 4 for boxes). + :param pair: Pair that's currently analyzed + :param start_date: Start date of the chart data being requested + :param end_date: End date of the chart data being requested + :param dataframe: DataFrame with the analyzed data for the chart + :param **kwargs: Ensure to keep this here so updates to this won't break your strategy. + :return: List of AnnotationType objects + """ + return [] diff --git a/freqtrade/util/migrations/__init__.py b/freqtrade/util/migrations/__init__.py index 4e81b1c57..8a9f10949 100644 --- a/freqtrade/util/migrations/__init__.py +++ b/freqtrade/util/migrations/__init__.py @@ -4,6 +4,9 @@ from freqtrade.util.migrations.funding_rate_mig import migrate_funding_fee_timef def migrate_data(config, exchange: Exchange | None = None): + """ + Migrate persisted data from old formats to new formats + """ migrate_binance_futures_data(config) migrate_funding_fee_timeframe(config, exchange) diff --git a/freqtrade/util/migrations/binance_mig.py b/freqtrade/util/migrations/binance_mig.py index e5255fa6d..248d5810d 100644 --- a/freqtrade/util/migrations/binance_mig.py +++ b/freqtrade/util/migrations/binance_mig.py @@ -6,8 +6,8 @@ from sqlalchemy import select from freqtrade.constants import DOCS_LINK, Config from freqtrade.enums import TradingMode from freqtrade.exceptions import OperationalException +from freqtrade.persistence import KeyValueStore, Trade from freqtrade.persistence.pairlock import PairLock -from freqtrade.persistence.trade_model import Trade logger = logging.getLogger(__name__) @@ -20,6 +20,9 @@ def migrate_binance_futures_names(config: Config): ): # only act on new futures return + if KeyValueStore.get_int_value("binance_migration"): + # already migrated + return import ccxt if version.parse("2.6.26") > version.parse(ccxt.__version__): @@ -29,10 +32,11 @@ def migrate_binance_futures_names(config: Config): ) _migrate_binance_futures_db(config) migrate_binance_futures_data(config) + KeyValueStore.store_value("binance_migration", 1) def _migrate_binance_futures_db(config: Config): - logger.warning("Migrating binance futures pairs in database.") + logger.info("Migrating binance futures pairs in database.") trades = Trade.get_trades([Trade.exchange == "binance", Trade.trading_mode == "FUTURES"]).all() for trade in trades: if ":" in trade.pair: @@ -52,7 +56,7 @@ def _migrate_binance_futures_db(config: Config): # print(pls) # pls.update({'pair': concat(PairLock.pair,':USDT')}) Trade.commit() - logger.warning("Done migrating binance futures pairs in database.") + logger.info("Done migrating binance futures pairs in database.") def migrate_binance_futures_data(config: Config): diff --git a/freqtrade/vendor/qtpylib/indicators.py b/freqtrade/vendor/qtpylib/indicators.py index 5b56b2aa6..7c1aec5a4 100644 --- a/freqtrade/vendor/qtpylib/indicators.py +++ b/freqtrade/vendor/qtpylib/indicators.py @@ -32,7 +32,7 @@ warnings.simplefilter(action="ignore", category=RuntimeWarning) def numpy_rolling_window(data, window): shape = data.shape[:-1] + (data.shape[-1] - window + 1, window) - strides = data.strides + (data.strides[-1],) + strides = (*data.strides, data.strides[-1]) return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides) diff --git a/freqtrade/worker.py b/freqtrade/worker.py index 61d5d9a64..8b754ddc3 100644 --- a/freqtrade/worker.py +++ b/freqtrade/worker.py @@ -96,7 +96,10 @@ class Worker: logger.info( f"Changing state{f' from {old_state.name}' if old_state else ''} to: {state.name}" ) - if state == State.RUNNING: + if state in (State.RUNNING, State.PAUSED) and old_state not in ( + State.RUNNING, + State.PAUSED, + ): self.freqtrade.startup() if state == State.STOPPED: @@ -112,9 +115,10 @@ class Worker: self._throttle(func=self._process_stopped, throttle_secs=self._throttle_secs) - elif state == State.RUNNING: + elif state in (State.RUNNING, State.PAUSED): + state_str = "RUNNING" if state == State.RUNNING else "PAUSED" # Ping systemd watchdog before throttling - self._notify("WATCHDOG=1\nSTATUS=State: RUNNING.") + self._notify(f"WATCHDOG=1\nSTATUS=State: {state_str}.") # Use an offset of 1s to ensure a new candle has been issued self._throttle( @@ -221,7 +225,7 @@ class Worker: # Load and validate config and create new instance of the bot self._init(True) - self.freqtrade.notify_status("config reloaded") + self.freqtrade.notify_status(f"{State(self.freqtrade.state)} after config reloaded") # Tell systemd that we completed reconfiguration self._notify("READY=1") diff --git a/ft_client/freqtrade_client/__init__.py b/ft_client/freqtrade_client/__init__.py index 32e91f3a1..d708ab2fb 100644 --- a/ft_client/freqtrade_client/__init__.py +++ b/ft_client/freqtrade_client/__init__.py @@ -1,13 +1,13 @@ from freqtrade_client.ft_rest_client import FtRestClient -__version__ = "2025.4-dev" +__version__ = "2025.5-dev" if "dev" in __version__: from pathlib import Path try: - import subprocess # noqa: S404 + import subprocess # noqa: S404, RUF100 freqtrade_basedir = Path(__file__).parent diff --git a/ft_client/freqtrade_client/ft_rest_client.py b/ft_client/freqtrade_client/ft_rest_client.py index 5e15bc185..c3be342f5 100755 --- a/ft_client/freqtrade_client/ft_rest_client.py +++ b/ft_client/freqtrade_client/ft_rest_client.py @@ -255,11 +255,12 @@ class FtRestClient: """ return self._get("logs", params={"limit": limit} if limit else {}) - def trades(self, limit=None, offset=None): - """Return trades history, sorted by id + def trades(self, limit=None, offset=None, order_by_id=True): + """Return trades history, sorted by id (or by latest timestamp if order_by_id=False) :param limit: Limits trades to the X last trades. Max 500 trades. :param offset: Offset by this amount of trades. + :param order_by_id: Sort trades by id (default: True). If False, sorts by latest timestamp. :return: json object """ params = {} @@ -267,6 +268,8 @@ class FtRestClient: params["limit"] = limit if offset: params["offset"] = offset + if order_by_id: + params["order_by_id"] = True return self._get("trades", params) def list_open_trades_custom_data(self, key=None, limit=100, offset=0): diff --git a/ft_client/test_client/test_rest_client.py b/ft_client/test_client/test_rest_client.py index c1af6ded2..9d5e484aa 100644 --- a/ft_client/test_client/test_rest_client.py +++ b/ft_client/test_client/test_rest_client.py @@ -85,6 +85,8 @@ def test_FtRestClient_call_invalid(caplog): ("trades", [], {}), ("trades", [5], {}), ("trades", [5, 5], {}), # With offset + ("trades", [5, 5, True], {}), # Explicit order_by_id=True + ("trades", [5, 5, False], {}), # order_by_id=False ("trade", [1], {}), ("delete_trade", [1], {}), ("cancel_open_order", [1], {}), @@ -127,6 +129,10 @@ def test_FtRestClient_call_invalid(caplog): ("pair_candles", ["XRP/USDT", "5m", 500], {"columns": ["close_time,close"]}), ("pair_history", ["XRP/USDT", "5m", "SampleStrategy"], {}), ("pair_history", ["XRP/USDT", "5m"], {"strategy": "SampleStrategy"}), + ("trades", [], {"order_by_id": True}), + ("trades", [], {"order_by_id": False}), + ("trades", [5], {"order_by_id": False}), + ("trades", [5, 5], {"order_by_id": True}), ("sysinfo", [], {}), ("health", [], {}), ], diff --git a/pyproject.toml b/pyproject.toml index edc6c8a0a..998896937 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -265,7 +265,7 @@ extend-select = [ # "RSE", # flake8-raise # "TCH", # flake8-type-checking "PTH", # flake8-use-pathlib - # "RUF", # ruff + "RUF", # ruff "ASYNC", # flake8-async "NPY", # numpy ] @@ -280,6 +280,9 @@ extend-ignore = [ "S607", # Starting a process with a partial executable path "S608", # Possible SQL injection vector through string-based query construction "NPY002", # Numpy legacy random generator + "RUF010", # Use explicit conversion flag + "RUF012", # mutable-class-default + "RUF022", # unsorted-dunder-all ] [tool.ruff.lint.mccabe] @@ -289,7 +292,7 @@ max-complexity = 12 "freqtrade/freqai/**/*.py" = [ "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes ] -"tests/**/*.py" = [ +"tests/**.py" = [ "S101", # allow assert in tests "S104", # Possible binding to all interfaces "S311", # Standard pseudo-random generators are not suitable for cryptographic purposes @@ -298,7 +301,11 @@ max-complexity = 12 "S110", # `try`-`except`-`pass` detected, consider logging the exception ] -"ft_client/test_client/**/*.py" = [ +"freqtrade/templates/**.py" = [ + "RUF100", # Allow unused noqa +] + +"ft_client/test_client/**.py" = [ "S101", # allow assert in tests ] diff --git a/requirements-dev.txt b/requirements-dev.txt index aaa58632f..472a289cc 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -7,12 +7,12 @@ -r docs/requirements-docs.txt coveralls==4.0.1 -ruff==0.11.2 +ruff==0.11.8 mypy==1.15.0 pre-commit==4.2.0 pytest==8.3.5 -pytest-asyncio==0.25.3 -pytest-cov==6.0.0 +pytest-asyncio==0.26.0 +pytest-cov==6.1.1 pytest-mock==3.14.0 pytest-random-order==1.1.1 pytest-timeout==2.3.1 @@ -27,6 +27,6 @@ nbconvert==7.16.6 # mypy types types-cachetools==5.5.0.20240820 types-filelock==3.2.7 -types-requests==2.32.0.20250306 +types-requests==2.32.0.20250328 types-tabulate==0.9.0.20241207 types-python-dateutil==2.9.0.20241206 diff --git a/requirements-freqai-rl.txt b/requirements-freqai-rl.txt index 413feec8f..61333c6f9 100644 --- a/requirements-freqai-rl.txt +++ b/requirements-freqai-rl.txt @@ -2,8 +2,7 @@ -r requirements-freqai.txt # Required for freqai-rl -torch==2.2.2; sys_platform == 'darwin' and platform_machine == 'x86_64' -torch==2.6.0; sys_platform != 'darwin' or platform_machine != 'x86_64' +torch==2.7.0; sys_platform != 'darwin' or platform_machine != 'x86_64' gymnasium==0.29.1 # SB3 >=2.5.0 depends on torch 2.3.0 - which implies it dropped support x86 macos stable_baselines3==2.4.1; sys_platform == 'darwin' and platform_machine == 'x86_64' diff --git a/requirements-freqai.txt b/requirements-freqai.txt index 57c012a8b..69687225a 100644 --- a/requirements-freqai.txt +++ b/requirements-freqai.txt @@ -4,8 +4,8 @@ # Required for freqai scikit-learn==1.6.1 -joblib==1.4.2 -catboost==1.2.7; 'arm' not in platform_machine +joblib==1.5.0 +catboost==1.2.8; 'arm' not in platform_machine lightgbm==4.6.0 xgboost==2.1.4 tensorboard==2.19.0 diff --git a/requirements.txt b/requirements.txt index 928954c21..0348e45dc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,26 +4,27 @@ bottleneck==1.4.2 numexpr==2.10.2 pandas-ta==0.3.14b -ccxt==4.4.69 -cryptography==44.0.2 +ccxt==4.4.78 +cryptography==44.0.3 aiohttp==3.9.5 -SQLAlchemy==2.0.39 +SQLAlchemy==2.0.40 python-telegram-bot==22.0 # can't be hard-pinned due to telegram-bot pinning httpx with ~ httpx>=0.24.1 -humanize==4.12.1 +humanize==4.12.3 cachetools==5.5.2 requests==2.32.3 -urllib3==2.3.0 +urllib3==2.4.0 +certifi==2025.01.31 jsonschema==4.23.0 TA-Lib==0.4.38 technical==1.5.0 tabulate==0.9.0 pycoingecko==3.2.0 jinja2==3.1.6 -joblib==1.4.2 -rich==13.9.4 -pyarrow==19.0.1; platform_machine != 'armv7l' +joblib==1.5.0 +rich==14.0.0 +pyarrow==20.0.0; platform_machine != 'armv7l' # find first, C search in arrays py_find_1st==1.1.7 @@ -31,25 +32,25 @@ py_find_1st==1.1.7 # Load ticker files 30% faster python-rapidjson==1.20 # Properly format api responses -orjson==3.10.15 +orjson==3.10.18 # Notify systemd sdnotify==0.3.2 # API Server fastapi==0.115.12 -pydantic==2.10.6 -uvicorn==0.34.0 +pydantic==2.11.4 +uvicorn==0.34.2 pyjwt==2.10.1 aiofiles==24.1.0 psutil==7.0.0 # Building config files interactively questionary==2.1.0 -prompt-toolkit==3.0.50 +prompt-toolkit==3.0.51 # Extensions to datetime library python-dateutil==2.9.0.post0 -pytz==2025.1 +pytz==2025.2 #Futures schedule==1.2.2 @@ -59,4 +60,4 @@ websockets==15.0.1 janus==2.0.0 ast-comments==1.2.2 -packaging==24.2 +packaging==25.0 diff --git a/tests/commands/test_commands.py b/tests/commands/test_commands.py index 65a43b795..9dd5ffebc 100644 --- a/tests/commands/test_commands.py +++ b/tests/commands/test_commands.py @@ -709,18 +709,38 @@ def test_download_and_install_ui(mocker, tmp_path): def test_get_ui_download_url(mocker): response = MagicMock() - response.json = MagicMock( - side_effect=[ - [{"assets_url": "http://whatever.json", "name": "0.0.1"}], - [{"browser_download_url": "http://download.zip"}], - ] - ) + responses = [ + [ + { + # Pre-release is ignored + "assets_url": "http://whatever.json", + "name": "0.0.2", + "created_at": "2024-02-01T00:00:00Z", + "prerelease": True, + }, + { + "assets_url": "http://whatever.json", + "name": "0.0.1", + "created_at": "2024-01-01T00:00:00Z", + "prerelease": False, + }, + ], + [{"browser_download_url": "http://download.zip"}], + ] + response.json = MagicMock(side_effect=responses) get_mock = mocker.patch("freqtrade.commands.deploy_ui.requests.get", return_value=response) - x, last_version = get_ui_download_url() + x, last_version = get_ui_download_url(None, False) assert get_mock.call_count == 2 assert last_version == "0.0.1" assert x == "http://download.zip" + response.json = MagicMock(side_effect=responses) + get_mock.reset_mock() + x, last_version = get_ui_download_url(None, True) + assert get_mock.call_count == 2 + assert last_version == "0.0.2" + assert x == "http://download.zip" + def test_get_ui_download_url_direct(mocker): response = MagicMock() @@ -729,29 +749,33 @@ def test_get_ui_download_url_direct(mocker): { "assets_url": "http://whatever.json", "name": "0.0.2", + "created_at": "2024-02-01T00:00:00Z", + "prerelease": False, "assets": [{"browser_download_url": "http://download22.zip"}], }, { "assets_url": "http://whatever.json", "name": "0.0.1", + "created_at": "2024-01-01T00:00:00Z", + "prerelease": False, "assets": [{"browser_download_url": "http://download1.zip"}], }, ] ) get_mock = mocker.patch("freqtrade.commands.deploy_ui.requests.get", return_value=response) - x, last_version = get_ui_download_url() + x, last_version = get_ui_download_url(None, False) assert get_mock.call_count == 1 assert last_version == "0.0.2" assert x == "http://download22.zip" get_mock.reset_mock() response.json.reset_mock() - x, last_version = get_ui_download_url("0.0.1") + x, last_version = get_ui_download_url("0.0.1", False) assert last_version == "0.0.1" assert x == "http://download1.zip" with pytest.raises(ValueError, match="UI-Version not found."): - x, last_version = get_ui_download_url("0.0.3") + x, last_version = get_ui_download_url("0.0.3", False) def test_download_data_keyboardInterrupt(mocker, markets): diff --git a/tests/commands/test_startup_time.py b/tests/commands/test_startup_time.py index 5e9b369d8..62baab20a 100644 --- a/tests/commands/test_startup_time.py +++ b/tests/commands/test_startup_time.py @@ -1,4 +1,4 @@ -import subprocess +import subprocess # noqa: S404, RUF100 import time from tests.conftest import is_arm, is_mac diff --git a/tests/conftest.py b/tests/conftest.py index 06dd23f79..892b49d8c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -48,7 +48,7 @@ from tests.conftest_trades_usdt import ( logging.getLogger("").setLevel(logging.INFO) -# Do not mask numpy errors as warnings that no one read, raise the exсeption +# Do not mask numpy errors as warnings that no one read, raise the exception np.seterr(all="raise") CURRENT_TEST_STRATEGY = "StrategyTestV3" @@ -165,7 +165,7 @@ def generate_trades_history(n_rows, start_date: datetime | None = None, days=5): ) df["date"] = pd.to_datetime(df["timestamp"], unit="ms", utc=True) df = df.sort_values("timestamp").reset_index(drop=True) - assert list(df.columns) == constants.DEFAULT_TRADES_COLUMNS + ["date"] + assert list(df.columns) == [*constants.DEFAULT_TRADES_COLUMNS, "date"] return df diff --git a/tests/conftest_hyperopt.py b/tests/conftest_hyperopt.py index 315b138cf..3b9638bad 100644 --- a/tests/conftest_hyperopt.py +++ b/tests/conftest_hyperopt.py @@ -34,7 +34,7 @@ def hyperopt_test_result(): "roi_p2": 0.12508730043628782, "roi_p3": 0.27766427921605896, "stoploss": -0.2562930402099556, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 15, @@ -65,7 +65,7 @@ def hyperopt_test_result(): 2139: 0, }, "stoploss": {"stoploss": -0.2562930402099556}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 2, "trade_count_long": 2, @@ -82,7 +82,7 @@ def hyperopt_test_result(): "holding_avg": timedelta(minutes=3930.0), "stake_currency": "BTC", "strategy_name": "SampleStrategy", - }, # noqa: E501 + }, "results_explanation": " 2 trades. Avg profit -1.25%. Total profit -0.00125625 BTC ( -2.51Σ%). Avg duration 3930.0 min.", # noqa: E501 "total_profit": -0.00125625, "current_epoch": 1, @@ -118,7 +118,7 @@ def hyperopt_test_result(): "roi_p2": 0.055519840060645045, "roi_p3": 0.3253712811342459, "stoploss": -0.338070047333259, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 17, @@ -130,7 +130,7 @@ def hyperopt_test_result(): "adx-enabled": True, "rsi-enabled": True, "trigger": "macd_cross_signal", - }, # noqa: E501 + }, "sell": { "sell-mfi-value": 96, "sell-fastd-value": 68, @@ -141,13 +141,13 @@ def hyperopt_test_result(): "sell-adx-enabled": True, "sell-rsi-enabled": True, "sell-trigger": "sell-sar_reversal", - }, # noqa: E501 + }, "roi": { 0: 0.4449309386008759, 140: 0.11955965746663, 823: 0.06403981740598495, 1157: 0, - }, # noqa: E501 + }, "stoploss": {"stoploss": -0.338070047333259}, }, "results_metrics": { @@ -164,7 +164,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.23, "max_drawdown_abs": -0.00125625, "holding_avg": timedelta(minutes=1200.0), - }, # noqa: E501 + }, "results_explanation": " 1 trades. Avg profit 0.12%. Total profit 0.00006185 BTC ( 0.12Σ%). Avg duration 1200.0 min.", # noqa: E501 "total_profit": 6.185e-05, "current_epoch": 2, @@ -200,7 +200,7 @@ def hyperopt_test_result(): "roi_p2": 0.1488819964638463, "roi_p3": 0.4102801822104605, "stoploss": -0.05394588767607611, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 25, @@ -231,7 +231,7 @@ def hyperopt_test_result(): 1685: 0, }, "stoploss": {"stoploss": -0.05394588767607611}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 621, "trade_count_long": 621, @@ -246,7 +246,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.25, "max_drawdown_abs": -272.515306, "holding_avg": timedelta(minutes=1691.207729468599), - }, # noqa: E501 + }, "results_explanation": " 621 trades. Avg profit -0.44%. Total profit -0.13639474 BTC (-272.52Σ%). Avg duration 1691.2 min.", # noqa: E501 "total_profit": -0.13639474, "current_epoch": 3, @@ -282,7 +282,7 @@ def hyperopt_test_result(): "roi_p2": 0.14258587851894644, "roi_p3": 0.20671291201040828, "stoploss": -0.11818343570194478, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 13, @@ -313,7 +313,7 @@ def hyperopt_test_result(): 2293: 0, }, "stoploss": {"stoploss": -0.11818343570194478}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 0, "trade_count_long": 0, @@ -327,13 +327,13 @@ def hyperopt_test_result(): "max_drawdown_account": 0.0, "max_drawdown_abs": 0.0, "holding_avg": timedelta(), - }, # noqa: E501 + }, "results_explanation": " 0 trades. Avg profit nan%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration nan min.", # noqa: E501 "total_profit": 0, "current_epoch": 4, "is_initial_point": True, "is_random": False, - "is_best": False, # noqa: E501 + "is_best": False, }, { "loss": 0.22195522184191518, @@ -363,7 +363,7 @@ def hyperopt_test_result(): "roi_p2": 0.08946698095898986, "roi_p3": 0.1454876733325284, "stoploss": -0.18181041180901014, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 17, @@ -394,7 +394,7 @@ def hyperopt_test_result(): 2314: 0, }, "stoploss": {"stoploss": -0.18181041180901014}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 14, "trade_count_long": 14, @@ -409,7 +409,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.34, "max_drawdown_abs": -4.955321, "holding_avg": timedelta(minutes=3402.8571428571427), - }, # noqa: E501 + }, "results_explanation": " 14 trades. Avg profit -0.35%. Total profit -0.00248014 BTC ( -4.96Σ%). Avg duration 3402.9 min.", # noqa: E501 "total_profit": -0.002480140000000001, "current_epoch": 5, @@ -445,7 +445,7 @@ def hyperopt_test_result(): "roi_p2": 0.11659519602202795, "roi_p3": 0.0953744132197762, "stoploss": -0.024551752215582423, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 22, @@ -476,7 +476,7 @@ def hyperopt_test_result(): 1091: 0, }, "stoploss": {"stoploss": -0.024551752215582423}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 39, "trade_count_long": 39, @@ -491,7 +491,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.45, "max_drawdown_abs": -4.955321, "holding_avg": timedelta(minutes=636.9230769230769), - }, # noqa: E501 + }, "results_explanation": " 39 trades. Avg profit -0.21%. Total profit -0.00417730 BTC ( -8.35Σ%). Avg duration 636.9 min.", # noqa: E501 "total_profit": -0.0041773, "current_epoch": 6, @@ -527,7 +527,7 @@ def hyperopt_test_result(): "roi_p2": 0.04984118697312542, "roi_p3": 0.37521058680247044, "stoploss": -0.14613268022709905, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 13, @@ -556,9 +556,9 @@ def hyperopt_test_result(): 145: 0.10853310701097472, 765: 0.0586919200378493, 1536: 0, - }, # noqa: E501 + }, "stoploss": {"stoploss": -0.14613268022709905}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 318, "trade_count_long": 318, @@ -573,7 +573,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.50, "max_drawdown_abs": -200.955321, "holding_avg": timedelta(minutes=3140.377358490566), - }, # noqa: E501 + }, "results_explanation": " 318 trades. Avg profit -0.40%. Total profit -0.06339929 BTC (-126.67Σ%). Avg duration 3140.4 min.", # noqa: E501 "total_profit": -0.06339929, "current_epoch": 7, @@ -582,7 +582,7 @@ def hyperopt_test_result(): "is_best": False, }, { - "loss": 20.0, # noqa: E501 + "loss": 20.0, "params_dict": { "mfi-value": 24, "fastd-value": 43, @@ -609,7 +609,7 @@ def hyperopt_test_result(): "roi_p2": 0.0606240398618907, "roi_p3": 0.1729012220156157, "stoploss": -0.1588514289110401, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 24, @@ -640,7 +640,7 @@ def hyperopt_test_result(): 1813: 0, }, "stoploss": {"stoploss": -0.1588514289110401}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 1, "trade_count_long": 1, @@ -655,7 +655,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.0, "max_drawdown_abs": 0.52, "holding_avg": timedelta(minutes=5340.0), - }, # noqa: E501 + }, "results_explanation": " 1 trades. Avg profit 0.00%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration 5340.0 min.", # noqa: E501 "total_profit": 0.0, "current_epoch": 8, @@ -691,7 +691,7 @@ def hyperopt_test_result(): "roi_p2": 0.10335480573205287, "roi_p3": 0.10322347377503042, "stoploss": -0.2780610808108503, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 22, @@ -722,7 +722,7 @@ def hyperopt_test_result(): 2018: 0, }, "stoploss": {"stoploss": -0.2780610808108503}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 229, "trade_count_long": 229, @@ -737,16 +737,16 @@ def hyperopt_test_result(): "max_drawdown_account": 0.41, "max_drawdown_abs": -150.955321, "holding_avg": timedelta(minutes=6505.676855895196), - }, # noqa: E501 + }, "results_explanation": " 229 trades. Avg profit -0.38%. Total profit -0.04405007 BTC ( -88.01Σ%). Avg duration 6505.7 min.", # noqa: E501 - "total_profit": -0.044050070000000004, # noqa: E501 + "total_profit": -0.044050070000000004, "current_epoch": 9, "is_initial_point": True, "is_random": False, "is_best": False, }, { - "loss": -0.2604606005845212, # noqa: E501 + "loss": -0.2604606005845212, "params_dict": { "mfi-value": 23, "fastd-value": 24, @@ -773,7 +773,7 @@ def hyperopt_test_result(): "roi_p2": 0.09623192684243963, "roi_p3": 0.04428219070850663, "stoploss": -0.16992287161634415, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 23, @@ -804,7 +804,7 @@ def hyperopt_test_result(): 1471: 0, }, "stoploss": {"stoploss": -0.16992287161634415}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 4, "trade_count_long": 4, @@ -819,7 +819,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.13, "max_drawdown_abs": -4.955321, "holding_avg": timedelta(minutes=2850.0), - }, # noqa: E501 + }, "results_explanation": " 4 trades. Avg profit 0.11%. Total profit 0.00021629 BTC ( 0.43Σ%). Avg duration 2850.0 min.", # noqa: E501 "total_profit": 0.00021629, "current_epoch": 10, @@ -828,7 +828,7 @@ def hyperopt_test_result(): "is_best": True, }, { - "loss": 4.876465945994304, # noqa: E501 + "loss": 4.876465945994304, "params_dict": { "mfi-value": 20, "fastd-value": 32, @@ -855,7 +855,7 @@ def hyperopt_test_result(): "roi_p2": 0.1352282078262871, "roi_p3": 0.1913307406325751, "stoploss": -0.25728526022513887, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 20, @@ -886,7 +886,7 @@ def hyperopt_test_result(): 1466: 0, }, "stoploss": {"stoploss": -0.25728526022513887}, - }, # noqa: E501 + }, # New Hyperopt mode! "results_metrics": { "total_trades": 117, @@ -902,7 +902,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.52, "max_drawdown_abs": -224.955321, "holding_avg": timedelta(minutes=4282.5641025641025), - }, # noqa: E501 + }, "results_explanation": " 117 trades. Avg profit -1.27%. Total profit -0.07436117 BTC (-148.57Σ%). Avg duration 4282.6 min.", # noqa: E501 "total_profit": -0.07436117, "current_epoch": 11, @@ -938,7 +938,7 @@ def hyperopt_test_result(): "roi_p2": 0.12473718444931989, "roi_p3": 0.2896360635226823, "stoploss": -0.30889015124682806, - }, # noqa: E501 + }, "params_details": { "buy": { "mfi-value": 10, @@ -969,7 +969,7 @@ def hyperopt_test_result(): 2145: 0, }, "stoploss": {"stoploss": -0.30889015124682806}, - }, # noqa: E501 + }, "results_metrics": { "total_trades": 0, "trade_count_long": 0, @@ -984,7 +984,7 @@ def hyperopt_test_result(): "max_drawdown_account": 0.0, "max_drawdown_abs": 0.0, "holding_avg": timedelta(), - }, # noqa: E501 + }, "results_explanation": " 0 trades. Avg profit nan%. Total profit 0.00000000 BTC ( 0.00Σ%). Avg duration nan min.", # noqa: E501 "total_profit": 0, "current_epoch": 12, diff --git a/tests/data/test_btanalysis.py b/tests/data/test_btanalysis.py index eec3ac4e4..6531c6e2e 100644 --- a/tests/data/test_btanalysis.py +++ b/tests/data/test_btanalysis.py @@ -56,7 +56,7 @@ def test_get_latest_backtest_filename(testdatadir, mocker): res = get_latest_backtest_filename(str(testdir_bt)) assert res == "backtest-result.json" - mocker.patch("freqtrade.data.btanalysis.json_load", return_value={}) + mocker.patch("freqtrade.data.btanalysis.bt_fileutils.json_load", return_value={}) with pytest.raises(ValueError, match=r"Invalid '.last_result.json' format."): get_latest_backtest_filename(testdir_bt) @@ -84,8 +84,8 @@ def test_load_backtest_metadata(mocker, testdatadir): res = load_backtest_metadata(testdatadir / "nonexistent.file.json") assert res == {} - mocker.patch("freqtrade.data.btanalysis.get_backtest_metadata_filename") - mocker.patch("freqtrade.data.btanalysis.json_load", side_effect=Exception()) + mocker.patch("freqtrade.data.btanalysis.bt_fileutils.get_backtest_metadata_filename") + mocker.patch("freqtrade.data.btanalysis.bt_fileutils.json_load", side_effect=Exception()) with pytest.raises( OperationalException, match=r"Unexpected error.*loading backtest metadata\." ): @@ -94,7 +94,7 @@ def test_load_backtest_metadata(mocker, testdatadir): def test_load_backtest_data_old_format(testdatadir, mocker): filename = testdatadir / "backtest-result_test222.json" - mocker.patch("freqtrade.data.btanalysis.load_backtest_stats", return_value=[]) + mocker.patch("freqtrade.data.btanalysis.bt_fileutils.load_backtest_stats", return_value=[]) with pytest.raises( OperationalException, @@ -149,7 +149,7 @@ def test_load_backtest_data_multi(testdatadir): def test_load_trades_from_db(default_conf, fee, is_short, mocker): create_mock_trades(fee, is_short) # remove init so it does not init again - init_mock = mocker.patch("freqtrade.data.btanalysis.init_db", MagicMock()) + init_mock = mocker.patch("freqtrade.data.btanalysis.bt_fileutils.init_db", MagicMock()) trades = load_trades_from_db(db_url=default_conf["db_url"]) assert init_mock.call_count == 1 @@ -221,8 +221,10 @@ def test_analyze_trade_parallelism(testdatadir): def test_load_trades(default_conf, mocker): - db_mock = mocker.patch("freqtrade.data.btanalysis.load_trades_from_db", MagicMock()) - bt_mock = mocker.patch("freqtrade.data.btanalysis.load_backtest_data", MagicMock()) + db_mock = mocker.patch( + "freqtrade.data.btanalysis.bt_fileutils.load_trades_from_db", MagicMock() + ) + bt_mock = mocker.patch("freqtrade.data.btanalysis.bt_fileutils.load_backtest_data", MagicMock()) load_trades( "DB", @@ -268,6 +270,14 @@ def test_calculate_market_change(testdatadir): assert isinstance(result, float) assert pytest.approx(result) == 0.01100002 + result = calculate_market_change(data, min_date=dt_utc(2018, 1, 20)) + assert isinstance(result, float) + assert pytest.approx(result) == 0.0375149 + + # Move min-date after the last date + result = calculate_market_change(data, min_date=dt_utc(2018, 2, 20)) + assert pytest.approx(result) == 0.0 + def test_combine_dataframes_with_mean(testdatadir): pairs = ["ETH/BTC", "ADA/BTC"] @@ -562,14 +572,15 @@ def test_calculate_max_drawdown2(): assert pytest.approx(drawdown.relative_account_drawdown) == 0.32129575 df = DataFrame(zip(values[:5], dates[:5], strict=False), columns=["profit", "open_date"]) - with pytest.raises(ValueError, match="No losing trade, therefore no drawdown."): - calculate_max_drawdown(df, date_col="open_date", value_col="profit") + # No losing trade ... + drawdown = calculate_max_drawdown(df, date_col="open_date", value_col="profit") + assert drawdown.drawdown_abs == 0.0 df1 = DataFrame(zip(values[:5], dates[:5], strict=False), columns=["profit", "open_date"]) df1.loc[:, "profit"] = df1["profit"] * -1 # No winning trade ... drawdown = calculate_max_drawdown(df1, date_col="open_date", value_col="profit") - assert drawdown.drawdown_abs == 0.043965 + assert drawdown.drawdown_abs == 0.055545 @pytest.mark.parametrize( diff --git a/tests/data/test_entryexitanalysis.py b/tests/data/test_entryexitanalysis.py index 509c9b92c..63ac3c1a3 100644 --- a/tests/data/test_entryexitanalysis.py +++ b/tests/data/test_entryexitanalysis.py @@ -139,7 +139,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( # test group 0 and indicator list args = get_args( - base_args + ["--analysis-groups", "0", "--indicator-list", "close", "rsi", "profit_abs"] + [*base_args, "--analysis-groups", "0", "--indicator-list", "close", "rsi", "profit_abs"] ) start_analysis_entries_exits(args) captured = capsys.readouterr() @@ -172,7 +172,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( assert "profit_abs" in captured.out # test group 1 - args = get_args(base_args + ["--analysis-groups", "1"]) + args = get_args([*base_args, "--analysis-groups", "1"]) start_analysis_entries_exits(args) captured = capsys.readouterr() assert "enter_tag_long_a" in captured.out @@ -185,7 +185,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( assert "0" in captured.out # test group 2 - args = get_args(base_args + ["--analysis-groups", "2"]) + args = get_args([*base_args, "--analysis-groups", "2"]) start_analysis_entries_exits(args) captured = capsys.readouterr() assert "enter_tag_long_a" in captured.out @@ -200,7 +200,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( assert "2.5" in captured.out # test group 3 - args = get_args(base_args + ["--analysis-groups", "3"]) + args = get_args([*base_args, "--analysis-groups", "3"]) start_analysis_entries_exits(args) captured = capsys.readouterr() assert "LTC/BTC" in captured.out @@ -215,7 +215,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( assert "2" in captured.out # test group 4 - args = get_args(base_args + ["--analysis-groups", "4"]) + args = get_args([*base_args, "--analysis-groups", "4"]) start_analysis_entries_exits(args) captured = capsys.readouterr() assert "LTC/BTC" in captured.out @@ -235,7 +235,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( assert "2.5" in captured.out # test group 5 - args = get_args(base_args + ["--analysis-groups", "5"]) + args = get_args([*base_args, "--analysis-groups", "5"]) start_analysis_entries_exits(args) captured = capsys.readouterr() assert "exit_signal" in captured.out @@ -245,7 +245,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( # test date filtering args = get_args( - base_args + ["--analysis-groups", "0", "1", "2", "--timerange", "20180129-20180130"] + [*base_args, "--analysis-groups", "0", "1", "2", "--timerange", "20180129-20180130"] ) start_analysis_entries_exits(args) captured = capsys.readouterr() @@ -253,7 +253,7 @@ def test_backtest_analysis_on_entry_and_rejected_signals_nomock( assert "enter_tag_long_b" not in captured.out # Due to the backtest mock, there's no rejected signals generated. - args = get_args(base_args + ["--rejected-signals"]) + args = get_args([*base_args, "--rejected-signals"]) start_analysis_entries_exits(args) captured = capsys.readouterr() assert "no rejected signals" in captured.out @@ -379,8 +379,8 @@ def test_backtest_analysis_with_invalid_config( # test with both entry and exit only arguments args = get_args( - base_args - + [ + [ + *base_args, "--analysis-groups", "0", "--indicator-list", @@ -518,8 +518,8 @@ def test_backtest_analysis_on_entry_and_rejected_signals_only_entry_signals( # test group 0 and indicator list args = get_args( - base_args - + [ + [ + *base_args, "--analysis-groups", "0", "--indicator-list", diff --git a/tests/exchange/test_binance.py b/tests/exchange/test_binance.py index 998952b33..5241b3b69 100644 --- a/tests/exchange/test_binance.py +++ b/tests/exchange/test_binance.py @@ -299,7 +299,7 @@ def test_liquidation_price_binance( def get_maint_ratio(pair_, stake_amount): if pair_ != pair: - oc = [c for c in open_trades if c["pair"] == pair_][0] + oc = next(c for c in open_trades if c["pair"] == pair_) return oc["mm_ratio"], oc["maintenance_amt"] return mm_ratio, maintenance_amt diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index f32f177ea..f9f7dd9a1 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -2838,6 +2838,11 @@ def test_get_next_limit_in_list(): assert Exchange.get_next_limit_in_list(21, None) == 21 assert Exchange.get_next_limit_in_list(100, None) == 100 assert Exchange.get_next_limit_in_list(1000, None) == 1000 + # With upper limit + assert Exchange.get_next_limit_in_list(1000, None, upper_limit=None) == 1000 + assert Exchange.get_next_limit_in_list(1000, None, upper_limit=500) == 500 + # with upper limit and range, limit_range wins + assert Exchange.get_next_limit_in_list(1000, limit_range, upper_limit=500) == 1000 @pytest.mark.parametrize("exchange_name", EXCHANGES) @@ -5594,11 +5599,13 @@ def test_liquidation_price_is_none( def test_get_max_pair_stake_amount( mocker, default_conf, + leverage_tiers, ): api_mock = MagicMock() default_conf["margin_mode"] = "isolated" default_conf["trading_mode"] = "futures" exchange = get_patched_exchange(mocker, default_conf, api_mock) + exchange._leverage_tiers = leverage_tiers markets = { "XRP/USDT:USDT": { "limits": { @@ -5662,11 +5669,23 @@ def test_get_max_pair_stake_amount( "contractSize": 0.01, "spot": False, }, + "ZEC/USDT:USDT": { + "limits": { + "amount": {"min": 0.001, "max": None}, + "cost": {"min": 5, "max": None}, + }, + "contractSize": 1, + "spot": False, + }, } mocker.patch(f"{EXMS}.markets", markets) assert exchange.get_max_pair_stake_amount("XRP/USDT:USDT", 2.0) == 20000 assert exchange.get_max_pair_stake_amount("XRP/USDT:USDT", 2.0, 5) == 4000 + # limit leverage tiers + assert exchange.get_max_pair_stake_amount("ZEC/USDT:USDT", 2.0, 5) == 100_000 + assert exchange.get_max_pair_stake_amount("ZEC/USDT:USDT", 2.0, 50) == 1000 + assert exchange.get_max_pair_stake_amount("LTC/USDT:USDT", 2.0) == float("inf") assert exchange.get_max_pair_stake_amount("ETH/USDT:USDT", 2.0) == 200 assert exchange.get_max_pair_stake_amount("DOGE/USDT:USDT", 2.0) == 500 @@ -5897,8 +5916,8 @@ def test_get_max_leverage_futures(default_conf, mocker, leverage_tiers): assert exchange.get_max_leverage("XRP/USDT:USDT", 1.0) == 20.0 assert exchange.get_max_leverage("BNB/USDT:USDT", 100.0) == 75.0 assert exchange.get_max_leverage("BTC/USDT:USDT", 170.30) == 125.0 - assert pytest.approx(exchange.get_max_leverage("XRP/USDT:USDT", 99999.9)) == 5.000005 - assert pytest.approx(exchange.get_max_leverage("BNB/USDT:USDT", 1500)) == 33.333333333333333 + assert pytest.approx(exchange.get_max_leverage("XRP/USDT:USDT", 99999.9)) == 5 + assert pytest.approx(exchange.get_max_leverage("BNB/USDT:USDT", 1500)) == 25 assert exchange.get_max_leverage("BTC/USDT:USDT", 300000000) == 2.0 assert exchange.get_max_leverage("BTC/USDT:USDT", 600000000) == 1.0 # Last tier diff --git a/tests/exchange/test_kraken.py b/tests/exchange/test_kraken.py index 5cfdac15f..fd36a359d 100644 --- a/tests/exchange/test_kraken.py +++ b/tests/exchange/test_kraken.py @@ -71,7 +71,7 @@ def test_get_balances_prod_kraken(default_conf, mocker): "4TH": balance_item.copy(), "EUR": balance_item.copy(), "BTC": {"free": 0.0, "total": 0.0, "used": 0.0}, - "XBT.F": balance_item.copy(), + "BTC.F": balance_item.copy(), "timestamp": 123123, } ) diff --git a/tests/exchange_online/conftest.py b/tests/exchange_online/conftest.py index 8eedcfb01..f7cf49aa4 100644 --- a/tests/exchange_online/conftest.py +++ b/tests/exchange_online/conftest.py @@ -156,7 +156,7 @@ EXCHANGES = { "ADA.F": {"free": 2.0, "total": 2.0, "used": 0.0}, "BTC": {"free": 0.0006, "total": 0.0006, "used": 0.0}, # XBT.F should be mapped to BTC.F - "XBT.F": {"free": 0.001, "total": 0.001, "used": 0.0}, + "BTC.F": {"free": 0.001, "total": 0.001, "used": 0.0}, }, }, }, diff --git a/tests/freqtradebot/test_worker.py b/tests/freqtradebot/test_worker.py index 1dfdca5b2..6423e63ee 100644 --- a/tests/freqtradebot/test_worker.py +++ b/tests/freqtradebot/test_worker.py @@ -3,6 +3,7 @@ import time from datetime import timedelta from unittest.mock import MagicMock, PropertyMock +import pytest import time_machine from freqtrade.data.dataprovider import DataProvider @@ -38,6 +39,25 @@ def test_worker_running(mocker, default_conf, caplog) -> None: assert isinstance(worker.freqtrade.strategy.dp, DataProvider) +def test_worker_paused(mocker, default_conf, caplog) -> None: + mock_throttle = MagicMock() + mocker.patch("freqtrade.worker.Worker._throttle", mock_throttle) + mocker.patch("freqtrade.persistence.Trade.stoploss_reinitialization", MagicMock()) + + worker = get_patched_worker(mocker, default_conf) + + worker.freqtrade.state = State.PAUSED + state = worker._worker(old_state=State.RUNNING) + + assert state is State.PAUSED + assert log_has("Changing state from RUNNING to: PAUSED", caplog) + assert mock_throttle.call_count == 1 + # Check strategy is loaded, and received a dataprovider object + assert worker.freqtrade.strategy + assert worker.freqtrade.strategy.dp + assert isinstance(worker.freqtrade.strategy.dp, DataProvider) + + def test_worker_stopped(mocker, default_conf, caplog) -> None: mock_throttle = MagicMock() mocker.patch("freqtrade.worker.Worker._throttle", mock_throttle) @@ -50,6 +70,54 @@ def test_worker_stopped(mocker, default_conf, caplog) -> None: assert mock_throttle.call_count == 1 +@pytest.mark.parametrize( + "old_state,target_state,startup_call,log_fragment", + [ + (State.STOPPED, State.PAUSED, True, "Changing state from STOPPED to: PAUSED"), + (State.RUNNING, State.PAUSED, False, "Changing state from RUNNING to: PAUSED"), + (State.PAUSED, State.RUNNING, False, "Changing state from PAUSED to: RUNNING"), + (State.PAUSED, State.STOPPED, False, "Changing state from PAUSED to: STOPPED"), + (State.RELOAD_CONFIG, State.RUNNING, True, "Changing state from RELOAD_CONFIG to: RUNNING"), + ( + State.RELOAD_CONFIG, + State.STOPPED, + False, + "Changing state from RELOAD_CONFIG to: STOPPED", + ), + ], +) +def test_worker_lifecycle( + mocker, + default_conf, + caplog, + old_state, + target_state, + startup_call, + log_fragment, +): + mock_throttle = mocker.MagicMock() + mocker.patch("freqtrade.worker.Worker._throttle", mock_throttle) + mocker.patch("freqtrade.persistence.Trade.stoploss_reinitialization") + startup = mocker.patch("freqtrade.freqtradebot.FreqtradeBot.startup") + + worker = get_patched_worker(mocker, default_conf) + worker.freqtrade.state = target_state + + new_state = worker._worker(old_state=old_state) + + assert new_state is target_state + assert log_has(log_fragment, caplog) + assert mock_throttle.call_count == 1 + assert startup.call_count == (1 if startup_call else 0) + + # For any state where the strategy should be initialized + if target_state in (State.RUNNING, State.PAUSED): + assert worker.freqtrade.strategy + assert isinstance(worker.freqtrade.strategy.dp, DataProvider) + else: + assert new_state is State.STOPPED + + def test_throttle(mocker, default_conf, caplog) -> None: def throttled_func(): return 42 diff --git a/tests/optimize/__init__.py b/tests/optimize/__init__.py index cdc42956f..38d86439c 100644 --- a/tests/optimize/__init__.py +++ b/tests/optimize/__init__.py @@ -69,8 +69,8 @@ def _build_backtest_dataframe(data): ] if len(data[0]) == 8: # No short columns - data = [d + [0, 0] for d in data] - columns = columns + ["enter_tag"] if len(data[0]) == 11 else columns + data = [[*d, 0, 0] for d in data] + columns = [*columns, "enter_tag"] if len(data[0]) == 11 else columns frame = DataFrame.from_records(data, columns=columns) frame["date"] = frame["date"].apply(_get_frame_time_from_offset) diff --git a/tests/optimize/test_backtest_detail.py b/tests/optimize/test_backtest_detail.py index 736c4dcab..2e5ab41de 100644 --- a/tests/optimize/test_backtest_detail.py +++ b/tests/optimize/test_backtest_detail.py @@ -102,7 +102,7 @@ tc3 = BTContainer( ) # Test 4: Minus 3% / recovery +15% -# Candle Data for test 3 – Candle drops 3% Closed 15% up +# Candle Data for test 3 - Candle drops 3% Closed 15% up # Test with Stop-loss at 2% ROI 6% # Stop-Loss Triggered 2% Loss tc4 = BTContainer( diff --git a/tests/optimize/test_backtesting.py b/tests/optimize/test_backtesting.py index d5bc7d5b4..2973a4a49 100644 --- a/tests/optimize/test_backtesting.py +++ b/tests/optimize/test_backtesting.py @@ -828,6 +828,7 @@ def test_backtest_one(default_conf, mocker, testdatadir) -> None: }, ], ], + "funding_fees": [0.0, 0.0], } ) pd.testing.assert_frame_equal(results, expected) @@ -991,7 +992,7 @@ def test_backtest_one_detail_futures( timerange=timerange, candle_type=CandleType.FUTURES, ) - backtesting.load_bt_data_detail() + backtesting._load_bt_data_detail() processed = backtesting.strategy.advise_all_indicators(data) min_date, max_date = get_timerange(processed) @@ -1119,7 +1120,7 @@ def test_backtest_one_detail_futures_funding_fees( timerange=timerange, candle_type=CandleType.FUTURES, ) - backtesting.load_bt_data_detail() + backtesting._load_bt_data_detail() processed = backtesting.strategy.advise_all_indicators(data) min_date, max_date = get_timerange(processed) @@ -2576,7 +2577,7 @@ def test_backtest_start_multi_strat_caching( ], ) mocker.patch.multiple( - "freqtrade.data.btanalysis", + "freqtrade.data.btanalysis.bt_fileutils", load_backtest_metadata=load_backtest_metadata, load_backtest_stats=load_backtest_stats, ) diff --git a/tests/optimize/test_backtesting_adjust_position.py b/tests/optimize/test_backtesting_adjust_position.py index c9e8c9eeb..ea7d94d4d 100644 --- a/tests/optimize/test_backtesting_adjust_position.py +++ b/tests/optimize/test_backtesting_adjust_position.py @@ -80,6 +80,7 @@ def test_backtest_position_adjustment(default_conf, fee, mocker, testdatadir) -> "is_short": [False, False], "open_timestamp": [1517251200000, 1517283000000], "close_timestamp": [1517263200000, 1517285400000], + "funding_fees": [0.0, 0.0], } ) results_no = results.drop(columns=["orders"]) diff --git a/tests/optimize/test_hyperopt.py b/tests/optimize/test_hyperopt.py index 97d7c0464..5226c1128 100644 --- a/tests/optimize/test_hyperopt.py +++ b/tests/optimize/test_hyperopt.py @@ -685,7 +685,7 @@ def test_print_json_spaces_all(mocker, hyperopt_conf, capsys) -> None: '{"params":{"mfi-value":null,"sell-mfi-value":null},"minimal_roi"' ':{},"stoploss":null,"trailing_stop":null,"max_open_trades":null}' ) - assert result_str in out # noqa: E501 + assert result_str in out # Should be called for historical candle data assert dumper.call_count == 1 assert dumper2.call_count == 1 @@ -742,7 +742,7 @@ def test_print_json_spaces_default(mocker, hyperopt_conf, capsys) -> None: assert ( '{"params":{"mfi-value":null,"sell-mfi-value":null},"minimal_roi":{},"stoploss":null}' in out - ) # noqa: E501 + ) # Should be called for historical candle data assert dumper.call_count == 1 assert dumper2.call_count == 1 diff --git a/tests/optimize/test_hyperoptloss.py b/tests/optimize/test_hyperoptloss.py index 8f1b1c786..6d3110509 100644 --- a/tests/optimize/test_hyperoptloss.py +++ b/tests/optimize/test_hyperoptloss.py @@ -153,6 +153,7 @@ def test_loss_calculation_has_limited_profit(hyperopt_conf, hyperopt_results) -> "SharpeHyperOptLossDaily", "MaxDrawDownHyperOptLoss", "MaxDrawDownRelativeHyperOptLoss", + "MaxDrawDownPerPairHyperOptLoss", "CalmarHyperOptLoss", "ProfitDrawDownHyperOptLoss", "MultiMetricHyperOptLoss", @@ -165,6 +166,34 @@ def test_loss_functions_better_profits(default_conf, hyperopt_results, lossfunct results_under = hyperopt_results.copy() results_under["profit_abs"] = hyperopt_results["profit_abs"] / 2 - 0.2 results_under["profit_ratio"] = hyperopt_results["profit_ratio"] / 2 + pair_results = [ + { + "key": "ETH/USDT", + "max_drawdown_abs": 50.0, + "profit_total_abs": 100.0, + }, + { + "key": "BTC/USDT", + "max_drawdown_abs": 50.0, + "profit_total_abs": 100.0, + }, + ] + pair_results_over = [ + { + **p, + "max_drawdown_abs": p["max_drawdown_abs"] * 0.5, + "profit_total_abs": p["profit_total_abs"] * 2, + } + for p in pair_results + ] + pair_results_under = [ + { + **p, + "max_drawdown_abs": p["max_drawdown_abs"] * 2, + "profit_total_abs": p["profit_total_abs"] * 0.5, + } + for p in pair_results + ] default_conf.update({"hyperopt_loss": lossfunction}) hl = HyperOptLossResolver.load_hyperoptloss(default_conf) @@ -175,7 +204,10 @@ def test_loss_functions_better_profits(default_conf, hyperopt_results, lossfunct max_date=datetime(2019, 5, 1), config=default_conf, processed=None, - backtest_stats={"profit_total": hyperopt_results["profit_abs"].sum()}, + backtest_stats={ + "profit_total": hyperopt_results["profit_abs"].sum(), + "results_per_pair": pair_results, + }, starting_balance=default_conf["dry_run_wallet"], ) over = hl.hyperopt_loss_function( @@ -185,7 +217,10 @@ def test_loss_functions_better_profits(default_conf, hyperopt_results, lossfunct max_date=datetime(2019, 5, 1), config=default_conf, processed=None, - backtest_stats={"profit_total": results_over["profit_abs"].sum()}, + backtest_stats={ + "profit_total": results_over["profit_abs"].sum(), + "results_per_pair": pair_results_over, + }, starting_balance=default_conf["dry_run_wallet"], ) under = hl.hyperopt_loss_function( @@ -195,7 +230,10 @@ def test_loss_functions_better_profits(default_conf, hyperopt_results, lossfunct max_date=datetime(2019, 5, 1), config=default_conf, processed=None, - backtest_stats={"profit_total": results_under["profit_abs"].sum()}, + backtest_stats={ + "profit_total": results_under["profit_abs"].sum(), + "results_per_pair": pair_results_under, + }, starting_balance=default_conf["dry_run_wallet"], ) assert over < correct diff --git a/tests/optimize/test_optimize_reports.py b/tests/optimize/test_optimize_reports.py index 9fb5ccae9..8943a7467 100644 --- a/tests/optimize/test_optimize_reports.py +++ b/tests/optimize/test_optimize_reports.py @@ -68,11 +68,21 @@ def test_text_table_bt_results(capsys): "profit_ratio": [0.1, 0.2, -0.05], "profit_abs": [0.2, 0.4, -0.1], "trade_duration": [10, 30, 20], + "close_date": [ + dt_utc(2017, 11, 14, 21, 35, 00), + dt_utc(2017, 11, 14, 22, 10, 00), + dt_utc(2017, 11, 14, 22, 43, 00), + ], } ) pair_results = generate_pair_metrics( - ["ETH/BTC"], stake_currency="BTC", starting_balance=4, results=results + ["ETH/BTC"], + stake_currency="BTC", + starting_balance=4, + results=results, + min_date=dt_from_ts(1510688220), + max_date=dt_from_ts(1510700340), ) text_table_bt_results(pair_results, stake_currency="BTC", title="title") text = capsys.readouterr().out @@ -420,6 +430,10 @@ def test_generate_pair_metrics(): "profit_ratio": [0.1, 0.2], "profit_abs": [0.2, 0.4], "trade_duration": [10, 30], + "close_date": [ + dt_utc(2017, 11, 14, 21, 35, 00), + dt_utc(2017, 11, 14, 22, 10, 00), + ], "wins": [2, 0], "draws": [0, 0], "losses": [0, 0], @@ -427,7 +441,12 @@ def test_generate_pair_metrics(): ) pair_results = generate_pair_metrics( - ["ETH/BTC"], stake_currency="BTC", starting_balance=2, results=results + ["ETH/BTC"], + stake_currency="BTC", + starting_balance=2, + results=results, + min_date=dt_from_ts(1510688220), + max_date=dt_from_ts(1510700340), ) assert isinstance(pair_results, list) assert len(pair_results) == 2 @@ -512,6 +531,11 @@ def test_text_table_exit_reason(capsys): "profit_ratio": [0.1, 0.2, -0.1], "profit_abs": [0.2, 0.4, -0.2], "trade_duration": [10, 30, 10], + "close_date": [ + dt_utc(2017, 11, 14, 21, 35, 00), + dt_utc(2017, 11, 14, 22, 10, 00), + dt_utc(2017, 11, 14, 22, 43, 00), + ], "wins": [2, 0, 0], "draws": [0, 0, 0], "losses": [0, 0, 1], @@ -520,7 +544,12 @@ def test_text_table_exit_reason(capsys): ) exit_reason_stats = generate_tag_metrics( - "exit_reason", starting_balance=22, results=results, skip_nan=False + "exit_reason", + starting_balance=22, + results=results, + min_date=dt_from_ts(1510688220), + max_date=dt_from_ts(1510700340), + skip_nan=False, ) text_table_tags("exit_tag", exit_reason_stats, "BTC") text = capsys.readouterr().out @@ -550,6 +579,11 @@ def test_generate_sell_reason_stats(): "profit_ratio": [0.1, 0.2, -0.1], "profit_abs": [0.2, 0.4, -0.2], "trade_duration": [10, 30, 10], + "close_date": [ + dt_utc(2017, 11, 14, 21, 35, 00), + dt_utc(2017, 11, 14, 22, 10, 00), + dt_utc(2017, 11, 14, 22, 43, 00), + ], "wins": [2, 0, 0], "draws": [0, 0, 0], "losses": [0, 0, 1], @@ -558,7 +592,12 @@ def test_generate_sell_reason_stats(): ) exit_reason_stats = generate_tag_metrics( - "exit_reason", starting_balance=22, results=results, skip_nan=False + "exit_reason", + starting_balance=22, + results=results, + min_date=dt_from_ts(1510688220), + max_date=dt_from_ts(1510700340), + skip_nan=False, ) roi_result = exit_reason_stats[0] assert roi_result["key"] == "roi" diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index c30c27244..d07bd7192 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -880,68 +880,68 @@ def test_calc_close_trade_price( "exchange,is_short,lev,close_rate,fee_close,profit,profit_ratio,trading_mode,funding_fees", [ ("binance", False, 1, 2.1, 0.0025, 2.6925, 0.044763092, spot, 0), - ("binance", False, 3, 2.1, 0.0025, 2.69166667, 0.134247714, margin, 0), + ("binance", False, 3, 2.1, 0.0025, 8.075, 0.134247714, margin, 0), ("binance", True, 1, 2.1, 0.0025, -3.3088157, -0.055285142, margin, 0), - ("binance", True, 3, 2.1, 0.0025, -3.3088157, -0.16585542, margin, 0), + ("binance", True, 3, 2.1, 0.0025, -9.92644709, -0.16585542, margin, 0), ("binance", False, 1, 1.9, 0.0025, -3.2925, -0.054738154, margin, 0), - ("binance", False, 3, 1.9, 0.0025, -3.29333333, -0.164256026, margin, 0), + ("binance", False, 3, 1.9, 0.0025, -9.88, -0.164256026, margin, 0), ("binance", True, 1, 1.9, 0.0025, 2.70630953, 0.0452182043, margin, 0), - ("binance", True, 3, 1.9, 0.0025, 2.70630953, 0.135654613, margin, 0), + ("binance", True, 3, 1.9, 0.0025, 8.11892859, 0.135654613, margin, 0), ("binance", False, 1, 2.2, 0.0025, 5.685, 0.09451371, margin, 0), - ("binance", False, 3, 2.2, 0.0025, 5.68416667, 0.28349958, margin, 0), + ("binance", False, 3, 2.2, 0.0025, 17.0525, 0.28349958, margin, 0), ("binance", True, 1, 2.2, 0.0025, -6.3163784, -0.10553681, margin, 0), - ("binance", True, 3, 2.2, 0.0025, -6.3163784, -0.31661044, margin, 0), + ("binance", True, 3, 2.2, 0.0025, -18.94913, -0.31661044, margin, 0), # Kraken ("kraken", False, 1, 2.1, 0.0025, 2.6925, 0.044763092, spot, 0), - ("kraken", False, 3, 2.1, 0.0025, 2.6525, 0.132294264, margin, 0), + ("kraken", False, 3, 2.1, 0.0025, 7.9575, 0.132294264, margin, 0), ("kraken", True, 1, 2.1, 0.0025, -3.3706575, -0.056318421, margin, 0), - ("kraken", True, 3, 2.1, 0.0025, -3.3706575, -0.168955263, margin, 0), + ("kraken", True, 3, 2.1, 0.0025, -10.1119725, -0.168955263, margin, 0), ("kraken", False, 1, 1.9, 0.0025, -3.2925, -0.054738154, margin, 0), - ("kraken", False, 3, 1.9, 0.0025, -3.3325, -0.166209476, margin, 0), + ("kraken", False, 3, 1.9, 0.0025, -9.9975, -0.166209476, margin, 0), ("kraken", True, 1, 1.9, 0.0025, 2.6503575, 0.044283333, margin, 0), - ("kraken", True, 3, 1.9, 0.0025, 2.6503575, 0.132850000, margin, 0), + ("kraken", True, 3, 1.9, 0.0025, 7.9510725, 0.132850000, margin, 0), ("kraken", False, 1, 2.2, 0.0025, 5.685, 0.09451371, margin, 0), - ("kraken", False, 3, 2.2, 0.0025, 5.645, 0.28154613, margin, 0), + ("kraken", False, 3, 2.2, 0.0025, 16.935, 0.28154613, margin, 0), ("kraken", True, 1, 2.2, 0.0025, -6.381165, -0.1066192, margin, 0), - ("kraken", True, 3, 2.2, 0.0025, -6.381165, -0.3198578, margin, 0), + ("kraken", True, 3, 2.2, 0.0025, -19.143495, -0.3198578, margin, 0), ("binance", False, 1, 2.1, 0.003, 2.66100000, 0.044239401, spot, 0), ("binance", False, 1, 1.9, 0.003, -3.3209999, -0.055211970, spot, 0), ("binance", False, 1, 2.2, 0.003, 5.6520000, 0.093965087, spot, 0), # FUTURES, funding_fee=1 ("binance", False, 1, 2.1, 0.0025, 3.6925, 0.06138819, futures, 1), - ("binance", False, 3, 2.1, 0.0025, 3.6925, 0.18416458, futures, 1), + ("binance", False, 3, 2.1, 0.0025, 9.0775, 0.15091438, futures, 1), ("binance", True, 1, 2.1, 0.0025, -2.3074999, -0.03855472, futures, 1), - ("binance", True, 3, 2.1, 0.0025, -2.3074999, -0.11566416, futures, 1), + ("binance", True, 3, 2.1, 0.0025, -8.9225, -0.14908104, futures, 1), ("binance", False, 1, 1.9, 0.0025, -2.2925, -0.03811305, futures, 1), - ("binance", False, 3, 1.9, 0.0025, -2.2925, -0.11433915, futures, 1), + ("binance", False, 3, 1.9, 0.0025, -8.8775, -0.14758936, futures, 1), ("binance", True, 1, 1.9, 0.0025, 3.7075, 0.06194653, futures, 1), - ("binance", True, 3, 1.9, 0.0025, 3.7075, 0.18583959, futures, 1), + ("binance", True, 3, 1.9, 0.0025, 9.1225, 0.15242272, futures, 1), ("binance", False, 1, 2.2, 0.0025, 6.685, 0.11113881, futures, 1), - ("binance", False, 3, 2.2, 0.0025, 6.685, 0.33341645, futures, 1), + ("binance", False, 3, 2.2, 0.0025, 18.055, 0.30016625, futures, 1), ("binance", True, 1, 2.2, 0.0025, -5.315, -0.08880534, futures, 1), - ("binance", True, 3, 2.2, 0.0025, -5.315, -0.26641604, futures, 1), + ("binance", True, 3, 2.2, 0.0025, -17.945, -0.29983292, futures, 1), # FUTURES, funding_fee=-1 ("binance", False, 1, 2.1, 0.0025, 1.6925, 0.02813798, futures, -1), - ("binance", False, 3, 2.1, 0.0025, 1.6925, 0.08441396, futures, -1), + ("binance", False, 3, 2.1, 0.0025, 7.0775, 0.11766417, futures, -1), ("binance", True, 1, 2.1, 0.0025, -4.307499, -0.07197159, futures, -1), - ("binance", True, 3, 2.1, 0.0025, -4.307499, -0.21591478, futures, -1), + ("binance", True, 3, 2.1, 0.0025, -10.92249, -0.18249791, futures, -1), ("binance", False, 1, 1.9, 0.0025, -4.292499, -0.07136325, futures, -1), - ("binance", False, 3, 1.9, 0.0025, -4.292499, -0.21408977, futures, -1), + ("binance", False, 3, 1.9, 0.0025, -10.87749, -0.18083957, futures, -1), ("binance", True, 1, 1.9, 0.0025, 1.7075, 0.02852965, futures, -1), - ("binance", True, 3, 1.9, 0.0025, 1.7075, 0.08558897, futures, -1), + ("binance", True, 3, 1.9, 0.0025, 7.1225, 0.11900585, futures, -1), ("binance", False, 1, 2.2, 0.0025, 4.684999, 0.07788861, futures, -1), - ("binance", False, 3, 2.2, 0.0025, 4.684999, 0.23366583, futures, -1), + ("binance", False, 3, 2.2, 0.0025, 16.055, 0.26691604, futures, -1), ("binance", True, 1, 2.2, 0.0025, -7.315, -0.12222222, futures, -1), - ("binance", True, 3, 2.2, 0.0025, -7.315, -0.36666666, futures, -1), + ("binance", True, 3, 2.2, 0.0025, -19.945, -0.33324979, futures, -1), # FUTURES, funding_fee=0 ("binance", False, 1, 2.1, 0.0025, 2.6925, 0.04476309, futures, 0), - ("binance", False, 3, 2.1, 0.0025, 2.6925, 0.13428928, futures, 0), + ("binance", False, 3, 2.1, 0.0025, 8.0775, 0.13428928, futures, 0), ("binance", True, 1, 2.1, 0.0025, -3.3074999, -0.05526316, futures, 0), - ("binance", True, 3, 2.1, 0.0025, -3.3074999, -0.16578947, futures, 0), + ("binance", True, 3, 2.1, 0.0025, -9.9224997, -0.16578947, futures, 0), ("binance", False, 1, 1.9, 0.0025, -3.2925, -0.05473815, futures, 0), - ("binance", False, 3, 1.9, 0.0025, -3.2925, -0.16421446, futures, 0), + ("binance", False, 3, 1.9, 0.0025, -9.8775, -0.16421446, futures, 0), ("binance", True, 1, 1.9, 0.0025, 2.7075, 0.0452381, futures, 0), - ("binance", True, 3, 1.9, 0.0025, 2.7075, 0.13571429, futures, 0), + ("binance", True, 3, 1.9, 0.0025, 8.1225, 0.13571429, futures, 0), ], ) @pytest.mark.usefixtures("init_persistence") @@ -1162,7 +1162,7 @@ def test_calc_profit( trade = Trade( pair="ADA/USDT", stake_amount=60.0, - amount=30.0, + amount=30.0 * lev, open_rate=2.0, open_date=datetime.now(tz=timezone.utc) - timedelta(minutes=10), interest_rate=0.0005, @@ -1183,7 +1183,7 @@ def test_calc_profit( assert pytest.approx(val) == profit_res.profit_abs assert pytest.approx(profit_res.total_profit) == round(profit, 8) - # assert pytest.approx(profit_res.total_profit_ratio) == round(profit_ratio, 8) + assert pytest.approx(profit_res.total_profit_ratio) == round(profit_ratio, 8) assert pytest.approx(trade.calc_profit(rate=close_rate)) == round(profit, 8) assert pytest.approx(trade.calc_profit_ratio(rate=close_rate)) == round(profit_ratio, 8) @@ -1193,7 +1193,7 @@ def test_calc_profit( assert pytest.approx(profit_res2.profit_ratio) == round(profit_ratio, 8) assert pytest.approx(profit_res2.total_profit) == round(profit, 8) - # assert pytest.approx(profit_res2.total_profit_ratio) == round(profit_ratio, 8) + assert pytest.approx(profit_res2.total_profit_ratio) == round(profit_ratio, 8) assert pytest.approx(trade.calc_profit(close_rate, trade.amount, trade.open_rate)) == round( profit, 8 diff --git a/tests/plugins/test_pairlist.py b/tests/plugins/test_pairlist.py index a4f66a702..0f133242b 100644 --- a/tests/plugins/test_pairlist.py +++ b/tests/plugins/test_pairlist.py @@ -281,7 +281,7 @@ def test_remove_logs_for_pairs_already_in_blacklist(mocker, markets, static_pl_c for _ in range(3): new_whitelist = freqtrade.pairlists.verify_blacklist( - whitelist + ["BLK/BTC"], logger.warning + [*whitelist, "BLK/BTC"], logger.warning ) # Ensure that the pair is removed from the white list, and properly logged. assert set(whitelist) == set(new_whitelist) @@ -2032,11 +2032,7 @@ def test_expand_pairlist(wildcardlist, pairs, expected): }, } assert sorted(dynamic_expand_pairlist(conf, pairs)) == sorted( - expected - + [ - "BTC/USDT:USDT", - "XRP/BUSD", - ] + [*expected, "BTC/USDT:USDT", "XRP/BUSD"] ) @@ -2138,7 +2134,7 @@ def test_ProducerPairlist(mocker, whitelist_conf, markets): dp = DataProvider(whitelist_conf, exchange, None) pairs = ["ETH/BTC", "LTC/BTC", "XRP/BTC"] # different producer - dp._set_producer_pairs(pairs + ["MEEP/USDT"], "default") + dp._set_producer_pairs([*pairs, "MEEP/USDT"], "default") pm = PairListManager(exchange, whitelist_conf, dp) pm.refresh_pairlist() assert pm.whitelist == [] @@ -2161,7 +2157,7 @@ def test_ProducerPairlist(mocker, whitelist_conf, markets): pm = PairListManager(exchange, whitelist_conf, dp) pm.refresh_pairlist() assert len(pm.whitelist) == 4 - assert pm.whitelist == ["TKN/BTC"] + pairs + assert pm.whitelist == ["TKN/BTC", *pairs] @pytest.mark.usefixtures("init_persistence") diff --git a/tests/plugins/test_protections.py b/tests/plugins/test_protections.py index bec2671eb..ef2c7e1d3 100644 --- a/tests/plugins/test_protections.py +++ b/tests/plugins/test_protections.py @@ -19,8 +19,8 @@ def generate_mock_trade( fee: float, is_open: bool, exit_reason: str = ExitType.EXIT_SIGNAL, - min_ago_open: int = None, - min_ago_close: int = None, + min_ago_open: int | None = None, + min_ago_close: int | None = None, profit_rate: float = 0.9, is_short: bool = False, ): diff --git a/tests/rpc/test_rpc.py b/tests/rpc/test_rpc.py index cb67d089e..7d1b87b55 100644 --- a/tests/rpc/test_rpc.py +++ b/tests/rpc/test_rpc.py @@ -197,7 +197,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: response.update( { "max_stake_amount": 0.001, - "total_profit_ratio": pytest.approx(-0.00409153), + "total_profit_ratio": pytest.approx(-0.00408133), "has_open_orders": False, } ) @@ -228,7 +228,8 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: assert results[0] == response_norate -def test_rpc_status_table(default_conf, ticker, fee, mocker) -> None: +def test_rpc_status_table(default_conf, ticker, fee, mocker, time_machine) -> None: + time_machine.move_to("2024-05-10 11:15:00 +00:00", tick=False) mocker.patch.multiple( "freqtrade.rpc.fiat_convert.FtCoinGeckoApi", get_price=MagicMock(return_value={"bitcoin": {"usd": 15000.0}}), @@ -806,19 +807,19 @@ def test_rpc_stop(mocker, default_conf) -> None: assert freqtradebot.state == State.STOPPED -def test_rpc_stopentry(mocker, default_conf) -> None: +def test_rpc_pause(mocker, default_conf) -> None: mocker.patch("freqtrade.rpc.telegram.Telegram", MagicMock()) mocker.patch.multiple(EXMS, fetch_ticker=MagicMock()) freqtradebot = get_patched_freqtradebot(mocker, default_conf) patch_get_signal(freqtradebot) rpc = RPC(freqtradebot) - freqtradebot.state = State.RUNNING + freqtradebot.state = State.PAUSED - assert freqtradebot.config["max_open_trades"] != 0 - result = rpc._rpc_stopentry() - assert {"status": "No more entries will occur from now. Run /reload_config to reset."} == result - assert freqtradebot.config["max_open_trades"] == 0 + result = rpc._rpc_pause() + assert { + "status": "paused, no more entries will occur from now. Run /start to enable entries." + } == result def test_rpc_force_exit(default_conf, ticker, fee, mocker) -> None: diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 99d8350e9..c327a416b 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -533,23 +533,26 @@ def test_api_reloadconf(botclient): assert ftbot.state == State.RELOAD_CONFIG -def test_api_stopentry(botclient): +def test_api_pause(botclient): ftbot, client = botclient - assert ftbot.config["max_open_trades"] != 0 - rc = client_post(client, f"{BASE_URI}/stopbuy") + rc = client_post(client, f"{BASE_URI}/pause") assert_response(rc) assert rc.json() == { - "status": "No more entries will occur from now. Run /reload_config to reset." + "status": "paused, no more entries will occur from now. Run /start to enable entries." + } + + rc = client_post(client, f"{BASE_URI}/pause") + assert_response(rc) + assert rc.json() == { + "status": "paused, no more entries will occur from now. Run /start to enable entries." } - assert ftbot.config["max_open_trades"] == 0 rc = client_post(client, f"{BASE_URI}/stopentry") assert_response(rc) assert rc.json() == { - "status": "No more entries will occur from now. Run /reload_config to reset." + "status": "paused, no more entries will occur from now. Run /start to enable entries." } - assert ftbot.config["max_open_trades"] == 0 def test_api_balance(botclient, mocker, rpc_balance, tickers): @@ -773,12 +776,28 @@ def test_api_trades(botclient, mocker, fee, markets, is_short): assert rc.json()["trades_count"] == 2 assert rc.json()["total_trades"] == 2 assert rc.json()["trades"][0]["is_short"] == is_short + # Ensure the trades are sorted by trade_id (the default, see below) + assert rc.json()["trades"][0]["trade_id"] == 2 + assert rc.json()["trades"][1]["trade_id"] == 3 + rc = client_get(client, f"{BASE_URI}/trades?limit=1") assert_response(rc) assert len(rc.json()["trades"]) == 1 assert rc.json()["trades_count"] == 1 assert rc.json()["total_trades"] == 2 + # Test ascending order (default) + rc = client_get(client, f"{BASE_URI}/trades?order_by_id=true") + assert_response(rc) + assert rc.json()["trades"][0]["trade_id"] == 2 + assert rc.json()["trades"][1]["trade_id"] == 3 + + # Test descending order + rc = client_get(client, f"{BASE_URI}/trades?order_by_id=false") + assert_response(rc) + assert rc.json()["trades"][0]["trade_id"] == 3 + assert rc.json()["trades"][1]["trade_id"] == 2 + @pytest.mark.parametrize("is_short", [True, False]) def test_api_trade_single(botclient, mocker, fee, ticker, markets, is_short): @@ -1845,7 +1864,21 @@ def test_api_pair_candles(botclient, ohlcv_history): ohlcv_history["exit_short"] = 0 ftbot.dataprovider._set_cached_df("XRP/BTC", timeframe, ohlcv_history, CandleType.SPOT) + fake_plot_annotations = [ + { + "type": "area", + "start": "2024-01-01 15:00:00", + "end": "2024-01-01 16:00:00", + "y_start": 94000.2, + "y_end": 98000, + "color": "", + "label": "some label", + } + ] + plot_annotations_mock = MagicMock(return_value=fake_plot_annotations) + ftbot.strategy.plot_annotations = plot_annotations_mock for call in ("get", "post"): + plot_annotations_mock.reset_mock() if call == "get": rc = client_get( client, @@ -1875,6 +1908,8 @@ def test_api_pair_candles(botclient, ohlcv_history): assert resp["data_start_ts"] == 1511686200000 assert resp["data_stop"] == "2017-11-26 09:00:00+00:00" assert resp["data_stop_ts"] == 1511686800000 + assert resp["annotations"] == fake_plot_annotations + assert plot_annotations_mock.call_count == 1 assert isinstance(resp["columns"], list) base_cols = { "date", @@ -2203,8 +2238,8 @@ def test_api_pair_history(botclient, tmp_path, mocker): assert len(result["columns"]) == col_count assert len(result["all_columns"]) == 25 assert len(data[0]) == col_count - date_col_idx = [idx for idx, c in enumerate(result["columns"]) if c == "date"][0] - rsi_col_idx = [idx for idx, c in enumerate(result["columns"]) if c == "rsi"][0] + date_col_idx = next(idx for idx, c in enumerate(result["columns"]) if c == "date") + rsi_col_idx = next(idx for idx, c in enumerate(result["columns"]) if c == "rsi") assert data[0][date_col_idx] == "2018-01-11T00:00:00Z" assert data[0][rsi_col_idx] is not None @@ -2216,6 +2251,7 @@ def test_api_pair_history(botclient, tmp_path, mocker): assert result["data_start_ts"] == 1515628800000 assert result["data_stop"] == "2018-01-12 00:00:00+00:00" assert result["data_stop_ts"] == 1515715200000 + assert result["annotations"] == [] lfm.reset_mock() # No data found @@ -2429,7 +2465,7 @@ def test_api_exchanges(botclient): response = rc.json() assert isinstance(response["exchanges"], list) assert len(response["exchanges"]) > 20 - okx = [x for x in response["exchanges"] if x["classname"] == "okx"][0] + okx = next(x for x in response["exchanges"] if x["classname"] == "okx") assert okx == { "classname": "okx", "name": "OKX", @@ -2445,7 +2481,7 @@ def test_api_exchanges(botclient): ], } - mexc = [x for x in response["exchanges"] if x["classname"] == "mexc"][0] + mexc = next(x for x in response["exchanges"] if x["classname"] == "mexc") assert mexc == { "classname": "mexc", "name": "MEXC Global", @@ -2457,7 +2493,7 @@ def test_api_exchanges(botclient): "alias_for": None, "trade_modes": [{"trading_mode": "spot", "margin_mode": ""}], } - waves = [x for x in response["exchanges"] if x["classname"] == "wavesexchange"][0] + waves = next(x for x in response["exchanges"] if x["classname"] == "wavesexchange") assert waves == { "classname": "wavesexchange", "name": "Waves.Exchange", @@ -2551,10 +2587,10 @@ def test_api_pairlists_available(botclient, tmp_path): assert len([r for r in response["pairlists"] if r["name"] == "VolumePairList"]) == 1 assert len([r for r in response["pairlists"] if r["name"] == "StaticPairList"]) == 1 - volumepl = [r for r in response["pairlists"] if r["name"] == "VolumePairList"][0] + volumepl = next(r for r in response["pairlists"] if r["name"] == "VolumePairList") assert volumepl["is_pairlist_generator"] is True assert len(volumepl["params"]) > 1 - age_pl = [r for r in response["pairlists"] if r["name"] == "AgeFilter"][0] + age_pl = next(r for r in response["pairlists"] if r["name"] == "AgeFilter") assert age_pl["is_pairlist_generator"] is False assert len(volumepl["params"]) > 2 @@ -2850,7 +2886,7 @@ def test_api_backtesting(botclient, mocker, fee, caplog, tmp_path): def test_api_backtest_history(botclient, mocker, testdatadir): ftbot, client = botclient mocker.patch( - "freqtrade.data.btanalysis._get_backtest_files", + "freqtrade.data.btanalysis.bt_fileutils._get_backtest_files", return_value=[ testdatadir / "backtest_results/backtest-result_multistrat.json", testdatadir / "backtest_results/backtest-result.json", diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py index 71ce557e2..3409cc0e5 100644 --- a/tests/rpc/test_rpc_telegram.py +++ b/tests/rpc/test_rpc_telegram.py @@ -169,7 +169,7 @@ def test_telegram_init(default_conf, mocker, caplog) -> None: "['stats'], ['daily'], ['weekly'], ['monthly'], " "['count'], ['locks'], ['delete_locks', 'unlock'], " "['reload_conf', 'reload_config'], ['show_conf', 'show_config'], " - "['stopbuy', 'stopentry'], ['whitelist'], ['blacklist'], " + "['pause', 'stopbuy', 'stopentry'], ['whitelist'], ['blacklist'], " "['bl_delete', 'blacklist_delete'], " "['logs'], ['edge'], ['health'], ['help'], ['version'], ['marketdir'], " "['order'], ['list_custom_data'], ['tg_info']]" @@ -1222,15 +1222,15 @@ async def test_stop_handle_already_stopped(default_conf, update, mocker) -> None assert "already stopped" in msg_mock.call_args_list[0][0][0] -async def test_stopbuy_handle(default_conf, update, mocker) -> None: +async def test_pause_handle(default_conf, update, mocker) -> None: telegram, freqtradebot, msg_mock = get_telegram_testobject(mocker, default_conf) - assert freqtradebot.config["max_open_trades"] != 0 - await telegram._stopentry(update=update, context=MagicMock()) - assert freqtradebot.config["max_open_trades"] == 0 + assert freqtradebot.state == State.RUNNING + await telegram._pause(update=update, context=MagicMock()) + assert freqtradebot.state == State.PAUSED assert msg_mock.call_count == 1 assert ( - "No more entries will occur from now. Run /reload_config to reset." + "paused, no more entries will occur from now. Run /start to enable entries." in msg_mock.call_args_list[0][0][0] ) diff --git a/tests/test_arguments.py b/tests/test_arguments.py index 1d48acb96..913f4759d 100644 --- a/tests/test_arguments.py +++ b/tests/test_arguments.py @@ -5,11 +5,54 @@ from unittest.mock import MagicMock import pytest -from freqtrade.commands import Arguments -from freqtrade.commands.cli_options import check_int_nonzero, check_int_positive +from freqtrade.commands import Arguments, arguments +from freqtrade.commands.cli_options import ( + AVAILABLE_CLI_OPTIONS, + check_int_nonzero, + check_int_positive, +) from tests.conftest import CURRENT_TEST_STRATEGY +def test_available_cli_options(): + """ + AVAILABLE_CLI_OPTIONS has keys that are the union of the values in all ARGS_* - required by CLI + each of the ARGS_* lists has a list of members which is assumed to also + be in AVAILABLE_CLI_OPTIONS + """ + args_union = { + arg + for variable, value in vars(arguments).items() + if variable.startswith("ARGS_") + for arg in value + } + expected_options = set(AVAILABLE_CLI_OPTIONS) + only_in_command_args = expected_options.difference(args_union) + only_in_all_args = args_union.difference(expected_options) + if only_in_all_args or only_in_command_args: + pytest.fail( + "variables around command line arguments not kept in sync:\n" + f" * args only in some ARGS_* list but not AVAILABLE_CLI_OPTIONS: {only_in_all_args}\n" + " * args only in AVAILABLE_CLI_OPTIONS but not some ARGS_* list: " + f"{only_in_command_args}" + ) + + +def test_arguments_match_available_cli_options(monkeypatch): + """All entries in AVAILABLE_CLI_OPTIONS are used in argument parsing.""" + parsed_options = set() + actual_build_args = Arguments._build_args + + def build_args_monitor(self, optionlist, parser): + parsed_options.update(optionlist) + return actual_build_args(self, optionlist=optionlist, parser=parser) + + monkeypatch.setattr(Arguments, "_build_args", build_args_monitor) + # this will result in a parser being built so we can check the arguments used + Arguments([]).get_parsed_arg() + assert parsed_options == set(AVAILABLE_CLI_OPTIONS) + + # Parse common command-line-arguments. Used for all tools def test_parse_args_none() -> None: arguments = Arguments(["trade"])