Hi everyone,
I am trying to write a simple script with 5 minutes Heiken Ashi Candles stored in a rolling window. However i am getting this error:
untime Error: This is a forward only indicator: HA(EURUSD_min) Input: 2018-07-01 17:00:00Z Previous: 2018-07-01 17:04:00Z (Open Stacktrace)
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.AddForex("EURUSD", Resolution.Minute, Market.Oanda).Symbol
self.HA = self.HeikinAshi("EURUSD",Resolution.Minute)
#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['EURUSD'])
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])