Christian
Christian
Aktuelles Projekt:

MT5 in Kombination mit MatLab auf Basis eines neuronalen Netzes(BILSTM).

Anbindung an MT5 über API

https://github.com/vdemydiuk/mtapi




Erfahrung in: C/C++/MQL5/MatLab/Python

Kontakt:
Telegram t.me/ZeHaBee
Christian
Hat das Thema .Net API für den Metatrader5 hinzugefügt
Für alle die lieber eine andere Sprache als MQL5 nehmen möchten kann ich das .NET Projekt http://mtapi4.net/ empfehlen. Ich nutze es selber und bin sehr zu frieden. Der Entwickler ist aktiv und geht auf Nutzerwünsche ein. Eine kleine Spende ist da
Christian
Christian
Neues Release ,
https://github.com/vdemydiuk/mtapi/releases/tag/MT5-v1.0.18
Neue Funktionen:
TerminalInfoInteger
TerminalInfoDouble
ChartSaveTemplate
ChartSaveTemplate
ChartId
ChartRedraw
ChartWindowFind
ChartClose
ChartPeriod
ChartSetDouble
ChartSetInteger
ChartSetString
ChartGetDouble
ChartGetInteger
ChartNavigate
ChartIndicatorAdd
ChartIndicatorDelete
ChartIndicatorGet
ChartIndicatorName
ChartIndicatorsTotal
ChartWindowOnDropped
ChartPriceOnDropped
ChartTimeOnDropped
ChartXOnDropped
ChartYOnDropped
ChartSetSymbolPeriod
ChartScreenShot
Christian
Hat das Thema SymbolInfoSessionQuote,SymbolInfoSessionTrade -> StrategieTester hinzugefügt
Kennt jemand das normale Verhalten von den beiden im Tester ?  Bei mir geben die immer false zurück https://www.mql5.com/de/docs/marketinformation/symbolinfosessionquote https://www.mql5.com/de/docs/marketinformation/symbolinfosessiontrade Gruß
Christian
Christian
Das Framework um die Api komfortabler zu nutzen nimmt langsam Form an.
Ein Test der Geschwindigkeit von 5 x OrderSend und Kontrolle der offenen Positionen.
Von einem Laptop über WLAN zu dem Rechner wo der MT5 läuft.(LAN)
Dauer ca 0,6 Sek. Und anschließend einmal alle Historydeals. 0.3sek

>> testapi = TestClient_cntMtApi5_trade();
Connecting...
OrderSend OK
Result: Retcode=10009; Comment=Request executed; Deal=92408104; Order=109563029; Volume=0,1; Price=1,2315; Bid=1,23145; Ask=1,2315; Request_id=71
PositionsTotal(): 1
Connection changed: Connecting
Connection changed: Connected
OrderSend OK
Result: Retcode=10009; Comment=Request executed; Deal=92408105; Order=109563030; Volume=0,1; Price=1,2315; Bid=1,23145; Ask=1,2315; Request_id=72
PositionsTotal(): 2
OrderSend OK
Result: Retcode=10009; Comment=Request executed; Deal=92408106; Order=109563031; Volume=0,1; Price=1,2315; Bid=1,23145; Ask=1,2315; Request_id=73
PositionsTotal(): 3
OrderSend OK
Result: Retcode=10009; Comment=Request executed; Deal=92408107; Order=109563032; Volume=0,1; Price=1,2315; Bid=1,23145; Ask=1,2315; Request_id=74
PositionsTotal(): 4
OrderSend OK
Result: Retcode=10009; Comment=Request executed; Deal=92408109; Order=109563034; Volume=0,1; Price=1,2315; Bid=1,23145; Ask=1,2315; Request_id=75
PositionsTotal(): 5
Elapsed time is 0.649985 seconds.
HistoryDeals(): 1
Elapsed time is 0.322128 seconds.
Christian
Christian
Neues Release, neue Events für OnBook und OnTradeTransaction

https://github.com/vdemydiuk/mtapi/releases/tag/MT5-v1.0.17
Christian
Christian
Kleiner Test der Api in Bezug auf Geschwindigkeit in Matlab.
100 mal den aktuellen Tick holen.

function cntMt5Api_speedtestMarketInfo(api)

tic
for idx=1:1:100
[result_ok ,MqlTick] = api.cMarketInfo.SymbolInfoTick('EURUSD');
end
toc


end

