Chiarificazione sostanziale???? - pagina 4

 
Vladimir Mikhailov #:

Non è così bello, tutto è ridotto al minimo, per la velocità.


Ho avuto una buona idea.

MT5 era molto male con l'esecuzione degli ordini di trading,

Pertanto, ho voluto sviluppare un mio terminale (senza fronzoli), solo per il trading.

Ho dovuto collegare DLL-robot ma non ho ancora finito,

Non ho tempo per questo, e le mie capacità non sono all'altezza del lavoro.

 
Le mie scuse al mio broker. Si è scoperto che la storia della mia barra nella finestra era piccola e si spostava ogni giorno e di conseguenza c'erano questi problemi. Ora ho corretto tutto, costruito nuovi modelli, vedremo lunedì come si comporterà il modello!!!!!
 
Vladimir Mikhailov #:

Non è così bello, tutto è al minimo, per la velocità.


Non è nemmeno divertente, ahimè.

 
Vladimir Mikhailov #:

Non è così bello, tutto è al minimo, per la velocità.


Ha senso raccogliere zecche per 10.000 rubli al mese?

 
prostotrader #:

Ha senso raccogliere zecche per 10.000 rubli al mese?

La raccolta di quotazioni è una funzione secondaria, quella primaria è il trading.
Quando si sa e si vede come vengono raccolti i dati, c'è più fiducia in essi.
Inoltre c'è un minimo di intermediari sotto forma di software di terze parti con connessione diretta.

Quando si testa l'algoritmo di trading sulla cronologia MT5, i risultati sono come un dito nel cielo.
Il mio tester personale mostra buoni risultati sulla storia raccolta, tutte le operazioni corrispondono esattamente a un secondo di trading reale.

I miei algoritmi di trading sono orientati al trading intraday e sono molto sensibili ai dati in entrata.
Ma se fai trading a lungo termine, non hai bisogno di essere collegato direttamente e il requisito della storia potrebbe non essere così critico.
 
Vladimir Mikhailov #:

La raccolta di quotazioni è una funzione secondaria, quella primaria è il trading.
Quando si sa e si vede come vengono raccolti i dati, c'è più fiducia in essi.
Inoltre, ci sono pochi intermediari sotto forma di software di terze parti quando sono collegati direttamente.

Quando si testa l'algoritmo di trading sulla cronologia MT5, i risultati sono come un dito nel cielo.
Il mio tester personale mostra buoni risultati sulla storia raccolta, tutte le operazioni corrispondono esattamente a un secondo di trading reale.

I miei algoritmi di trading sono affinati per il trading intraday e sono molto sensibili ai dati in entrata.
Ma se fai trading a lungo termine, la connessione diretta non è necessaria e il requisito della storia potrebbe non essere così critico.

Fate trading sullo stesso strumento?

Aggiunto da

A giudicare dallo screenshot che hai postato, sembra molto simile all'arbitraggio classico (GAZR-12.21 vs GAZP), che anche in KVIC funziona bene.

 
prostotrader #:

Fate trading sullo stesso strumento?

Aggiunto

A giudicare dallo screenshot che hai postato, sembra molto simile all'arbitraggio classico (GAZR-12.21 vs GAZP), che anche in KVIC funziona bene.

Faccio trading su più di uno strumento. Sì, questo algoritmo è basato sull'arbitraggio classico.

 
Vladimir Mikhailov #:

Faccio trading con più di uno strumento. Sì, questo algoritmo è basato sull'arbitraggio classico.

Vedo solo una ragione per lo speed trading: il trading di densità con il gelling,

in altri casi la velocità non è necessaria.

Ma in questo caso l'analisi non è affatto necessaria.

Ma tu lo sai bene...

Aggiunto

Se la memoria non mi inganna, in CGate si possono ricevere le quotazioni delle azioni, ma

ma non si possono inviare ordini.

È un po' complicato...

 
prostotrader #:

