我见过其他的线程,但基于此我想不出来
类DataConsolidationAlgorithm(QCAlgorithm):
def Initialize(self):
'''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''
self.SetStartDate(2017, 1, 1) #Set Start Date
self.SetEndDate(2020, 1, 1) #Set End Date
self.SetCash(100000) #Set Strategy Cash
self.SetBrokerageModel(BrokerageName.FxcmBrokerage)
symbols = [self.AddForex(ticker, Resolution.Minute).Symbol
for ticker in ["EURUSD"]]
self.SetBenchmark('SPY')
self.slow = self.EMA("EURUSD", 200, Resolution.Daily)
self.SetWarmUp(200)
def OnData(self, data):
# Simple buy and hold template
self.low = self.MIN("EURUSD", 7, Resolution.Daily, Field.Low)
self.high = self.MAX("EURUSD", 7, Resolution.Daily, Field.High)
#fxQuoteBars = data.QuoteBars
#QuoteBar = fxQuoteBars['EURUSD'].Close
#self.QuoteBar = self.History("EURUSD", TimeSpan.FromDays(1), Resolution.Daily)
self.quoteBar = data['EURUSD'] ## EURUSD QuoteBar
#self.Log(f"Mid-point open price: {quoteBar.Open}")
self.closeBar = (self.quoteBar.Close) ## EURUSD Bid Bar
self.history7days = self.History(["EURUSD"], 7, Resolution.Daily)
if self.closeBar <= self.low and self.Forex["EURUSD"].Price > self.slow.Current.Value:
self.SetHoldings("EURUSD", 1.0)
if self.closeBar > self.high:
self.SetHolding("EURUSD", 0.0)
运行时错误:TypeError:无法获取托管对象 在主干道的OnData。py:第50行 ::如果self.closeBar<;=自营低汇率和自营外汇[“欧元兑美元”]。价格>;self.slow.Current.Value: TypeError:无法获取托管对象
我遇到了一个类似的错误,并通过确保在if语句中尝试与<;比较的数据类型解决了这个问题>;,=etc属于同一类型
将要比较的指标重新定义为OnData中的本地指标,如下所示,所有指标都将是相同的数据类型:
定义数据(自身、数据):
相关问题 更多 >
编程相关推荐