Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления - страница 32

 
fxsaber #:

Пустой разговор.

Не пустой. Многие узнают о внесении в MQL позитивных изменений - будут использовать в творчестве

 
A100 #:

Не пустой. Многие узнают о внесении в MQL позитивных изменений - будут использовать в творчестве

Любой баг можно воспринимать позитивным изменением. Хорошего настроения.

 
fxsaber #:

Любой баг можно воспринимать позитивным изменением. Хорошего настроения.

Вы не в теме просто - вот и чудятся везде баги, а их здесь нет (обобщил):

template<typename T>
void f( const T& t ) { Print( t ); }
void OnStart()
{
    int i = 1;
    f(  i );                  //нормально
    f(      1 );              //нормально
    string text = "ABCDEF";
    f(     text );            //нормально
    f(            "ABCDEF" ); //нормально
}

Это Вам любой грамотный пользователь подтвердит

 
A100 #:

Это Вам любой грамотный пользователь подтвердит

Ждем.

 
Forester #:

SymbolExist()
b4098 починили - спасибо!


Forester #:

Тест за 1 день по EURCHF начисляет свопы в конце дня для принудительно закрытых сделок в конце теста (end of test). Почему? Ведь в тестах по EURUSD и USDCHF не начисляет. Думаю надо или все символам начислять или всем не начислять, т.е. д.б. одинаковое поведение.

Проверил пару замеченных инструментов на нескольких датах. Похоже, что свопы тоже починили. Спасибо! (Жаль, что не пишите о сделанной работе, а приходится с новой бетой лазить по истории форума и проверять)

Forester #:

Предложение по улучшению функционала.
Для https://www.mql5.com/ru/docs/series/copyticks

Хорошо бы сделать count с отрицательным значением, для переключения направления копирования тиков, чтобы получить тики до указанной даты:
CopyTicks(_Symbol, ticks, COPY_TICKS_ALL, TimeMsec, -10);
И получить 10 тиков от TimeMsec в прошлое. Нужно просто переключить направление копирования от найденной даты

Попробовал такое

#include <Trade\Trade.mqh> //подключаем библиотеку для совершения торговых операций
CTrade Trade;              // объект для выполнения торговых операций
void OnInit(){}

void OnTick(){
  MqlTick Tick;
  if (SymbolInfoTick(_Symbol, Tick)){
     MqlTick ticks[];
     int i=CopyTicks(_Symbol, ticks, COPY_TICKS_ALL, Tick.time_msc-100000, -3);
     if(i>0){
        Print(i," now=", (datetime)(Tick.time_msc)/1000,".",(Tick.time_msc)%1000," requested=", (datetime)(Tick.time_msc-100000)/1000,".",(Tick.time_msc-100000)%1000," first tick=",ticks[0].time,".",ticks[0].time_msc%1000, " last tick=",ticks[i-1].time,".",ticks[i-1].time_msc%1000);
     }
  }
}

Выдает тики, но не в количестве 3-х, а случайное количество. Примеры:

52 now=2023.05.30 23:54:42.140 requested=2023.05.30 23:53:02.140 first tick=2023.05.30 23:53:02.150 last tick=2023.05.30 23:54:42.140
53 now=2023.05.30 23:54:42.150 requested=2023.05.30 23:53:02.150 first tick=2023.05.30 23:53:02.150 last tick=2023.05.30 23:54:42.150
52 now=2023.05.30 23:54:42.212 requested=2023.05.30 23:53:02.212 first tick=2023.05.30 23:53:02.574 last tick=2023.05.30 23:54:42.212
53 now=2023.05.30 23:54:42.366 requested=2023.05.30 23:53:02.366 first tick=2023.05.30 23:53:02.574 last tick=2023.05.30 23:54:42.366
Тики старше запрошенного на 1-2 секунды и идущие вперед. Но начинающиеся от текущего времени. Т.е. какой то непонятный не описанный в справке функционал.
Может всё-таки тики в прошлое от запрошенной даты выдать? Это будет реально полезная функция. Например при запросе -1 тика - можно получить цены на запрошенный момент времени (например до ролловера запросим 00:00:00.000 и получим последний тик  до ролловера, был ли он в 23:59:59 или в 23:54:59 как последний тик торговой сессии ).
 
Forester #:
Тики старше запрошенного на 1-2 секунды и идущие вперед.

Спалили тайну тестерных граалей по реальным тикам на OOS!

 
fxsaber #:

Спалили тайну тестерных граалей по реальным тикам на OOS!

Ну запрашивал тик из прошлого) Так что он не из будущего от текущего времени. Если запросить текущее время - то вернет все тики на запрошенной миллисекунде (иногда их бывает несколько).
 
Forester #:
Ну запрашивал тик из прошлого) Так что он не из будущего от текущего времени.

После корректировки сообщения увидел это.

 

Ставлю в тестере период с 12.12.2023 по 31.12.2023. Текущие неполные сутки (14.12.2023) не входят в расчеты. Это так задумано или ошибка?

 
Я правильно понимаю, что на последней релизной мт5 так и нет ключей командной строки, чтобы компилировать из консоли с подключением расширенного набора команд типа avx512? Если нет, просьба добавить. Спасибо.
Причина обращения: