Handel mit Python

 

Ich bitte jemanden, eine einfache Handelsstrategie vorzuschlagen (wissentliches Verlieren, nicht der Punkt).

Wenn die Nachricht ist gesund, das heißt, wird mehr oder weniger deutlich dargelegt, was getan werden muss, hier zu implementieren, in diesem Thread, Handel auf dieser Strategie, in Python.

Ich freue mich )

 

Ich beginne mit einem Code, der sich als nützlich erweisen könnte (ich plane, mit dem Zeitrahmen M5 zu arbeiten, Berechnungen durchzuführen und alle 5 Minuten eine Entscheidung zu treffen):

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__()


Dank dieser Klasse kann man bequem protokollieren, was passiert.

Schreiben Sie z. B. etwas wie dies

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

und erhalten eine Ausgabe wie:

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

Sie werden es auch brauchen:

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__()

Die Schrift hier ist nicht einzeilig, so dass die Formatierung ein bisschen daneben gegangen ist, aber das ist nicht der Punkt

 
Und was wäre der Vorteil im Vergleich zu einer MQL-Implementierung?
 
Mikhael1983:


Bitte fügen Sie den Code korrekt ein: Drücken Sie zuerst auf Code und geben Sie dann den Code in das Pop-up-Fenster ein.

 
Ich frage mich, wie der Plan ist, das Handelssystem auf Python zu testen?
 
Aleksey Nikolayev #:
Ich frage mich, wie der Plan ist, ein Handelssystem in Python zu testen?

Suchen Sie nach Artikeln, die das WortPython enthalten.

 
Mikhael1983:

Ich bitte jemanden, eine einfache Handelsstrategie vorzuschlagen (wissentliches Verlieren, nicht der Punkt).

Wenn die Nachricht ist gesund, das heißt, wird mehr oder weniger deutlich dargelegt, was getan werden muss, hier zu implementieren, in diesem Thread, Handel auf dieser Strategie, in Python.

Ich warte)

Schreiben Sie den Standard-MACD-Expertenberater um, der mit MT5 geliefert wird. Es ist praktisch, dies in allen Phasen zu überprüfen.

Ich werde konkreter nach der beabsichtigten Art der Testoptimierung fragen. Handelt es sich um einen selbst geschriebenen Tester oder um einen Drittanbieter-Tester, der auf Python basiert? Integration mit MQL5 über Dateien, Sockets usw.?

 

Der Handel mit Python ist gut...

Aber Python ist gut für die Datenanalyse, aber nicht für den Handel.

Wenn Sie die MACD-Option in Betracht ziehen, auf python:

- es ist einfach, Angebote zu laden;

- MACD-Daten können leicht berechnet werden;

Dann nehmen Sie bei jedem neuen Balken eine Bedingung, zum Beispiel: MACD-Wert und Signallinie, Steilheit der langsamen und schnellen Linie, Preisbewegung weg von der langsamen Linie...

Lassen Sie die Bedingung durch die Historie laufen und zeigen Sie Statistiken plus/minus der angegebenen Formation für einen bestimmten Zeitraum an. Alles andere (Eröffnen/Schließen/Abschließen von Geschäften) sollte in MQL erledigt werden.

Sie müssen kein Prüfgerät erfinden - wir haben ein fertiges Gerät.

In Python werden die Anführungszeichen und Indikatoren in SQLite gespeichert. MQL-Python-Verbindung über Socket, Dateien oder Datenbank (Socket ist besser).

Alles...

 

Python - nur für die Datenanalyse mit der Möglichkeit, Analyseergebnisse als 2D(3D)-Grafiken anzuzeigen.

copy_rates_from ist für eine vollständige Datenanalyse nicht ausreichend. Wenn es möglich wäre, Indikatordaten (einschließlich benutzerdefinierter Indikatoren) zu extrahieren, würde sich der Analysering schließen.

Und der Handel über Python ist IMHO ein PR-Schachzug von MQL5.

 
Mikhael1983:

Ich werde diese Strategie hier in diesem Thread in Python umsetzen.

Sie haben vergessen, "ruhig auf den Gewinn warten" hinzuzufügen)
Grund der Beschwerde: