La cronologia dei tick è disponibile sul server? - pagina 4

 
Penso che ci sia una base razionale nel suggerimento di Scholand, ma personalmente ne ho bisogno per la ricerca e temo di non poter fornire nulla di serio in una settimana, e ho un tale indicatore appena una settimana prima della comparsa del ramo, ma c'è un problema - cancella il file con le zecche dopo ogni inizializzazione, e né lui né io siamo riusciti a finire il compito. Forma delle barre secondo un volume fisso, perché a volte arriva un tick e il volume non è cambiato di 1.
//+------------------------------------------------------------------+
//|                                                    TickSaver.mq4 |
//|                               Copyright © 2006, Cherednikov K.M. |
//|                                            mailto:chkm76@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Cherednikov K.M."
#property link      "mailto:chkm76@mail.ru"

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_color1 Black

#include <WinUser32.mqh>
//---- input parameters
extern int NumTicksPerBar=3;
extern int Minutes_for_HSTfilename=3;

//---- buffers
double ExtMapBuffer1[];

//---- глобальные переменные
int hFile=-1;
int iFilePos;
int CurrTickNumber=0;
datetime i_time, i_time_bar0;
double d_open, d_low, d_high, d_close, d_volume;
double d_low_bar0, d_high_bar0, d_volume_bar0;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   int    nVersion=400;
   string szCopyright;
   string szSymbol=Symbol();
   int    iDigits=Digits;
   int    iUnused[13];

   //---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_READ);
   if(FileSize(hFile)<0){
   // Дабы не затереть реальные файлы историй, в имя файла добавлен "0" перед периодом
   hFile=FileOpenHistory(szSymbol + Minutes_for_HSTfilename + ".hst", FILE_BIN|FILE_WRITE);
   if(hFile < 0) return(-1);
   //---- Записать заголовок hst-файла
   szCopyright="(C)opyright 2003, MetaQuotes Software Corp.";
   FileWriteInteger(hFile, nVersion, LONG_VALUE);
   FileWriteString(hFile, szCopyright, 64);
   FileWriteString(hFile, szSymbol, 12);
   FileWriteInteger(hFile, Minutes_for_HSTfilename, LONG_VALUE);  //  файл - М2
   FileWriteInteger(hFile, iDigits, LONG_VALUE);
   FileWriteInteger(hFile, 0, LONG_VALUE);
   FileWriteInteger(hFile, 0, LONG_VALUE);
   FileWriteArray(hFile, iUnused, 0, 13);
   FileFlush(hFile);
   iFilePos=FileTell(hFile);
    }
    
    else{ iFilePos=FileTell(hFile); }
   i_time = CurTime();
   i_time_bar0 = Time[0];
   d_open = Close[0];
   d_low = d_open;
   d_high = d_open;
   d_close = d_open;
   d_volume = 1;
   d_volume_bar0 = Volume[0];

   /*d_low_bar0 = Low[0];
   d_high_bar0 = High[0];*/
   
   //----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   if(hFile>=0)
    { 
      FileClose(hFile); 
      hFile=-1; 
    }
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   CurrTickNumber++;
   //********* Обновление данных в переменных текущего бара **************
   d_close = Close[0];
   if (d_low > d_close) d_low = d_close;
   if (d_high < d_close) d_high = d_close;

   // Объем
   if (i_time_bar0!=Time[0])  // если на реальном графике появился новый бар, а для 
                              //   нас еще не набралось тиков закончить тиковый бар...
    { //расчитать изменение объема с учетом пополнения предыдущего реального бара
      d_volume += Volume[1] + Volume[0] - d_volume_bar0;
      i_time_bar0 = Time[0];
    }
   else
    { //расчитать изменение объема только с учетом текущего реального бара
      d_volume += Volume[0] - d_volume_bar0;
    }
   d_volume_bar0 = Volume[0];

   // Обновление данных последнего бара
   FileSeek(hFile, iFilePos, SEEK_SET);
   FileWriteInteger(hFile, i_time, LONG_VALUE);
   FileWriteDouble(hFile, d_open, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_low, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_high, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_close, DOUBLE_VALUE);
   FileWriteDouble(hFile, d_volume, DOUBLE_VALUE);

   if (CurrTickNumber==NumTicksPerBar)
   {
      iFilePos=FileTell(hFile);
      CurrTickNumber=0;
      i_time = CurTime();// / 60 / Minutes_for_HSTfilename;
      //i_time *= 60 * Minutes_for_HSTfilename;
      d_open = Close[0];
      d_low = d_open;
      d_high = d_open;
      d_close = d_open;
      d_volume = 1;
      FileWriteInteger(hFile, i_time, LONG_VALUE);
      FileWriteDouble(hFile, d_open, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_low, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_high, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_close, DOUBLE_VALUE);
      FileWriteDouble(hFile, d_volume, DOUBLE_VALUE);
   }
   FileFlush(hFile);

   // Обновление окна автономно открытого файла
   int hwnd=WindowHandle(Symbol(), Minutes_for_HSTfilename);
   if (hwnd!=0) PostMessageA(hwnd, WM_COMMAND, 33324, 0);

   Comment("Отладочная Инфа: \n"+
           "Тиков в баре: " + CurrTickNumber +
           "\nOpen=" + d_open + "    Close=" + d_close +
           "\nHigh=" + d_high + "    Low=" + d_low +
           "\nVol=" + d_volume +
           "\nПозиция файла: " + iFilePos
   );

   return(0);
  }
