Storia di zecca - pagina 19

 
Karputov Vladimir:

Il campo flags della struttura MqlTicks contiene spesso valori di "24" (modalità di visualizzazione "tutti i tick"):

- cosa significa questo valore?

Tutti i parametri di ogni tick sono sempre compilati, indipendentemente dal fatto che i dati siano cambiati dal tick precedente. Questo ti permette di avere sempre lo stato attuale del prezzo in qualsiasi momento senza dover cercare i valori precedenti nella cronologia dei tick. Per esempio, con un tick potrebbe essere cambiato solo il prezzo di offerta, ma la struttura conterrà altri parametri oltre al nuovo prezzo: prezzo di domanda precedente, volume, ecc. Per scoprire quali dati sono cambiati con il tick corrente, analizzate le sue bandiere:

  • TICK_FLAG_BID - il tick ha cambiato il prezzo dell'offerta
  • TICK_FLAG_ASK - il tick ha cambiato il prezzo ask
  • TICK_FLAG_LAST - il tick ha cambiato il prezzo dell'ultimo affare
  • TICK_FLAG_VOLUME - Il tick ha cambiato volume
  • TICK_FLAG_BUY - Il tick si è verificato come risultato di un acquisto
  • TICK_FLAG_SELL - un tick si è verificato come risultato di una vendita
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:. - Страница 18 - Категория: общее обсуждение
 
Andrey Khatimlianskii:

Ho allegato un EA che stampa questi codici in OnInit():

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

e il risultato:

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 - тик возник в результате сделки на продажу

Non c'è nessun valore "24" tra i risultati.

 
Karputov Vladimir:

Non c'è nessun valore di "24" tra i risultati.

8 || 16 = 24

 
Karputov Vladimir:

Ho allegato un EA che stampa questi codici in OnInit():

e il risultato:

Non c'è nessun valore "24" tra i risultati.

Operazione OR bitwise

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Основы языка / Операции и выражения / Побитовые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Clear - i parametri possono sommarsi, a seconda di quali parametri della struttura MqlTick sono stati modificati con l'arrivo del tick.
 

Qualcun altro può testare l'indicatore dal post sulla metodologia:

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Storia delle zecche

Karputov Vladimir, 2015.10.22 15:07

È comprensibile. Ma quanto tempo ci vuole per scambiare? Nell'esempio qui sopra, la richiesta è per 50 tick e se i tick non vengono caricati immediatamente, ci vogliono 30 secondi.

C'è di peggio. Faccio una richiesta di 500 tick - i tick vengono caricati quasi istantaneamente (penso che sia solo perché ho richiesto questa quantità prima), e poi faccio una richiesta di 5000 - sono già passati quattro minuti, e ho poco meno di 2000 tick su 5000 caricati e questo numero non cresce.


 
Renat Fatkhullin:

...

Nel tester, le zecche non vengono scaricate fino a quando non completiamo l'integrazione completa delle zecche nello Strategy Tester nella prossima release.

La build 1200 è uscita. Nel tester i tick non vengono scaricati, ma nel tester di Market Watch i tick sembrano veri tick:

Tester. Rassegna di mercato.

 

Ho capito come ottenere le zecche da una certa data. È semplice: dovete specificare il tempo in millisecondi.

//+------------------------------------------------------------------+
//|                                                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");
  }
//+------------------------------------------------------------------+
File:
 

Bild 1200. C'è un indicatore collegato al grafico che chiama CopyTicks. Tutto funziona. Ma dopo aver rotto la connessione:

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

e poi quando la connessione viene ripristinata, CopyTicks si rifiuta ostinatamente di restituire i tick. E sono 50 tick o 500.

 
Karputov Vladimir:

Bild 1200. C'è un indicatore collegato al grafico che chiama CopyTicks. Tutto funziona. Ma dopo aver rotto la connessione:

e poi quando la connessione viene ripristinata, CopyTicks si rifiuta ostinatamente di restituire i tick. E sono 50 tick o 500.

E se poi si collega a un altro server? O fare una nuova scansione della rete e connettersi alla stessa? L'errore rimane?