Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1159

 
Vladimir Karputov:
Sind Sie sicher, dass die Börse nachts für das gewünschte Symbol funktioniert?

Ich zwinge das Terminal nicht, mir Ticks zu einer bestimmten Zeit zu senden, die es nicht hat, sondern ich sende nur eine Anfrage:

from=0,// das Datum, ab dem die Zecken angefordert werden.

count=0// Anzahl der zu empfangenden Ticks

Und es schickt mir die Geschichte selbst, nicht wahr?

 
VANDER:

Ich zwinge das Terminal nicht, mir Ticks zu einer bestimmten Zeit zu senden, die es nicht hat, sondern ich sende nur eine Anfrage:

from=0,// das Datum, ab dem die Zecken angefordert werden.

count=0// Anzahl der zu empfangenden Ticks

Und es schickt mir die Geschichte selbst, nicht wahr?

Wenn der Handel für das gewünschte Symbol geschlossen ist (z. B. nachts) - woher kommen dann die Ticks für das gewünschte Symbol?
 

Für das Hauptsymbol RTS-12.19, auf dem der Expert Advisor läuft, war der letzte Tick um 23:59:30 Uhr und SBRF-12.19 um 23:52:21 Uhr, so dass er die Ticks nicht herunterladen konnte?

Und wie interessant ist es, dass die Funktion SymbolInfoTick ihm dabei hilft, den Dreh rauszukriegen?

 
VANDER:

Für das Hauptsymbol RTS-12.19, auf dem der Expert Advisor läuft, war der letzte Tick um 23:59:30 Uhr und SBRF-12.19 um 23:52:21 Uhr, so dass er die Ticks nicht herunterladen konnte?

Und wie interessant ist die Funktion SymbolInfoTick, die ihm hilft, sie zu verstehen?

Forum für Handel, automatisierte Handelssysteme und Strategietests

FAQ von Anfängern MQL5 MT5 MetaTrader 5

Vladimir Karputov, 2019.12.08 13:20

Wenn die Gebote für das gewünschte Symbol geschlossen sind (z.B. nachts) - woher bekommt das gewünschte Symbol seine Ticks?

 
VANDER:

Für das Hauptsymbol RTS-12.19, auf dem der Expert Advisor läuft, war der letzte Tick um 23:59:30 Uhr und SBRF-12.19 um 23:52:21 Uhr, so dass er die Ticks nicht herunterladen konnte?

Und warum ist die Funktion SymbolInfoTick interessant?

Hier ist der EA:

//+------------------------------------------------------------------+
//|                                                  CopyTicks_1.mq5 |
//|                              Copyright © 2015, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2015, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.100"
#property description "Сравнение трёх режимов получения тиков"
//--- input parameters
input string   name  = "RTSSiZ9";      // символ по которому запрашиваем тики
input int      ticks = 3000;           // количество запрашиваемых тиков
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  SymbolSelect(name,true);
//--- succeed
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- массив для приема тиков
   MqlTick ExTicks[];
//--- запросим тики
   ResetLastError();
   int copied=CopyTicks(name,ExTicks,COPY_TICKS_ALL,0,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
  }
//+------------------------------------------------------------------+

Läuft auf RTSSRZ9 (dies ist SBRF-Dec19) - hier sind die Einstellungen:


Anforderung von Zecken in RTSSiZ9 (dies ist Si-Dec19).

Ergebnis:

2019.08.30 07:00:00   Получено тиков: -1 код ошибки: 4004
2019.08.30 07:00:01   Получено тиков: 2 код ошибки: 0
2019.08.30 07:00:01   Тик: 2019.08.30 07:00:00 bid: 22552.0 ask: 22697.0 last: 0.0 [0]
2019.08.30 07:00:01   Тик: 2019.08.30 07:00:01 bid: 22552.0 ask: 22697.0 last: 0.0 [1]
2019.08.30 07:00:02   Получено тиков: 3 код ошибки: 0
2019.08.30 07:00:02   Тик: 2019.08.30 07:00:00 bid: 22552.0 ask: 22697.0 last: 0.0 [0]
2019.08.30 07:00:02   Тик: 2019.08.30 07:00:02 bid: 22425.0 ask: 22856.0 last: 0.0 [2]
2019.08.30 07:00:02   Получено тиков: 4 код ошибки: 0
2019.08.30 07:00:02   Тик: 2019.08.30 07:00:00 bid: 22552.0 ask: 22697.0 last: 0.0 [0]

und so weiter ...


Das heißt, auf einem echten Server funktioniert alles. Wenn es bei Ihnen nicht klappt: 1. Arbeiten Sie auf einem echten Server, nicht auf einem Demo-Server, 2. Überprüfen Sie Ihren Code.

Dateien:
 

Das Konto ist mehr als real, ich handle damit. Ich habe Ihren Code verwendet, sogar alle Einstellungen genau eingestellt und Sie werden lachen, hier ist das vollständige Protokoll:


