From 89ef31b3811dcb0e53f9f2f643ffb31dd22359f4 Mon Sep 17 00:00:00 2001 From: Robert Caulk Date: Tue, 5 Aug 2025 12:49:27 +0200 Subject: [PATCH 01/14] fix: Ensure pipelines that modify feature set are supported for fast backtesting --- freqtrade/freqai/data_drawer.py | 2 +- freqtrade/freqai/freqai_interface.py | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) 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. " From 457af15b3571a3831f70cc01f93bfa5ea1a08c82 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 6 Aug 2025 20:24:43 +0200 Subject: [PATCH 02/14] chore: safe basic freqAI infos to backtest result --- freqtrade/optimize/optimize_reports/optimize_reports.py | 2 ++ 1 file changed, 2 insertions(+) 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), From e3dd3478bb84a2026be1141532daa37ed38a262d Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 6 Aug 2025 21:12:29 +0200 Subject: [PATCH 03/14] chore: bump ccxt to 4.4.99 --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 63e7e4edb..49bba198e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ ft-pandas-ta==0.3.15 ta-lib==0.5.5 technical==1.5.2 -ccxt==4.4.98 +ccxt==4.4.99 cryptography==45.0.5 aiohttp==3.12.15 SQLAlchemy==2.0.42 From 2bf3494cbcb5b4d0dea69e4148e827eb240295fb Mon Sep 17 00:00:00 2001 From: Freqtrade Bot <154552126+freqtrade-bot@users.noreply.github.com> Date: Thu, 7 Aug 2025 03:31:40 +0000 Subject: [PATCH 04/14] chore: update pre-commit hooks --- .../exchange/binance_leverage_tiers.json | 906 +++++++++++++++++- 1 file changed, 866 insertions(+), 40 deletions(-) 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, From 42d3f557bc183ff093ff0bdb695e1e2e7b6e6f06 Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 9 Aug 2025 16:11:42 +0200 Subject: [PATCH 05/14] chore(ci): fix windows install temporarily pin ta-lib to <0.6.0 when searching for wheels --- build_helpers/install_windows.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 . From 423197cb234895ba2cb474baf842699794445ffc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 10 Aug 2025 06:52:45 +0000 Subject: [PATCH 06/14] chore(deps): bump python Bumps python from 3.13.5-slim-bookworm to 3.13.6-slim-bookworm. --- updated-dependencies: - dependency-name: python dependency-version: 3.13.6-slim-bookworm dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 From d759deae8f5bb05685a6d1c923e5db5858f980f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 04:41:22 +0000 Subject: [PATCH 07/14] chore(deps): bump cryptography from 45.0.5 to 45.0.6 Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.5 to 45.0.6. - [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/cryptography/compare/45.0.5...45.0.6) --- updated-dependencies: - dependency-name: cryptography dependency-version: 45.0.6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 49bba198e..4ffdedd8c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ ta-lib==0.5.5 technical==1.5.2 ccxt==4.4.99 -cryptography==45.0.5 +cryptography==45.0.6 aiohttp==3.12.15 SQLAlchemy==2.0.42 python-telegram-bot==22.3 From b0f4c57fa85f3123aaa956ad5100b79d17e2bd0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 04:43:29 +0000 Subject: [PATCH 08/14] chore(deps): bump torch from 2.7.1 to 2.8.0 Bumps [torch](https://github.com/pytorch/pytorch) from 2.7.1 to 2.8.0. - [Release notes](https://github.com/pytorch/pytorch/releases) - [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md) - [Commits](https://github.com/pytorch/pytorch/compare/v2.7.1...v2.8.0) --- updated-dependencies: - dependency-name: torch dependency-version: 2.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements-freqai-rl.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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' From 8b3fb11f1457f05ad5d3119c5431a29875a4f908 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 04:46:55 +0000 Subject: [PATCH 09/14] chore(deps-dev): bump time-machine from 2.16.0 to 2.17.0 Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.16.0 to 2.17.0. - [Changelog](https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst) - [Commits](https://github.com/adamchainz/time-machine/compare/2.16.0...2.17.0) --- updated-dependencies: - dependency-name: time-machine dependency-version: 2.17.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 5b506522b..4f207c9bc 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -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 From f69f6ec8bef479301115f617398250e9ac1a956e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 04:47:15 +0000 Subject: [PATCH 10/14] chore(deps-dev): bump the types group with 2 updates Bumps the types group with 2 updates: [types-requests](https://github.com/typeshed-internal/stub_uploader) and [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader). Updates `types-requests` from 2.32.4.20250611 to 2.32.4.20250809 - [Commits](https://github.com/typeshed-internal/stub_uploader/commits) Updates `types-python-dateutil` from 2.9.0.20250708 to 2.9.0.20250809 - [Commits](https://github.com/typeshed-internal/stub_uploader/commits) --- updated-dependencies: - dependency-name: types-requests dependency-version: 2.32.4.20250809 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: types - dependency-name: types-python-dateutil dependency-version: 2.9.0.20250809 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: types ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 5b506522b..fa636af41 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -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 From 9f82738c96854af6d9a02c28fb5ea7b194a4e790 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 04:47:32 +0000 Subject: [PATCH 11/14] chore(deps-dev): bump ruff from 0.12.7 to 0.12.8 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.7 to 0.12.8. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.12.7...0.12.8) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.12.8 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 5b506522b..af67df073 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -6,7 +6,7 @@ -r requirements-freqai-rl.txt -r docs/requirements-docs.txt -ruff==0.12.7 +ruff==0.12.8 mypy==1.17.1 pre-commit==4.2.0 pytest==8.4.1 From e0d9d01493e9ba11bf20f02bb11b916e80b84512 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 05:38:29 +0000 Subject: [PATCH 12/14] chore(deps-dev): bump pre-commit from 4.2.0 to 4.3.0 Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.2.0 to 4.3.0. - [Release notes](https://github.com/pre-commit/pre-commit/releases) - [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md) - [Commits](https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.3.0) --- updated-dependencies: - dependency-name: pre-commit dependency-version: 4.3.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index 1afa22965..b1375744f 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -8,7 +8,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 From 2e8707059d87e94c1c6ebd2dd3f4889b2292dbab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Aug 2025 05:40:44 +0000 Subject: [PATCH 13/14] chore(deps): bump actions/download-artifact from 4 to 5 Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 From 47bf2d1f26c88677bebb474dfa7194a2f8735bae Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 11 Aug 2025 08:14:42 +0200 Subject: [PATCH 14/14] chore: bump types in pre-commit config --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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]