SHORT_SELLING_IMPLEMENTATION_SUMMARY.md 3.9 KB

做空策略实现总结

概述

基于原有的做多策略文件 cyb50_30min_intraday_reversal.py,成功创建了纯做空交易版本 cyb50_30min_intraday_short.py

核心差异修改

1. 信号生成器 (ReversalSignalGenerator → ShortSignalGenerator)

做多信号逻辑做空信号逻辑

  • RSI: < 30 (超卖) → > 70 (超买)
  • KDJ: < 20 (超卖) → > 80 (超买)
  • MACD: 金叉 → 死叉
  • 布林带: 触及下轨 → 触及上轨
  • 价格连续性: 连续下跌反转 → 连续上涨反转
  • 动量指标: 负向超卖 → 正向超买
  • 日内位置: 低位区域 → 高位区域 (position_in_day < 0.3> 0.7)

信号值: 1 (做多) → -1 (做空)

2. 交易执行器 (IntradayReversalExecutor → IntradayShortExecutor)

开仓逻辑:

  • 做多: 买入开仓 (position = position_size)
  • 做空: 卖出开仓 (short_position = -position_size)

平仓逻辑:

  • 做多: 卖出平仓
  • 做空: 买入平仓

盈亏计算:

  • 做多: (平仓价 - 开仓价) * 持仓数量
  • 做空: (开仓价 - 平仓价) * 持仓数量

止损止盈逻辑:

  • 做多:

    • 止损: 开仓价 * (1 - 0.008) (价格下跌)
    • 止盈: 开仓价 * (1 + 0.015) (价格上涨)
  • 做空:

    • 止损: 开仓价 * (1 + 0.008) (价格上涨)
    • 止盈: 开仓价 * (1 - 0.015) (价格下跌)

信号消失条件:

  • 做多: RSI > 70 (超买,做多信号消失)
  • 做空: RSI < 30 (超卖,做空信号消失)

3. 数据记录字段

做多交易记录:

'买入时间', '卖出时间', '买入价格', '卖出价格', '仓位'

做空交易记录:

'卖出开仓时间', '买入平仓时间', '开仓价格', '平仓价格', '做空仓位'

4. 净值计算逻辑

做多:

current_value = capital + position * price

做空:

current_pnl = (entry_price - price) * abs(short_position)
current_value = capital + current_pnl

5. 文件输出

做多输出文件: cyb50_30min_intraday_reversal_trades_[timestamp].csv 做空输出文件: cyb50_30min_intraday_short_trades_[timestamp].csv

6. 提示信息和输出

所有相关的提示信息都已更新为做空相关术语:

  • "做多翻转" → "做空反转"
  • "开仓信号" → "做空开仓信号"
  • "平仓信号" → "做空平仓信号"
  • "买入时间/卖出时间" → "卖出开仓时间/买入平仓时间"

保持不变的部分

以下模块完全保持原样,仅在类名和变量名上做相应调整:

  1. ConfigManager: 配置管理模块
  2. IntradayDataFetcher: 数据获取模块
  3. calculate_intraday_indicators: 技术指标计算
  4. validate_*_results: 结果验证分析模块
  5. main函数: 主程序流程控制

代码风格和结构

  • 完全保持原有的代码风格
  • 保持相同的类结构和方法命名规范
  • 保持相同的注释格式和文档字符串
  • 保持相同的错误处理机制

使用说明

  1. 配置文件: 使用相同的 config.json 配置文件
  2. 运行方式: python cyb50_30min_intraday_short.py
  3. 输出结果: 生成带时间戳的CSV交易记录文件
  4. 参数设置: 所有策略参数可通过config.json配置

验证要点

  • 信号逻辑完全反转 (超买 vs 超卖)
  • 交易方向完全反转 (卖出开仓 vs 买入开仓)
  • 盈亏计算逻辑正确 (做空时价格下跌盈利)
  • 止损止盈逻辑正确 (做空止损是价格上涨)
  • 所有提示信息已更新
  • 文件名和输出文件名已更新
  • 保持代码完整性和可运行性

总结

成功创建了纯做空版本的交易策略,所有核心逻辑都正确地从做多转换为做空,同时保持了代码的完整性和可维护性。新文件可以独立运行,也可以与原做多策略进行对比测试。