@vypy1 how would i go about that?
Jordan Miranda-Hickey
@Jordan Miranda-Hickey
Latest posts made by Jordan Miranda-Hickey
-
RE: Using tradingview csv file for backtest
-
RE: Using tradingview csv file for backtest
@vypy1 said in Using tradingview csv file for backtest:
%Y-%m-%d %H:%M:%S
thank you so much
I'm such a muppet I've been opening up the CSV to view the format and didn't realise that the code was reading it differently to what excel was, but its now does not liking the symbol
ValueError: could not convert string to float: 'BYBIT:ADAUSDT'
-
RE: Using tradingview csv file for backtest
@vypy1 unfortunately no luck it still doesn't like it not entirely sure why i tried like this :
data = bt.feeds.GenericCSVData(dataname = 'data.csv',dtformat=('%d-%m-%Y %H:%M:%S'))
still the same error
-
RE: Using tradingview csv file for backtest
@vypy1 sure:
import backtrader as bt import backtrader.analyzers as btanalyzers import pandas as pd import matplotlib from datetime import datetime import qgrid from tvDatafeed import TvDatafeed, Interval #username = 'YourTradingViewUsername' #password = 'YourTradingViewPassword' tv = TvDatafeed() # index symboldata= tv.get_hist(symbol='ADAUSDT',exchange='BYBIT',interval=Interval.in_15_minute,n_bars=20000) symboldata.to_csv('data.csv') class MaCrossStrategy(bt.Strategy): params = ( ('fast_length', 10), ('slow_length', 50) ) def __init__(self): ma_fast = bt.ind.SMA(period = self.params.fast_length) ma_slow = bt.ind.SMA(period = self.params.slow_length) self.crossover = bt.ind.CrossOver(ma_fast, ma_slow) def next(self): if not self.position: if self.crossover > 0: self.buy() elif self.crossover < 0: self.close() cerebro = bt.Cerebro() #data = bt.feeds.YahooFinanceData(dataname = 'BTC', fromdate = datetime(2021, 1, 1), todate = datetime(2022, 12, 1)) data = bt.feeds.GenericCSVData(dataname = 'data.csv',dtformat=('%d-%m-%y')) cerebro.adddata(data) cerebro.broker.setcash(1000000.0) cerebro.addsizer(bt.sizers.PercentSizer, percents = 10) cerebro.addanalyzer(btanalyzers.SharpeRatio, _name = "sharpe") cerebro.addanalyzer(btanalyzers.DrawDown, _name = "drawdown") cerebro.addanalyzer(btanalyzers.Returns, _name = "returns") back = cerebro.run() par_list = [[x[0].params.fast_length, x[0].params.slow_length, x[0].analyzers.returns.get_analysis()['rnorm100'], x[0].analyzers.drawdown.get_analysis()['max']['drawdown'], x[0].analyzers.sharpe.get_analysis()['sharperatio'] ] for x in back] par_df = pd.DataFrame(par_list, columns = ['length_fast', 'length_slow', 'return', 'dd', 'sharpe']) qgrid.show_grid(par_df)
however when i run it i get this error:
Traceback (most recent call last):
File "c:\Users\Jordan\Desktop\backtester\backtest.py", line 42, in <module>
cerebro.adddata(data)
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib\site-packages\backtrader\cerebro.py", line 757, in adddata
data._id = next(self._dataid)
AttributeError: 'NoneType' object has no attribute '_id'
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib\site-packages\backtrader\cerebro.py", line 1212, in runstrategies
data.preload()
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib\site-packages\backtrader\feed.py", line 688, in preload
while self.load():
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib\site-packages\backtrader\feed.py", line 479, in load
_loadret = self._load()
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib\site-packages\backtrader\feed.py", line 710, in _load
return self._loadline(linetokens)
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib\site-packages\backtrader\feeds\csvgeneric.py", line 114, in _loadline
dt = datetime.strptime(dtfield, dtformat)
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib_strptime.py", line 568, in _strptime_datetime
tt, fraction, gmtoff_fraction = _strptime(data_string, format)
File "C:\Users\Jordan\AppData\Local\Programs\Python\Python310\lib_strptime.py", line 349, in _strptime
raise ValueError("time data %r does not match format %r" %
ValueError: time data '2022-10-01 01:00:00' does not match format '%d-%m-%y' -
Using tradingview csv file for backtest
Hi all,
I'm trying to use a tradingview CSV export for backtesting but I cant seem to get the data correct, I keep getting a value error on the time date format wondering if anyone has done it before?