均值回归理论
1.计算股票池中所有股票的N日均线
2.计算股票池中所有股票与均线的偏离度
3.选取偏离度最高的M只股票并调仓
import math
import numpy as np
import pandas as pd
def initialize(context):
set_benchmark('000300.XSHG')
set_option('use_real_price',True)
set_order_cost(OrderCost(open_tax=0, close_tax=0.001, open_commission=0.0003, close_commission=0.0003,close_today_commission=0, min_commission=5),type='stock')
g.security = get_index_stocks('000300.XSHG')
g.ma_days = 30
g.stock_num = 10
run_monthly(handle,1)
def handle(context):
sr = pd.Series(index = g.security)
for stock in sr.index:
ma = attribute_history(stock, g.ma_days)['close'].mean()
p = get_current_data()[stock].day_open
ratio = (ma - p)/ma
sr[stock] = ratio
tohold = sr.nlargest(g.stock_num).index.values