Meine grundlegende Erkenntnis ist, dass, wenn es eine Änderung in MarketInfo() für das Paar gibt, ein "Tick" empfangen wird.
.
Es kann Ausnahmen geben, wie z.B. "keine Änderungen gefunden", aber ein Tick wurde empfangen, aber das ist sehr selten.
Ticks, die ohne Preisänderung empfangen werden, sind nicht selten und signalisieren eine andere Änderung in MarketInfo für das Paar.
.
Das Volumen entspricht der Anzahl der empfangenen Ticks, d.h. der Anzahl der Aufrufe der start()-Funktion, es handelt sich nicht speziell um Trades oder Bid/Ask-Änderungen. Eine Änderung in der MarketInfo() löst einen Tick aus, und die Anzahl der Ticks ist gleich dem Volumen.
Bei Eingang eines neuen Kurses wird die start()-Funktion der angehängten Experten und benutzerdefinierten Indikatoren ausgeführt. Wenn die start()-Funktion, die beim vorangegangenen Kurs gestartet wurde, bereits lief, als ein neuer Kurs eintraf, wird der neue Kurs vom Experten übersprungen. Alle neuen Kurse, die während der Ausführung des Programms eingehen, werden vom Programm übersprungen, bis die aktuelle Ausführung der start()-Funktion abgeschlossen ist. Danach wird die start()-Funktion nur noch ausgeführt, wenn ein weiterer neuer Kurs eintrifft. Bei benutzerdefinierten Indikatoren wird die start()-Funktion zur Neuberechnung gestartet, nachdem das aktuelle Chart-Symbol oder der Zeitrahmen unabhängig von neu eingehenden Kursen geändert wurde. Die start()-Funktion wird nicht ausgeführt, wenn das Fenster mit den Experteneigenschaften geöffnet ist. Letzteres kann während der Ausführung des Experten nicht geöffnet werden.
Empfangene Ticks mit Preisänderung oder ohne Preisänderung, Tickanzahl = Volumen.
Aber Client MT vielleicht nicht empfangen ALLE Ticks für einige reaseons wie Netz Pause vorübergehend einige seconeds.
dann Tick count = Volumen ist es zählen oder ändern Zeiten auf dem Server. oder definiert durch Broker wollen ihren Preis wie viel mal in einem Zeitraum zu ändern.
Ist das richtig?
Für einen Broker, der am Markt teilnimmt, um seine Kundenpositionen abzusichern, wird das Volumen auch durch den Broker definiert, der seinen Preis wie oft in einem Zeitraum ändern möchte.
MarketInfo()-Aufrufe gehen nicht an den Händler, sondern lesen die neuesten Werte, die bereits vom Händler empfangen wurden.
Die Aufrufe an den Dealer benötigen jeweils etwa 100-300 Millisekunden bis zur Fertigstellung.
// script
int start(){
int startTime = GetTickCount();
for(int i = 0; i < 10000; i++){
int spread = MarketInfo(Symbol(), MODE_SPREAD);
}
int endTime = GetTickCount();
Print("Time to collect 10000 instances of data = " + (endTime -startTime) + " milliseconds");
startTime = GetTickCount();
OrderSend(Symbol(), OP_BUY, 1, Ask, 0, 0, 0 , "", 0, 0, CLR_NONE);
endTime = GetTickCount();
Print("Time to send one order to Server = " + (endTime -startTime) + " milliseconds");
return(0);
}
2008.10.27 16:32:37 Test GBPJPY,M15: Time to send one order to Server = 531 milliseconds
2008.10.27 16:32:37 Test GBPJPY,M15: open #8556064 buy 1.00 GBPJPY at 144.77 ok
2008.10.27 16:32:37 Test GBPJPY,M15: Time to collect 10000 instances of data = 438 milliseconds
Phy - Entschuldigung, dass ich dieses Thema wieder aufmache :-)
Ich denke, dass es eine Diskrepanz gibt zwischen dem, was Sie über die Natur einer Zecke glauben, und Ihrer Methode zur Berechnung von Gewinn/Risiko usw. (nach dem Lesen einiger früherer Beiträge).
Das heißt, dass Sie MarketInfo(Symbol(),MODE_TICKVALUE) allein verwenden, um den Pip-Wert des Paares in Bezug auf die Einzahlungswährung zu bestimmen.
Wenn das, was Sie über Ticks im MT4 glauben, richtig ist, kann sich der Tick-Wert um einen Faktor der Anzahl der Pips zwischen den Ticks ändern.
Mit anderen Worten: Wenn der Kurs plötzlich ein paar Pips springt, könnte ein vorheriger Aufruf von MarketInfo ergeben, dass TICKSIZE und TICKVALUE 0,0001 bzw. 7,16 betragen. Der nächste Aufruf könnte dann 0,0002 und 14,32 ergeben.
In diesem Fall müssten Sie immer sowohl MarketInfo(Symbol(),MODE_TICKSIZE) als auch MarketInfo(Symbol(),MODE_TICKVALUE) in Ihre Gewinn-/Risiko-Formeln einbeziehen und niemals MarketInfo(Symbol(),MODE_TICKVALUE) allein.
10000 MODE_LOTSIZE Losgröße in der Basiswährung. 0.1 MODE_TICKVALUE Tickwert in der Depotwährung. 0,00001 MODE_TICKSIZE Tick-Größe in der Kurswährung.
.
Ersetzen Sie oben das Wort "Tick" durch "Pip", wenn Sie möchten.
.
Dieser Broker verwendet Mini-Lot als Standardgröße -- MODE_LOTSIZE
Sie verwenden 3/5 Ziffern für den Preis -- MODE_TICKSIZE
Der Wert eines dieser "Ticks" beträgt $0,10 -- MODE_TICKVALUE
.
Für GBPAUD:
.
10000 MODE_LOTSIZE Losgröße in der Basiswährung. 0.080262 MODE_TICKVALUE Tickwert in der Einzahlungswährung. 0.00001 MODE_TICKSIZE Tick-Größe in der Kurswährung.
.
GBPAUD ein Pip Bewegung auf einem Lot zahlt $0.080262
.
Ihre Idee zur Berechnung der Preisänderung Ihrer Order von einem Moment zum nächsten...
MB Trading Futures, Inc.
MBTrading- Demo Server
MB Trading Futures, Inc.
MBT MetaTrader 4
D:\Program Files ( x86)\MetaTrader\MBT MetaTrader 4/ reports/ MarketInfo_MB Trading Futures, Inc._. txt
2009.07.1516:47:49
Report for EURUSD
1.39775MODE_LOWLow day price.1.41344MODE_HIGHHigh day price.2009.07.1516:47:48MODE_TIME The last incoming tick time ( last known server time).1.41044MODE_BID Last incoming bid price. For the current symbol, it is stored in the predefined variable Bid1.41054MODE_ASK Last incoming ask price. For the current symbol, it is stored in the predefined variable Ask0.00001MODE_POINTPoint size in the quote currency. For the current symbol, it is stored in the predefined variable Point5MODE_DIGITS Count of digits after decimal point in the symbol prices. For the current symbol, it is stored in the predefined variable Digits10MODE_SPREAD Spread value in points.0MODE_STOPLEVEL Stop level in points.10000MODE_LOTSIZE Lot size in the base currency.0.1MODE_TICKVALUE Tick value in the deposit currency.0.00001MODE_TICKSIZE Tick size in the quote currency.-0.6MODE_SWAPLONG Swap of the long position.-2.4MODE_SWAPSHORT Swap of the short position.0MODE_STARTING Market starting date ( usually used for futures).0MODE_EXPIRATION Market expiration date ( usually used for futures).1MODE_TRADEALLOWED Trade is allowed for the symbol.0.1MODE_MINLOT Minimum permitted amount of a lot.0.1MODE_LOTSTEP Step for changing lots.10000MODE_MAXLOT Maximum permitted amount of a lot.2MODE_SWAPTYPE Swap calculation method.0- in points;1- in the symbol base currency;2- by interest;3- in the margin currency.0MODE_PROFITCALCMODE Profit calculation mode.0- Forex;1- CFD;2- Futures.0MODE_MARGINCALCMODE Margin calculation mode.0- Forex;1- CFD;2- Futures;3- CFD for indices.0MODE_MARGININIT Initial margin requirements for1 lot.0MODE_MARGINMAINTENANCE Margin to maintain open positions calculated for1 lot.0MODE_MARGINHEDGED Hedged margin calculated for1 lot.141.05MODE_MARGINREQUIRED Free margin required to open 1 lot for buying.0MODE_FREEZELEVEL Order freeze level in points. If the execution price lies within the range defined by the freeze level, the order cannot be modified, cancelled or closed.
Report for GBPAUD
2.04 MODE_LOW Low day price.
2.06095 MODE_HIGH High day price.
2009.07.15 16:47:42 MODE_TIME The last incoming tick time (last known server time).
2.04538 MODE_BID Last incoming bid price. For the current symbol, it is stored in the predefined variable Bid
2.04588 MODE_ASK Last incoming ask price. For the current symbol, it is stored in the predefined variable Ask
0.00001 MODE_POINT Point size in the quote currency. For the current symbol, it is stored in the predefined variable Point
5 MODE_DIGITS Count of digits after decimal point in the symbol prices. For the current symbol, it is stored in the predefined variable Digits
50 MODE_SPREAD Spread value in points.
0 MODE_STOPLEVEL Stop level in points.
10000 MODE_LOTSIZE Lot size in the base currency.
0.080262 MODE_TICKVALUE Tick value in the deposit currency.
0.00001 MODE_TICKSIZE Tick size in the quote currency.
-1.47 MODE_SWAPLONG Swap of the long position.
-3.65 MODE_SWAPSHORT Swap of the short position.
0 MODE_STARTING Market starting date (usually used for futures).
0 MODE_EXPIRATION Market expiration date (usually used for futures).
1 MODE_TRADEALLOWED Trade is allowed for the symbol.
0.1 MODE_MINLOT Minimum permitted amount of a lot.
0.1 MODE_LOTSTEP Step for changing lots.
10000 MODE_MAXLOT Maximum permitted amount of a lot.
2 MODE_SWAPTYPE Swap calculation method. 0 - in points; 1 - in the symbol base currency; 2 - by interest; 3 - in the margin currency.
0 MODE_PROFITCALCMODE Profit calculation mode. 0 - Forex; 1 - CFD; 2 - Futures.
0 MODE_MARGINCALCMODE Margin calculation mode. 0 - Forex; 1 - CFD; 2 - Futures; 3 - CFD for indices.
0 MODE_MARGININIT Initial margin requirements for 1 lot.
0 MODE_MARGINMAINTENANCE Margin to maintain open positions calculated for 1 lot.
0 MODE_MARGINHEDGED Hedged margin calculated for 1 lot.
164.21 MODE_MARGINREQUIRED Free margin required to open 1 lot for buying.
0 MODE_FREEZELEVEL Order freeze level in points. If the execution price lies within the range defined by the freeze level, the order cannot be modified, cancelled or closed.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
OK, tolles Thema !!!!
Was ist dann das Volumen? die Anzahl der Tick-Änderungen, oder die Anzahl der Trades, oder die Menge des Handelsfonds in einer Periode?
Um es noch einmal zu sagen:
Meine grundlegende Erkenntnis ist, dass, wenn es eine Änderung in MarketInfo() für das Paar gibt, ein "Tick" empfangen wird.
.
Es kann Ausnahmen geben, wie z.B. "keine Änderungen gefunden", aber ein Tick wurde empfangen, aber das ist sehr selten.
Ticks, die ohne Preisänderung empfangen werden, sind nicht selten und signalisieren eine andere Änderung in MarketInfo für das Paar.
.
Das Volumen entspricht der Anzahl der empfangenen Ticks, d.h. der Anzahl der Aufrufe der start()-Funktion, es handelt sich nicht speziell um Trades oder Bid/Ask-Änderungen. Eine Änderung in der MarketInfo() löst einen Tick aus, und die Anzahl der Ticks ist gleich dem Volumen.
.
Das Volumen entspricht der Anzahl der empfangenen Ticks, d.h. wie oft die start()-Funktion aufgerufen wurde.
Ja, aber einige Ticks können verpasst werden (die Funktion start() wurde nicht aufgerufen), weil die vorherige Funktion start() noch nicht abgeschlossen ist.
Bei Eingang eines neuen Kurses wird die start()-Funktion der angehängten Experten und benutzerdefinierten Indikatoren ausgeführt. Wenn die start()-Funktion, die beim vorangegangenen Kurs gestartet wurde, bereits lief, als ein neuer Kurs eintraf, wird der neue Kurs vom Experten übersprungen. Alle neuen Kurse, die während der Ausführung des Programms eingehen, werden vom Programm übersprungen, bis die aktuelle Ausführung der start()-Funktion abgeschlossen ist. Danach wird die start()-Funktion nur noch ausgeführt, wenn ein weiterer neuer Kurs eintrifft. Bei benutzerdefinierten Indikatoren wird die start()-Funktion zur Neuberechnung gestartet, nachdem das aktuelle Chart-Symbol oder der Zeitrahmen unabhängig von neu eingehenden Kursen geändert wurde. Die start()-Funktion wird nicht ausgeführt, wenn das Fenster mit den Experteneigenschaften geöffnet ist. Letzteres kann während der Ausführung des Experten nicht geöffnet werden.
Ich verwende nicht die Funktion Start() zum Auslösen, sondern ein Skript mit einer Endlosschleife zur Untersuchung von MarketInfo().
Ich werde das Skript neu schreiben, da das Experiment eine unerwartete Richtung eingeschlagen hat.
.
Empfangene Ticks mit Preisänderung oder ohne Preisänderung, Tickanzahl = Volumen.
Aber Client MT vielleicht nicht empfangen ALLE Ticks für einige reaseons wie Netz Pause vorübergehend einige seconeds.
dann Tick count = Volumen ist es zählen oder ändern Zeiten auf dem Server. oder definiert durch Broker wollen ihren Preis wie viel mal in einem Zeitraum zu ändern.
Ist das richtig?
Für einen Broker, der am Markt teilnimmt, um seine Kundenpositionen abzusichern, wird das Volumen auch durch den Broker definiert, der seinen Preis wie oft in einem Zeitraum ändern möchte.
Mein Gott!
Wie kann man die Volumendaten verwenden?
Fragen zu Marketinfo().
Werden übermäßige Marketinfo()-Aufrufe in einer Endlosschleife vom Broker als Spam angesehen?
Was würde nicht als Spam angesehen werden?
Wie oft kann man Marketinfo() ausführen, ohne den Broker zu verärgern?
Zieht der Befehl Marketinfo() aus dem Cache des Brokers oder handelt es sich um einen echten Requote?
Vielen Dank
MarketInfo()-Aufrufe gehen nicht an den Händler, sondern lesen die neuesten Werte, die bereits vom Händler empfangen wurden.
Die Aufrufe an den Dealer benötigen jeweils etwa 100-300 Millisekunden bis zur Fertigstellung.
// script int start(){ int startTime = GetTickCount(); for(int i = 0; i < 10000; i++){ int spread = MarketInfo(Symbol(), MODE_SPREAD); } int endTime = GetTickCount(); Print("Time to collect 10000 instances of data = " + (endTime -startTime) + " milliseconds"); startTime = GetTickCount(); OrderSend(Symbol(), OP_BUY, 1, Ask, 0, 0, 0 , "", 0, 0, CLR_NONE); endTime = GetTickCount(); Print("Time to send one order to Server = " + (endTime -startTime) + " milliseconds"); return(0); }Phy - Entschuldigung, dass ich dieses Thema wieder aufmache :-)
Ich denke, dass es eine Diskrepanz gibt zwischen dem, was Sie über die Natur einer Zecke glauben, und Ihrer Methode zur Berechnung von Gewinn/Risiko usw. (nach dem Lesen einiger früherer Beiträge).
Das heißt, dass Sie MarketInfo(Symbol(),MODE_TICKVALUE) allein verwenden, um den Pip-Wert des Paares in Bezug auf die Einzahlungswährung zu bestimmen.
Wenn das, was Sie über Ticks im MT4 glauben, richtig ist, kann sich der Tick-Wert um einen Faktor der Anzahl der Pips zwischen den Ticks ändern.
Mit anderen Worten: Wenn der Kurs plötzlich ein paar Pips springt, könnte ein vorheriger Aufruf von MarketInfo ergeben, dass TICKSIZE und TICKVALUE 0,0001 bzw. 7,16 betragen. Der nächste Aufruf könnte dann 0,0002 und 14,32 ergeben.
In diesem Fall müssten Sie immer sowohl MarketInfo(Symbol(),MODE_TICKSIZE) als auch MarketInfo(Symbol(),MODE_TICKVALUE) in Ihre Gewinn-/Risiko-Formeln einbeziehen und niemals MarketInfo(Symbol(),MODE_TICKVALUE) allein.
Ist dies korrekt?
CB
.
Für Euro bei MBTrading:
10000 MODE_LOTSIZE Losgröße in der Basiswährung.
0.1 MODE_TICKVALUE Tickwert in der Depotwährung.
0,00001 MODE_TICKSIZE Tick-Größe in der Kurswährung.
.
Ersetzen Sie oben das Wort "Tick" durch "Pip", wenn Sie möchten.
.
Dieser Broker verwendet Mini-Lot als Standardgröße -- MODE_LOTSIZE
Sie verwenden 3/5 Ziffern für den Preis -- MODE_TICKSIZE
Der Wert eines dieser "Ticks" beträgt $0,10 -- MODE_TICKVALUE
.
Für GBPAUD:
.
10000 MODE_LOTSIZE Losgröße in der Basiswährung.
0.080262 MODE_TICKVALUE Tickwert in der Einzahlungswährung.
0.00001 MODE_TICKSIZE Tick-Größe in der Kurswährung.
.
GBPAUD ein Pip Bewegung auf einem Lot zahlt $0.080262
.
Ihre Idee zur Berechnung der Preisänderung Ihrer Order von einem Moment zum nächsten...
PositionsWertVeränderung = PreisVeränderungInPips * MarketInfo( OrderSymbol(), MODE_TICKVALUE) * OrderLots();
.