Vedo solo una ragione per lo speed trading - il trading dalla densità con il gelling,

in altri casi la velocità non è necessaria.

Ma in questo caso l'analisi non è affatto necessaria.

Ma tu sai meglio di me...

Aggiunto

Se la memoria non mi inganna, in CGate si possono ricevere le quotazioni delle azioni, ma

ma non si possono inviare ordini.

Non sei molto intelligente.

Esatto, fai trading con un solo strumento.
Anche se l'algoritmo è basato sull'arbitraggio, commercia solo futures.

 
Vladimir Mikhailov #:

Esatto, c'è solo uno strumento scambiato.
Anche se l'algoritmo è basato sull'arbitraggio, commercia solo futures.

Mi hai fatto dubitare che MT5 trasmetta correttamente le quotazioni.

Dal momento che raccogli le zecche su GAZR-12.21 potresti darmi il file per lo scorso venerdì 15.10.2021?

Voglio confrontare se ci sono discrepanze.

Stavo confrontando con la KVIC circa 5 anni fa, non c'erano discrepanze.

Aggiunto

Sentitevi liberi di confrontare

//+------------------------------------------------------------------+
//|                                                      G_ticks.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  MqlTick g_ticks[];
  string t_date;
  string t_time;
  string c_flags;
  int result = CopyTicksRange(Symbol(), g_ticks, COPY_TICKS_ALL, ulong(D'15.10.2021 07:00:00') * 1000, ulong(D'15.10.2021 23:50:00') * 1000);
  if(result > 0)
  {
    int f_handle=FileOpen("g_ticks.csv",FILE_WRITE|FILE_CSV); 
    if(f_handle!=INVALID_HANDLE)
    {
      FileWrite(f_handle,"Иструмент:", Symbol());
      FileWrite(f_handle,"Всего записей:", string(result));
      FileWrite(f_handle, "Номер", "Дата", "Время", "Флаги", "Цена(Last)", "Объем", "Предложение", "Спрос");
      for(int i=0;i<result;i++)
      {
        t_date = TimeToString(g_ticks[i].time, TIME_DATE);
        t_time = TimeToString(g_ticks[i].time, TIME_SECONDS) + "." + string( ulong(g_ticks[i].time_msc) - ulong(g_ticks[i].time)*1000);
        c_flags = "";
        if((g_ticks[i].flags&TICK_FLAG_BID) == TICK_FLAG_BID) c_flags += " TICK_FLAG_BID,"; 
        if((g_ticks[i].flags&TICK_FLAG_ASK) == TICK_FLAG_ASK) c_flags += " TICK_FLAG_ASK,";
        if((g_ticks[i].flags&TICK_FLAG_LAST) == TICK_FLAG_LAST) c_flags += " TICK_FLAG_LAST, ";
        if((g_ticks[i].flags&TICK_FLAG_VOLUME) == TICK_FLAG_VOLUME) c_flags += " TICK_FLAG_VOLUME,";
        if((g_ticks[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) c_flags += " TICK_FLAG_BUY.";
        if((g_ticks[i].flags&TICK_FLAG_SELL) == TICK_FLAG_SELL) c_flags += " TICK_FLAG_SELL,";
        int f_len = StringLen(c_flags);
        if(f_len > 1)
        {
          StringSetCharacter(c_flags, f_len - 1, ushort(" "));
          StringTrimRight(c_flags);          
        }
        if(c_flags == "")
        {
          FileWrite(f_handle, string(i + 1), t_date, t_time, string(g_ticks[i].flags), DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits()));
        }
        else FileWrite(f_handle, string(i + 1), t_date, t_time, c_flags, DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits())); 
      }
      FileClose(f_handle);
    }  
  }
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }

//+------------------------------------------------------------------+

Aggiunto

E forse altri programmi, in qualche modo separano le zecche che hanno più di una bandiera.


File:
1_g_ticks.zip  781 kb
Motivazione: