回测 Trader模块
2020-06-09 10:20:57 10 举报
AI智能生成
Trader回测平台思维导图
作者其他创作
大纲/内容
重要对象 context
标的对象 context,symbol
sid: 标的ID
symbol:标的代码
asset_name:标的全称
start_data: datatime 标的第一天开始交易的时间
end_data: datatime 标的最后一天交易的时间
订单对象 context.get_open_orders()
status: integer - 订单状态
0:订单还未实际成交
1:订单已经成交
2:订单已经取消
created: datetime - 订单生成时间
stop: float - 可选的止损价
limit: float - 可选的限定价
amount: integer- 订单数量
sid: security- 对象订单symbol
filled: integer - 截至到目前为止,订单已完成数量
stop_reached: boolean - 如果股票市价到达止损价为true
limit_reached: boolean - 如果股票市价到达限定价为true
commission: integer - 订单产生的佣金
交易账户对象 context.protfoilo
cash: float 账户现金
start_date: datetime 交易账户对象统计开始时间
end_date: datetime 交易账户对象统计结束时间
starting_cash: float 交易账户初始金额
portfolio_value: float 账户总价值(包括持仓市值+现金)
positions: dictionary 持仓
positions_exposure: float 持仓风险暴露
capital_used: float 账户买卖所消耗的净资产,为正时代表花费
pnl: float 持仓收益
returns: float账户累计收益,比如10%返回的是0.1
持仓对象 context.protfoilo.positions
amount: integer 持仓数量
sid: integer 持仓股票的ID
last_sale_date: Timestamp 最新日期
cost_basis: float 持仓成本价
asset: equity 标的
last_sale_price: float 股票在交易时间的最后价格,等价于收盘价
标的数据对象 data
获取最新日期 data.current_dt
获取当天数据 data.current(assets, fields)
获取一定时间窗口的历史数据 history(assets, field, bar_count, frequency)
判断标的是否可交易 can_trade(asset)
准备数据函数 prepare(context)
set_commission(per_order) 回测时, 系统会计算每笔交易的手续费
set_slippage(slippage) 回测时, 系统会设置滑点,
FixedBasisPointsSlippage 固定基点滑点
FixedSlippage 固定滑点
VolumeShareSlippage 成交量比例滑点
初始化函数 initialize(context)
策略设置方法
set_long_only 回测设置只允许做多,不允许做空
set_max_leverage 设置策略的最大杠杆限制
set_need_settle 期货策略设置是否每日结算
set_margin 设置期货品种的保证金比率
set_benchmark 设置策略基准。
set_max_order_count 设置在某一天可以提交的order数量上限
set_max_order_size 设置在某一天可以提交的order上限。
set_max_position_size 针对某一头寸设置最大股票数量或最大头寸金额
schedule_function 周期执行调度函数,在符合date_rule, time_rule下周期性执行
time_rule 在固定的时间规则下调用func函数
主逻辑函数 handel_data(context, data)
current_dt 获取最新日期, 为datetime格式
current 获取当天股票数据,通过data(BarData).current进行调用
history 获取一定时间窗口的历史数据,通过data(BarData).history进行调用
can_trade(asset) 返回该标的是否可以交易
交易相关方法
symbol 通过股票代码获取股票对象
symbols 通过多个股票代码获取股票对象列表
future_symbol 通过期货代码生成期货对象
order 生成订单,amount为负,表示做空。
order_target 买卖股票/期货,使成交后最终持有的
股票/期货数量达到预期目标的amount
股票/期货数量达到预期目标的amount
order_lots 按照手数买卖股票, 按市价买入 amount(手数)* 100 股
order_value 买卖股票,按股票交易金额生成订单,
买卖期货,按保证金金额生成订单,value为负,表示做空
买卖期货,按保证金金额生成订单,value为负,表示做空
order_target_value 调整股票持有市值到预期目标的value
调整期货保证金仓位到预期目标的value
调整期货保证金仓位到预期目标的value
order_target_percent 调整股票仓位至占投资组合(股票+现金)
总金额的一定百分比(percent)
总金额的一定百分比(percent)
cancel_order 取消订单,支持股票和期货
get_order 获取订单,支持股票和期货
get_open_orders 获取未成交的订单,支持股票和期货
update_order_amount 更新订单,只支持从下单数量上进行更新
get_commission 获取期货品种的手续费信息
get_datetime 获取当前时间
record 记录函数,在交易执行时记录用户自定义数据,
该数据存放在回测输出结果的 m.raw_perf中
该数据存放在回测输出结果的 m.raw_perf中
盘前处理函数 before_trading_start(context, data)
0 条评论
下一页