Storia di zecca - pagina 18

 
Alexander:

Sta giocando ora?

Non ce l'abbiamo, abbiamo provato secondo la tua descrizione.

Dopo il "trattamento":

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

Storia delle zecche

Karputov Vladimir, 2015.10.21 09:24

...

Sto testando la "cura" ora - cancellerò completamente la storia dalle cartelle "history" e "ticks" del server MetaQuotes-Demo.


La cronologia di profondità di 500 ticks è data quasi istantaneamente, mentre la cronologia generale delle barre viene scambiata. La dimensione dei file delle zecche è di 200-400 Kb per 10 mesi.

 

E volevo avere le zecche nel tester, dà qualsiasi cosa sia :)

void OnTick()
  {
//---
 MqlTick ExTicks[];
 CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,D'2015.10.16 23:59',1);

 

Guarda come funzionano i tick nella build 1194, dove sono stati aggiunti i millisecondi e le bandiere.

Nel tester, i tick non sono dati fino a quando non completeremo la completa integrazione dei tick nel tester delle strategie di trading nella prossima release.

 
MetaTrader 5 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Home (X86 based PC), IE 11.00, UAC, Intel Atom  Z3740 @ 1.33GHz, RAM: 218 / 1931 Mb, HDD: 20039 / 50235 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU (ping: 139.57 ms)

Testare il tick paging quando la connessione internet è interrotta. L'indicatore di prova qui sotto:

//+------------------------------------------------------------------+
//|                                                         test.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.1"
#property indicator_chart_window
#property indicator_plots 0
//--- input parameter
input int   InpShowTicks=50;    // клубина истории тиков
//--- parameters
MqlTick     arr_mql_tick[];      // массив структур хранящий тики
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
   Print(__FUNCTION__);
   Comment("");
   ResetLastError();
//--- новый размер массива структур тиков
   if(ArrayResize(arr_mql_tick,InpShowTicks)==-1)
     {
      Print("Error OnInit #1",GetLastError());
      return(INIT_FAILED);
     }
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int count;
   string text  =IntegerToString(count)+"; ";
   int copied=CopyTicks(_Symbol,arr_mql_tick,COPY_TICKS_INFO,0,InpShowTicks);
   text+="Запрошено "+IntegerToString(InpShowTicks)+" тиков, скачано "+IntegerToString(copied);
   Comment(text);
   count++;
   return(rates_total);
  }
//+------------------------------------------------------------------+

L'algoritmo è il seguente:

Avviare l'indicatore. Aspetta che il numero di tick scaricati sia uguale alla quantità richiesta.

Disconnettiti da Internet (il terminale dovrebbe emettere un segnale acustico). Allo stesso tempo:

  1. test #1, "count" =40,
  2. test #2, "count" =47,
  3. test #3, "count" =12.

Accendere internet.

L'indicatore cerca di scaricare i tick, con una richiesta di 50, ma ne vengono scaricati 21-23. Questo dura fino a quando "count" è maggiore di 100.

La ripetibilità è buona, controllata più di tre volte.

File:
test.mq5  3 kb
 
Karputov Vladimir:

Testare il tick paging quando la connessione internet è interrotta. L'indicatore testato è qui sotto:


Tieni presente che la richiesta di ticks nell'indicatore funziona in modo leggermente diverso dalla richiesta di ticks nell'Expert Advisor.

L'indicatore non ha il diritto di frenare, quindi l'indicatore riceve subito il numero di tick disponibili per la richiesta.

L'Expert Advisor lavora nel suo flusso, quindi può aspettare un po'. Per l'Expert Advisor vengono fatti diversi tentativi di scambiare i tick per richiesta.

 
Slawa:

Tenete presente che le richieste di tick in un indicatore funzionano in modo leggermente diverso dalle richieste di tick in un Expert Advisor.

L'indicatore non ha il diritto di frenare, quindi l'indicatore riceve subito il numero di tick disponibili per la richiesta.

Expert Advisor sta lavorando nel proprio thread, quindi può aspettare un po'. Vengono fatti diversi tentativi per l'Expert Advisor di scambiare tick per query.

Questo è comprensibile. Ma quanto tempo ci vuole per accumulare? Nell'esempio qui sopra, la richiesta è per 50 tick. Se non ci sono tick da caricare immediatamente, ci vorranno 30 secondi.

C'è di peggio. Faccio una richiesta di 500 zecche - le zecche vengono rifornite quasi istantaneamente (penso che sia solo perché ho richiesto questa quantità prima) e poi faccio una richiesta di 5000 zecche - sono già passati quattro minuti, ma solo 2000 zecche su 5000 sono state caricate e la quantità non aumenta.

 
Renat Fatkhullin:

Guarda come funzionano i tick nella build 1194, dove sono stati aggiunti i millisecondi e le bandiere.

Nel tester, i tick non sono dati fino a quando non completeremo la completa integrazione dei tick nel tester delle strategie di trading nella prossima release.

Ci saranno cambiamenti simili per MT4?
 

L'ho controllato su un altro computer la sera:

MetaTrader 5 x64 build 1194 started (MetaQuotes Software Corp.)
Windows 10 Pro (x64 based PC), IE 11.00, UAC, Intel Core i3-3120 M  @ 2.50 GHz, RAM: 1129 / 3981 Mb, HDD: 75614 / 234136 Mb, GMT+02:00
authorized on MetaQuotes-Demo through Access Point EU2 (ping: 59.54 ms)

Precaricato 200000000 ticks con uno script - ticks caricati in circa 6 secondi. Non ho potuto vedere alcuna differenza:

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

Storia delle zecche

Karputov Vladimir, 2015.10.22 15:07

... Do una richiesta di 500 tick - i tick vengono caricati quasi istantaneamente (penso che sia solo dovuto al fatto che ho chiesto precedentemente un tale numero), e poi do una richiesta di 5000 - sono passati quattro minuti, e poco meno di 2000 di 5000 vengono caricati e questo numero non cresce.

 
Non in MT4, purtroppo.
 
MetaTrader 5 build 1196 started (MetaQuotes Software Corp.)
authorized on MetaQuotes-Demo through Access Point EU1 (ping: 296.87 ms)

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

1

- cosa significa questo valore?

File: