Skip to content

xielk/freqtrade-test

Repository files navigation

FreqTrade 量化交易项目

项目简介

这是一个基于 FreqTrade 框架的量化交易项目,专注于加密货币期货交易。项目包含多种交易策略,从简单的技术指标策略到复杂的多因子策略。

项目结构

核心目录

  • user_data/ - 用户数据和配置
    • strategies/ - 交易策略文件
    • config.json - 主配置文件
    • data/ - 历史数据存储
    • backtest_results/ - 回测结果
    • hyperopt_results/ - 超参数优化结果

策略文件说明

1. ProfitSafeStrategy.py

  • 功能: 优化利润的安全策略
  • 特点:
    • 止损从 4%放宽到 6%,减少过早止损
    • ROI 从 2%提高到 3-4%,提高盈亏比
    • 加入 MA 趋势过滤,只做多头趋势
    • 分批止盈,拉高整体收益
  • 适用场景: 稳健型交易,适合风险偏好较低的投资者

2. RSIReversalStrategy.py

  • 功能: RSI 反转策略
  • 特点: 基于 RSI 超买超卖信号进行反转交易

3. AdvancedFibonacciStrategy.py

  • 功能: 高级斐波那契策略
  • 特点: 结合斐波那契回撤和扩展进行交易

4. HarmonicDivergenceStrategy.py

  • 功能: 谐波背离策略
  • 特点: 基于价格和指标的背离信号

5. MAVolumeStrategy.py ⭐ 基础版本

  • 功能: 均线金叉 + 成交量放大策略(基础版)
  • 特点:
    • 买入:均线金叉 + 成交量放大(大幅放宽条件)
    • 卖出:均线死叉或破重要支撑 + 3%利润目标
    • 止损:5%以内亏损,3%利润保护
    • 胜率:38.2%,但利润目标达成率高
  • 回测表现:
    • 76 笔交易,总收益+0.41%
    • 7 笔交易达到 3%利润目标
    • 最大亏损仅 2.85%,最大回撤 0.36%
    • Sharpe 比率 5.31,风险控制优秀
  • 适用场景: 高频交易,追求稳定 3%利润目标

6. EnhancedMAVolumeStrategy.py 🚀 增强版

  • 功能: 增强版均线金叉 + 成交量放大策略
  • 核心优化:
    1. 动态止损机制 - 基于趋势强度和确认条件,减少噪音触发
    2. 高胜率 exit 信号 - 保留有效退出条件,过滤低质量信号
    3. 盈利单加权管理 - 对盈利交易进行加仓和延长持仓时间
    4. 持仓时间优化 - 避免长期亏损拖累账户,设置最大持仓时间
  • 回测表现:
    • 291 笔交易,胜率 77.0%
    • 总收益 -1.35%,最大回撤 5.62%
    • 平均持仓时间 23:38:00
  • 适用场景: 追求高胜率的稳健交易

7. AdvancedMAVolumeStrategy.py ⭐ 高级优化版(推荐)

  • 功能: 高级均线金叉 + 成交量放大策略
  • 核心优化:
    1. 趋势确认指标 - MA 斜率、ADX>20,避免震荡区间频繁进场
    2. ATR 动态止损 - 波动大给宽止损,波动小收紧止损
    3. 分批止损机制 - 先减仓,再全平
    4. 延迟退出确认 - 二次确认避免假跌破
    5. 加权持仓管理 - 小仓位试探,趋势确认后加仓
    6. 低胜率信号过滤 - 组合条件触发,提高信号质量
  • 技术特点:
    • 买入:强趋势确认 + 成交量放大 + 多重验证
    • 卖出:智能止损 + 趋势转弱 + 时间管理
    • 止损:ATR 动态 + 分批止损 + 延迟确认
    • 仓位:小仓位试探,趋势确认后加仓
    • 杠杆:基于趋势强度的动态杠杆(1.5-2.5 倍)
  • 回测表现:
    • 45 笔交易,胜率 73.3%
    • 总收益 -1.15%,最大回撤 1.53%
    • 平均持仓时间 8:20:00
    • 交易频率大幅降低,信号质量显著提升
  • 适用场景: 追求高质量信号的专业交易

配置说明

主要配置参数

  • 交易模式: 期货交易 (futures)
  • 保证金模式: 逐仓 (isolated)
  • 最大开仓数: 30 个
  • 基础货币: USDT
  • 时间框架: 15 分钟 (可调整)

交易所配置

  • 交易所: Gate.io
  • 交易对: DOGE/USDT:USDT (可扩展)
  • API 配置: 需要配置 API 密钥

使用方法

1. 环境准备

# 安装依赖
pip install -r requirements.txt

# 配置API密钥
# 编辑 user_data/config.json 文件

2. 运行策略

# 回测基础版本
freqtrade backtesting --strategy MAVolumeStrategy --timerange 20240101-20241201

# 回测增强版本
freqtrade backtesting --strategy EnhancedMAVolumeStrategy --timerange 20240101-20241201

# 回测高级优化版本(推荐)
freqtrade backtesting --strategy AdvancedMAVolumeStrategy --timerange 20240101-20241201

# 实盘交易
freqtrade trade --strategy AdvancedMAVolumeStrategy

# 超参数优化
freqtrade hyperopt --strategy AdvancedMAVolumeStrategy --hyperopt-loss SharpeHyperOptLoss

3. 策略开发

  • user_data/strategies/ 目录下创建新的策略文件
  • 继承 IStrategy
  • 实现 populate_indicators, populate_entry_trend, populate_exit_trend 方法

高级策略使用指南

AdvancedMAVolumeStrategy 核心功能

