作者:yunjinqi 类别:
日期:2021-12-23 17:26:51
阅读:1808 次 消耗积分:0 分
有些交易者希望能够使用all-in的模式,即每次使用全部的资金,官网上给出了一个方法:
一、使用cheat_on_open
Cheat-On-Open是什么
cheat_on_open是为了满足每次下单使用全部资金(all-in)的投资者,如果不使用cheat_on_open这个方法的话,在一个bar收盘的时候计算需要的手数,但是需要在下个bar开盘的时候交易,如果下个bar开盘的时候出现很大的价差(向上跳空或者向下跳空),就有可能造成可用资金不足,导致broker拒绝这笔交易,提示Margin.
尽管backtrader的使用者可以使用data.open[1]来获取下个bar的开盘价来计算交易手数,但是这个需要预先价格数据(preload data)
使用cheat_on_open可以解决这个问题。
cheat_on_open在下单之后,会在下个bar的开盘的时候发出订单,这个时候open价格就是交易的这个bar的open价,计算仓位的时候,直接使用data.open[0]就可以了
二、使用data.open[1]在收盘的时候取下个bar的开盘价
在使用data.open[1]的时候,要明白,在最后一天的时候会出现index error ,需要使用try except 来避免这个问题。
————————————————
版权声明:本文为CSDN博主「云金杞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26948675/article/details/116138196