For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/
Having trouble understanding how to get VWR analyzer to work
-
I am new to this and the examples for the VWR analyzer in the help documentation are too complicated for me to understand. I have been able to run this code:
from __future__ import (absolute_import, division, print_function, unicode_literals) from datetime import datetime import backtrader as bt import backtrader.analyzers as btanalyzers # Create a Strategy class TestStrategy(bt.Strategy): def log(self, txt, dt=None): ''' Logging function for this strategy''' dt = dt or self.datas[0].datetime.date(0) print('%s, %s' % (dt.isoformat(), txt)) def __init__(self): # Keep a reference to the "close" line in the data[0] dataseries self.dataclose = self.datas[0].close def next(self): # Simply log the closing price of the series from the reference self.log('Close, %.2f' % self.dataclose[0]) if __name__ == '__main__': # Create a cerebro enity cerebro = bt.Cerebro() data = bt.feeds.YahooFinanceData(dataname='SPY', fromdate=datetime(2019, 1, 1), todate=datetime(2019, 12, 31)) cerebro.adddata(data) # Add a strategy cerebro.addstrategy(TestStrategy) # Analyzer cerebro.addanalyzer(btanalyzers.VWR, _name='myvwr') thestrats = cerebro.run() thestrat = thestrats[0] print('VWR: ', thestrat.analyzers.myvwr.get_analysis()) # Plot the result cerebro.plot()
I can change 'SPY' to any other ticker symbol... For example Apple... or Microsoft... or whatever. I can change the date range easy enough too. But I can't figure out how to get a value for VWR other than "0." At first I didnt realize I needed a strategy in order to get VWR but then someone told me I needed a strategy to get VWR. So I made a strategy as you can see above... but it still shows 0 for VWR.
-
You have no trades, your VWR will be 0.