Elapsed time is 0.017590 seconds.
>> cntMt5Api_speedtestMarketInfo(api)
Elapsed time is 0.120614 seconds.
>> cntMt5Api_speedtestMarketInfo(api)
Elapsed time is 0.119237 seconds.
>> cntMt5Api_speedtestMarketInfo(api)
Elapsed time is 0.141579 seconds.
>> cntMt5Api_speedtestMarketInfo(api)
Elapsed time is 0.127896 seconds.
>> cntMt5Api_speedtestMarketInfo(api)
Elapsed time is 0.098491 seconds.
>> cntMt5Api_speedtestMarketInfo(api)
Elapsed time is 0.107453 seconds.

Durchaus sehr zufriedenstellend. 120 ms im Mittel
Christian
Christian
Neues Release, läuft sehr gut und schnell. Entwickler ist efrig und schnell.

https://github.com/vdemydiuk/mtapi/releases/tag/MT5-v1.0.16
Christian
Christian
Der gefällt ....wer EW (Elliotwellen) kann wird komischerweise hier schöne saubere Impulse in der Balance zählen können. Sowie so sind die Charts manchmal echt gruselig. Klassische Pullbacks auf vorherige Widerstände wie in echten Charts finde ich sehr oft ...zu oft ... :-)
Christian
Christian
Etwas andere ....gefällt ,mir nicht so . Zu wackelig
Christian
Christian
Etwas an der Parameter gespielt...sehr empfindlich das ganze :-) aber im Plus
Christian
Christian
Gleich werde ich drei Charts posten die alle ca 12-16 Loops umfassen. Der längste mit 222 Tagen.
Da alle am Ende im Plus landen und nach etwas veränderten Parameter doch deutlich um Plus landen bin ich damit mehr als zufrieden.

Es sieht so aus als ließe sich mit mit KI,etwas Hardware und eine Prise Gehirn doch einen profitablen EA erstellen.
Da ich in meinem System erst ein Signal erstelle was dann an den Simulator geht besteht die Möglichkeit alle Tests die ich hier mit Matlab gemacht habe dann direkt mal dem Metatrader im Tester zuzuführen. Es sind ist genau jede Minute ein Signal mit ende der Bar sprich Bar-Close.
Bin mal gespannt wie die Geschwindigkeit der API über .NET ist. Erste Tests zeigen das 10000 Bars einlesen und in ML-Array wandeln in knapp 70 ms von statten geht. Ich war nie Freund von C# und .NET aber nun muss ich mich damit befassen.

Der Junge Vyacheslav Demidyuk der diese API erstellt hat hat richtig gute Arbeit geleistet. Bekam auch gleich eine Spende von mir :-)

so gleich die Bilder
Christian
Christian
Und hier mit höherer Auflösung der Balance = 160000 Daten aus der Simulation
Christian
Christian
Erstes Ergebnis über 8 Loops a 20000 1min Bars = 111 Tage
Christian
Christian 2018.02.16
Der 128 Loop Test folgt....wollte erstmal ein kleinen Test um mich ran zu tasten.
Christian
Christian
Nächster Schritt ist ein Test über 128 Loops a 13,8 Tage = ca 5 Jahre
Der letzte mit 64 hat ca 30h gedauert.
Das wird dann ein echtes Ergebnis sein was man mit dem Model in 5 Jahren und 10 Lots erreichen kann.
Aber es sind nur theoretische Werte da bisher kein MT5 die Trades im Tester ausführt. Später wird er das.

Bis dann
Christian
Christian
Hier der Loop 45 , er zeigt das sich mein Model besonders gut mit oszillierenden Phasen des EURUSD zurechtkommt.
Und dabei ist noch kein Bit gedreht um den Trading Algorithmus zu optimieren.
Immer noch stur long-short-long-short immer im wechsel
Christian
Christian
Sehr schön ! Eben ist der Test über 64 Loops fertig geworden. 3 oder 4 Loops fehlen weil es in der Mitte wieder den Bug gab. Den ich nun aber beseitigen konnte.

Daten und Ergebnisse

Pro Loop wurden
180000 min Training = 125 Tage
20000 min Trading = 13,8 Tage
Zeit verwendet.
Es wurde insgesammt 64x13,8= 883 Tage gehandelt

Der Kurs ist startet im 2017/04 EURUSD