2019.12.08 21:08:38.787 MetaTester 5 started on 127.0.0.1:3000
2019.12.08 21:08:38.790 initialization finished
2019.12.08 21:08:39.088 login (build 2265)
2019.12.08 21:08:39.120 4372 bytes of account info loaded
2019.12.08 21:08:39.120 1482 bytes of tester parameters loaded
2019.12.08 21:08:39.120 1212 bytes of input parameters loaded
2019.12.08 21:08:39.138 29043 bytes of symbols list loaded
2019.12.08 21:08:39.138 expert file added: Experts\CopyTicks_1.ex5. 16437 bytes loaded
2019.12.08 21:08:39.152 6116 Mb available, 76 blocks set for ticks generating
2019.12.08 21:08:39.152 initial deposit 10000.00 USD, leverage 1:100
2019.12.08 21:08:39.153 successfully initialized
2019.12.08 21:08:39.153 37 Kb of total initialization data received
2019.12.08 21:08:39.153 Intel Core i5-3450  @ 3.10 GHz, 8157 MB
2019.12.08 21:08:39.198 RTS-12.19: symbol to be synchronized
2019.12.08 21:08:39.199 RTS-12.19: symbol synchronized, 4120 bytes of symbol info received
2019.12.08 21:08:39.199 RTS-12.19: history synchronization started
2019.12.08 21:08:39.201 RTS-12.19: load 33 bytes of history data to synchronize in 0:00:00.000
2019.12.08 21:08:39.201 RTS-12.19: history synchronized from 2018.01.12 to 2019.12.06
2019.12.08 21:08:39.201 RTS-12.19: ticks synchronization started
2019.12.08 21:08:39.202 RTS-12.19: load 40 bytes of tick data to synchronize in 0:00:00.000
2019.12.08 21:08:39.202 RTS-12.19: history ticks synchronized from 2019.01.03 to 2019.12.05
2019.12.08 21:08:39.205 RTS-12.19,H1: history cache allocated for 2480 bars and contains 971 bars from 2018.01.12 13:00 to 2019.08.29 23:00
2019.12.08 21:08:39.205 RTS-12.19,H1: history begins from 2018.01.12 13:00
2019.12.08 21:08:39.207 RTS-12.19,H1 (Open-Broker): generating based on real ticks
2019.12.08 21:08:39.207 RTS-12.19,H1: testing of Experts\CopyTicks_1.ex5 from 2019.08.30 00:00 to 2019.11.26 00:00 started with inputs:
2019.12.08 21:08:39.207   name=SBRF-12.19
2019.12.08 21:08:39.207   ticks=3000
2019.12.08 21:08:39.263 SBRF-12.19: symbol to be synchronized
2019.12.08 21:08:39.263 SBRF-12.19: symbol synchronized, 4120 bytes of symbol info received
2019.12.08 21:08:40.615 RTS-12.19 : real ticks begin from 2019.01.03 00:00:00
2019.12.08 21:08:55.958 2019.08.30 00:03:46   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:56.877 2019.08.30 00:03:46   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:57.764 2019.08.30 09:52:14   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:58.739 2019.08.30 10:00:01   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:08:59.784 2019.08.30 10:00:01   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:09:04.628 2019.08.30 10:00:03   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:09:05.579 2019.08.30 10:00:04   Получено тиков: -1 код ошибки: 4401
2019.12.08 21:09:06.596 2019.08.30 10:00:06   Получено тиков: -1 код ошибки: 4401

Der einzige Unterschied ist, dass es nachts anfängt, aber dann ist es auch am Morgen noch dasselbe.

 
VANDER:

Das Konto ist mehr als real, ich handle damit. Ich habe Ihren Code verwendet, sogar alle Einstellungen genau eingestellt und Sie werden lachen, hier ist das vollständige Protokoll:


Der einzige Unterschied ist, dass es nachts anfängt, aber dann ist es auch am Morgen noch dasselbe...

ERR_HISTORY_NOT_FOUND

4401

Gewünschter Verlauf nicht gefunden

Ab welchem Datum und bis zu welchem Datum wirdSBRF-12.19 gehandelt? Liegen diese Termine zwischen dem 30.08.2019 und dem 26.11.2019?

 
Vladimir Karputov:

ERR_HISTORY_NOT_FOUND

4401

Gewünschter Verlauf nicht gefunden

Seit wann wirdSBRF-12.19 gehandelt und bis wann? Fallen diese Daten in den Zeitraum vom 30.08.2019 bis 26.11.2019?

Ja, das ist bei allen Terminen der Fall.


Vergessen Sie es, ich habe eine Lösung für mich gefunden, indem ich die Funktion

SymbolInfoTick(необходимый символ)

Dann CopyTicks() beginnt mit ihm zu arbeiten, vielleicht Openbox Glitches auf andere Makler habe ich nicht überprüft, vielleicht wird es für jemanden nützlich sein.

 
VANDER:

Ja, das kommt bei allen Terminen vor.


Ok vergiss es, ich habe einen Ausweg für mich gefunden, benutze die Funktion vorher

Dann CopyTicks() beginnt mit ihm zu arbeiten, vielleicht glitches es auf anderen Brokern, die ich nicht überprüft habe, vielleicht wird es für jemanden nützlich sein.

Es hängt eindeutig vom Handelsserver ab - bei mir hat es funktioniert.
Vielleicht aktualisieren sie ihren Serverteil seit zehn Jahren nicht mehr.
 
fxsaber :

Was verhindert, dass der Code so korrigiert wird, dass es keine Warnungen gibt?

Wenn Sie 600 Warnungen haben, müssen Sie Zeilen mit Fehlern finden (ich habe sogar mehr, wenn ich den strengen Modus aktiviere)

Und fast alle Warnungen sind nutzlos. Denn in vielen Fällen geht es um versteckte Variablen oder Typumwandlungen. Vielleicht denken einige Leute, dass man sich irren kann, aber das ist unter erfahrenen Programmierern nicht üblich.

Mt4 war für Anfänger gerechtfertigt. Aber die aktuelle mql5-Sprache ist anspruchsvoll genug, um auch für Anfänger geeignet zu sein. Und erfahrene Programmierer brauchen keine 600 Zeilen über etwas, das eindeutig aus einem bestimmten Grund gemacht wurde.


Dies ist natürlich meine subjektive Meinung, aber bei anderen Sprachen können Sie selbst entscheiden, wie ausführlich Sie sein wollen.