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))