Machine Learning auf einen EA setzen - Seite 3

 
Kurt12345:

Mein Diagramm über 10 Jahre mit fester Lotgröße von 0,1 findes du im Anhang.

Von den Indikatoren her ist dies sehr komplex da ich bestimmt 50ig Ideen mit implementiert habe wovon ich 40ig wieder raus genommen habe. MA´s brachten meiner Strategie glaube keine höheren Gewinne, ADX ist drin Stoch..,
sowie viele automatischen Anpassungen.

Aber wie gesagt von 2003-2005 ist die Grafik genau andersherum, würde auch gern den genaueren Grund dafür wissen aber na ja....

Hast Du mal die Verlusttrades von 2003-2005 untersucht? Wieviele Trades macht Dein EA pro Monat?
Das ist mein nächster Schritt, die Verlusttrades zu untersuchen. Es sind relativ wenige. Leider hilft es nicht, einfach den Stopp zu verringern.
Die Zahlen werden nicht reichen, dazu etwas aus dem Log zu extrahieren. Ich muss mir jeden einzelnen im Chart ansehen und dazu die News checken, an die man leider nicht so schnell herankommt wie an die Ticks in der MT-History. Wie soll ich noch herausfinden, wieso der EURUSD im Februar über einige Tage abverkauft wurde? Es ist ja sogar in einer aktuellen Situation schwierig, das Verhalten zu verstehen, geschweige denn auf Stunden oder Tage vorherzusehen. Manchmal haben schwache Meldungen eine starke Wirkung, manchmal ist es umgekehrt. Oft liegt es ggfs. überhaupt nicht an irgendwelchen Meldungen oder aktuellen Daten. Selbst die Zentralbanker und Geldpolitiker wissen ja nicht, was Ihre Entscheidungen wann für wie lange bewirken werden. Daher sehen die ja auch alle so aus, wie sie aussehen. Man muss quasi das Ungewisse erkennen. 
Und hast Du mal mit der Anpassung Deiner Lotgröße gespielt? Arbeitest Du mit mehreren Position gleichzeitig oder mit einem Netting-Konto?

 
Carl Schreiber:
Ich teste, wenn, nicht in einem  Zeitraum, sondern schau mir, wie er sich verhält in einem Trend (stark und schwach), Seitwärtsbewegung und jeweils die Übergänge. Ich will wissen wo entstehen welche Verluste.

Das werde ich auch mal machen; stimmt, sich feste Zeiträume rauszunehmen erscheint nicht sinnvoll. 

 
liju1970:
Die Börse ist nicht rational und zusätzlich hat man mächtige Mitspieler (Banken, Investmentgesellschaften, etc.), welche uns schon rein technisch überlegen sind (Stichwort: Hochfrequenzhandel).
Deshalb kannst Du rein IT-technisch keinen Vorteil haben.
Letztlich geht es nur um Wahrscheinlichkeiten und ein paar Kuchenkrümel. Vielleicht kommt man mit dem Anwenden einer Art Spieltheorie weiter. Damit habe ich mich aber noch nicht auseinandergesetzt.

Ja, richtig.
Das will ich testen, ein Freund brachte mich die Tage drauf und seitdem macht für mich das Hedging das erst mal Sinn: Immer wenn ich im SL lande, die Position in die Gegenrichtung verdoppeln.
Eine Verlustposition frisst bei mir den Win von 3-4 WinTrades auf, ist also relativ hoch; dann will ich jetzt mal die Lotsize verdoppeln auf die andere Richtung. Wenn es in den nächsten SL geht, halt wieder verdoppeln; letztlich brauche ich dann nur einen WinTrade, um wieder auf 0 zu sein. Ich hoffe, ich komme die Tage dazu. Hat das hier jemand schon ausprobiert?

 
Christian Linden:

