Le trading avec Python

 

Je demande à quelqu'un de me suggérer une stratégie commerciale simple (perdre sciemment, ce n'est pas le sujet).

Si le message est sain, c'est-à-dire qu'il exposera plus ou moins clairement ce qu'il faut faire, mettre en œuvre ici, dans ce fil, échanger sur cette stratégie, en Python.

Je suis impatient)

 

Je vais commencer par un morceau de code, qui peut s'avérer utile (je prévois de travailler avec une échelle de temps M5, d'effectuer des calculs et de prendre une décision toutes les 5 minutes) :

import datetime as dt


class date_time(dt.datetime):
   
    '''
    Класс описывает отсчёт даты и времени.
    Представляет собой расширение класса datetime библиотеки datetime. 
    '''
   
    @property
    def M5_view(self):
        minute = (self.minute//5)*5
        if minute < 10:
            _minute = '0'+str(minute)
        else:
            _minute = str(minute)
        return self.strftime('%Y%m%d%H')+_minute
   
    @property
    def nice_view(self):
        return self.strftime('%Y.%m.%d %H:%M:%S')
   
    def __str__(self):
        return self.M5_view
   
    def __repr__(self):
        return self.__str__()


Grâce à cette classe, il sera pratique d'enregistrer ce qui se passe.

Par exemple, écrivez quelque chose comme ceci

dt_stamp_read = ...
print('\n'+date_time.now().nice_view, '- начал работу, планирую прочитать файлы с ценами в {}'.format(dt_stamp_read.nice_view))

et obtenir un résultat comme :

2021.12.11 22:41:23 - начал работу, планирую прочитать файлы с ценами в 2021.12.11 22:45:30
 

Vous en aurez besoin aussi :

class Bar:
    
    '''
    Класс описывает бар, то есть структуру данных,
    удобную для описания изменения цен финансовых инструментов на интервалах времени.  
    '''
    
    def __init__(self, instrument, time_frame, time_close, price_open, price_low, price_high, price_close, pips_value):
        self.instrument = instrument
        self.time_frame = time_frame   
        self.time_close = time_close
        self.time_open = self.time_close - dt.timedelta(minutes=self.time_frame)
        self.price_open = price_open
        self.price_low = price_low
        self.price_high = price_high
        self.price_close = price_close
        self.w = pips_value
    
    def __str__(self):
        str1 = '(Bar: instrument={} time_frame={} time_open={} time_close={}\n'
        str2 = 'open={} low={} high={} close={} pips_value={})'
        return (str1+str2).format(self.instrument, self.time_frame, self.time_open.M5_view, self.time_close.M5_view,
                                  self.price_open, self.price_low, self.price_high, self.price_close, self.w)
    
    def __repr__(self):
        return self.__str__()

La police ici n'est pas monospaced, donc visuellement le formatage a un peu dérapé, mais ce n'est pas la question.

 
Et quel serait l'avantage par rapport à une implémentation MQL ?
 
Mikhael1983:


Veuillez insérer le code correctement : appuyez d'abord sur Code, puis insérez le code dans la fenêtre qui s'ouvre.

 
Je me demande comment le plan est de tester le système de trading sur python ?
 
Aleksey Nikolayev #:
Je me demande comment il est prévu de tester un système de trading en Python ?

Recherchez des articles utilisant le motPython.

 
Mikhael1983:

Je demande à quelqu'un de me suggérer une stratégie commerciale simple (perdre sciemment, ce n'est pas le sujet).

Si le message est sain, c'est-à-dire qu'il exposera plus ou moins clairement ce qu'il faut faire, mettre en œuvre ici, dans ce fil, échanger sur cette stratégie, en Python.

J'attends)

Réécriture de l'Expert Advisor MACD standard fourni avec MT5. Il sera pratique de le vérifier à toutes les étapes.

Je poserai des questions plus spécifiques sur la façon dont vous envisagez de tester et d'optimiser. S'agit-il d'un testeur auto-écrit ou d'un testeur tiers basé sur Python ? Intégration avec MQL5 à travers des fichiers, des sockets, etc ?

 

Le commerce avec python est bon...

Mais python est bon pour l'analyse des données, mais pas pour le trading.

Si vous considérez l'option MACD, sur python :

- il est facile de charger des devis ;

- Les données MACD peuvent être facilement calculées ;

Ensuite, sur chaque nouvelle barre, prenez une condition, par exemple : valeur et ligne de signal MACD, pente de la ligne lente et rapide, mouvement du prix s'éloignant de la ligne lente...

Exécuter la condition à travers l'historique et montrer les statistiques plus/moins de la formation spécifiée pour une certaine période. Tout le reste (ouverture/fermeture/prise de position) doit être fait en MQL.

Vous n'avez pas besoin d'inventer un testeur - nous en avons un tout prêt.

En Python, les cours et les indicateurs sont stockés sur SQLite. Connexion MQL-Python par socket, fichiers ou base de données (le socket est préférable).

Tout...

 

Python - uniquement pour l'analyse des données, avec la possibilité d'afficher les résultats de l'analyse sous forme de graphiques 2d(3d).

copy_rates_from n'est pas suffisant pour une analyse complète des données. S'il était possible d'extraire les données des indicateurs (y compris les indicateurs personnalisés), l'anneau d'analyse serait fermé.

Et le trading via python est, à mon avis, un geste de relations publiques de la part de MQL5.

 
Mikhael1983:

Je vais mettre en œuvre cette stratégie ici dans ce fil de discussion en Python.

Vous avez oublié d'ajouter "attendre tranquillement le profit")