Скрипты: ThirdPartyTicks - страница 8

 
Edgar Akhmadeev:

Посмотрел Вашу конфигурацию, сразу момент: эксперты пишут, что для эффективной и быстрой работы SSD свободного места должно быть хотя бы 25%. Ниже начинается резкое падение скорости.

В данном случае бутылочное горлышко все же CPU.

 

fxsaber, спасибо за Ваши труды.

При компиляции вот этого советника https://www.mql5.com/ru/forum/232030/page2#comment_7069847, выдает ошибку.

Ошибка  Ошибка

Текст совы  ссылки на функции из совы

функции в файле Data  функции в Data

Разное количество аргументов?

fxsaber
fxsaber
  • www.mql5.com
Опубликовал пост TesterPortfolio - портфель ТС Опубликовал пост "Out-Of-Sample" - где расположить, справа или слева? Когда-то в паблике столкнулся с мнением, что OOS должен располагаться только справа. Т.е. расположение его слева от интервала Оптимизации - ошибка. Я с этим был категорически не согласен, т.к. не видел разницы. Теперь вижу...
Файлы:
 
HimOrik:

При компиляции вот этого советника https://www.mql5.com/ru/forum/232030/page2#comment_7069847, выдает ошибку.

Добавьте/замените эти строки

  MAXPROFIT( const double Commission = 0, const bool inRelative = false ) : FlagUP(true), MinMax(-DBL_MAX), Relative(inRelative),
                                                                            MarkupBid(1 - Commission), MarkupAsk(1 + Commission)
  {
    this.SetReserve(RESERVE);
  }
  
  void AddTick( MqlTick &Tick )
  {
    this.SetMarkup(Tick);
    
    if (this.Relative)
      MAXPROFIT::MathLog(Tick);
    
    if (this.FlagUP)
    {
      if (Tick.bid > this.MinMax)
        this.MinMax = Tick.bid;
      else if (Tick.ask < this.MinMax)
      {
        this.Add(this.MinMax);
        
        this.MinMax = Tick.ask;
        this.FlagUP = false;
      }
    }
    else
    {
      if (Tick.ask < this.MinMax)
        this.MinMax = Tick.ask;
      else if (Tick.bid > this.MinMax)
      {
        this.Add(this.MinMax);
 
fxsaber:

Задержки заметил когда-то давно с этим связанные, поэтому специально реализовывал обход проблемы. С тех пор торомозов нет.

Сейчас у меня 18 Гб архив и зипов > 35 000 штук. Все пашет быстро, без задеркек.

Возможно, не до конца разобрались, как работает, поэтому такую гипотезу выдвинули.

Сегодня тоже разбирался с этим скриптом и у меня все же так же как и у traveller00 2 сложилось понимание что тут происходит двойная проверка на наличие обновления: предположим что Sync = t rue (т.е. есть необходимость сделать Refresh)

- вначале запускаем Refresh() - в разрезе всех символов определили есть ли на сервере обновления,

- затем выполняем Update(false) - подкачиваем новые zip файлы по конкретному символи, false предотвращает повторный Refresh,

- затем выполняем ToCustomSymbol(Sync, false, MinPips)  - тут перестраиваем кастомарный символ, но если изначально Sync = t rue, то происходит повторный вызов Refresh(true) .

По идее после вызова Refresh()  правильнее вызывать ToCustomSymbol(false, false, MinPips) .

Подскажите, это правильное понимание?

traveller00
traveller00
  • www.mql5.com
Профиль трейдера
 

fxsaber, спасибо за быстрый ответ.

При оптимизации такая картина: оптимизация

настройки настройки

не считает. Я что-то не то делаю?

Файлы:
Screenshot_1.jpg  137 kb
Screenshot_2.jpg  223 kb
20200203.log  30 kb
Data.mqh  2 kb
Array.mqh  3 kb
 
HimOrik:

не считает. Я что-то не то делаю?

В настройках Тестера нужно выбрать пользовательский критерий оптимизации.

 
fxsaber, спасибо, работает!
 
Sergey Lebedev:

Сегодня тоже разбирался с этим скриптом и у меня все же так же как и у traveller00 2 сложилось понимание что тут происходит двойная проверка на наличие обновления: предположим что Sync = t rue (т.е. есть необходимость сделать Refresh)

- вначале запускаем Refresh() - в разрезе всех символов определили есть ли на сервере обновления,

Получили список Online и Offline файлов.

- затем выполняем Update(false) - подкачиваем новые zip файлы по конкретному символи, false предотвращает повторный Refresh,

Закачиваем различие в списках.

- затем выполняем ToCustomSymbol(Sync, false, MinPips)  - тут перестраиваем кастомарный символ, но если изначально Sync = t rue, то происходит повторный вызов Refresh(true) .

Поскольку была синхронизация, то после закачивания нужно обновить Offline-список, чтобы потом из него начать парсить котиры.

 
Источник тиков для скрипта теперь имеет MT5. Так что можно (не пробовал) напрямую.
 
Проверил. Порой не совпадают даже свечи на М15
Файлы:
Image1.png  25 kb
Причина обращения: