from jqdata import *
import numpy as np
import talib as ta
from scipy.fftpack import fft
def initialize(context):
set_backtest()
set_params()
run_daily(onStart, time='before_open', reference_security='000300.XSHG')
run_daily(onUpdate, 'every_bar')
run_daily(onClose, time='after_close', reference_security='000300.XSHG')
def set_params():
g.days = 0
g.refresh_rate = 10
g.last_dt = '9999-12-31'
g.etfs = [
'511380.XSHG',
'515220.XSHG',
'159980.XSHE',
'159985.XSHE',
]
def set_backtest():
set_benchmark('000300.XSHG')
set_option('use_real_price', True)
log.set_level('order', 'error')
set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
def onStart(context):
pass
def onUpdate(context):
g.days += 1
prePrx = getLastPrice(context, g.etfs)
def onClose(context):
pass
def cull(context):
pass
def Strategy(context):
pass
def getLastPrice(context, etfs):
g.last_dt = (context.current_dt - datetime.timedelta(1)).strftime('%Y-%m-%d')
result = get_price(etfs, g.last_dt, context.previous_date, frequency='1d', fields=['open', 'close', 'high', 'low'])
return result