Jeder Loop wird um 2000 min weitergeschoben
Das bedeutet der Test hat 64x2000 min = 88,8 Tage umfasst
Es soll hiermit nicht den erzielbaren Gewinn darstellen sondern beweisen
das es moglich ist mit einem NN ein wiederholbares und in der Summer sehr positives Ergebnis zu erzielen.

Hier dazu die Grafik
Christian
Christian
Aktuell läuft ein langer Test bisher ohne Absturz :-) bin sehr gespannt auf die Ergebnisse.

In der Zwischenzeit arbeite ich mich in die MT-API von Vyacheslav Demidyuk http://mtapi4.net/
ein. Es sind 4 Entwickler die schon sehr weit gekommen sind. Sinn machtes für mich da ich wahrscheinlich die API nutzen werde um den EA der folgt damit auf MatLab zu programmieren. Ich habe schon einen EA in MQL5 erstellt aber die programmierung der Grafik ist doch sehr abenteuerlich. In Matlab ist alles seit Jahren erprobt und Fehlerbeseitigt. Riesige Dokumentation und eine breite Comunity. Plan ist es den MT5 nur als Brücke zum Broker zu nutzen. So bleibe ich flexible wenn der EA an andere Broker/System angepasst werden soll. (Ninjatrader...etc). Ich möchte die Jungs von MQL5 nicht schlecht machen aber ich habe in den Jahren doch sehr merkwürdige Eigenheiten des Landes feststellen können.
Es reicht mir wenn der MT5 einfach stur die Trades ausführt. Die technische Intelligenz ist in Matlab besser aufgehoben. Dort stehen Tür und Tor zu modernen Idee weit offen.

so genug gefaselt ...ran an den Speck :-) Das neue Ziel ist ein mini EA der Den Kurs aus dem MT5 holt und darstellt mit Live Quoten. Mal sehen in wie weit es mit der MT5-api damit schon möglich ist.Compelieren ließ sich das Github Paket auf jeden fall in Visual Studi 2017 problemlos.

Eins sei noch gesagt...die API funktioniert Netzwerkübergreifend !
Christian
Christian
Wenn Jemand Interesse an dem Thema hat schick mir eine PM
Christian
Christian
Hier die Auswertung mit Excel:
Christian
Christian
Guten Morgen an die Interessierten ,

ich konnte nun endlich mal einen langen test machen leider nur mit einer Karte.
Momentan schaltet sich sogar das Netzteil aus wenn ich den Multi-GPU modus in Matlab nehme.
Die Leistungsaufnahme der 1080 steigt sporadisch bis an 230 Watt an und die 1070ti knapp 180. Sollte ein 750 Watt Netzteil eigentlich schaffen. Fakt ist aber das es überlastet ist in diesem Modus. Also muss ein dickeres Netzteil her ...später :-)
Dadurch das man übedr CUDA nur "Jobs" an die G-Karte sendet ist es möglich gleich mehrer zu senden. Dann steigt die Auslastung an die technische Watt Grenze. Sprich 2 oder 4 Kerne nutzen G-Karte 1 die anderen 2-4 Kerne die G-Karte 2.
Aber das nur so nebenbei.

Zum Ergebniss :

Geplant waren 128 Loops ( Train/Trade)
180k Train
20k Trade

Leider gabs ein Abbruch nach ca 30 Loops , ein Bug den ich noch nicht beseitigt habe.
Da ich die Einzeltest in Ordner Speichere habe ich trotzdem die Ergebnisse. Kann sie nur nicht mit den Viewer Darstellen. Ich mache eben eine Excel Tabelle fertig.

hier ein Loop der mir gefällt :-)

Loop: 31
Folder Results/2018_2_11_0_48_54.322 created
Classify Train Data
End Classifying
Classes detected : 179690
Class 1 Buy : 10545
Class 2 TrendBuy : 69386
Class 3 Sell : 10530
Class 4 TrendSell : 89229
Elapsed time is 117.840306 seconds.

Train =

struct with fields:

info: [1x1 struct]
acc: 0.6914



*******************************************************
Simulator started....
*******************************************************

Start at Time: 23:22:00 Tick: 180000
End at Time: 21:47:00 Tick: 200000
*******************************************************
Simulator End!
*******************************************************
Results:
End Balance : 48100
Balance High : 49620
Balance Low : -760
Profit : 48100
Profit Forward : 48100
Comission : 4040
Trades : 101
Trades Long : 51
Trades Short : 50