Different commissions for each order type
I would like to set different commissions depending on the order type, if it is buy/sell operations, it should charges a percentage comm = X, and if it is a close operation, it should charge double: 2X.
def next(self): if condition1: self.broker.setcommission(0.0045) self.buy() elif condition2: self.broker.setcommission(0.009) self.close()
Is there any way through commission scheme or other method to do this?
Thank you in advance.
As you can see here:
For order management 3 primitives:
For order execution logic the following execution types:
So I think this should work:
if self.p.exectype == 'Close': self.broker.setcommission(0.009) else: // can be Market, Limit, Stop, or StopLimit self.broker.setcommission(0.0045)
@balibou thank you for your reply, I think exectype == 'Close' refers to the "close price" rather than close operation.
I've made a simple solution:
commissions = 
class CommInfo_My(bt.CommInfoBase): global commissions def _getcommission(self, size, price, pseudoexec): if commissions: comm = commissions * size * price if not pseudoexec: commissions.pop(0) return comm
def next(self): if condition1: commissions.append(0.0045) self.buy() elif condition2: commissions.append(0.009) self.close()