Новая версия платформы MetaTrader 5 build 4150: экспорт торгового отчета и новые методы машинного обучения в MQL5
Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий
Ограничение в библиотеке ковариационной матрицы?
Лоренцос Руссос , 2023.12.22 19:07
Существует ли ограничение на размер библиотеки ковариационной матрицы?
948 функций x 16 000 образцов
Print ( "Starting eigenveck" ); matrix original; original.Init( ArraySize (samples), ArraySize (samples[ 0 ].features)); //fill for ( int i= 0 ;i< ArraySize (samples);i++){ for ( int j= 0 ;j< ArraySize (samples[ 0 ].features);j++){ original[i][j]=samples[i].features[j]; } } Print ( "Filled original matrix" ); matrix covariance_matrix=original.Cov( false ); Print ( "Created covariance matrix" );
2023.12 . 22 19 : 59 : 48.289 SVMNET_optimizer_01 (EURUSD,H1) Total features( 948 ) Total Outcomes( 966 ) 2023.12 . 22 19 : 59 : 48.400 SVMNET_optimizer_01 (EURUSD,H1) Total samples 16144 2023.12 . 22 19 : 59 : 48.400 SVMNET_optimizer_01 (EURUSD,H1) Starting eigenveck 2023.12 . 22 19 : 59 : 48.465 SVMNET_optimizer_01 (EURUSD,H1) Filled original matrix 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) Access violation at 0x00007FF66F790B0E write to 0x0000024959388000 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) crash --> 00007 FF66F790B0E C5FDE7A1E0000000 vmovntdq [rcx+ 0xE0 ], ymm4 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B16 4881 C100010000 add rcx, 0x100 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B1D 4881 C200010000 add rdx, 0x100 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B24 4981 E800010000 sub r8, 0x100 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B2B 4981 F800010000 cmp r8, 0x100 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B32 0 F8378FFFFFF jnb 0x00007FF66F790AB0 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B38 4 D8D481F lea r9, [r8+ 0x1F ] 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B3C 4983 E1E0 and r9, 0xFFFFFFFFFFFFFFE0 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B40 4 D8BD9 mov r11, r9 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00007 FF66F790B43 49 C1EB05 shr r11, 0x05 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 00 : 0x00007FF66F790B0E 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 01 : 0x00007FF66EF0B5E1 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 02 : 0x0000000000E98740 2023.12 . 22 19 : 59 : 50.252 SVMNET_optimizer_01 (EURUSD,H1) 03 : 0x00007FF66EF5189E
int OnInit() { EventSetMillisecondTimer(44); return(INIT_SUCCEEDED); } void OnTimer(){ EventKillTimer(); matrix original; //original.Init(160,10);//works original.Init(16000,1000);//fails for(int r=0;r<original.Rows();r++){ for(int c=0;c<original.Cols();c++){ original[r][c]=((double)MathRand())/((double)32767.0); } } Print("Values filled"); matrix covariance_matrix=original.Cov(false); Print("DONE"); ExpertRemove(); } void OnDeinit(const int reason) { } void OnTick() { }
b4120, в кеше одиночного прохода (tst-формат) не заполняется (нулевое) поле id-позиции.
//+------------------------------------------------------------------+ //| Структура результатов для позиции | //+------------------------------------------------------------------+ struct TesterPositionProfit { UINT64 id; // id позиции double mfe; // MFE double mae; // MAE double profit; // прибыль INT64 lifetime; // время жизни позиции в секундах UINT64 reserve[3]; };
всем привет
есть ли в планах разработки MetaQuotes улучшения MetaEditor ? Интересует вывод интерфейса дебагера из MetaEditor, что бы можно было отлаживать код в сторонних IDE к примеру VSCode ?
Какой макрос использовать для определения включения/отключения оптимизации компилятором.
Макрос _RELEASE доступен при компиляции не под отладку.
И здесь не нашел, к сожалению. Из-за этого не получается определить, в каком режиме компилятора был сгенерирован EX5.
![Документация по MQL5: Основы языка / Препроцессор / Условная компиляция (#ifdef, #ifndef, #else, #endif) Документация по MQL5: Основы языка / Препроцессор / Условная компиляция (#ifdef, #ifndef, #else, #endif)](https://c.mql5.com/36/81/dokumentaciya-po-mql5-osnovi-yazika__3.png)
- www.mql5.com
// Следующий символ в Обзоре рынка. string NextSymbol() { for (uint i = SymbolsTotal(true); (bool)i--;) if (SymbolName(i, true) == _Symbol) return(SymbolName(++i, true)); return(""); } // Запуск себя на следующем символе в Обзоре рынка. void NextRun() { static const string FileName = "\\Template.tpl"; const string Symb = NextSymbol(); if ((Symb != "") && ChartSaveTemplate(0, FileName)) ChartApplyTemplate(ChartOpen(Symb, _Period), FileName); } sinput datetime inFrom = D'2023.12.01'; void OnInit() { MqlTick Ticks[]; // Запросили тики для проверки механизма освобождения внутреннего кеша тиков. CopyTicksRange(_Symbol, Ticks, COPY_TICKS_ALL, inFrom * 1000); ArrayFree(Ticks); Print(TerminalInfoInteger(TERMINAL_MEMORY_USED)); // Смотрим потребление памяти Терминалом. NextRun(); // Запустили себя на следующем символе из Обзора рынка ChartClose(); // и закрыли свой чарт. }
Результат.
2024.01.08 23:31:27.799 Test6 (GBPHUF,M1) 706 2024.01.08 23:31:28.347 Test6 (GBPNOK,M1) 837 2024.01.08 23:31:28.823 Test6 (GBPNZD,M1) 971 2024.01.08 23:31:29.372 Test6 (GBPSEK,M1) 1032 2024.01.08 23:31:29.785 Test6 (GBPSGD,M1) 1101 2024.01.08 23:31:30.380 Test6 (NZDCAD,M1) 1226 2024.01.08 23:31:30.934 Test6 (NZDCHF,M1) 1298 2024.01.08 23:31:31.301 Test6 (NZDJPY,M1) 1338 2024.01.08 23:31:31.981 Test6 (NZDUSD,M1) 1397 2024.01.08 23:31:32.985 Test6 (NOKJPY,M1) 1442 2024.01.08 23:31:33.976 Test6 (NOKSEK,M1) 1513 2024.01.08 23:31:34.773 Test6 (SGDJPY,M1) 1675 2024.01.08 23:31:35.363 Test6 (USDCAD,M1) 1767 2024.01.08 23:31:35.973 Test6 (USDCHF,M1) 1833 2024.01.08 23:31:36.909 Test6 (USDJPY,M1) 1932 2024.01.08 23:31:37.627 Test6 (USDCNH,M1) 2027 2024.01.08 23:31:38.428 Test6 (CHFNOK,M1) 2108 2024.01.08 23:31:39.007 Test6 (NZDSGD,M1) 2150 2024.01.08 23:31:39.537 Test6 (SEKJPY,M1) 2221 2024.01.08 23:31:39.949 Test6 (EURDKK,M1) 2238 2024.01.08 23:31:40.552 Test6 (USDSGD,M1) 2355
Постоянный рост потребления памяти Терминалом.
Строка для поиска: Oshibka 088.
b4120, Терминал не освобождает тиковый кеш после закрытия чарта, поэтому легко забивается вся доступная память на машине.
Постоянный рост потребления памяти Терминалом.
Похоже, потребление идет за счет MaxBars-установки.
// Следующий символ в Обзоре рынка. string NextSymbol() { for (uint i = SymbolsTotal(true); (bool)i--;) if (SymbolName(i, true) == _Symbol) return(SymbolName(++i, true)); return(""); } void OnInit() { Print(TerminalInfoInteger(TERMINAL_MEMORY_USED)); // Смотрим потребление памяти Терминалом. if (NextSymbol() != "") ChartSetSymbolPeriod(0, NextSymbol(), _Period); // Сменили символ на следующий в Обзоре рынка. else Alert(TerminalInfoInteger(TERMINAL_MAXBARS)); }
Данный советник сам никак не использует исторические данные. При этом вызывает серьезное потребление памяти Терминалом.
не про платформу, но про сайт
с недавних пор (день-полтора), последние сообщения в форуме приобрели загадочный вид:
именно последние, и при первом открытии (кнопка F5 "обновить" это дело исправляет)
что-то намудрили в JS с асинхронной загрузкой (и/или кешированием?).
не про платформу, но про сайт
с недавних пор (день-полтора), последние сообщения в форуме приобрели загадочный вид:
именно последние, и при первом открытии (кнопка F5 "обновить" это дело исправляет)
что-то намудрили в JS с асинхронной загрузкой (и/или кешированием?).
Та же фигня.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В четверг 18 января 2024 года будет выпущена обновленная версия платформы MetaTrader 5.
В новой версии появилась функция сохранения торгового отчета в виде файла HTML или PDF. Теперь вы можете легко поделиться своими торговыми достижениями с коллегами или инвесторами. Также в обновлении появилась возможность сохранить в файле текущее состояние показателей в «Обзоре рынка».
В MQL5 появились новые функции для работы с матрицами и векторами, которые применяются в машинном обучении. Помимо этого, в обновлении были внесены улучшения в профилировщик кода и тестер стратегий.
MetaTrader 5 Client Terminal
Маржа рассчитывается с учетом цены инструмента на момент открытия окна спецификации и не изменяется в реальном времени. Соответственно, значения следует воспринимать как ориентировочные. Для пересчета значений по текущим ценам переоткройте спецификацию инструмента.
MetaTrader 5 Web Terminal
Обновление будет доступно через систему Live Update.