我是靠谱客的博主 粗心飞机,最近开发中收集的这篇文章主要介绍backtrader.broker Commission外汇点差/保证金/杠杆的设置(技巧),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在使用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) # 设定此方案分配给那个货币对使用

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

最后

以上就是粗心飞机为你收集整理的backtrader.broker Commission外汇点差/保证金/杠杆的设置(技巧)的全部内容,希望文章能够帮你解决backtrader.broker Commission外汇点差/保证金/杠杆的设置(技巧)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部