From 1c099be23eb87dfccc48717abffa5bd74fada560 Mon Sep 17 00:00:00 2001 From: jackyu66git Date: Fri, 6 Mar 2026 22:21:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=A7=BB=E9=99=A4fillna?= =?UTF-8?q?=E8=AD=A6=E5=91=8A=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- strategies/CryptoFutures1m5mStrategy.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/strategies/CryptoFutures1m5mStrategy.py b/strategies/CryptoFutures1m5mStrategy.py index ab811d7..d5f0e04 100644 --- a/strategies/CryptoFutures1m5mStrategy.py +++ b/strategies/CryptoFutures1m5mStrategy.py @@ -1,11 +1,19 @@ # pragma pylint: disable=missing-docstring, invalid-name, pointless-string-statement from freqtrade.strategy import IStrategy, merge_informative_pair from pandas import DataFrame +import pandas as pd import talib.abstract as ta import numpy as np from datetime import datetime from typing import Optional from freqtrade.persistence import Trade +import warnings + +# 抑制 pandas FutureWarning 关于 fillna 的隐式降级警告 +# 这个警告来自 freqtrade 库的 strategy_helper.py +warnings.filterwarnings('ignore', category=FutureWarning, message='.*Downcasting object dtype arrays.*') +# 或者启用未来行为(推荐) +pd.set_option('future.no_silent_downcasting', True) # freqtrade trade -c ./user_data/Chan/config/Local_Test.json --strategy CryptoFutures1m5mStrategy --strategy-path ./user_data/Chan/strategies # freqtrade backtesting -c ./user_data/Chan/config/Local_Test.json --strategy CryptoFutures1m5mStrategy --strategy-path ./user_data/Chan/strategies --timerange=20260304- @@ -188,13 +196,13 @@ class CryptoFutures1m5mStrategy(IStrategy): ] for col in bool_cols: if col in dataframe.columns: - dataframe[col] = dataframe[col].fillna(False).astype(bool) + dataframe[col] = dataframe[col].astype(bool).fillna(False) num_cols = ['atr_pct_5m_5m', 'rsi_5m_5m', 'macd_hist_5m_5m', 'atr_pct_ma_5m_5m', 'ema200_dist_pct_5m', 'ema200_slope_5m'] for col in num_cols: if col in dataframe.columns: - dataframe[col] = dataframe[col].fillna(0) + dataframe[col] = dataframe[col].astype(float).fillna(0.0) return dataframe