基于市场情绪平稳度的股指期货日内交易策略

基于市场情绪平稳度的股指期货日内交易策略

策略说明请下载下面这个pdf文件:

基于市场情绪平稳度的股指期货日内交易策略.pdf

测试数据请下载下面这个csv文件:

data.csv

实现内容

策略题为一个PDF文档(基于市场情绪平稳度的股指期货日内交易策略)和写策略需要的聚宽数据包(data.csv),
根据文档和数据包写出程序和年化收益图

实现截图

基于市场情绪平稳度的股指期货日内交易策略_第1张图片

编程难点

  1. 平均最大回撤和平均最大反向回撤的计算
  2. 累计收益的计算

代码实现(使用python实现,其他编程语言大概一致)

配置类Configuration.py

class Configuration:
    # 文件地址
    file_path = "/Users/zhangqinxiong/Downloads/基于市场情绪平稳度的股指期货日内交易策略/data.csv"

    # 情绪平稳度阈值
    emotional_stability_threshold = 9 / 10000.0

    # 止损阈值
    stop_loss_threshold = 0.5 / 100.0

    # 初始金额
    # 设置为100是因为算到最后的结果刚好可以以百分比表示
    init_money = 100

    # 多次开仓交易的数据
    # money保存的是交易当前的金额
    # details保存的是所有的交易数据
    multi_transaction_data = dict(money=init_money, details=[])

    # 一次开仓交易的数据
    # money保存的是交易当前的金额
    # details保存的是所有的交易数据
    uni_transaction_data = dict(money=init_money, details=[])

    # 交易成本(双边)
    # 在计算收益的时候需要去掉
    service_charge = 2 / 10000.0

    # 以日期分组的数据
    data_group_by_date = {
   }

    # 沪深300期货每天的收盘价列表
    hu_shen_300_date_close_price_list = []

    # 沪深300期货每天的日期列表
    hu_shen_300_date_list = []

处理csv文件的工具类csv_file_utils.py

import csv
from domain.configuration import Configuration


# 以日期分组数据
def group_data_by_date(file_path):
    # 从csv文件读取内容
    file = open(file_path, "r")
    line_list = csv.reader(file)

    # 保存以日期分组之后的内容
    data_group_by_date = Configuration.data_group_by_date

    # 不处理第一行字段
    index = 0

    # 遍历每一行内容
    for line in line_list:

        # 第一行数据是字段名称,不用处理
        index = index + 1
        if index == 1:
            continue

        # 把每一行数据转换成对象
        csv_data = dict(date=line[0], open=float(line[1]), close=float(line[2]), high=float(line[3]),
                        low=float(line[4]),
                        volume=int(line[5]), money=int(line[6]))

        # 截取日期,格式为年/月/日
        csv_date = line[0]
        csv_date = csv_date.split(" ")[0]

        # list保存一个日期的所有数据
        # 第一步先判断有没有保存这个日期的数据
        # 如果没有则初始化为空的数组
        # 如果有则拿出来
        if csv_date in data_group_by_date.keys():
            csv_data_list = data_group_by_date[csv_date]
        else:
            csv_data_list 

你可能感兴趣的:(python,市场情绪平稳度,股指期货,日内交易策略)