尝试每分钟用get_bars函数获取所有股票的当前价格,但是回测执行若干次之后就没反应了。
close_data = get_bars(g.stocks, fields=['date','open','high','low','close','volume'], unit='1m', count=3,include_now=False) print(close_data['000001.XSHE']['close'][-1]) 就是上面这行代码。数据获取没几次就没反应了。有什么方法能优化一下吗? 其实我的需求很简单,每分钟看一次所有股票的价格,然后再做进一步的决策。 下面是我的代码:
# 导入函数库 from jqdata import * # 初始化函数,设定基准等等 def initialize(context): # 设定沪深300作为基准 set_benchmark('000300.XSHG') # 开启动态复权模式(真实价格) set_option('use_real_price', True) # 输出内容到日志 log.info() log.info('初始函数开始运行且全局只运行一次') # 过滤掉order系列API产生的比error级别低的log # log.set_level('order', 'error') ### 股票相关设定 ### # 股票类每笔交易时的手续费是:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5块钱 set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock') ## 运行函数(reference_security为运行时间的参考标的;传入的标的只做种类区分,因此传入'000300.XSHG'或'510300.XSHG'是一样的) # 开盘前运行 run_daily(before_market_open, time='before_open', reference_security='000300.XSHG') # 开盘时运行 run_daily(market_open, time='every_bar') # 收盘后运行 #run_daily(after_market_close, time='after_close', reference_security='000300.XSHG') ## 开盘前运行函数 def before_market_open(context): # 输出运行时间 log.info('函数运行时间(before_market_open):' str(context.current_dt.time())) g.stocks = list(get_all_securities(types=['stock'], date=str(context.current_dt.date())).index) g.last_close = [] #print(g.stocks) for stock in g.stocks: close_data = attribute_history(stock, 1, '1d', ['close']) g.last_close.append( float(close_data['close'][0])) ## 开盘时运行函数 def market_open(context): log.info('函数运行时间(market_open):' str(context.current_dt.time())) security = g.stocks; close_data = get_bars(g.stocks, fields=['date','open','high','low','close','volume'], unit='1m', count=3,include_now=F) print(close_data['000001.XSHE']['close'][-1]) #即使把这行注释掉,也只是多执行几次,并没有明显改善。## 收盘后运行函数 def after_market_close(context): log.info(str('函数运行时间(after_market_close):' str(context.current_dt.time()))) #得到当天所有成交记录 trades = get_trades() for _trade in trades.values(): log.info('成交记录:' str(_trade)) log.info('一天结束') log.info('##############################################################')
本社区仅针对特定人员开放
查看需注册登录并通过风险意识测评
5秒后跳转登录页面...
移动端课程