Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 714
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Mit der Verwendung von OnTradeTransaction hat sich die Optimierungszeit merkwürdigerweise verändert. Ein System auf 15M, sehr einfach, Jahresverlauf, ein Lauf erfolgt in 0,3 - 0,4 Sekunden.
Nach dem Optimierungsstart gehen die ersten 200-300 Läufe unter einer Sekunde, die nächsten verlangsamen sich auf 15-20 Sekunden (50 Mal!);
Kein Überhitzen des Prozessors oder Trolling, mehr als die Hälfte des Speichers ist frei (von 16 GB).
Vor der Verwendung des OnTradeTransaction-Handlers gab es nichts dergleichen - selbst komplexere Expert Advisors auf kleinen Timeframes wurden mit ungefähr der gleichen Geschwindigkeit optimiert.
Wirkt sich HistoryDealSelect so stark auf die Geschwindigkeit aus? Wie können wir die Verzögerungen beseitigen?
const MqlTradeRequest &request,
const MqlTradeResult &result)
{
if( trans.type != TRADE_TRANSACTION_DEAL_ADD) return;
ENUM_TRADE_TRANSACTION_TYPE type=trans.type;
long deal_type =0;
double deal_volume =0;
long deal_magic =0;
if(HistoryDealSelect(trans.deal))
{
deal_type =HistoryDealGetInteger(trans.deal,DEAL_TYPE);
deal_volume =HistoryDealGetDouble(trans.deal,DEAL_VOLUME);
deal_magic =HistoryDealGetInteger(trans.deal,DEAL_MAGIC);
}
else
return;
if (deal_type == DEAL_TYPE_BUY && deal_magic == MagicNumber) current_position += deal_volume;
if (deal_type == DEAL_TYPE_SELL && deal_magic == MagicNumber) current_position -= deal_volume;
}
Hallo!
Wer weiß, wie man die Balken rechts vom Null-Balken im Indikator anzeigt und wie viele maximal? (Preisprognose zu erstellen)
Ist es HistoryDealSelect, das die Geschwindigkeit negativ beeinflusst? Wie kann die Verlangsamung beseitigt werden?
Die Entwickler empfehlen, den (teuren) Aufruf von History-Funktionen zu minimieren - durch History-Caching.
Ich habe eine funktionierende Lösung in kodobase gepostet (MT4Orders), aber sie wird Ihnen wahrscheinlich nicht passen.
Ich habe nach der Verwendung von Caching keine Verzögerungen festgestellt.
Trotzdem sollte Ihre OnTradeTransaction nicht langsamer werden, auch wenn sie nicht optimal geschrieben ist.
Hallo!
Wer weiß, wie man die Balken rechts vom Null-Balken im Indikator anzeigt und wie viele maximal? (Preisprognose zu erstellen)
Fügen Sie PeriodSeconds() zur Eröffnungszeit des letzten Balkens hinzu und zeichnen Sie dort eine Kerze mit grafischen Objekten. Sie wird höchstens auf der rechten Seite sichtbar sein. Aber ich habe nicht überprüft, wie es angezeigt wird, wenn es einen Ausgang gibt. Wahrscheinlich sollte man das berücksichtigen.
Fügen Sie PeriodSeconds() zur Eröffnungszeit des letzten Balkens hinzu und zeichnen Sie die Kerze dort. Sie sehen es höchstens auf der rechten Seite. Aber ich habe sein Aussehen nicht überprüft. Wahrscheinlich ist es notwendig, dies zu berücksichtigen.
Auf dem Chart zeichnet er eine Fortsetzung, aber leider nicht im Indikatorfenster.
Vielleicht liege ich ja falsch...
Was meinen Sie - kann ich die Indikatorlinie über den Nullstrich hinaus nach rechts fortsetzen?
Wer weiß - kann die Indikatorlinie über den Nullstrich hinaus nach rechts verlängert werden?
Sie können. Sie können sie verschieben, aber die Berechnung wird wahrscheinlich nicht mit nicht vorhandenen Werten durchgeführt und die Zeit wird nicht in der Anzeige verwendet. Aus diesem Grund habe ich über die Anzeige von Balken mit grafischen Elementen gesprochen. Die Funktion ObjectCreate() enthält sowohl die Fensternummer (Unterfenster) als auch die Zeit. Daher sollte es bei der Erstellung grafischer Elemente keine Probleme geben.
Im Diagrammfenster können Sie mit Hilfe der Zeitstempel auf die in der Zukunft liegenden Balken verweisen. Es hat funktioniert.
Im Indikatorfenster kann ich jedoch nicht dasselbe tun. D.h. ich kann keine Werte in den Indikatorpuffer mit dem Index -1, -2, etc. schreiben.
Die Frage ist folgende.
Das ist im Prinzip klar. Die Lösung besteht darin, einen Indikator aus grafischen Objekten zu erstellen.
Im Diagrammfenster können Sie mit Hilfe der Zeitstempel auf die in der Zukunft liegenden Balken verweisen. Es hat funktioniert.
Im Indikatorfenster kann ich jedoch nicht dasselbe tun. D.h. ich kann keine Werte in den Indikatorpuffer mit dem Index -1, -2, etc. schreiben.
Die Frage ist folgende.
Im Prinzip ist das klar. Die Lösung besteht darin, den Indikator durch grafische Objekte zu erstellen.