【答读者问4】如何实现all-in(每次下单使用全部资金)
作者:yunjinqi   类别:    日期:2021-12-23 17:26:51    阅读:1841 次   消耗积分: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


版权所有,转载本站文章请注明出处:云子量化, http://www.woniunote.com/article/33
上一篇:【答读者问3】用backtrader可以做什么?
下一篇:【答读者问5】如何实现以当天收盘价交易?