Overall Statistics |
Total Trades 0 Average Win 0% Average Loss 0% Compounding Annual Return 0% Drawdown 0% Expectancy 0 Net Profit 0% Sharpe Ratio 0 Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0 Beta 0 Annual Standard Deviation 0 Annual Variance 0 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $0.00 |
import numpy as np import decimal as d from datetime import timedelta, datetime class FirstProject(QCAlgorithm): def Initialize(self): self.SetCash(100000) self.SetStartDate(2018,7,1) self.SetEndDate(2018,7,3) self.SetBrokerageModel(BrokerageName.OandaBrokerage) self.SetWarmUp(timedelta(days=1)) self.AddForex("EURUSD", Resolution.Minute, Market.Oanda).Symbol self.HA = HeikinAshi("EURUSD") #rolling windows for actual price self.price_window = RollingWindow[QuoteBar](10) #rolling window for HA indicator self.HA_open_win = RollingWindow[d.Decimal](10) self.HA_close_win = RollingWindow[d.Decimal](10) #Consolidate Heiken Ashi fiveMinuteConsolidator = QuoteBarConsolidator(timedelta(minutes=5)) fiveMinuteConsolidator.DataConsolidated += self.OnDataConsolidated self.SubscriptionManager.AddConsolidator('EURUSD', fiveMinuteConsolidator) self.RegisterIndicator('EURUSD',self.HA, fiveMinuteConsolidator) def OnData(self, data): if not (self.HA.IsReady): return def OnDataConsolidated(self, sender, data): if not (self.HA.IsReady): return self.price_window.Add(data) self.HA_open_win.Add(self.HA.Open.Current.Value) self.HA_close_win.Add(self.HA.Close.Current.Value) if not (self.price_window.IsReady):return if not (self.HA_open_win.IsReady):return if not (self.HA_close_win.IsReady):return self.Log(self.price_window[0].Ask.Close) self.Log(self.HA_open_win[0])