//+------------------------------------------------------------------+


 
Personalmente mi sembra che gli sviluppatori inventino artificialmente problemi tecnici per giustificarsi nella mancanza di volontà (o impossibilità) di migliorare MT in termini di storia delle zecche. <br / translate="no">
Stringa di file Tick (Time,Close,Volume) = (int,double,double) = (4,8,8,) = 20 byte.


Le citazioni possono essere memorizzate in numeri interi moltiplicandoli per 10000 e 100 (per il giapponese) di conseguenza.
Potete anche memorizzare i punti chiave e l'offset relativo all'ultima citazione.
Tutti questi problemi sono tecnici.
Il problema principale è strategico.
Le citazioni NON VOGLIONO e, credo, non lo faranno. Solo se il terminale è schiacciato dai concorrenti, ci sarà un prerequisito per un terminale di ticchettio.
C'è un altro problema. I clienti non pagano il terminale.
È pagato dai DT che comprano i server, e i DT NON sono INTERESSATI al terminale di tick, perché appariranno abili pipser che lavorano sulle peculiarità delle quotazioni DT.
 
Le società di brokeraggio non sono interessate a un terminale di tick, perché ci saranno dei pipsmiths che lavorano sulle peculiarità delle quotazioni delle società di brokeraggio.

È improbabile che le società di brokeraggio pensino al terminale (tick o terminale orario). Hanno altri interessi. Tutto ciò che è necessario per le società di intermediazione, penso, è già dato dagli sviluppatori (permesso/proibizione di auto-trading, cancellazione di accordi a prezzi non di mercato e così via). La statistica del campionato mostra che qualsiasi azienda di brokeraggio può organizzare una buona "cucina" e l'apparizione di qualche terminale di tick speciale non cambierà nulla di fondamentale, almeno le aziende di brokeraggio difficilmente si opporranno alla sua introduzione, se viene sviluppata. Bene, dato che non c'è ancora una prova dettagliata della necessità di introdurre serie di zecche, la questione sarà dove si trova ora.
Sarebbe interessante guardare i risultati delle prove di tick della piattaforma Omega, che "fa qualsiasi cosa - qualsiasi tick e timeframe".

Anche se la discussione sui broker è già oltre lo scopo del forum. Immagino che ora puliranno tutto?:o)
 
Penso che ci sia una base razionale in quello che ha suggerito solandr, ma personalmente ne ho bisogno per la ricerca e ho paura di non essere in grado di fornire nulla di serio in una settimana...

"MQL4: raccoglitore di tick
L'Expert Advisor salva la cronologia dei tick per i simboli specificati
 
Suggerisco di passare dall'infinito e inutile dibattito verbale sulla questione del tic-tac-toe a prove dettagliate. Per fare questo, dobbiamo fare quanto segue. Se vuoi, puoi scrivere un semplice script che genera serie di tick con una quantità scelta di tick e scrive i dati in un file CSV. Inoltre, potete aprire questo file in EXCEL e usare gli strumenti standard di EXCEL per disegnare il diagramma delle serie di tick. Se un tale grafico è disponibile per una settimana, ad esempio per un determinato tick-frame, è possibile confrontarlo con un grafico MT4 standard e mostrare che il grafico tick-frame ha fornito alcuni punti di entrata/uscita aggiuntivi che non avrebbero potuto essere ricevuti in qualche modo dalle serie temporali standard, ad esempio utilizzando le linee di supporto/resistenza del trend o qualcos'altro.

Caro solandr!
Perché sei così irritato da questa polemica? Perché vi ostinate a credere di sapere tutto sul futuro - sia cosa fare che cosa non fare?

Il programma di "costruzione di prove" da voi proposto è sbagliato in linea di principio. Lei vuole fare del successo del tick trading l'unico argomento credibile. Se si ragiona così, allora nessuno dei t/fs esistenti è affatto necessario - nessuno ha ancora riportato un successo radicale grazie a un particolare t/f.

