Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3219

 
Maxim Dmitrievsky #:
С бинарником не стал возиться, можно же в csv тики взять через экспорт. Еще там много пропущенных полей, нужно правильно заполнить
#property script_show_inputs
#property link "https://www.mql5.com/ru/forum/86386/page3216#comment_49148211"

input string inFileName = "Ticks.bin";

void OnStart()
{
  MqlTick Ticks[];
  
  const int Size = (int)FileLoad(inFileName, Ticks);
  
  if (Size > 0)
  {
    const int Handle = FileOpen(inFileName + ".csv", FILE_WRITE | FILE_ANSI);
    
    if (Handle != INVALID_HANDLE)
    {
      for (int i = 0; i < Size; i++)
        FileWriteString(Handle, (string)Ticks[i].time + "." + IntegerToString(Ticks[i].time_msc % 1000, 3, '0') + " " +
                                DoubleToString(Ticks[i].bid, 5) + " " + DoubleToString(Ticks[i].ask, 5) + "\n");
      
      FileClose(Handle);
    }
  }
}

CSV: time bid ask.

 
fxsaber #:

CSV: time bid ask.

Спасибо, МКЛ вообще забыл уже 😀 Вечером постараюсь.

Недавно что-то начал писать, в итоге все переменные без указания типа и без точек с запятой 
 
mytarmailS #:
Не нужно никаких приближений и гистограмм... И отсебятины тоже не нужно..

Вот пример симуляции коинтегрированых рядов

Вы на конкретном примере подтверждаете мои мысли: если знаем закономерности в виде формул и соответствующего кода, более того, знаем что будем торговать,  то можно заниматься симуляцией - это нормальный профессиональный подход. А все, что выходит за рамки этой схемы - обычная алхимия.

В ветке речь идет о тиках, статистическими характеристиками которых не интересуются. Далее идет разговор на уровне алхимиков - что-то, куда-то..... Вот для этих людей предложено начать с гистограммы, как первый шаг к профессиональному подходу на пути к симуляции.

 
fxsaber #:

CSV: time bid ask.

Какой длины нужен ряд? 

Тиков взял столько D'2023.03.01', с MQ demo EURUSD, получилось около 10млн

И на выходе ряд без таймстэмпов будет, что с этим сделать? могу привязать к старым, могу без этого

 

Еще при генерации Бид и Аск (их приращений), кумулятивные суммы сильно отличаются, ввиду случайного семплирования

совместно не получается, то есть надо генерить либо то, либо другое

 
а еще могу поискать паттерны в тиках, чтобы попытаться объяснить что торгуется
 
Maxim Dmitrievsky #:

Какой длины нужен ряд?

Исходник меньше 7 млн тиков. Как исходник.

Тиков взял столько D'2023.03.01', с MQ demo EURUSD, получилось около 10млн

Зачем MQ-demo?

И на выходе ряд без таймстэмпов будет, что с этим сделать? могу привязать к старым, могу без этого

Без таймстэмпов нельзя. Закономерности же от времени суток зависят. Тот же ролловер, например.

 
Maxim Dmitrievsky #:

Еще при генерации Бид и Аск (их приращений), кумулятивные суммы сильно отличаются, ввиду случайного семплирования

совместно не получается, то есть надо генерить либо то, либо другое

Можно генерировать среднюю.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алготорговля

fxsaber, 2023.08.19 08:36

Алгоритм рандомизации такой:

  1. Берется реальная тиковая история.
  2. Из нее делается последовательность приращений средней ((bid+ask)/2) цены.
  3. В этой последовательности каждый член рандомно умножается либо на +1, либо на -1.
  4. Из полученной последовательности приращений собирается новая тиковая история, где время и спред совпадают с п.1.
  5. Новая тиковая история пишется в кастом символ.

п.2 и п.4. Тогда таймстэмпы и спреды будут совпадать.

 
Maxim Dmitrievsky #:
а еще могу поискать паттерны в тиках, чтобы попытаться объяснить что торгуется

Было бы познавательно.

 
Maxim Dmitrievsky #:
Вечером постараюсь.

Единственно, надо как-то избежать подобного.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Машинное обучение в трейдинге: теория, модели, практика и алготорговля

fxsaber, 2023.09.05 09:00

если взять крупный ЗигЗаг, то тот же флетовый скальпер не сливается (даже что-то там зарабатывает). Но это по причине того, что флетовые участки обходятся рандомизатором.

Т.е. генератор может настолько сумничать, что некоторые куски будет оставлять почти без изменений. При этом невооруженным (да и вооруженным надо сильно постараться) взглядом этого не видно совсем.
Причина обращения: