Overall Statistics
import decimal as d

class MuscularFluorescentOrangeRhinoceros(QCAlgorithm):

    def Initialize(self):
        
        self.SetCash(100000)
        
        self.SetStartDate(2020, 5, 1)
        self.SetEndDate(2021, 5, 31)
        
        
        #1. Request the forex data
        self.pair1 = "AUDUSD"
        self.AddForex(self.pair1, Resolution.Hour, Market.Oanda)
        
        #2. Set the brokerage model
        self.SetBrokerageModel(BrokerageName.OandaBrokerage)
        
    
    def OnData(self, data):
        if self.Time.hour % 4 == 0: # Trade every 4 hours
            if not self.Portfolio.Invested:
                
                price = data[self.pair1].Close
                onePercent = float(1.01)
                self.Buy(self.pair1, 1000)
                self.LimitOrder(self.pair1, -1000, price * onePercent)
                self.StopMarketOrder(self.pair1, -1000, price / onePercent)
                
    def OnOrderEvent(self, orderEvent):
        order = self.Transactions.GetOrderById(orderEvent.OrderId)
        
        if order.Status == OrderStatus.Filled:
            if order.Type == OrderType.Limit or order.Type == OrderType.Limit:
                self.Transactions.CancelOpenOrders(order.Symbol)
                
        if order.Status == OrderStatus.Canceled:
            self.Log(str(orderEvent))