import jqdata
def initialize(context):
set_option('use_real_price', True)
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
set_benchmark('000300.XSHG')
g.security = ['600036.XSHG']
g.N = 2
g.ma_days = 20
def handle_data(context, data):
for stock in g.security:
df = attribute_history(stock, g.ma_days)
middle = df['close'].mean()
upper = middle + g.N * df['close'].std()
lower = middle - g.N * df['close'].std()
p = get_current_data()[stock].day_open
# 如果价格突破阻力线
if p >= upper and stock in context.portfolio.positions:
order_target(stock, 0)
cash = context.portfolio.available_cash / len(g.security)
for stock in g.security:
df = attribute_history(stock, g.ma_days)
middle = df['close'].mean()
upper = middle + g.N * df['close'].std()
lower = middle - g.N * df['close'].std()
p = get_current_data()[stock].day_open
# 如果价格跌破支撑线
if p <= lower and stock not in context.portfolio.positions:
order_target(stock, cash)
转载于:https://www.cnblogs.com/IQ-Python/p/7423856.html