资讯动态

FreqAI 数据转换机制解析与最小配置指南

发布时间:2026/8/30 9:08:08 来源:尧图企业网站定制
FreqAI 数据转换机制解析与最小配置指南【免费下载链接】freqtradeFree, open source crypto trading bot项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade把原始 K 线直接丢进 FreqAI 回测很容易遇到 NaN 特征、未来数据泄露这类问题。Freqtrade 的 FreqAI 数据转换层FreqaiDataKitchen把特征识别、清洗、时序窗口切分、标准化整条链路自动化了你只需要按命名约定给特征列起名。核心机制FreqAI 数据转换如何一趟处理 K 线数据转换由 freqtrade/freqai/data_kitchen.py 中的FreqaiDataKitchen类驱动它按交易对实例化一趟完成四件事命名约定识别列名含%自动识别为特征、含为标签无需手工维护特征列表find_features/find_labelsNaN 清洗训练数据直接丢弃含缺失值的整行预测数据填 0 并用do_predict掩码标记基于缺失值产生的预测会被屏蔽、不会触发开仓滑动窗口切分split_timerange把整段时间切成重叠的滑动窗口训练窗每次按backtest_period_days步长前移回测窗紧跟在训练窗之后天然规避随机切分带来的未来数据泄露标准化管道基于 datasieve 库构建先剔除常量特征再做 MinMax 归一化到 [-1, 1]管道里的可选步骤全部由配置开关控制核心逻辑如下# freqtrade/freqai/freqai_interface.py pipe_steps [ (const, ds.VarianceThreshold(threshold0)), (scaler, SKLearnWrapper(MinMaxScaler(feature_range(-1, 1)))), ] if ft_params.get(principal_component_analysis, False): pipe_steps.append((pca, ds.PCA(n_components0.999))) if ft_params.get(use_DBSCAN_to_remove_outliers, False): pipe_steps.append((dbscan, ds.DBSCAN(n_jobsthreads)))最小配置与上手跑通 FreqAI 回测的两段配置配置分两处配置文件的freqai段参考 config_examples/config_freqai.example.jsonfreqai: { enabled: true, train_period_days: 30, backtest_period_days: 7, identifier: unique-id, feature_parameters: { include_timeframes: [5m, 1h], label_period_candles: 24, include_shifted_candles: 2, indicator_periods_candles: [10, 20] }, data_split_parameters: { test_size: 0.25 } }策略侧只需在populate_indicators里调用freqai.start其余照常用普通策略写法示例见 freqtrade/templates/FreqaiExampleStrategy.py# freqtrade/templates/FreqaiExampleStrategy.py startup_candle_count: int 20 def populate_indicators(self, dataframe, metadata): dataframe self.freqai.start(dataframe, metadata, self) return dataframe def feature_engineering_expand_all(self, dataframe, period, **kwargs): dataframe[%-rsi-period] ta.RSI(dataframe, timeperiodperiod) dataframe[%-sma-period] ta.SMA(dataframe, timeperiodperiod)feature_engineering_expand_all会把同一特征按indicator_periods_candles×include_timeframes×include_shifted_candles的组合自动展开——一行代码就能产出几十个特征列。数据下载完成后用freqtrade backtesting直接跑即可。关键参数与调优核心参数的影响与推荐值参数所在位置影响推荐值train_period_daysfreqai 顶层每个训练窗的长度过短样本不足、过长训练变慢20–30backtest_period_daysfreqai 顶层每个训练窗后的回测窗口也是滑动步长7data_split_parameters.test_sizedata_split_parameters每个训练窗内部的测试集比例设为 0 则不切测试集0.1–0.25feature_parameters.weight_factorfeature_parameters大于 0 时按指数衰减给近期样本加权适合市场漂移快的币种0–5data_kitchen_thread_countfreqai 顶层数据处理线程数不配置时按 CPU 核数自动推算按硬件设置另外注意identifier它决定模型保存目录。保持相同的值会复用已有模型、加速回测一旦改动特征或模型务必换一个identifier重新训练否则会直接报特征不匹配错误。高频问题排查FreqAI 数据相关的三类报错报错all training data dropped due to NaNs现象回测启动后立刻抛出该错误。根因指标预热期吃掉了大量 K 线下载的数据没有覆盖完整回测周期。解决延长数据下载区间或加--startup-candle-count对应的前置数据量参考 docs/freqai-running.md 的数据下载章节。警告X percent of training data dropped due to NaNs现象实盘或回测日志出现丢弃比例警告模型表现不稳定。根因某个特征列缺失值过多日志会直接点名缺失最严重的那一列。解决缩短该指标的计算周期或延长数据下载范围让指标算得出来。报错Trying to access pretrained model with identifier…found different features现象修改过特征列后重启程序拒绝加载旧模型。根因identifier仍指向旧模型目录其特征列表与当前策略产出的不一致。解决更换identifier从头训练或把策略特征改回与旧模型一致。进阶路径从数据转换延伸到模型选型数据转换流程跑通后有两条自然的延伸方向PyTorch 模型位于 freqtrade/freqai/torch/其中PyTorchDataConvertor负责把处理好的 DataFrame 转成张量强化学习模块在 freqtrade/freqai/RL/。完整参数含义查 docs/freqai-parameter-table.md特征写法参考 docs/freqai-feature-engineering.md。FreqAI 数据转换用识别—清洗—切窗—标准化四步把原始 K 线变成干净模型输入核心价值是把数据卫生工作交给框架、让你只专注策略本身更多配置细节见 docs/freqai-configuration.md。【免费下载链接】freqtradeFree, open source crypto trading bot项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价