1.3计算均线突破策略的sharpe比率, 最大回撤

前言: 采用新的策略, 简单均线突破策略, 以5日均线和10日均线判断标准, 5日均线向上突破10日均线的时候买入, 5日均线向下突破10日均线的时候卖出.

代码如下:

import numpy as np
import pandas as pd
import datetime
from matplotlib import pyplot as plt

#读取股票数据, 格式为Stkcd,Trddt,Opnprc,Hiprc,Loprc,Clsprc,Dretwd,Adjprcwd,一共10784个数据
data = pd.read_csv("TRD_Dalyr.csv")
#将时间转换为标准格式xx-xx-xx
data.Trddt = pd.to_datetime(data.Trddt, format = "%Y%m%d")
#print(data)

cls = data[data['Stkcd'] == 1]['Clsprc']
adjcls = data[data['Stkcd'] == 1]['Adjprcwd']
adjcls = adjcls / (adjcls.iloc[-1] / cls.iloc[-1])

#plt.plot(cls)
#plt.plot(adjcls)
#plt.show()

stk = data['Stkcd']
#剔除重复的代码
stk = stk.drop_duplicates()
for row in stk:
    print(row)

#cls代表取股票代码为000001(其实是stk的第一行)的股票交易日期和收盘价
cls = data[data['Stkcd'] == stk.iloc[0]][['Trddt', 'Clsprc']]
#构建一个pandas数据结构DataFrame,将交易日期作为行、股票代码作为列
cls2 = pd.DataFrame(cls['Clsprc'].tolist(), index = cls['Trddt'].tolist(), columns = [stk.iloc[0]])
print(cls2)

#如法炮制,取股票代码stk第二行的代码对应的数据
cls3 = data[data['Stkcd'] == s
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值