[VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIVO

Sezione dedicata a metatrader (ed altre piattaforme) ed al suo linguaggio di programmazione per il trading automatico
pipRaptor

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da pipRaptor »

bravissimo Redbullish, complimenti, stai facendo un grande lavoro!

per il file, puoi usare il FileSeek per posizionarti sugli ultimi record

funziona più o meno così (sto andando a memoria, meglio controllare la documentazione!)

Codice: Seleziona tutto

int fHandle = FileOpen("filename.csv", FILE_CSV | FILE_READ | FILE_SHARE_READ);

if (fHandle < 0)
{
     .... ERRORE DI APERTURA ....
}
else
{
     // mi posiziono a nTot record dalla fine
     // ma posso anche posizionarmi dall'inizio SEEK_SET

     FileSeek(fHandle, nTot, SEEK_END);

     .... ADESSO LEGGO DA QUEL PUNTO IN POI ....
}
Ultima modifica di pipRaptor il 29/12/2014, 11:30, modificato 1 volta in totale.
ZePeq

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da ZePeq »

Ottimo, il fileseek sembra essere proprio quello che mi serviva, più tardi quando sono a casa lo provo subito!
pipRaptor

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da pipRaptor »

ieri ho finito e testato a fondo l'indicatore per la NinjaTrader che estrae il DOM e lo salva in CSV pronto per la Metatrader

il sorgente in C# (NinjaScript) è allegato qui sotto, in sintesi:
  1. dichiaro due array bidDOM e askDOM di stringhe, con "BID" o "ASK", data/ora, prezzo, volume dei contratti
  2. nei due array bidDOM e askDOM metto rispettivamente i 10 prezzi inferiori e i 10 superiori all'attuale (in realtà sono dimensionati a 15 per sicurezza)
  3. il metodo OnMarketDepth può inserire, cancellare o aggiornare il prezzo e i volumi dei contratti bid o ask a un certo livello
  4. in questo modo i livelli del DOM corrispondono perfettamente agli indici degli array
  5. perciò basta inserire, cancellare o aggiornare il relativo elemento dell'array
il DOM è salvato nel file CSV (attenzione a impostare la directory corretta nel codice!) con il nome automatico dello "strumento" 6E_DOM.csv

così i dati sono pronti per essere utilizzati in mql4, nella forma:
(nota: per controllare se il DOM è corretto, i prezzi devono salire dal basso di 1 pip per volta, a parte l'eventuale spread che può esserci passando dai contratti BID agli ASK)

Ask;2014.12.30 09:57:13;1.2186;727
Ask;2014.12.30 09:57:13;1.2185;84
Ask;2014.12.30 09:56:30;1.2184;198
Ask;2014.12.30 09:56:48;1.2183;86
Ask;2014.12.30 09:55:13;1.2182;216
Ask;2014.12.30 09:57:10;1.2181;112
Ask;2014.12.30 09:57:13;1.218;118
Ask;2014.12.30 09:57:13;1.2179;111
Ask;2014.12.30 09:57:13;1.2178;110
Ask;2014.12.30 09:57:13;1.2177;66
Bid;2014.12.30 09:57:13;1.2176;6
Bid;2014.12.30 09:57:13;1.2175;99
Bid;2014.12.30 09:57:06;1.2174;92
Bid;2014.12.30 09:57:13;1.2173;90
Bid;2014.12.30 09:57:13;1.2172;106
Bid;2014.12.30 09:56:51;1.2171;121
Bid;2014.12.30 09:56:17;1.217;218
Bid;2014.12.30 09:57:13;1.2169;106
Bid;2014.12.30 09:56:48;1.2168;213
Bid;2014.12.30 09:56:35;1.2167;104
Allegati
dataDOM.zip
(2.3 KiB) Scaricato 61 volte
pipRaptor

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da pipRaptor »

allego qui sotto l'indicatore MarketData per la NinjaTrader, che ho appena finito e testato

devo ringraziare Redbullish che ha partecipato attivamente a questo lavoro

questo indicatore estrae dalla NinjaTrader i contratti BID o ASK effettivamente chiusi e li esporta in un file CSV pronto per la Metatrader

in questo modo abbiamo i due tasselli fondamentali per utilizzare i dati dei futures direttamente in MQL4
  • il DOM che riporta i contratti fissati ai 10 prezzi superiori e ai 10 inferiri all'attuale
  • i contratti effettivamente chiusi all'ultimo prezzo bid oppure ask
  • come nell'immagine qui sotto, i dati che estraiamo devono coincidere con quelli del SuperDOM della NinjaTrader
  • dal menù in alto FILE -> NEW -> selezionare il SuperDOM dinamico
  • in basso selezionare come strumento i futures 6E
  • il SuperDOM DINAMICO ha in alto il tasto HOLD che "congela" la schermata per studiarla meglio
  • quando la schermata è congelata, tutto lo sfondo diventa giallo per ricordare che i dati non sono più aggiornati!
  • con il click destro compare il menù per le opzioni, selezionando "Always on top" il SuperDOM rimane sempre in primo piano e posso utilizzarlo direttamente come "indicatore" mentre opero con la metatrader, e tra le varie "Proprietà" è utile visualizzare il totale dei contratti buy e sell
150102 0919 NinjaTrader MarketData.png
150102 0919 NinjaTrader MarketData.png (92.69 KiB) Visto 908 volte
Allegati
MarketData.zip
(2.01 KiB) Scaricato 64 volte
pipRaptor

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da pipRaptor »

a questo punto abbiamo i due indicatori per la NinjaTrader che esportano i dati in due file CSV e non ci resta che leggerli in mql4

inizio con un breve riassunto
  1. adesso abbiamo due file CSV nella cartella FILES della o delle Metatrader
  2. attenzione a mettere il percorso corretto nel codice dei due indicatori NinjaScript
  3. il primo file CSV contiene i dati del DOM con i contratti reali da 100.000 USD (o 125.000 a seconda dello strumento) fissati ai 10 bid inferiori e ai 10 ask superiori
  4. il secondo CSV contiene l`ultimo ordine con i contratti reali e il prezzo ask o bid
i dati del DOM sono nel file 6E_DOM.csv e hanno questo formato

Ask;2015.01.02 06:52:19;1.2072;182
Ask;2015.01.02 06:52:29;1.2071;48
Ask;2015.01.02 06:52:19;1.207;154
Ask;2015.01.02 06:52:46;1.2069;53
Ask;2015.01.02 06:51:32;1.2068;123
Ask;2015.01.02 06:52:46;1.2067;52
Ask;2015.01.02 06:52:29;1.2066;88
Ask;2015.01.02 06:52:30;1.2065;68
Ask;2015.01.02 06:52:49;1.2064;52
Ask;2015.01.02 06:52:36;1.2063;31
Bid;2015.01.02 06:52:43;1.2062;5
Bid;2015.01.02 06:52:45;1.2061;47
Bid;2015.01.02 06:52:42;1.206;59
Bid;2015.01.02 06:52:44;1.2059;81
Bid;2015.01.02 06:52:44;1.2058;69
Bid;2015.01.02 06:52:44;1.2057;48
Bid;2015.01.02 06:52:37;1.2056;152
Bid;2015.01.02 06:52:28;1.2055;48
Bid;2015.01.02 06:52:37;1.2054;173
Bid;2015.01.02 06:52:21;1.2053;177

invece i contratti realmente chiusi vengono via via aggiunti in coda a un file con la data del giorno, in modo da conservare i dati storici

il CSV ha un nome tipo 150102_MarketData.csv e questo formato

...
841;2015.01.02 09.19.52;BID;1.2074;1
842;2015.01.02 09.19.53;BID;1.2074;1
843;2015.01.02 09.19.54;BID;1.2074;1
844;2015.01.02 09.19.54;BID;1.2074;1
...

questo è lo pseudo-codice MQL4 per estrarli e importarli nei tuoi indicatori o addirittura usarli per i tuoi EA

Codice: Seleziona tutto

   int fHandle = FileOpen("150102_MarketData.csv", FILE_CSV | FILE_READ | FILE_SHARE_READ);

   if (fHandle < 0)
   { 
      Print("ERROR " + IntegerToString(GetLastError()));
   }
   else
   {
      while (!FileIsEnding(fHandle))
      {
         // "BID;" + e.Price + ";" + e.Volume
         // "ASK;" + e.Price + ";" + e.Volume
         // "NONE;" + e.Price + ";" + e.Volume
         // BID;1.2267;1
         string sRoll  = FileReadString(fHandle);
         string sTime  = FileReadString(fHandle);
         string sType  = FileReadString(fHandle);
         string sPrice = FileReadString(fHandle);
         string sVol   = FileReadString(fHandle);
   
         Print(sRoll + " " + sTime + " " + sType + " price " + sPrice + " vol " + sVol);
      }

      FileClose (fHandle); 
   }
il parsing del CSV è molto semplice, perché sono appunto Comma Separated Values, leggo le stringhe e poi le posso convertire nel formato dati che mi interessa
FXslim
Messaggi: 26
Iscritto il: 21/05/2014, 15:40

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da FXslim »

Grande idea Raptor, non credevo fosse possibile poter portare i volumi reali del futures sulla mt4. Penso possa essere di estrema utilità.
Il problema è che ho seguito le istruzioni sul primo post ma non riesco ad avviare la piattaforma ninja-trader. Arrivo al punto 2, inserisco id e password in basso a sinistra Connected CQG è verde ma sopra è tutto fermo.
in ask e bid e le altre voci ho N/A non riesco ad andare avanti, ho sbagliato qualcosa o devo fare qualcosaltro?
Avatar utente
tenente
Messaggi: 161
Iscritto il: 13/05/2014, 22:03
Località: Santa Cruz

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da tenente »

File-new-chart
:yes:
FXslim
Messaggi: 26
Iscritto il: 21/05/2014, 15:40

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da FXslim »

Ti ringrazio Tenente, è il passo successivo che avrei fatto e che ho fatto, cmq non mi partano i valori bid, ask, ecc e anche attivando chart non si apre nessun grafico, bensi una nuova finestra che però resta completamente bianca.
pipRaptor

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da pipRaptor »

grazie Tenente e FXSlim per l'interesse e la collaborazione!

per collegare la NinjaTrader e aprire il grafico giusto, ci sono le istruzioni nel primo post... può darsi però che nel finesettimana non aggiorni nemmeno i dati storici, FXSlimi prova a guardare questo post

importare-dati-futures-su-metatrader-t643-10.html#p9301
FXslim
Messaggi: 26
Iscritto il: 21/05/2014, 15:40

Re: [VP] Volumi REALI FUTURES e SPOT su MT4: THREAD OPERATIV

Messaggio da FXslim »

Ti ringrazio, domani mattina a mercati aperti provo.
Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite