https://www.joinquant.com/help/api/help?name=api#数据获取函数
日回测,last_price返回上一日的价格;
分钟回测,last_price返回上一分钟的价格;
# 导入函数库
from jqdata import *
import datetime
# 初始化函数,设定基准等等
def initialize(context):
# 设定沪深300作为基准
set_benchmark('000300.XSHG')
# 开启动态复权模式(真实价格)
set_option('use_real_price', True)
log.info("初始化")
# g 内置全局变量
g.my_security = '510300.XSHG'
set_universe([g.my_security])
# 过滤掉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', reference_security='000300.XSHG')
# 收盘后运行
run_daily(after_market_close, time='after_close', reference_security='000300.XSHG')
## 开盘前运行函数
def before_market_open(context):
log.info("market open @")
# log.info(datetime.datetime.now())
## 开盘时运行函数
def market_open(context):
# 日回测,就是开盘时间 9:30
# 分钟回测,就是没1分钟0秒
log.info("当前时间 %s" % (context.current_dt))
log.info("股票 %s 的最新价: %f" % (g.my_security, get_current_data()[g.my_security].last_price))
## 收盘后运行函数
def after_market_close(context):
log.info("market close @")