本文从零开始,手动搭建一个基于规则的简单量化交易系统,旨在提高对整个过程的理解能力。
Step 1: 数据加载
# Step 1: load dataset and generate features
def prepare_data(codes=['000300.SH', '399006.SZ'], start_time="20100101", end_time="20211231"):
df = load_data(codes, start_time, end_time)
df["rsi"] = ta.RSI(df.close, timeperiod=14)
df["to_buy"] = ""
df.loc[df["rsi"] <= 30, 'to_buy'] = True
df['to_buy'] = df['to_buy'].astype('bool')
df["to_sell"] = ""
df.loc[df["rsi"] >= 70, 'to_sell'] = True
df['to_sell'] = df['to_sell'].astype('bool')
return df
Step 2: 指定策略
策略规则非常简单:
账户初始值100000,每只股票占相同比重
根据数据的买入信号买入,卖出信号卖出
# Step 2: prepare strategy
class SelectBySignal(object):
def __init__(self, signal_buy='to_buy', signal_sell='to_sell'):
super(SelectBySignal, self).__init__()
self.signal_buy = signal_buy
self.signal_sell = signal_sell