backtrader.broker Commission外汇点差/保证金/杠杆的设置(技巧)

本文介绍了在使用backtrader库进行外汇交易回测时,如何设置保证金和杠杆。通过两种方法调整佣金和点差,详细解释了计算保证金和净利润的过程,并提供了相关代码示例。强调在特定情况下,简洁的代码能提高运行效率。
摘要由CSDN通过智能技术生成

在使用backtrader进行回测外汇数据时,烧脑的是在保证金与杠杆的设置。

例如:如何EURUSD下单1手时,100倍杠杆的情况下,

buy: 1.12888,close: 1.13162

占用保证金:1128.88

其中赚取0.00274即274个点,按17的点差,单边收取8.5个点。

毛利:274

净利 = 毛利 - 点差 = 274 - 17 = 257

如以下运行结果:

经过测试,可以使用多种方式实现,这里介绍两种简单的方式,我个人觉得在特定的情况下行数越少运行越高效。

核心:设置参数使保证金 = automargin * margin * size * price

第一种:cerebro.broker.setcommission

cerebro.broker.setcommission(
    commission=SYMBOL_COMM[symbol_name] * 1000.0 * 100.0 / 2, # SYMBOL_COMM[symbol_name]为货币对的点差,/2 :变成单边点差 
    margin=1, # 必须为1 automargin=1000,# 不同货币的保证金可以使用公式计算得出   
    mult=1000.0*100.0, # 100是杠杆的倍数,1000固定 
    name=symbol_name) # 设定此方案分配给那个货币对使用

第二种:cerebro.broker.addcommissioninfo

comm_customize_symbol = bt.CommissionInfo( 
    commission=SYMBOL_COMM[symbol_name] * 1000.0 * 100.0 / 2, # SYMBOL_COMM[symbol_name]为货币对的点差,/2 :变成单边点差 
    margin=1, # 必须为1 
    automargin=1000, # 不同货币的保证金可以使用公式计算得出 
    mult=1000.0 * 100.0) # 100是杠杆的倍数,1000固定
cerebro.broker.addcommissioninfo(comm_customize_symbol, symbol_name)

上面两种方式,都要记得设置和修改SYMBOL_COMM[symbol_name],这里存的是货币对的点差。当然您也可以另外设置参数,让点差自动浮动起来。这是另外的话题了。

下面是完整的代码:

import backtrader as bt 
# 佣金点差 
SYMBOL_COMM = {'EURUSD': 0.00017} 
cerebro = bt.Cerebro() 
cerebro.broker.setcommission(
    commission=sett.SYMBOL_COMM[symbol_name] * 1000.0 * 100.0 / 2, # SYMBOL_COMM[symbol_name]为货币对的点差,/2 :变成单边点差 
    margin=1, # 必须为1,原因不说了
    automargin=1000, # 不同货币的保证金可以使用公式计算得出 
    mult=1000.0*100.0, # 100是杠杆的倍数,1000固定 
    name=symbol_name) # 设定此方案分配给那个货币对使用

各位看官,如果对您有用,请帮助点赞!点赞!点赞!非常感谢,这是我分享的唯一动力!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值