注意到在上一篇文章的代码实现中,我们设置了一些参数,这些参数也影响了我们实际交易中信号触发的条件和周期。为此,设计了网格调优的程序,寻找能产生最大收益或者控制最大回撤的对应参数。我们希望年均回报率能够大于15%,而希望最大回撤能控制在-20%以内。
首先导入需要的module,并读取所需的外汇数据:
import datetime as dt
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['Kaiti']
plt.rcParams['axes.unicode_minus']=False
import mplfinance as mpf
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings("ignore")
df1 = pd.read_csv('eurusd_daily.csv', parse_dates=["Date"], index_col="Date")
df1.drop(['Change'], axis=1, inplace=True)
将之前写的海龟交易法回测程序主体写成一个自定义函数
def turtle_optimization(n1=30,n2=15,atr_parameter=30,start_date='1990-01-01',end_date='2020-12-31',df=df1):
df['DonHigh_n1'] = df['High&