Profilo di garetjax1983

Nome garetjax1983
Indirizzo email n/a
Messaggi4
  • Re: Errore classe
    Forum >> Principianti
    Ciao e grazie mille!
    Effettivamente non avevo importato la classe (essendo un principiante e ottimista credevo, non so per quale motivo, che essendo tutto nello stesso folder la recuperasse da solo...mi sbagliavo!)




    Però ora sono andato oltre e mi sono trovato davanti a un ulteriore errore:




    ImportError: cannot import name 'warnings' from 'matplotlib.dates' (C:\Users\Anaconda3\envs\spyder-cf\lib\site-packages\matplotlib\dates.py)




    Che non so come risolvere! Dove ho sbagliato questa volta?

    Cmq tornando alle considerazioni precedenti, effettivamente ci sta che sia un linguaggio di programmazione un pochino datato perchè mutuato da un manuale del 2017, quindi non proprio nuovissimo. Per quanto riguarda invece il rispetto delle PEP, oltre ad aver ricavato dal manuale, mi sono arrangiato come potevo quindi chiedo clemenza...sperando di migliorare in un futuro non troppo lontano




    Grazie






  • Re: Errore classe
    Forum >> Principianti
    Ciao e grazie mille!
    Effettivamente non avevo importato la classe (essendo un principiante e ottimista credevo, non so per quale motivo, che essendo tutto nello stesso folder la recuperasse da solo...mi sbagliavo!)




    Però ora sono andato oltre e mi sono trovato davanti a un ulteriore errore:




    ImportError: cannot import name 'warnings' from 'matplotlib.dates' (C:\Users\Anaconda3\envs\spyder-cf\lib\site-packages\matplotlib\dates.py)




    Che non so come risolvere! Dove ho sbagliato questa volta?

    Cmq tornando alle considerazioni precedenti, effettivamente ci sta che sia un linguaggio di programmazione un pochino datato perchè mutuato da un manuale del 2017, quindi non proprio nuovissimo. Per quanto riguarda invece il rispetto delle PEP, oltre ad aver ricavato dal manuale, mi sono arrangiato come potevo quindi chiedo clemenza...sperando di migliorare in un futuro non troppo lontano




    Grazie






  • Errore classe
    Forum >> Principianti
    Ciao a tutti,
    sto approcciando python perchè mi sembra il linguaggio più adatto e flessibile per l'analisi finanziaria.

    Ho creato così alcuni script che dovrebbero, tramite una strategia definita, importare i dati storici di un'azione (in questo caso Enel) scaricata sul mio desktop, processarli e dare un feedback preciso delle operazioni e della resa della strategia scelta. Per gli script mi sono basato su backtrader, che sembra essere completo e molto funzionale ai miei obiettivi.

    Ma...non tutto è andato liscio!




    NameError: name 'Cross Medie' is not defined




    Ho definito la strategia mediante una classe che, una volta richiamata sul main, non viene riconosciuta.




    Questo il main:





    from __future__ import (absolute_import, division, print_function, unicode_literals)




    import backtrader as bt

    import backtrader.indicators as btind

    import backtrader.analyzers as btanalyzers

    import datetime

    import os.path

    import sys




    if __name__ == '__main__':




    cerebro = bt.Cerebro()



    cerebro.addstrategy(Cross Medie)



    modpath = os.path.basename(os.path.abspath(sys.argv0))

    datapath = os.path.join(modpath, 'C:/Users/marco.fava/Desktop/ENEL.csv')



    data = bt.feeds.YahooFinanceCSVData(

    dataname=datapath,

    fromdate=datetime.datetime(2021, 7, 1),

    todate=datetime.datetime(2022, 8, 1),

    reverse=False)



    cerebro.adddata(data)



    cerebro.broker.setcash(100000.0)



    cerebro.addsizer(bt.sizers.FixedSize, stake=1000)



    cerebro.broker.setcommission(commission=0.0002)



    print('Valore iniziale Portafoglio: %.2f' % cerebro.broker.getvalue())



    cerebro.run()



    print('Valore finale Portafoglio: %.2f' % cerebro.broker.getvalue())



    cerebro.plot()




    e della strategia:





    import backtrader as bt

    import backtrader.indicators as btind

    import backtrader.analyzers as btanalyzers

    import datetime

    import os.path

    import sys




    class Cross Medie(bt.Strategy) :

    params = (('Med_vel', 50), ('Med_len', 100))



    def __init__(self):




    self.sma_vel = btind.SMA(period=self.p.Med_vel)

    self.sma_len = btind.SMA(period=self.p.Med_len)



    self.buysig = btind.CrossOver(self.sma_vel, self.sma_len)



    self.dataclose = self.datas0.close




    Sicuramente c'è un errore, altrimenti python non protesterebbe...

    Mi potete aiutare nel trovarlo?

    Grazie mille!


  • Errore classe
    Forum >> Principianti
    Ciao a tutti,
    sto approcciando python perchè mi sembra il linguaggio più adatto e flessibile per l'analisi finanziaria.

    Ho creato così alcuni script che dovrebbero, tramite una strategia definita, importare i dati storici di un'azione (in questo caso Enel) scaricata sul mio desktop, processarli e dare un feedback preciso delle operazioni e della resa della strategia scelta. Per gli script mi sono basato su backtrader, che sembra essere completo e molto funzionale ai miei obiettivi.

    Ma...non tutto è andato liscio!




    NameError: name 'Cross Medie' is not defined




    Ho definito la strategia mediante una classe che, una volta richiamata sul main, non viene riconosciuta.




    Questo il main:





    from __future__ import (absolute_import, division, print_function, unicode_literals)




    import backtrader as bt

    import backtrader.indicators as btind

    import backtrader.analyzers as btanalyzers

    import datetime

    import os.path

    import sys




    if __name__ == '__main__':




    cerebro = bt.Cerebro()



    cerebro.addstrategy(Cross Medie)



    modpath = os.path.basename(os.path.abspath(sys.argv0))

    datapath = os.path.join(modpath, 'C:/Users/marco.fava/Desktop/ENEL.csv')



    data = bt.feeds.YahooFinanceCSVData(

    dataname=datapath,

    fromdate=datetime.datetime(2021, 7, 1),

    todate=datetime.datetime(2022, 8, 1),

    reverse=False)



    cerebro.adddata(data)



    cerebro.broker.setcash(100000.0)



    cerebro.addsizer(bt.sizers.FixedSize, stake=1000)



    cerebro.broker.setcommission(commission=0.0002)



    print('Valore iniziale Portafoglio: %.2f' % cerebro.broker.getvalue())



    cerebro.run()



    print('Valore finale Portafoglio: %.2f' % cerebro.broker.getvalue())



    cerebro.plot()




    e della strategia:





    import backtrader as bt

    import backtrader.indicators as btind

    import backtrader.analyzers as btanalyzers

    import datetime

    import os.path

    import sys




    class Cross Medie(bt.Strategy) :

    params = (('Med_vel', 50), ('Med_len', 100))



    def __init__(self):




    self.sma_vel = btind.SMA(period=self.p.Med_vel)

    self.sma_len = btind.SMA(period=self.p.Med_len)



    self.buysig = btind.CrossOver(self.sma_vel, self.sma_len)



    self.dataclose = self.datas0.close




    Sicuramente c'è un errore, altrimenti python non protesterebbe...

    Mi potete aiutare nel trovarlo?

    Grazie mille!