双均线策略是比较经典的策略,股票的价格均线是投资参考的重要指标。均线有快线和慢线之分,当快线向上穿过慢线则是金叉,一般执行买入操作,当快线向下穿过慢线时则形成死叉,一般执行卖出操作。基于这个基本思路,出于兴趣爱好,便使用python复现了这个量化策略。代码封装如下。
在运行这个代码块时,请先运行以下代码:
pip install pandas
pip install numpy
pip install matplotlib
pip install tqdm
pip install qstock
在电脑上安装了这些库之后就可以运行下面的封装代码了,具体讲解在代码块下面。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from tqdm import tqdm
import qstock as qs
class Dual_moving_average_stra():
'''
code --> '000001' str
start_time --> '20220101' str
window0 --> 5 int
window1 --> 10 int
verbose --> bool default=True
plot --> bool default=True
init_money = 10000 一万块本金 看末期能有多少收益
'''
def __init__(self, code, start_time, window0, window1, verbose=True, plot=True):
self.code = code
self.start_time = start_time
self.window0 = window0
self.window1 = window1
self.verbose = verbose
self.plot = plot
def get_data(self):
#print(self.code, self.start_time)
df = qs.get_data(self.code, start=self.start_time, end=None, freq=101, fqt=1)
df['MA_' + str(self.window0)] = df.rolling(self.window0, min_periods=1).mean()['close']
df['MA_' + str(self.window1)] = df.rolling(self.window1, min_periods=1).mean()['close']
df['gold'] = np.nan
df.gold = df['MA_' + str(self.window0)] > df['MA_' + str(self.window1)]