Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 72

 

Das Feld MqlRates.spread enthält den minimalen Spread-Wert pro Bar. Dies ist ein völliger Unsinn für einen Backtest. Jeder kann dies durch benutzerdefinierte Symbole wie folgt beheben

spread = LowAsk - LowBid; // условный код - не показывает обработку некоторых нюансов

Mit einer solchen Spanne werden die Expert Advisors auf die gleichen Limit-Orders im Modus "offene Preise" wunderbar getestet (in Bezug auf Qualität und Geschwindigkeit).

 

Ausführen eines Testagenten mit der Option, den Ordner FILE_COMMON und OpenCL zu verwenden:

metatester64.exe /local /password:tester /address:0.0.0.0:2000
 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Diskussion des Artikels "Visualisierung der Handelsstrategieoptimierung in MetaTrader 5" verschoben.
 

Der Hauptvorteil von MT4 ist seine Intuitivität und Einfachheit im Programmiercode
Sie müssen nicht vordefinieren, was Sie tun wollen, es gibt eingebaute Arrays wie


iTime("USDCHF",PERIOD_H1,0),","," iOpen("USDCHF",PERIOD_H1,0),",
iHigh("USDCHF",PERIOD_H1,0),", ", iLow("USDCHF",PERIOD_H1,0),", ",
iClose("USDCHF",PERIOD_H1,0),", ", iVolume("USDCHF",PERIOD_H1,0);


Es gibt eine Vielzahl von Klassen und Bibliotheken für MT5

Ist es unmöglich, solche Klassen und Bibliotheken zu erstellen, die es erlauben, in MT5 so zu programmieren, wie es in MT4 gemacht wird?
 
Stefan Stoyanov:

Der Hauptvorteil von MT4 ist seine Intuitivität und Einfachheit im Programmcode
Sie müssen nicht vordefinieren, was Sie tun wollen, es gibt eingebaute Arrays wie


iTime("USDCHF",PERIOD_H1,0),","," iOpen("USDCHF",PERIOD_H1,0),",
iHigh("USDCHF",PERIOD_H1,0),", ", iLow("USDCHF",PERIOD_H1,0),", ",
iClose("USDCHF",PERIOD_H1,0),", ", iVolume("USDCHF",PERIOD_H1,0));


Es gibt eine Vielzahl von Klassen und Bibliotheken für MT5

Ist es nicht möglich, solche Klassen und Bibliotheken zu erstellen, die es erlauben, in MT5 zu programmieren, wie es in MT4 gemacht wird?

Es gibt so viele Bibliotheken, die es Ihnen ermöglichen, Code in mt5 genau so zu schreiben, wie Sie ihn in mt4 geschrieben haben.

 
Stefan Stoyanov:

Ist es unmöglich, einige Klassen und Bibliotheken zu erstellen, die es erlauben, in MT5 zu programmieren, wie es in MT4 gemacht wird?

Wenn fxsaber geht, bitten Sie ihn, eine Bibliothek zu schreiben, um in der Lage zu sein, wie in mql3 zu schreiben, und dann werden Sie überhaupt nicht schreiben müssen. Meinen Sie nicht, dass es an der Zeit ist, erwachsen zu werden?

 

Wie finde ich die Terminalzeit heraus, ich muss die Verschiebung in Stunden zwischen Terminal und Ort herausfinden?

Es gibt TimeGMTOffset(), aber es ist wirklich nutzlos.

Im Moment zeigt das Terminal 23:58, das Ortsgespräch 16:54. Wir müssen jedoch herausfinden, in welcher GMT-Schicht das Terminal läuft. Montag bis Freitag kann man mit einem Tamburin herausfinden.

Ich freue mich darauf, von Ihnen zu hören, danke!

 
Vitaly Muzichenko:

Wie finde ich die Terminalzeit heraus, ich muss die Verschiebung in Stunden zwischen Terminal und Ort herausfinden?

Es gibt TimeGMTOffset(), aber es ist wirklich nutzlos.

Im Moment zeigt das Terminal 23:58, das Ortsgespräch 16:54. Sie müssen jedoch herausfinden, in welcher GMT-Schicht das Terminal läuft. Montag bis Freitag kann man mit einem Tamburin herausfinden.

Ich freue mich auf die Antworten, danke!

Das Terminal in der Marktübersicht zeigt die Ankunftszeit des letzten Ticks des Servers des Brokers entsprechend der Zeit des Brokers an.

Sie können den Schlusskurs eines Instruments bei einem unbekannten Broker mit dem Schlusskurs derselben Kerze bei einem bekannten Broker vergleichen.

Berechnen Sie die Zeitdifferenz.

 
Kirill Belousov:

Das Terminal in der Marktübersicht zeigt die Ankunftszeit des letzten Ticks des Servers des Brokers entsprechend der Zeit des Brokers an.

Sie können den Schlusskurs eines Instruments bei einem unbekannten Makler mit dem Schlusskurs derselben Kerze bei einem bekannten Makler vergleichen.

Berechnen Sie die Zeitdifferenz.

Auf diese Weise zeigen die Candlesticks aber auch die Serverzeit an.

Angenommen, ich starte nun das Terminal von einem beliebigen Händler aus, es gibt keine Kurse, aber in derMarktübersicht ist der letzte um 23:58 Uhr aufgezeichnet, aber mit welchem GMT-Offset er arbeitet - ist nicht bekannt.

Oder bin ich bereits dumm und man kann es sehr leicht herausfinden?

P.S. Angenommen, ich verliere mich in der Zeit und unterscheide nicht mehr zwischen Tag/Nacht, Wochentagen und Zeit.

Wie kann man herausfinden, dass es keine Angebote gibt, weil Wochenende ist, oder zum Beispiel am Donnerstag kein Angebot, weil der Server im Handelsraum hängt?

Ich sehe eine solche Lösung, aber ich weiß nicht, wie ich sie umsetzen soll, wenn ich keine Zeit auf dem Handelsserver habe:

if( TimeCurrent()<TimeServer()+60 ) return( "нет котировок уже 1 минуту" );
 
Vitaly Muzichenko:

Auf diese Weise zeigen die Candlesticks aber auch die Serverzeit an.

Angenommen, jetzt starte ich das Terminal von einem beliebigen Händler, gibt es keine Kurse, aber es ist die letzte in derMarktübersicht 23:58 aufgezeichnet, aber mit welcher GMT Verschiebung es funktioniert - ist nicht bekannt.

Oder bin ich bereits dumm und man kann es sehr leicht herausfinden?

P.S. Angenommen, ich verliere mich in der Zeit und unterscheide nicht mehr zwischen Tag/Nacht, Wochentagen und Zeit.

Wie kann man herausfinden, dass es keine Angebote gibt, weil Wochenende ist, oder dass es am Donnerstag keine Angebote gibt, weil sich der Server im Handel aufhängt?

Suchen Sie anhand des Schlusskurses die Kerze in der Historie eines unabhängigen Maklerunternehmens, bei der Sie den GMTOffset kennen. Der Unterschied zwischen den Candlesticks Zeit wird Ihnen den Unterschied zwischen den Brokerage-Unternehmen. Addieren Sie zu der Differenz die GMT des bekannten Ortes und Sie erhalten die GMT-Differenz des unbekannten Ortes.

Man weiß nie, wie lange der Handelsserver braucht. Sie kennen nur den Zeitpunkt der letzten Notierung des Symbols.

Verwenden Sie einfach die stündlichen Candlesticks.