在上一节中我们讲述了简单的单移动平均线策略系统,看起来还是挺简单的,但是简单的代价就是不够智能,功能太少,如果要测试多条均线参数都要手工输入,现在我们就把它加以改进,增加一个自动寻找最佳均线的功能,有了这个功能,我们只要运行一次,就可以把各均线参数的收益率从高到底的输出,这样哪个参数最优就一目了然了,同样这个改进,我们还是按绝对收益率来进行排名,暂不考虑交易回撤。结果打印出收益率最高的五条均线参数。编程的实现过程我们在上一节的基础上加了一个大循环,这个循环就是用来遍历均线的,我们设定均线从2日到120日测试一遍。然后用DataFrame建立一个二维表,第一列”re”用来存放收益点数,第二列”ma”用来存放均线参数,运行结束的时候就是输出这个表格。为了让程序更容易理解,这次我们增加了一个maCal函数,这个函数的功能就是求移动平均线的均值的,有了这个函数后,程序看起来更清晰,更有层次感。测试的结果表明20日均线的收益点数最高,截取前5条输出记录如下
re ma
18 2894.44 20.0
7 2786.33 9.0
32 2518.90 34.0
33 2501.34 35.0
39 2394.43 41.0
其中第一列是原始索引,re列为收益点数,ma列为均线参数。
程序代码如下:
import pandas aspd
import xlrd
importmatplotlib.pyplot as plt
import numpy as np
def maCal(price,m): #求移动平均线的函数
ma=pd.Ser