问题描述
想了解固定滑点的具体计算方式
解决方案
在 PTrade 量化交易平台的回测模块中,set_fixed_slippage 函数用于设置固定滑点,以使回测结果更逼近真实的交易场景。
最终成交价计算公式
根据 PTrade API 文档,固定滑点的最终成交价格计算公式如下:
最终成交价格 = 委托价格 ± (fixedslippage / 2)
具体来说,买卖方向会决定是加还是减:
- 买入时(做多):最终成交价格 = 委托价格 + (fixedslippage / 2)
- 卖出时(做空/平仓):最终成交价格 = 委托价格 - (fixedslippage / 2)
计算示例
假设您在策略中设置了固定滑点为 0.02 元:
set_fixed_slippage(fixedslippage=0.02)
如果此时触发了一笔买入交易,且当时的委托价格(例如市价)为 10.00 元:
- 买入成交价 = 10.00 + (0.02 / 2) = 10.01 元
如果触发了一笔卖出交易,委托价格同样为 10.00 元:
- 卖出成交价 = 10.00 - (0.02 / 2) = 9.99 元
代码示例
以下是在策略初始化中设置固定滑点的完整示例:
def initialize(context):
g.security = '600570.SS'
set_universe(g.security)
# 将滑点设置为固定的0.2元
# 即原本买入交易的成交价为10元,则设置之后成交价将变成10.1元
# 卖出交易的成交价为10元,设置后成交价将变成9.9元
set_fixed_slippage(fixedslippage=0.2)
def handle_data(context, data):
pass
注意事项:
set_fixed_slippage仅在回测模块可用,实盘交易中滑点由真实市场盘口决定。- 默认情况下,固定滑点
fixedslippage的值为0.0。 - 设置合理的滑点对于评估策略在真实市场中的抗冲击成本能力至关重要。