tools_documentation.md 4.3 KB

期货交易工具逻辑文档

1. 交易训练工具 (trading_training_tool.py)

功能概述

交易训练工具是一个用于训练交易决策能力的交互式工具。它从交易记录中随机选择一笔开仓交易,只显示历史K线数据和当天的部分信息(当天收盘价被替换为实际成交价),让用户判断是否开仓,然后显示包含未来20天数据的完整K线图,并记录用户的决策结果。

核心逻辑流程

1.1 数据准备阶段

  1. 读取交易数据

    • 从CSV文件读取所有交易记录
    • 支持多种编码格式(utf-8, gbk, gb2312等)
    • 自动识别文件编码
  2. 加载历史处理记录

    • 读取已存在的训练结果文件(training_results.csv)
    • 提取已处理的交易对ID列表,避免重复处理
  3. 提取开仓交易

    • 遍历所有交易记录,筛选出开仓交易(交易类型以"开"开头)
    • 提取合约代码、交易日期、成交价、方向等关键信息
    • 跳过已处理的交易对
    • 计算对应的平仓盈亏(考虑连续交易对ID的情况)

1.2 随机选择机制

  • 完全随机选择:使用random.shuffle打乱交易列表,然后随机选择
  • 避免重复:通过已处理的交易对ID列表确保不重复选择
  • 显示统计:显示剩余未处理的交易数量

1.3 K线数据处理

  1. 获取完整数据

    • 获取历史100天 + 未来20天的完整K线数据
    • 包含开高低收价格和5/10/20/30日均线
  2. 部分K线图生成

    • 截取历史数据+当天数据
    • 将当天收盘价替换为实际成交价
    • 生成只有历史信息的K线图
  3. 完整K线图生成

    • 使用原始数据(不修改当天收盘价)
    • 显示历史和未来20天的完整走势
    • 用灰色背景标注未来数据区域

1.4 用户交互

  1. 显示交易信息

    • 合约代码
    • 交易日期
    • 交易方向(多头/空头)
    • 成交价
  2. 获取用户决策

    • 提示用户输入'y'(开仓)或'n'(不开仓)
    • 循环验证输入直到获得有效决策

1.5 结果记录

  1. 计算判定收益

    • 用户判定开仓:判定收益 = 实际平仓盈亏
    • 用户判定不开仓:判定收益 = -实际平仓盈亏
  2. 记录格式

    • 包含原始交易信息(日期、时间、标的、类型、数量、价格)
    • 平仓盈亏(可能合并连续交易对)
    • 用户判定(开仓/不开仓)
    • 判定收益
    • 交易对ID和连续交易对ID

特殊处理逻辑

连续交易对ID处理

  • 如果记录包含有效的连续交易对ID(非'N/A'),则合并所有同一连续交易对ID的平仓盈亏
  • 这允许处理跨期换月等连续持仓的情况

日期和时间处理

  • 支持多种日期格式(YYYY-MM-DD, DD/MM/YYYY等)
  • 夜盘交易处理:委托时间>=21:00的交易,实际交易日为下一个交易日
  • 使用JoinQuant的get_trade_days获取准确的交易日历

合约代码提取

  • 从"标的"列的括号中提取标准合约代码(如:"豆粕2501(DM2501)" -> "DM2501")
  • 自动添加交易所后缀(如.XDCE)

配置参数

所有参数集中在CONFIG字典中:

  • csv_filename: 输入交易记录文件名
  • result_filename: 输出结果文件名
  • history_days: 历史数据天数(默认100)
  • future_days: 未来数据天数(默认20)
  • output_dir: 图片输出目录
  • show_plots: 是否显示图片
  • plot_dpi: 图片分辨率
  • random_seed: 随机数种子(确保可重复性)

输出文件

  1. 训练结果CSV(training_results.csv)

    • 追加模式写入,保留所有历史记录
    • UTF-8编码,支持中文
  2. K线图片(training_images/目录)

    • partial_*.png: 部分K线图
    • full_*.png: 完整K线图

使用场景

  • 交易决策训练:通过历史数据练习判断开仓时机
  • 策略验证:验证人工判断与策略信号的一致性
  • 交易复盘:分析决策质量,改进交易技能

2. K线复原工具 (kline_reconstruction.py)

功能概述

(待补充详细逻辑说明)

核心功能

  • 从交易记录中提取所有开仓交易
  • 为每个开仓交易生成对应的K线图
  • 包含均线和技术指标
  • 批量生成并打包成ZIP文件

注:本文档主要介绍交易训练工具的详细逻辑,其他工具的逻辑说明将逐步补充。