Hast Du mal die Verlusttrades von 2003-2005 untersucht? Wieviele Trades macht Dein EA pro Monat?
Das ist mein nächster Schritt, die Verlusttrades zu untersuchen. Es sind relativ wenige. Leider hilft es nicht, einfach den Stopp zu verringern.
Die Zahlen werden nicht reichen, dazu etwas aus dem Log zu extrahieren. Ich muss mir jeden einzelnen im Chart ansehen und dazu die News checken, an die man leider nicht so schnell herankommt wie an die Ticks in der MT-History. Wie soll ich noch herausfinden, wieso der EURUSD im Februar über einige Tage abverkauft wurde? Es ist ja sogar in einer aktuellen Situation schwierig, das Verhalten zu verstehen, geschweige denn auf Stunden oder Tage vorherzusehen. Manchmal haben schwache Meldungen eine starke Wirkung, manchmal ist es umgekehrt. Oft liegt es ggfs. überhaupt nicht an irgendwelchen Meldungen oder aktuellen Daten. Selbst die Zentralbanker und Geldpolitiker wissen ja nicht, was Ihre Entscheidungen wann für wie lange bewirken werden. Daher sehen die ja auch alle so aus, wie sie aussehen. Man muss quasi das Ungewisse erkennen. 
Und hast Du mal mit der Anpassung Deiner Lotgröße gespielt? Arbeitest Du mit mehreren Position gleichzeitig oder mit einem Netting-Konto?

Ich hatte mir einige Verlust Trades von 2003 in den Charts angeschaut und da wars halt so das eine Swing Strategie eher funktioniert hätte als meine Breakout Strategie.
Da ich eine Strategie haben wollte die einen sehr kleinen Draw Down haben wollte bassiert die Stategie darauf das nur eine Position eröffnet wird. Wenn ich mit variablen Lots arbeite und mit z.B. 1 Prozent Risiko geht die Gewinn Kurve natürlich exponentiell nach oben.

 
Kurt12345:

Ich hatte mir einige Verlust Trades von 2003 in den Charts angeschaut und da wars halt so das eine Swing Strategie eher funktioniert hätte als meine Breakout Strategie.
Da ich eine Strategie haben wollte die einen sehr kleinen Draw Down haben wollte bassiert die Stategie darauf das nur eine Position eröffnet wird. Wenn ich mit variablen Lots arbeite und mit z.B. 1 Prozent Risiko geht die Gewinn Kurve natürlich exponentiell nach oben.

Eine Breakout-Strategie sollte doch recht knappe Stopps haben, nicht wahr? Dann sollten die Verluste doch sehr begrenzt ausfallen? Was machst Du, wenn Du im SL landest? Direkt wieder in die nächste Position oder Pause?

 
Carl Schreiber:
Ich teste, wenn, nicht in einem  Zeitraum, sondern schau mir, wie er sich verhält in einem Trend (stark und schwach), Seitwärtsbewegung und jeweils die Übergänge. Ich will wissen wo entstehen welche Verluste.

Das ist eine sehr gute Idee, fragt sich nur wie du z.B. eine Seitwärtsbewegung definieren willst, hatte in meinen EA unzällige versuche unternommen Seitswärtsphasen anders zu handeln als Trends, dies ergab aber in den Backtest immer ein schlechteres Ergebisse