Lasciate che vi informi. Ho scritto da tempo un Expert Advisor, che non solo scrive la storia dei tick, ma la visualizza anche in tempo reale sul grafico. Quindi, tutto ciò che può essere fatto in altri frame può essere fatto in un grafico in tick. Questo dimostra ancora una volta quale potente strumento sia MT4+MCL4. Dimostra anche che non è così difficile rendere questo servizio integrato.

Inoltre, ho speso molto tempo nella ricerca dei dati delle zecche. Non importa assolutamente se ho avuto successo sul mercato grazie ad esso o meno. Le persone ottengono qualcosa o no grazie alle loro capacità e al loro duro lavoro. Ma per ottenere un risultato, devono PRIMA averne la capacità. Questa condizione non è sufficiente, ma necessaria! :-)

Perché la domanda è: c'è la possibilità di lavorare con timeframes e non con tick-frames? Questa situazione è comprensibile a causa delle capacità limitate (tempo, manodopera, ecc.) degli sviluppatori. Ma è completamente inaccettabile in termini di completezza del servizio e di strategia. Quindi, se più o meno si adatta al mercato oggi, non lo farà domani.
 
2 Jhonny
Penso che ci sia una base razionale nel suggerimento di Scholand, ma personalmente ne ho bisogno per la ricerca e temo che non sarò in grado di fornire nulla di serio in una settimana, ma ho un indicatore di pre-produzione di quel tipo


Esattamente! Questo è esattamente il mio punto.

A proposito, questa cosa dovrebbe essere implementata come un EA. L'indicatore salta i tick!
Per evitare di sfregare il file deve essere aperto così: FILE_BIN|FILE_READ|FILE_WRITE
E prima di scriverci dentro, impostate il puntatore di scrittura alla fine del file.
 
Yurixx, stavo solo esprimendo il mio punto di vista! Questo è un forum libero e tutti hanno il diritto di esprimere la loro opinione, no? O dobbiamo sempre ascoltare l'opinione della maggioranza? Ma la maggioranza "perde" - guarda il campionato!

La gente ha chiesto agli sviluppatori di fare un ticchettio della storia, gli sviluppatori hanno rifiutato categoricamente. E poi? Scriverete qui una montagna di lamentele sul fatto che gli sviluppatori non hanno ascoltato i "desideri dei lavoratori"? Io, da parte mia, ho semplicemente suggerito un'opzione razionale per fare pressione sugli sviluppatori - tutto qui! Se tutti vogliono solo infinite lamentele verbali senza alcun progresso reale sulla questione, allora, per favore, personalmente non ho nulla in contrario.
 
"MQL4: Tick collector <br / translate="no"> L'Expert Advisor salva la storia dei tick per i simboli specificati


Naturalmente, voglio ringraziare per l'Expert Advisor, ma ho appena controllato, salva i dati in csv, mentre il mio è stato progettato per memorizzarli nella storia e poi il grafico può essere aperto e analizzato offline.
 
Naturalmente grazie per l'Expert Advisor, ma ho appena controllato, salva in csv, mentre il mio è stato progettato per salvare in storia e questo grafico può essere aperto e analizzato offline.

"MQL4: simple_csv2fxt".
Semplice convertitore da csv a fxt.


È necessario combinare il mio Expert Advisor e questo script, e rattopparlo un po' - sarà perfetto ;)
 
Penso che sia inutile chiedere se abbiamo bisogno di dati di spunta perché la risposta è ovvia - più possibilità vengono fornite, più il servizio è completo e di alta qualità e ci saranno sempre persone che hanno bisogno di uno o dell'altro... La risposta alla domanda: questa caratteristica sarà implementata nel prossimo futuro? - Ovviamente no... C'è secondo me una ragione importante... Vale a dire - sarà attuato solo ciò che porta Metakvotes entrate in questa fase sotto forma di nuovi contratti e questo è logico e corretto ... Come reddito porta società di intermediazione (broker, DC, ecc) allora sarà implementato che semplifica la loro vita, ma non ciò che complica la loro vita ...
I dati delle zecche complicheranno la loro vita per i seguenti motivi:
1. Se i dati di tick sono disponibili, gli Expert Advisors che fanno trading sul simbolo di tick appariranno sicuramente, e quindi ci saranno enormi difficoltà con la sovrapposizione di tali esperti.
2) se sono disponibili dati affidabili sulle zecche, la possibilità di testare gli esperti di zecche nel tester diventerà disponibile (il che aumenterà anche il loro numero)
3. Dopo l'accesso ai dati di tick, il pubblico chiederà l'accesso ai volumi REALI :))))))
4. il 4° posto è occupato dalla riluttanza o dalla frenesia degli sviluppatori (se ci fosse la domanda delle società di intermediazione, la creerebbero in una quindicina di giorni :))
5. E infine un argomento "a briscola" sul traffico folle e lo spazio su disco...