Navigation

    Backtrader Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    1. Home
    2. Jordan Miranda-Hickey
    For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 5
    • Best 0
    • Groups 0

    Jordan Miranda-Hickey

    @Jordan Miranda-Hickey

    0
    Reputation
    2
    Profile views
    5
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Jordan Miranda-Hickey Unfollow Follow

    Latest posts made by Jordan Miranda-Hickey

    • RE: Using tradingview csv file for backtest

      @vypy1 how would i go about that?

      posted in General Code/Help
      Jordan Miranda-Hickey
      Jordan Miranda-Hickey
    • 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'

      posted in General Code/Help
      Jordan Miranda-Hickey
      Jordan Miranda-Hickey
    • 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

      posted in General Code/Help
      Jordan Miranda-Hickey
      Jordan Miranda-Hickey
    • 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'

      posted in General Code/Help
      Jordan Miranda-Hickey
      Jordan Miranda-Hickey
    • 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?

      posted in General Code/Help
      Jordan Miranda-Hickey
      Jordan Miranda-Hickey