1. 趋势确认指标

  • ADX 阈值: >20 才允许开仓
  • MA 斜率: 快线和慢线斜率向上
  • 震荡过滤: 避免在震荡区间频繁进场
  • 趋势强度: 多重指标确认强趋势

2. ATR 动态止损

  • 基础止损: 8%(可调整)
  • ATR 计算: 波动大给宽止损,波动小收紧
  • 利润保护: 有利润时自动收紧止损(1%-2%)
  • 趋势调整: 基于趋势强度动态调整

3. 延迟退出确认

  • 二次确认: 连续 K 线确认避免假跌破
  • 趋势线确认: 两根 K 线收盘价都跌破趋势线
  • 支撑确认: 连续跌破重要支撑位
  • 成交量确认: 配合成交量萎缩确认

4. 加权持仓管理

  • 小仓位试探: 初始仓位 40%-100%
  • 趋势确认后加仓: 最多加仓 3 次
  • 信号强度评分: 基于多重指标计算
  • 动态杠杆: 1.5-2.5 倍杠杆

参数配置建议

# 均线参数
fast_ma_period = 8      # 快线周期
slow_ma_period = 21     # 慢线周期

# 成交量参数
volume_ma_period = 15   # 成交量均线周期
volume_threshold = 1.5  # 成交量放大阈值

# 趋势确认参数
adx_threshold = 20      # ADX阈值
ma_slope_period = 5     # MA斜率计算周期
trend_confirmation_period = 3  # 趋势确认周期

# ATR动态止损参数
atr_period = 14         # ATR计算周期
atr_multiplier = 2.0    # ATR倍数
min_stoploss = 0.04     # 最小止损
max_stoploss = 0.12     # 最大止损

# 持仓时间参数
max_hold_hours = 48     # 最大持仓时间
profit_hold_extension = 24  # 盈利延长时间

策略开发指南

基本结构

class MyStrategy(IStrategy):
    # 策略参数
    timeframe = "15m"
    stoploss = -0.05

    def populate_indicators(self, dataframe, metadata):
        # 计算技术指标
        return dataframe

    def populate_entry_trend(self, dataframe, metadata):
        # 定义买入条件
        return dataframe

    def populate_exit_trend(self, dataframe, metadata):
        # 定义卖出条件
        return dataframe

常用技术指标

  • 移动平均线: ta.SMA(), ta.EMA()
  • RSI: ta.RSI()
  • MACD: ta.MACD()
  • 布林带: qtpylib.bollinger_bands()
  • 成交量: dataframe['volume']

风险管理

止损设置

  • 固定止损: 设置 stoploss 参数
  • 追踪止损: 启用 trailing_stop
  • 动态止损: 实现 custom_stoploss 方法

仓位管理

  • 固定金额: 设置 stake_amount
  • 百分比: 设置 tradable_balance_ratio
  • 动态调整: 实现 custom_stake_amount 方法

性能优化

回测优化

  1. 使用足够长的历史数据
  2. 考虑交易成本
  3. 避免过拟合
  4. 使用样本外测试

实盘优化

  1. 监控延迟
  2. 设置合理的订单超时
  3. 使用限价单减少滑点
  4. 定期检查策略表现

常见问题

Q: 如何添加新的交易对?

A: 在 config.jsonpair_whitelist 中添加新的交易对。

Q: 如何调整策略参数?

A: 可以直接修改策略文件中的参数,或使用超参数优化功能。

Q: 如何查看交易日志?

A: 日志文件保存在 user_data/logs/ 目录下。

更新日志

最新更新

  • ✅ 创建了基于均线金叉和成交量放大的新策略 (MAVolumeStrategy.py)
  • ✅ 大幅优化了策略参数,交易频率提升 5.4 倍
  • ✅ 实现了 3%利润目标机制,7 笔交易达成目标
  • ✅ 优化止损到 5%以内,最大回撤仅 0.36%
  • ✅ 添加了详细的策略文档和使用说明
  • ✅ 完成了策略回测验证,总收益提升 3 倍

增强版更新 🚀

  • ✅ 创建了增强版策略 (EnhancedMAVolumeStrategy.py)
  • ✅ 实现了智能动态止损机制,减少噪音触发
  • ✅ 优化了高胜率 exit 信号,保留有效退出条件
  • ✅ 实现了盈利单加权管理,智能加仓和延长持仓
  • ✅ 优化了持仓时间管理,避免长期亏损拖累账户
  • ✅ 添加了基于信号强度的动态杠杆和仓位调整
  • ✅ 整合了多重技术指标确认,提高信号质量
  • ✅ 完善了策略文档和使用指南

高级优化版更新 ⭐

  • ✅ 创建了高级优化版策略 (AdvancedMAVolumeStrategy.py)
  • ✅ 实现了趋势确认指标:MA 斜率、ADX>20,避免震荡区间频繁进场
  • ✅ 实现了 ATR 动态止损:波动大给宽止损,波动小收紧止损
  • ✅ 实现了分批止损机制:先减仓,再全平
  • ✅ 实现了延迟退出确认:二次确认避免假跌破
  • ✅ 实现了加权持仓管理:小仓位试探,趋势确认后加仓
  • ✅ 实现了低胜率信号过滤:组合条件触发,提高信号质量
  • ✅ 大幅降低了交易频率,显著提升了信号质量
  • ✅ 优化了风险控制,最大回撤降至 1.53%

注意事项

  • 本软件仅供学习和研究使用
  • 实盘交易存在风险,请谨慎操作
  • 建议先在模拟环境中充分测试
  • 定期备份配置和策略文件

技术支持

如有问题,请查看 FreqTrade 官方文档或提交 Issue。

About

freqtrade-test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors