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