da man eigentlich nie weiß ob es nur ein kurzes Ausbruch aus der Seitwärtsphase ist oder ein Trend beginnt. Ebenso was wie ein Trend aussieht kann in einer höheren Zeitphase als Seitwärtsphase gesehen werden :(

 
Christian Linden:

Eine Breakout-Strategie sollte doch recht knappe Stopps haben, nicht wahr? Dann sollten die Verluste doch sehr begrenzt ausfallen? Was machst Du, wenn Du im SL landest? Direkt wieder in die nächste Position oder Pause?

Mein SL ist sehr Variable gestaltet erste hatte ich es anhand von ATR versucht dies brachte aber kein weiteren Vorteil. Somit ist der SL Abhängig von der Dauer der Offenen Position sowie des ZIGZag Indikators und noch einige Variablen.
Beim Erreichen des SL wird nicht gleich wieder eine neue Position eröffnet. (Könnte ich aber mal dazu programmieren und testen ;D). Beim Rücksetzen und erreichen des Break Even hatte ich das mal versucht brachte aber keine Verbesserung.

 
Kurt12345:

Mein SL ist sehr Variable gestaltet erste hatte ich es anhand von ATR versucht dies brachte aber kein weiteren Vorteil. Somit ist der SL Abhängig von der Dauer der Offenen Position sowie des ZIGZag Indikators und noch einige Variablen.
Beim Erreichen des SL wird nicht gleich wieder eine neue Position eröffnet. (Könnte ich aber mal dazu programmieren und testen ;D). Beim Rücksetzen und erreichen des Break Even hatte ich das mal versucht brachte aber keine Verbesserung.

SL abhängig von der Dauer der geöffneten Position , sehr interessant!
 



Hi,

ich hab' mir das jetzt mal angesehen, aber es kommt leider Murx raus was datetime angeht:

from datetime import datetime
import MetaTrader5 as mt5
# display data on the MetaTrader 5 package
print("MetaTrader5 package author: ",mt5.__author__)
print("MetaTrader5 package version: ",mt5.__version__)

# import the 'pandas' module for displaying data obtained in the tabular form
import pandas as pd
pd.set_option('display.max_columns', 500) # number of columns to be displayed
pd.set_option('display.width', 1500)      # max table width to display
# import pytz module for working with time zone
import pytz

# establish connection to MetaTrader 5 terminal
if not mt5.initialize():
    print("initialize() failed, error code =",mt5.last_error())
    quit()

# set time zone to UTC
timezone = pytz.timezone("Etc/UTC")
# create 'datetime' object in UTC time zone to avoid the implementation of a local time zone offset
utc_from = datetime(2021, 4, 12, 9, 0, 0, tzinfo=timezone)
# get 10 EURUSD H4 bars starting from 01.10.2020 in UTC time zone
rates = mt5.copy_rates_from("Ger40", mt5.TIMEFRAME_M1, utc_from, 10)

# shut down connection to the MetaTrader 5 terminal
mt5.shutdown()
# display each element of obtained data in a new line
print("utc_from: ",utc_from)
print("Display obtained data 'as is'")
for rate in rates:
    print(rate)

# create DataFrame out of the obtained data
rates_frame = pd.DataFrame(rates)
# convert time in seconds into the datetime format
rates_frame['time']=pd.to_datetime(rates_frame['time'], unit='s')

# display data
print("\nDisplay dataframe with data")
print(rates_frame)

Wie man sieht, wird die Zeit, ab der ich rates haben will, richtig gesetzt:

C:\Users\User\python>python python_test3.py
MetaTrader5 package author:  MetaQuotes Ltd.
MetaTrader5 package version:  5.0.36
utc_from:  2021-04-12 09:00:00+00:00
Display obtained data 'as is'
(1632826080, 15446.8, 15452.81, 15446.59, 15449.81, 55, 75, 0)

Display dataframe with data
                 time     open      high       low     close  tick_volume  spread  real_volume
0 2021-09-28 10:48:00  15446.8  15452.81  15446.59  15449.81           55      75            0

Wieso wird mir dann nur eine (anstatt geforderter 10) rates angegeben und die dazu vom 28.9. anstatt vom 4.12.?

Dank & Grüße,
Christian

 
Ah funktioniert das mit dem initialise() bei Dir? Ich hatte gestern da ein Problem. Also konnte ich überhaupt keine Zeitreihen von Metatrader in Jupyter Python laden...
Es war aber auf der Website die ich gefunden habe anders dargestellt. Werde es bei nächster Gelegenheit mal so probieren wie Du.
Falls es gar nicht geht werde ich csvs schreiben, ob mit SQL oder mit Files mal sehen. Die kann man dann in Jupyter importieren.

Dann sehe ich wieder Einiges an Grundlagen auf mich zukommen und habe da aber einen guten YouTube Kanal gefunden: Code mit Flow.
Falls es Dich interessiert, mach auf dem Kanal mal die Playlistansicht rein, er hat ältere Playlists wo er numpy, matplotlib und pandas von der Pike auf erklärt, nebst Matrizen und Vektoren.

Gruß
Grund der Beschwerde: