vnpy策略回测如何设置滑点手续费和size

如何设置合适的滑点,手续费和size

滑点

1个就是1跳,一般是1个,2个最保险


不同品种不同,建议从ricequant查询后保存下来
参考:https://www.ricequant.com/data/index#Data-Index-InstrumentInfo(搜索tick_size())


手续费

一般是万分之2,但是网上查询的16年期货平均万分之0.166(差了10倍)
size:测试总使用fixedSize,应该没什么用,其实用总资金/单手价计算理论最高持仓,不过期货一般都是使用手来标示,固定手数

个人倾向于滑点设置为1,

跳,建议从ricequant查询出来后,导出csv写成函数放代理调用,就不用一个个查询了。

size手数,按照个人资金情况设置,需要注意由于期货都是按照“手”交易的,最好时资金恰好 ”足手“,并且稍盈余即可,否则可能可能会又较多资金浪费,比如1手6w,存11w进去,2手不足,1手又多出很多。

 

参考代码ricequant查询”跳“

tmpdf=all_instruments(type='Future')

tmpdf01=tmpdf[tmpdf['order_book_id'].apply(lambda x:True if x[-4:]=='1111' else False)]
tmpdf01['tick_size']=tmpdf01['order_book_id'].apply(lambda x:instruments(x).tick_size())
tmpdf01.to_csv('xxx.csv)

`tbquant`是一个基于TensorFlow的量化交易框架,用于构建金融策略。下面是一个简化的例子,展示如何构造一个基本的策略并进行历史数据: 1. **构造策略**: ```python import tensorflow as tf from tbquant import strategy class MyStrategy(strategy.BaseStrategy): def __init__(self, market_data): self.market_data = market_data self.position = tf.Variable(0, dtype=tf.float32) def on_bar(self, bar): # 获取最新价、持仓等信息 price = bar.close_price if self.position > 0 and price < self.previous_close * (1 - self.slippage): # 卖出条件 self.position.assign(0) elif self.position == 0 and price > self.previous_close * (1 + self.slippage): # 买入条件 self.position.assign(1) self.previous_close = price @property def slippage(self): # 设置滑点手续费,这里简化为固定比例 return 0.01 # 1% # 实例化并策略 market_data = load_market_data() # 加载历史数据 strategy_instance = MyStrategy(market_data) backtest_result = strategy_instance.backtest( start_date='2019-01-01', end_date='2022-12-31', target_return=0.1, max_drawdown=0.07 ) ``` 2. **设置**: - `target_return`: 目标年化收益率,设定为10%。 - `max_drawdown`: 最大撤限制,设定为7%。 注意这只是一个简化示例,实际应用中还需要考虑更多细节,如资金管理、买卖信号生成算法、止损止盈规则、滑点处理等。另外,`load_market_data()`函数需要你自己提供,并确保数据质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值