Клиринг по существу???? - страница 4

 
Vladimir Mikhailov #:

Нет так красиво, всё по минимуму, для быстродействия.


Задумка у меня была хорошая.

МТ5 сильно грешил с исполнением торговых приказов,

поэтому я хотел написать свой терминал (без наворотов), только торговля.

Терминал должен был подключать DLL- роботы, но так и не дописал, нет времени,

да и квалификация не та.

 
Приношу извинение в адрес своего брокера. Оказывается история баров в окне у меня была маленькая и с каждым днём сдвигалась в итоге были эти косяки. Сейчас поправил всё, построил заново новые модели, посмотрим в понедельник как будет вести себя модель!!!!!
 
Vladimir Mikhailov #:

Нет так красиво, всё по минимуму, для быстродействия.


Даже не смешно, увы 

 
Vladimir Mikhailov #:

Нет так красиво, всё по минимуму, для быстродействия.


А вообще есть смысл собирать тики за 10000 руб. в месяц? 

 
prostotrader #:

А вообще есть смысл собирать тики за 10000 руб. в месяц? 

Сбор котировок, это вторичная функция, первичная - торговля.
Когда знаешь и видишь, как собираются данные, то и доверия к ним больше.
Так же минимум посредников в виде стороннего ПО при прямом подключении.

При тестировании торгового алгоритма на истории из МТ5 результаты, как пальцем в небо.
Собственный тестер на собранной истории показывает хорошие результаты, все сделки соответствуют в точности до секунды сделкам в реальной торговле.

Мои торговые алгоритмы заточены под внутри дневную торговлю и очень чувствительны к приходящим данным.
Но если торговать в долгой срок, то и прямое подключение не обязательно, и требование к истории может быть не такое критичное.
 
Vladimir Mikhailov #:

Сбор котировок, это вторичная функция, первичная - торговля.
Когда знаешь и видишь, как собираются данные, то и доверия к ним больше.
Так же минимум посредников в виде стороннего ПО при прямом подключении.

При тестировании торгового алгоритма на истории из МТ5 результаты, как пальцем в небо.
Собственный тестер на собранной истории показывает хорошие результаты, все сделки соответствуют в точности до секунды сделкам в реальной торговле.

Мои торговые алгоритмы заточены под внутри дневную торговлю и очень чувствительны к приходящим данным.
Но если торговать в долгой срок, то и прямое подключение не обязательно, и требование к истории может быть не такое критичное.

Вы торгуете одним инструментом?

Добавлено

Судя по скрину, который Вы выложили, это очень похоже  Классический арбитраж (GAZR-12.21 vs GAZP), который даже в КВИКе нормально работает.

 
prostotrader #:

Вы торгуете одним инструментом?

Добавлено

Судя по скрину, который Вы выложили, это очень похоже  Классический арбитраж (GAZR-12.21 vs GAZP), который даже в КВИКе нормально работает.

Торгую не одним инструментом. Да, данный алгоритм основан на классическом арбитраже. 

 
Vladimir Mikhailov #:

Торгую не одним инструментом. Да, данный алгоритм основан на классическом арбитраже. 

Я вижу только одну причину скоростной торговли - торговля от плотности с жеджированием,

в остальных случаях скорость не нужна.

Но в этом случае анализ вовсе не нужен.

Но Вам виднее...

Добавлено

Если мне не изменяет память, то в CGate можно принимать Фондовые котировки, а вот

ордера отсылать нельзя.

Что-то Вы "мудрите"...

 
prostotrader #:

Я вижу только одну причину скоростной торговли - торговля от плотности с жеджированием,

в остальных случаях скорость не нужна.

Но в этом случае анализ вовсе не нужен.

Но Вам виднее...

Добавлено

Если мне не изменяет память, то в CGate можно принимать Фондовые котировки, а вот

ордера отсылать нельзя.

Что-ты Вы "мудрите"...

Всё верно, торговля ведется только одним инструментом.
Алгоритм хоть и основан на арбитраже, но торгует только фьючерсом.

 
Vladimir Mikhailov #:

Всё верно, торговля ведется только одним инструментом.
Алгоритм хоть и основан на арбитраже, но торгует только фьючерсом.

Вы заставили меня усомниться, что МТ5 правильно передает котировки.

Так как Вы собираете тики по GAZR-12.21 не могли бы Вы дать файл за прошедшую пятницу 15.10.2021 г.?

Хочу сравнить есть ли расхождения.

Лет 5 назад сравнивал с КВИКом, расхождений не было. 

Добавлено

Можете сами сравнить

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

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

Добавлено

А возможно, другие программы, как-то разделяют тики, у которых не один флаг, а несколько.


Файлы:
1_g_ticks.zip  781 kb
Причина обращения: