[PYTHON] Backtrader Comment importer un indicateur depuis un autre fichier

Importation d'indicateurs personnalisés

En l'état, j'ai écrit une classe d'indicateur personnalisée dans le même script pour l'explication. Cependant, il est plus pratique d'écrire uniquement la classe d'indicateur personnalisé dans un fichier py séparé et de l'utiliser séparément du script de stratégie.

Si le nom de fichier de l'indicateur personnalisé est ** customindicator.py **, il sera au début de la stratégie.

ʻImporter l'indicateur personnalisé en tant que cind` (tout nom descriptif)

Dans la méthode init de la classe de stratégie

self.myind1 = cind.MyStochastics1(self.data)

Écrire.

Placez customindicator.py dans le même répertoire que le script de stratégie. Si vous utilisez le notebook Jupyter et que vous conservez les paramètres par défaut, il s'agit de C: \ Users \ username \.

customindicator.py



import backtrader as bt


class MyStochastic1(bt.Indicator):
    
    lines = ('k', 'd', ) 
    params = (
        ('k_period', 14), 
        ('d_period', 3),  #Virgule à la fin du taple(、)Mettre en
    )
    
    
    def __init__(self):
        highest = bt.ind.Highest(self.data, period=self.p.k_period)
        lowest = bt.ind.Lowest(self.data, period=self.p.k_period)        
       
        self.lines.k = k = (self.data - lowest) / (highest - lowest)    
        self.lines.d = bt.ind.SMA(k, period=self.p.d_period)

sto2.py


%matplotlib notebook
from __future__ import (absolute_import, division, print_function,
                        unicode_literals)

import datetime  
import os.path  
import sys 
import backtrader as bt 
import customindicator as cind #

class TestStrategy(bt.Strategy):
    def __init__(self):
        
        self.myind1 = cind.MyStochastics1(self.data)   
        
        
if __name__ == '__main__':
    cerebro = bt.Cerebro()
    cerebro.addstrategy(TestStrategy)

    datapath = 'C:\\Users\\XXXX\\orcl-1995-2014.txt'

    # Create a Data Feed
    data = bt.feeds.YahooFinanceCSVData(
        dataname=datapath,        
        fromdate=datetime.datetime(2000, 1, 1),
        todate=datetime.datetime(2000, 12, 31),
        reverse=False)

    cerebro.adddata(data)
    cerebro.run(stdstats=False)
    cerebro.plot(style='candle')

Recommended Posts

Backtrader Comment importer un indicateur depuis un autre fichier
Comment convertir Python en fichier exe
Comment créer un indicateur personnalisé Backtrader
Importer un fichier Excel depuis Python (enregistré dans DB)
Comment créer un article à partir de la ligne de commande
Comment transformer un fichier .py en fichier .exe
Comment utiliser NUITKA-Utilities hinted-compilation pour créer facilement un fichier exécutable à partir d'un script Python
[Python] Une autre façon d'importer
Comment importer des fichiers où vous le souhaitez en Python
Comment générer une clé publique à partir d'une clé privée SSH
[Python Kivy] Comment créer un fichier exe avec pyinstaller
[Python] Comment générer une table pandas dans un fichier Excel
Comment lire un fichier Excel (.xlsx) avec Pandas [Python]
Comment créer un fichier ISO (image CD) sous Linux
Comment coller un fichier CSV dans un fichier Excel à l'aide de Pandas
Comment utiliser SWIG de WAF
[Django] Comment lire les variables / constantes définies dans un fichier externe
Comment lancer Explorer à partir de WSL
Comment résoudre l'erreur survenue dans toimage (à partir de PIL.Image import fromarray as toimage)
Comment accéder à wikipedia depuis python
Python pour passer d'une autre langue
Comment obtenir un ingénieur de la trentaine
Comment convertir .mgz en .nii.gz
Comment créer un fichier de configuration
Comment lire les variables d'environnement à partir d'un fichier .env avec PyCharm (pour Mac)
Comment créer une application à partir du cloud à l'aide du framework Web Django
Utilisez BeautifulSoup pour extraire un lien contenant une chaîne d'un fichier HTML
[Python] Comment convertir un fichier db en csv
[Note] Lire un fichier depuis un autre répertoire
Comment convertir facilement le format de Markdown
Script pour générer un répertoire à partir d'un fichier json
python3 Comment installer un module externe
Comment mettre à jour Google Sheets à partir de Python
Comment créer un environnement NVIDIA Docker
Comment utiliser le multicœur du point de vue de plusieurs langues
[Python] Comment utiliser import sys sys.argv
Comment accéder à RDS depuis Lambda (python)
Comment faire fonctionner Linux depuis la console
Comment créer un référentiel à partir d'un média
Comment accéder à la banque de données de l'extérieur
Comment insérer par lots un fichier CSV vers un hyperfichier Tableau avec la commande COPY de type PostgreSQL
[Python] Comment supprimer facilement un processus enfant lancé par multiprocessus à partir d'un autre processus
J'ai créé un package pour créer un fichier exécutable à partir du code source Hy
Comment lire un fichier CSV avec Python 2/3
Comment déguiser un fichier ZIP en fichier PNG
Comment créer un pilote de périphérique Linux intégré (11)
Comment faire correspondre WTForms TextArea à la suppression de fichier
Comment créer un pilote de périphérique Linux intégré (8)
Comment ouvrir un navigateur Web à partir de python
Comment créer un pilote de périphérique Linux intégré (1)
Comment créer un pilote de périphérique Linux intégré (4)
Comment créer un objet fonction à partir d'une chaîne
Étude de Python Hour7: Comment utiliser les classes
Résumé de la façon d'importer des fichiers dans Python 3
Comment obtenir les résultats de l'identifiant dans Celery
Du dessin de fichier au graphique en Python. Élémentaire élémentaire
Comment créer un fichier JSON en Python
Comment créer un pilote de périphérique Linux intégré (7)