For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/
Pandas Dataframe with Google Finance Data
-
I have been having problems importing data ever since Yahoo got rid of their Yahoo Finance API. I am trying to load a CSV data file from Google Finance into a dataframe and then into backtrader.
I use pandas "read_csv" to load the data into a dataframe, then btfeeds.PandasData to load it into backtrader:
dataframe = pd.read_csv('/path/to/twtr.csv') data = btfeeds.PandasData( dataname=dataframe, fromdate=(datetime.datetime(2013, 11, 7)), todate=(datetime.datetime(2017, 8, 22)) )
I receive the following error:
Starting Portfolio Value: 10000.00 Traceback (most recent call last): File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/technical/MACD Strategy/MACD_slope.py", line 185, in <module> thestrats = cerebro.run() File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/Quantstrats/lib/python3.4/site-packages/backtrader/cerebro.py", line 794, in run runstrat = self.runstrategies(iterstrat) File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/Quantstrats/lib/python3.4/site-packages/backtrader/cerebro.py", line 857, in runstrategies data.preload() File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/Quantstrats/lib/python3.4/site-packages/backtrader/feed.py", line 420, in preload while self.load(): File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/Quantstrats/lib/python3.4/site-packages/backtrader/feed.py", line 461, in load _loadret = self._load() File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/Quantstrats/lib/python3.4/site-packages/backtrader/feeds/pandafeed.py", line 221, in _load line[0] = self.p.dataname.ix[self._idx, colindex] File "/Users/m4punk/Documents/Coding/python/QuantTrading/Quant-Strategies/Quantstrats/lib/python3.4/site-packages/backtrader/linebuffer.py", line 222, in __setitem__ self.array[self.idx + ago] = value TypeError: a float is required [Finished in 1.5s with exit code 1]
-
@hexcrafter said in Pandas Dataframe with Google Finance Data:
self.array[self.idx + ago] = value TypeError: a float is required
Speaks for itself.
You have to tell
PandasData
where to find the values or to skip the ones that aren't there. With the parametersopen
,high
...See