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
#Bestellungen Berechnungen & Account Info's Updates - Offen
( Ich habe schon einmal gefragt - aber ich brauche immer noch Hilfe )
Ich rufe meine Berechnungsfunktionen durch OnTick() oder Start() auf, und sie hängen von Chart Symbol Ticks ab.
Und ich habe begonnen zu recherchieren, wie kann ich meine EA's Berechnung Updates nicht abhängig von Ticks und Symbole ( / Chart - Ticks, Symbole ).
Ich versuche gerade, alle Auftragsberechnungen und Kontoinformationen mit Terminal > Trade zusynchronisieren (in Echtzeit).
Bitte helfen Sie mir, danke.
Vielen Dank im Voraus.
OnTimer()
https://www.mql5.com/en/docs/basis/function/events#ontimer
Und SymbolName(x,1);Und SymbolName(x,1);
Guter Kommentar, der mir sehr geholfen hat, vielen Dank.
Nun, ich benutze OnTick() und OnTimer(), beide Funktionen funktionieren gut für mich. (Ich verwende zum ersten Mal OnTimer() für EA's)
---
Ich würde auch gerne Ticks ausprobieren. Ich brauche nur Ticks von welchen Symbolen (Paaren) auf 'Terminal > Trade' und dem aktuellen Chart Symbol. Ist dieses SymbolName() könnte mir helfen?
Bitte, helfen Sie mir oder geben Sie mir einen Rat, wie ich das machen kann?
Ich wünsche Ihnen alles Gute.
{
Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
}
{
Print(i," Symbol: ",SymbolName(i,1)," Ask: ",MarketInfo(SymbolName(i,1),MODE_ASK)," Bid: ",MarketInfo(SymbolName(i,1),MODE_BID));
}
Erstaunliches Beispiel und wirklich nützlicher Kommentar für mich, vielen Dank, Mann.
Ist es möglich, dass die Ticks von den Handelspaaren/Symbolen kommen, bitte?
Denn fast die ganze Zeit mein Market Watch zeigt alle Symbole - speziell ich suche nach neuen guten Paare für Trades und das ist nur Grund, ich bin die Erforschung einige Möglichkeiten für wie kann ich ' Terminal > Trade ' Symbole / Paare, nur derzeit Eröffnung Trades Ticks erhalten.
Vielen Dank im Voraus.
nein, aber Sie können den Preis in der Funktion OnTimer() aktualisieren, die auf einen niedrigen Wert eingestellt ist, z.B. 250 Millisekunden entsprechen 4 Ticks pro Sekunde, warum brauchen Sie das?
Vielen Dank für Ihren Kommentar.
( Unterthema -#Auftragsberechnungen & Kontoinformationen Updates - Offen) Wie ich bereits erwähnt habe, verwende ich die Order-Gewinnberechnung und diese läuft nicht synchron mit "Terminal > Trade", das ist der einzige Grund.
Also, manchmal Volatilität sehr niedrig, Ticks kommt am wenigsten Beträge, und ich denke, Funktionen könnten 4 mal in einer Sekunde ausgeführt werden, so dass läuft für nichts ( / vergeblich ).
Wenn ich den Weg nicht finden kann, die es mir ' Terminal > Handel ' ticks für Aufträge Gewinnberechnungen und Kontoinformationen ( / Updates ) synchronisieren kann. Ich werde Ihre sehr nützlichen Methoden verwenden - welche Sie mir in Ihren letzten Kommentaren gezeigt haben, vielen Dank. ( Ich habe bereits getestet und dieser Weg funktioniert bei mir )
Vielen Dank im Voraus.
Nun, wenn Sie wirklich in sie können Sie verwenden:
{
datetime time; // Time of the last prices update
double bid; // Current Bid price
double ask; // Current Ask price
double last; // Price of the last deal (Last)
ulong volume; // Volume for the current Last price
long time_msc; // Time of a price last update in milliseconds
uint flags // Tick flags
};
Die Struktur für die Rückgabe der aktuellen Preise (MqlTick)
Dies ist eine Struktur zum Speichern der letzten Preise des Symbols. Sie ist für den schnellen Abruf der am häufigsten nachgefragten Informationen über aktuelle Preise gedacht.
Die Variable vom Typ MqlTick ermöglicht es, die Werte von Ask, Bid, Last und Volume mit einem einzigen Aufruf der Funktion SymbolInfoTick() zu erhalten.
Die Parameter jedes Ticks werden unabhängig davon ausgefüllt, ob es Änderungen im Vergleich zum vorherigen Tick gibt. So ist es möglich, einen korrekten Preis für einen beliebigen Zeitpunkt in der Vergangenheit zu ermitteln, ohne in der Tick-Historie nach früheren Werten suchen zu müssen. Selbst wenn sich z.B. nur der Geldkurs während eines Ticks ändert, enthält die Struktur noch andere Parameter, wie z.B. den vorherigen Briefkurs, das Volumen, usw.
Sie können die Tick-Flags analysieren, um herauszufinden, welche Daten genau geändert wurden:
Beispiel:
{
MqlTick last_tick;
//---
if(SymbolInfoTick(Symbol(),last_tick))
{
Print(last_tick.time,": Bid = ",last_tick.bid,
" Ask = ",last_tick.ask," Volume = ",last_tick.volume);
}
else Print("SymbolInfoTick() failed, error = ",GetLastError());
//---
}
Siehe auch
https://www.mql5.com/en/docs/constants/structures/mqltick
Strukturen und Klassen, CopyTicks(), SymbolInfoTick()
Sie können damit also überprüfen, ob es einen neuen Tick für ein bestimmtes Symbol gab, aber das ist eigentlich ein Schritt mehr als das direkte Lesen der Preisniveaus, also noch einmal, warum sollten Sie es brauchen.
Marco vd Heijden:
Nun, wenn Sie wirklich daran interessiert sind, können Sie verwenden: ...
So können Sie es verwenden, um zu überprüfen, ob es einen neuen Tick für ein bestimmtes Symbol, aber das wird tatsächlich einen Schritt mehr als direkt lesen die Preisniveaus direkt so noch einmal, warum sollten Sie es brauchen.
Vielen Dank für Ihren informativen Kommentar, den ich sehr schätze.
---
Wenn ich richtig bin, ist dieser Teil des Satzes eine Frage.
Und ich muss meine Situation beschreiben.
All diese Bedenken kommen von hier.
---
Ich hoffe, Sie verstehen mich jetzt besser.
Ich wünsche Ihnen alles Gute.
Nun, wenn Sie wirklich auf jeden Tick warten wollen, müssen Sie für jedes Symbol einen eigenen EA schreiben und die Funktion OnTick() verwenden.
Aber ich kann Ihnen sagen, dass ich auch Mikrocontroller programmiere und diese sich in einer endlosen while-Schleife (für immer) befinden, bis ein Stromausfall oder eine Unterbrechung auftritt.
Um zu prüfen, ob eine Bedingung wahr oder falsch ist, wird der kleinste boolesche Datentyp verwendet, und Ihr Prozessor macht das bereits Millionen, wenn nicht Milliarden Mal pro Sekunde mit all den im Hintergrund laufenden Prozessen und der Grafik usw.
Erst wenn Sie anfangen, umfangreiche Berechnungen mit größeren Datentypen durchzuführen, wird dies zu einem Problem.