diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d370ee5f..0d43b9f75 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -580,7 +580,7 @@ jobs: persist-credentials: false - name: Download artifact 📦 - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: pattern: freqtrade*-build path: dist @@ -609,7 +609,7 @@ jobs: persist-credentials: false - name: Download artifact 📦 - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v5 with: pattern: freqtrade*-build path: dist diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index af289e37c..7d0e3de2a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -28,9 +28,9 @@ repos: additional_dependencies: - types-cachetools==6.1.0.20250717 - types-filelock==3.2.7 - - types-requests==2.32.4.20250611 + - types-requests==2.32.4.20250809 - types-tabulate==0.9.0.20241207 - - types-python-dateutil==2.9.0.20250708 + - types-python-dateutil==2.9.0.20250809 - scipy-stubs==1.16.1.0 - SQLAlchemy==2.0.42 # stages: [push] diff --git a/Dockerfile b/Dockerfile index 4304729c8..7728fd6d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.13.5-slim-bookworm AS base +FROM python:3.13.6-slim-bookworm AS base # Setup env ENV LANG=C.UTF-8 diff --git a/build_helpers/install_windows.ps1 b/build_helpers/install_windows.ps1 index aa2ec3655..075606466 100644 --- a/build_helpers/install_windows.ps1 +++ b/build_helpers/install_windows.ps1 @@ -4,7 +4,7 @@ python -m pip install --upgrade pip python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')" pip install -U wheel "numpy<3.0" -pip install --only-binary ta-lib --find-links=build_helpers\ ta-lib +pip install --only-binary ta-lib --find-links=build_helpers\ "ta-lib<0.6.0" pip install -r requirements-dev.txt pip install -e . diff --git a/freqtrade/exchange/binance_leverage_tiers.json b/freqtrade/exchange/binance_leverage_tiers.json index 07fa1c438..2eff72313 100644 --- a/freqtrade/exchange/binance_leverage_tiers.json +++ b/freqtrade/exchange/binance_leverage_tiers.json @@ -7057,6 +7057,178 @@ } } ], + "ALL/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "ALL/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": "ALL/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": "ALL/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": "ALL/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": "ALL/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": "ALL/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": "ALL/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": "ALL/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "ALL/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "ALL/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], "ALPACA/USDT:USDT": [ { "tier": 1.0, @@ -48597,15 +48769,15 @@ "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", "minNotional": 0.0, - "maxNotional": 5000.0, - "maintenanceMarginRate": 0.02, - "maxLeverage": 25.0, + "maxNotional": 10000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, "info": { "bracket": "1", - "initialLeverage": "25", - "notionalCap": "5000", + "initialLeverage": "20", + "notionalCap": "10000", "notionalFloor": "0", - "maintMarginRatio": "0.02", + "maintMarginRatio": "0.025", "cum": "0.0" } }, @@ -48613,38 +48785,21 @@ "tier": 2.0, "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", - "minNotional": 5000.0, - "maxNotional": 10000.0, - "maintenanceMarginRate": 0.025, - "maxLeverage": 20.0, - "info": { - "bracket": "2", - "initialLeverage": "20", - "notionalCap": "10000", - "notionalFloor": "5000", - "maintMarginRatio": "0.025", - "cum": "25.0" - } - }, - { - "tier": 3.0, - "symbol": "MEMEFI/USDT:USDT", - "currency": "USDT", "minNotional": 10000.0, "maxNotional": 25000.0, "maintenanceMarginRate": 0.05, "maxLeverage": 10.0, "info": { - "bracket": "3", + "bracket": "2", "initialLeverage": "10", "notionalCap": "25000", "notionalFloor": "10000", "maintMarginRatio": "0.05", - "cum": "275.0" + "cum": "250.0" } }, { - "tier": 4.0, + "tier": 3.0, "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", "minNotional": 25000.0, @@ -48652,16 +48807,16 @@ "maintenanceMarginRate": 0.1, "maxLeverage": 5.0, "info": { - "bracket": "4", + "bracket": "3", "initialLeverage": "5", "notionalCap": "50000", "notionalFloor": "25000", "maintMarginRatio": "0.1", - "cum": "1525.0" + "cum": "1500.0" } }, { - "tier": 5.0, + "tier": 4.0, "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", "minNotional": 50000.0, @@ -48669,16 +48824,16 @@ "maintenanceMarginRate": 0.125, "maxLeverage": 4.0, "info": { - "bracket": "5", + "bracket": "4", "initialLeverage": "4", "notionalCap": "100000", "notionalFloor": "50000", "maintMarginRatio": "0.125", - "cum": "2775.0" + "cum": "2750.0" } }, { - "tier": 6.0, + "tier": 5.0, "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", "minNotional": 100000.0, @@ -48686,16 +48841,16 @@ "maintenanceMarginRate": 0.1667, "maxLeverage": 3.0, "info": { - "bracket": "6", + "bracket": "5", "initialLeverage": "3", "notionalCap": "250000", "notionalFloor": "100000", "maintMarginRatio": "0.1667", - "cum": "6945.0" + "cum": "6920.0" } }, { - "tier": 7.0, + "tier": 6.0, "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", "minNotional": 250000.0, @@ -48703,16 +48858,16 @@ "maintenanceMarginRate": 0.25, "maxLeverage": 2.0, "info": { - "bracket": "7", + "bracket": "6", "initialLeverage": "2", "notionalCap": "500000", "notionalFloor": "250000", "maintMarginRatio": "0.25", - "cum": "27770.0" + "cum": "27745.0" } }, { - "tier": 8.0, + "tier": 7.0, "symbol": "MEMEFI/USDT:USDT", "currency": "USDT", "minNotional": 500000.0, @@ -48720,12 +48875,12 @@ "maintenanceMarginRate": 0.5, "maxLeverage": 1.0, "info": { - "bracket": "8", + "bracket": "7", "initialLeverage": "1", "notionalCap": "800000", "notionalFloor": "500000", "maintMarginRatio": "0.5", - "cum": "152770.0" + "cum": "152745.0" } } ], @@ -51328,6 +51483,161 @@ } } ], + "NAORIS/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "NAORIS/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": "NAORIS/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": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "NAORIS/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "NEAR/USDC:USDC": [ { "tier": 1.0, @@ -58386,6 +58696,161 @@ } } ], + "PLAY/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "PLAY/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": "PLAY/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": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 25000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "3", + "initialLeverage": "20", + "notionalCap": "25000", + "notionalFloor": "10000", + "maintMarginRatio": "0.025", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 25000.0, + "maxNotional": 62500.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "4", + "initialLeverage": "10", + "notionalCap": "62500", + "notionalFloor": "25000", + "maintMarginRatio": "0.05", + "cum": "700.0" + } + }, + { + "tier": 5.0, + "symbol": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 62500.0, + "maxNotional": 125000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "5", + "initialLeverage": "5", + "notionalCap": "125000", + "notionalFloor": "62500", + "maintMarginRatio": "0.1", + "cum": "3825.0" + } + }, + { + "tier": 6.0, + "symbol": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 125000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "6", + "initialLeverage": "4", + "notionalCap": "250000", + "notionalFloor": "125000", + "maintMarginRatio": "0.125", + "cum": "6950.0" + } + }, + { + "tier": 7.0, + "symbol": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "7", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1667", + "cum": "17375.0" + } + }, + { + "tier": 8.0, + "symbol": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "8", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "392225.0" + } + }, + { + "tier": 9.0, + "symbol": "PLAY/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "9", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2267225.0" + } + } + ], "PLUME/USDT:USDT": [ { "tier": 1.0, @@ -60331,6 +60796,195 @@ } } ], + "PROVE/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "PROVE/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": "PROVE/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": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 10000.0, + "maxNotional": 50000.0, + "maintenanceMarginRate": 0.02, + "maxLeverage": 25.0, + "info": { + "bracket": "3", + "initialLeverage": "25", + "notionalCap": "50000", + "notionalFloor": "10000", + "maintMarginRatio": "0.02", + "cum": "75.0" + } + }, + { + "tier": 4.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 50000.0, + "maxNotional": 100000.0, + "maintenanceMarginRate": 0.025, + "maxLeverage": 20.0, + "info": { + "bracket": "4", + "initialLeverage": "20", + "notionalCap": "100000", + "notionalFloor": "50000", + "maintMarginRatio": "0.025", + "cum": "325.0" + } + }, + { + "tier": 5.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 100000.0, + "maxNotional": 175000.0, + "maintenanceMarginRate": 0.0333, + "maxLeverage": 15.0, + "info": { + "bracket": "5", + "initialLeverage": "15", + "notionalCap": "175000", + "notionalFloor": "100000", + "maintMarginRatio": "0.0333", + "cum": "1155.0" + } + }, + { + "tier": 6.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 175000.0, + "maxNotional": 250000.0, + "maintenanceMarginRate": 0.05, + "maxLeverage": 10.0, + "info": { + "bracket": "6", + "initialLeverage": "10", + "notionalCap": "250000", + "notionalFloor": "175000", + "maintMarginRatio": "0.05", + "cum": "4077.5" + } + }, + { + "tier": 7.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 250000.0, + "maxNotional": 750000.0, + "maintenanceMarginRate": 0.1, + "maxLeverage": 5.0, + "info": { + "bracket": "7", + "initialLeverage": "5", + "notionalCap": "750000", + "notionalFloor": "250000", + "maintMarginRatio": "0.1", + "cum": "16577.5" + } + }, + { + "tier": 8.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 750000.0, + "maxNotional": 1500000.0, + "maintenanceMarginRate": 0.125, + "maxLeverage": 4.0, + "info": { + "bracket": "8", + "initialLeverage": "4", + "notionalCap": "1500000", + "notionalFloor": "750000", + "maintMarginRatio": "0.125", + "cum": "35327.5" + } + }, + { + "tier": 9.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 1500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "9", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "1500000", + "maintMarginRatio": "0.1667", + "cum": "97877.5" + } + }, + { + "tier": 10.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "10", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "472727.5" + } + }, + { + "tier": 11.0, + "symbol": "PROVE/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12000000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "11", + "initialLeverage": "1", + "notionalCap": "12000000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2347727.5" + } + } + ], "PUFFER/USDT:USDT": [ { "tier": 1.0, @@ -75398,6 +76052,178 @@ } } ], + "TOWNS/USDT:USDT": [ + { + "tier": 1.0, + "symbol": "TOWNS/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": "TOWNS/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": "TOWNS/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": "TOWNS/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": "TOWNS/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": "TOWNS/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": "TOWNS/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": "TOWNS/USDT:USDT", + "currency": "USDT", + "minNotional": 500000.0, + "maxNotional": 4500000.0, + "maintenanceMarginRate": 0.1667, + "maxLeverage": 3.0, + "info": { + "bracket": "8", + "initialLeverage": "3", + "notionalCap": "4500000", + "notionalFloor": "500000", + "maintMarginRatio": "0.1667", + "cum": "34800.0" + } + }, + { + "tier": 9.0, + "symbol": "TOWNS/USDT:USDT", + "currency": "USDT", + "minNotional": 4500000.0, + "maxNotional": 7500000.0, + "maintenanceMarginRate": 0.25, + "maxLeverage": 2.0, + "info": { + "bracket": "9", + "initialLeverage": "2", + "notionalCap": "7500000", + "notionalFloor": "4500000", + "maintMarginRatio": "0.25", + "cum": "409650.0" + } + }, + { + "tier": 10.0, + "symbol": "TOWNS/USDT:USDT", + "currency": "USDT", + "minNotional": 7500000.0, + "maxNotional": 12500000.0, + "maintenanceMarginRate": 0.5, + "maxLeverage": 1.0, + "info": { + "bracket": "10", + "initialLeverage": "1", + "notionalCap": "12500000", + "notionalFloor": "7500000", + "maintMarginRatio": "0.5", + "cum": "2284650.0" + } + } + ], "TRB/USDT:USDT": [ { "tier": 1.0, diff --git a/freqtrade/freqai/data_drawer.py b/freqtrade/freqai/data_drawer.py index fef0ab73a..7886bc896 100644 --- a/freqtrade/freqai/data_drawer.py +++ b/freqtrade/freqai/data_drawer.py @@ -493,7 +493,7 @@ class FreqaiDataDrawer: dk.data["data_path"] = str(dk.data_path) dk.data["model_filename"] = str(dk.model_filename) - dk.data["training_features_list"] = list(dk.data_dictionary["train_features"].columns) + dk.data["training_features_list"] = dk.training_features_list dk.data["label_list"] = dk.label_list with (save_path / f"{dk.model_filename}_{METADATA}.json").open("w") as fp: diff --git a/freqtrade/freqai/freqai_interface.py b/freqtrade/freqai/freqai_interface.py index 1c66de46f..b70b7c67e 100644 --- a/freqtrade/freqai/freqai_interface.py +++ b/freqtrade/freqai/freqai_interface.py @@ -514,12 +514,7 @@ class IFreqaiModel(ABC): current coin/bot loop """ - if "training_features_list_raw" in dk.data: - feature_list = dk.data["training_features_list_raw"] - else: - feature_list = dk.data["training_features_list"] - - if dk.training_features_list != feature_list: + if dk.training_features_list != dk.data["training_features_list"]: raise OperationalException( "Trying to access pretrained model with `identifier` " "but found different features furnished by current strategy. " diff --git a/freqtrade/optimize/optimize_reports/optimize_reports.py b/freqtrade/optimize/optimize_reports/optimize_reports.py index a450fe938..c46f5af78 100644 --- a/freqtrade/optimize/optimize_reports/optimize_reports.py +++ b/freqtrade/optimize/optimize_reports/optimize_reports.py @@ -598,6 +598,8 @@ def generate_strategy_stats( "timerange": config.get("timerange", ""), "enable_protections": config.get("enable_protections", False), "strategy_name": strategy, + "freqaimodel": config.get("freqaimodel", None), + "freqai_identifier": config.get("freqai", {}).get("identifier", None), # Parameters relevant for backtesting "stoploss": config["stoploss"], "trailing_stop": config.get("trailing_stop", False), diff --git a/requirements-dev.txt b/requirements-dev.txt index 5b506522b..6a7acf066 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,9 +6,9 @@ -r requirements-freqai-rl.txt -r docs/requirements-docs.txt -ruff==0.12.7 +ruff==0.12.8 mypy==1.17.1 -pre-commit==4.2.0 +pre-commit==4.3.0 pytest==8.4.1 pytest-asyncio==1.1.0 pytest-cov==6.2.1 @@ -18,7 +18,7 @@ pytest-timeout==2.4.0 pytest-xdist==3.8.0 isort==6.0.1 # For datetime mocking -time-machine==2.16.0 +time-machine==2.17.0 # Convert jupyter notebooks to markdown documents nbconvert==7.16.6 @@ -27,6 +27,6 @@ nbconvert==7.16.6 scipy-stubs==1.16.1.0 # keep in sync with `scipy` in `requirements-hyperopt.txt` types-cachetools==6.1.0.20250717 types-filelock==3.2.7 -types-requests==2.32.4.20250611 +types-requests==2.32.4.20250809 types-tabulate==0.9.0.20241207 -types-python-dateutil==2.9.0.20250708 +types-python-dateutil==2.9.0.20250809 diff --git a/requirements-freqai-rl.txt b/requirements-freqai-rl.txt index f29cb242c..d746f19ca 100644 --- a/requirements-freqai-rl.txt +++ b/requirements-freqai-rl.txt @@ -2,7 +2,7 @@ -r requirements-freqai.txt # Required for freqai-rl -torch==2.7.1; sys_platform != 'darwin' or platform_machine != 'x86_64' +torch==2.8.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.7.0; sys_platform != 'darwin' or platform_machine != 'x86_64' diff --git a/requirements.txt b/requirements.txt index 63e7e4edb..4ffdedd8c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,8 +7,8 @@ ft-pandas-ta==0.3.15 ta-lib==0.5.5 technical==1.5.2 -ccxt==4.4.98 -cryptography==45.0.5 +ccxt==4.4.99 +cryptography==45.0.6 aiohttp==3.12.15 SQLAlchemy==2.0.42 python-telegram-bot==22.3