How to log order status from "notfify_order" into the same line as the price status from "next" method.
andrewsky last edited by
Hi, I am using the quick start code as an example shown below..
def notify_order(self, order): if order.status in [order.Submitted, order.Accepted]: # Buy/Sell order submitted/accepted to/by broker - Nothing to do return # Check if an order has been completed # Attention: broker could reject order if not enough cash if order.status in [order.Completed]: if order.isbuy(): self.log( 'BUY EXECUTED, Price: %.2f, Cost: %.2f, Comm %.2f' % (order.executed.price, order.executed.value, order.executed.comm)) self.buyprice = order.executed.price self.buycomm = order.executed.comm else: # Sell self.log('SELL EXECUTED, Price: %.2f, Cost: %.2f, Comm %.2f' % (order.executed.price, order.executed.value, order.executed.comm)) self.bar_executed = len(self) elif order.status in [order.Canceled, order.Margin, order.Rejected]: self.log('Order Canceled/Margin/Rejected') self.order = None def notify_trade(self, trade): if not trade.isclosed: return self.log('OPERATION PROFIT, GROSS %.2f, NET %.2f' % (trade.pnl, trade.pnlcomm)) def next(self): # Simply log the closing price of the series from the reference self.log('Close, %.2f' % self.dataclose) # Check if an order is pending ... if yes, we cannot send a 2nd one if self.order: return # Check if we are in the market if not self.position: # Not yet ... we MIGHT BUY if ... if self.dataclose > self.sma: # BUY, BUY, BUY!!! (with all possible default parameters) self.log('BUY CREATE, %.2f' % self.dataclose) # Keep track of the created order to avoid a 2nd order self.order = self.buy() else: if self.dataclose < self.sma: # SELL, SELL, SELL!!! (with all possible default parameters) self.log('SELL CREATE, %.2f' % self.dataclose) # Keep track of the created order to avoid a 2nd order self.order = self.sell()
The above code will print the "Buy Create" and "Buy executed" in different lines.
Which part of the code should i modify to produce the following log status :
Date, Closing , Opening, Action 2000-01-24T00:00:00, 25.55, 2000-01-25T00:00:00, 26.61, Buy Create 2000-01-26T00:00:00, 25.96, 26.76, Buy Executed Size 10, Cost.. 2000-01-27T00:00:00, 24.43 Sell Created.
Essentially, instead of having the "notify order" method printing a separate line, is there any way to let the "next" method continuously print out daily price and when order is bought or sold, it can be appended as action status at the end of each line of daily price logging ?