Geschichte ankreuzen - Seite 19

 
Karputov Vladimir:

Das Feld flags der Struktur MqlTicks enthält häufig den Wert "24" (Anzeigemodus "alle Ticks"):

- Was bedeutet dieser Wert?

Alle Parameter eines jeden Ticks werden immer ausgefüllt, unabhängig davon, ob sich die Daten seit dem vorherigen Tick geändert haben. So können Sie jederzeit den aktuellen Kursstand abrufen, ohne die vorherigen Werte in der Tick-Historie nachschlagen zu müssen. Bei einem Tick könnte sich zum Beispiel nur der Geldkurs geändert haben, aber die Struktur enthält neben dem neuen Kurs auch andere Parameter: den vorherigen Briefkurs, das Volumen usw. Um herauszufinden, welche Daten sich mit dem aktuellen Tick geändert haben, analysieren Sie deren Flaggen:

  • TICK_FLAG_BID - der Tick hat den Geldkurs verändert
  • TICK_FLAG_ASK - der Tick hat den Briefkurs verändert
  • TICK_FLAG_LAST - Tick hat den Preis des letzten Geschäfts geändert
  • TICK_FLAG_VOLUME - Tick hat Lautstärke geändert
  • TICK_FLAG_BUY - Tick ist als Ergebnis eines Kaufgeschäfts aufgetreten
  • TICK_FLAG_SELL - ein Tick ist als Ergebnis eines Verkaufsgeschäfts entstanden
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:. - Страница 18 - Категория: общее обсуждение
 
Andrey Khatimlianskii:

Ich habe einen EA beigefügt, der diese Codes in OnInit() ausgibt:

   Print(TICK_FLAG_BID," - тик изменил цену бид");
   Print(TICK_FLAG_ASK,"  - тик изменил цену аск");
   Print(TICK_FLAG_LAST," - тик изменил цену последней сделки");
   Print(TICK_FLAG_VOLUME," - тик изменил объем");
   Print(TICK_FLAG_BUY," - тик возник в результате сделки на покупку");
   Print(TICK_FLAG_SELL," - тик возник в результате сделки на продажу")

und das Ergebnis:

2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     2 - тик изменил цену бид
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     4  - тик изменил цену аск
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     8 - тик изменил цену последней сделки
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     16 - тик изменил объем
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     32 - тик возник в результате сделки на покупку
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     64 - тик возник в результате сделки на продажу

Es gibt keinen "24"-Wert unter den Ergebnissen.

 
Karputov Vladimir:

Der Wert "24" ist in den Ergebnissen nicht enthalten.

8 || 16 = 24

 
Karputov Vladimir:

Ich habe einen EA beigefügt, der diese Codes in OnInit() ausgibt:

und das Ergebnis:

Der Wert "24" ist in den Ergebnissen nicht enthalten.

Bitweise ODER-Verknüpfung

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Основы языка / Операции и выражения / Побитовые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Clear - Parameter können sich summieren, je nachdem, welche Parameter der MqlTick-Struktur beim Eintreffen des Ticks geändert wurden.
 

Kann noch jemand den Indikator aus dem Beitrag zur Methodik testen?

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Zeckengeschichte

Karputov Vladimir, 2015.10.22 15:07

Das ist verständlich. Aber wie lange dauert der Tauschvorgang? Im obigen Beispiel ist die Anfrage für 50 Ticks, und wenn die Ticks nicht sofort geladen werden, dauert es 30 Sekunden.

Es kommt noch schlimmer. Ich fordere 500 Ticks an - die Ticks werden fast sofort geladen (ich denke, das liegt nur daran, dass ich diese Menge früher angefordert habe), und dann fordere ich 5000 an - vier Minuten sind bereits vergangen, und ich habe knapp 2000 Ticks von 5000 geladen, und diese Zahl wächst nicht.


 
Renat Fatkhullin:

...

Im Tester werden die Ticks nicht heruntergeladen, bis wir die vollständige Integration der Ticks in den Strategy Tester in der nächsten Version abgeschlossen haben.

Der Build 1200 ist erschienen. Im Tester werden die Ticks nicht heruntergeladen, aber im Tester in der Market Watch sehen die Ticks wie echte Ticks aus:

Tester. Marktübersicht.

 

Ich habe herausgefunden, wie man Zecken ab einem bestimmten Datum bekommt. Es ist ganz einfach: Sie müssen die Zeit in Millisekunden angeben.

//+------------------------------------------------------------------+
//|                                                CopyTicks_1_03.mq5|
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.03"
#property description "Получение тиков с определённой даты"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200;  // количество запрашиваемых тиков
input datetime start=D'2015.10.16 23:59'; // с какой даты запрашивать тики
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики, время должно быть в миллисекундах!
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,(ulong)start*1000,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Из заказанных ",ticks," самый старый тик: ",ExTicks[0].time," bid: ",
            ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Из заказанных ",ticks," самый молодой тик: ",ExTicks[copied-1].time," bid: ",
            ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
  }
//+------------------------------------------------------------------+
Dateien:
 

Bild 1200. Es gibt einen Indikator, der an das Diagramm angehängt ist und CopyTicks aufruft. Alles funktioniert. Aber nachdem die Verbindung unterbrochen wurde:

2015.10.26 09:58:06.721 Network '1783501': connection to MetaQuotes-Demo lost

und dann, wenn die Verbindung wiederhergestellt ist, weigert sich CopyTicks hartnäckig, Ticks zurückzugeben. Und es sind entweder 50 Ticks oder 500.

 
Karputov Vladimir:

Bild 1200. Es gibt einen Indikator, der an das Diagramm angehängt ist und CopyTicks aufruft. Alles funktioniert. Aber nachdem die Verbindung unterbrochen wurde:

und dann, wenn die Verbindung wiederhergestellt ist, weigert sich CopyTicks hartnäckig, Ticks zurückzugeben. Und es sind entweder 50 Ticks oder 500.

Und wenn Sie dann eine Verbindung zu einem anderen Server herstellen? Oder scannen Sie das Netzwerk erneut und verbinden Sie sich mit demselben? Bleibt der Fehler bestehen?