Liquidación de fondo???? - página 4

 
Vladimir Mikhailov #:

No es tan bonito, todo se mantiene al mínimo, para la velocidad.


Tuve una buena idea.

MT5 era muy malo con la ejecución de las órdenes de comercio,

Por lo tanto, quería desarrollar mi propio terminal (sin florituras), sólo para el comercio.

Tuve que conectar DLL-robots pero aún no lo he terminado,

No tengo tiempo para eso y no estoy capacitado para ello.

 
Disculpas a mi agente. Resulta que la historia de mi barra en la ventana era pequeña y se desplazaba cada día y como resultado había estos problemas. ¡¡¡¡¡Ahora he corregido todo, construido nuevos modelos, veremos el lunes cómo se comportará el modelo!!!!!
 
Vladimir Mikhailov #:

No es tan bonito, todo está al mínimo, para la velocidad.


Ni siquiera es gracioso, por desgracia.

 
Vladimir Mikhailov #:

No es tan bonito, todo está al mínimo, para la velocidad.


¿Tiene algún sentido recoger garrapatas por 10.000 rublos al mes?

 
prostotrader #:

¿Tiene algún sentido recoger garrapatas por 10.000 rublos al mes?

La recopilación de cotizaciones es una función secundaria, la principal es el comercio.
Cuando se conoce y se ve cómo se recogen los datos, hay más confianza en ellos.
También hay un mínimo de intermediarios en forma de software de terceros con conexión directa.

Al probar el algoritmo de trading en el historial de MT5, los resultados son como un dedo en el cielo.
Mi propio probador muestra buenos resultados en el historial recogido, todas las operaciones corresponden exactamente a un segundo de comercio real.

Mis algoritmos de negociación están orientados a la negociación intradía y son muy sensibles a los datos que llegan.
Pero si negocia a largo plazo, no necesita estar directamente conectado y el requisito del historial puede no ser tan crítico.
 
Vladimir Mikhailov #:

La recopilación de cotizaciones es una función secundaria, la principal es el comercio.
Cuando se conoce y se ve cómo se recogen los datos, hay más confianza en ellos.
Además, al conectarse directamente, los intermediarios en forma de software de terceros son mínimos.

Al probar el algoritmo de trading en el historial de MT5, los resultados son como un dedo en el cielo.
Mi propio probador muestra buenos resultados en el historial recogido, todas las operaciones corresponden exactamente a un segundo de comercio real.

Mis algoritmos de negociación se han perfeccionado para la negociación intradía y son muy sensibles a los datos entrantes.
Pero si usted opera a largo plazo, la conexión directa no es necesaria y el requisito de historial puede no ser tan crítico.

¿Operan con el mismo instrumento?

Añadido por

A juzgar por la captura de pantalla que has puesto, se parece mucho al arbitraje clásico (GAZR-12,21 vs GAZP), que incluso en KVIC funciona bien.

 
prostotrader #:

¿Operan con el mismo instrumento?

Añadido

A juzgar por la captura de pantalla que has puesto, se parece mucho al arbitraje clásico (GAZR-12,21 vs GAZP), que incluso en KVIC funciona bien.

Opero con más de un instrumento. Sí, este algoritmo se basa en el arbitraje clásico.

 
Vladimir Mikhailov #:

Opero con más de un instrumento. Sí, este algoritmo se basa en el arbitraje clásico.

Sólo veo una razón para la negociación de la velocidad: la negociación de la densidad con la gelatina,

en otros casos la velocidad no es necesaria.

Pero en este caso el análisis no es necesario en absoluto.

Pero tú lo sabes mejor...

Añadido

Si la memoria no me falla, en CGate se pueden recibir cotizaciones de acciones, pero

pero no puede enviar órdenes.

Es un poco complicado...

 
prostotrader #:

Sólo veo una razón para el comercio de velocidad - el comercio de la densidad con la gelatina,

en otros casos la velocidad no es necesaria.

Pero en este caso el análisis no es necesario en absoluto.

Pero tú sabes mejor...

Añadido

Si la memoria no me falla, en CGate se pueden recibir cotizaciones de acciones, pero

pero no puede enviar órdenes.

No estás siendo muy inteligente.

Así es, sólo se opera con un instrumento.
Aunque el algoritmo se basa en el arbitraje, sólo opera con futuros.

 
Vladimir Mikhailov #:

Así es, sólo hay un instrumento comercializado.
Aunque el algoritmo se basa en el arbitraje, sólo opera con futuros.

Me has hecho dudar de que MT5 transmita correctamente las cotizaciones.

Ya que recoges los ticks en GAZR-12.21 ¿podrías darme el archivo del pasado viernes 15.10.2021?

Quiero comparar si hay discrepancias.

Hace unos 5 años comparé con KVIC y no hubo discrepancias.

Añadido

Siéntase libre de comparar

//+------------------------------------------------------------------+
//|                                                      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)
  {
//---
   
  }

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

Añadido

Y tal vez otros programas, de alguna manera separar las garrapatas que tienen más de una bandera.


Archivos adjuntos:
1_g_ticks.zip  781 kb