我是靠谱客的博主 粗心飞机,最近开发中收集的这篇文章主要介绍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外汇点差/保证金/杠杆的设置(技巧)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复