本文主要是利用海龟交易策略进行量化交易策略的构建,同时用均线策略,布林带策略等经典策略构建第二条通道进行策略改善。
数据来源:
https://tushare.pro/register?reg=403436
不知道如何编写代码的也可以直接进入数据工具接口生成即可Tushare数据工具,非常方便。
首先先利用API接口获得沪深300近10年数据,然后进行数据清理,构造布林带策略和均线均线策略的组件。
import math
import tushare as ts
import pandas as pd
import matplotlib
import matplotlib.pyplot as plt
import numpy as np
import talib
matplotlib.rcParams['axes.unicode_minus']=False
plt.rcParams['font.sans-serif']=['SimHei']
ts.set_token('af3...')#这里是token码 获取地址 https://tushare.pro/register?reg=403436(需注册)
pro = ts.pro_api()
df=pro.index_daily(ts_code='399300.SZ', start_date='20100101', end_date='20211010')
df=df.sort_index()
df.index=pd.to_datetime(df.trade_date,format='%Y-%m-%d')#设置日期索引
df = df[::-1]
close = df.close
ret = df['close'].pct_change()
close20 = talib.MA(np.array(close),timeperiod=20)
atr1 = talib.ATR(df['high'].values,df['low'].values,df['close'].values,timeperiod=20)
atr = pd.DataFrame(atr1)
atr.index=pd.to_datetime(df.trade_date,format='%Y-%m-%d')
atr = atr.fillna(0)
mv = talib.MA(np.array(df.close),timeperiod=20)
close_bup = mv+2*atr1
close_bdw = mv-2*atr1
#实现最大回撤
def MaxDrawdown(return_list):
# 1. find all of the peak of cumlative return
maxcum = np.zeros(len(return_list))