Renat Fatkhullin,Такой вопрос если в советнике есть ресурсы - индикаторы, то их так же надо перекомпилировать в ожидании какого либо эффекта? Или как бы код независимый?
Перекомпилировал все индикаторы - получилось даже чуть хуже
2023.09.1102:04:36.327 Core 1 EURUSD,M15: 960351 ticks, 16277 bars generated. Environment synchronized in0:00:19.204. Test passed in0:00:02.517 (including ticks preprocessing 0:00:00.156).
2023.09.1102:04:36.327 Core 1 EURUSD,M15: total time from login to stop testing 0:00:21.721 (including 0:00:19.204for history data synchronization)
2023.09.1102:06:14.818 Core 1 EURUSD,M15: 960351 ticks, 16277 bars generated. Environment synchronized in0:00:18.819. Test passed in0:00:02.677 (including ticks preprocessing 0:00:00.140).
2023.09.1102:06:14.818 Core 1 EURUSD,M15: total time from login to stop testing 0:00:21.496 (including 0:00:18.819for history data synchronization)
2023.09.1104:12:38.475 Core 1 EURUSD,M15: 960351 ticks, 16277 bars generated. Environment synchronized in0:00:19.248. Test passed in0:00:02.480 (including ticks preprocessing 0:00:00.140).
2023.09.1104:12:38.475 Core 1 EURUSD,M15: total time from login to stop testing 0:00:21.728 (including 0:00:19.248for history data synchronization)
Написал короткий скрипт для проверки производительности AVX и векторов (т.к. вектора должны иметь максимальный прирост производительности при AVX)
В каждой итерации бесконечного цикла формируются три массива, каждый размером 1000000 double элементов (arr1, arr2, arr3) Из этих массивов формируются три вектора того же размера (vec1, vec2, vec3)
Из этих массивов формируется новый массив arr4[i] = (arr1[i]+ arr2[i])/ arr3[i] Далее из массива arr4[i] находятся минимальный и максимальный элементы, а так же вычисляется среднее арифметическое всего массива.
Все тоже самое происходит и с векторами
Время расчета с массивами и с векторами замеряется и с каждой итерацией точность замера увеличивается из-за вычисления средних значений замеров.
Вот результаты этого теста в разных режимах компиляции:
X64 Regular:
AVX:
AVX2+FMA3:
Из теста видно, что разницы в производительности нет. Более того вектора работают чуть медленее чем массивы. Поэтому в данный момент целесообразность использования векторов под большим вопросом Более того, алгоритм вычисления максимума, минимума и среднего значения в массивах, я максимально приблизил к логике работы векторов. Но если оптимизировать рассчет в массивах, что невозможно сделать в векторах, когда расчет всех значений происходит внутри одного цикла:
ulong t1 = GetMicrosecondCount();
for (int i = 0; i<SIZE; i++) {
double a =((arr1[i]+arr2[i])/arr3[i]);
avg1+=a;
if (max1<a) max1=a;
if (min1>a) min1=a;
//arr4[i] = a;
}
avg1 /= SIZE;
//max1 = arr4[ArrayMaximum(arr4)];//min1 = arr4[ArrayMinimum(arr4)];
sum_t1 += (GetMicrosecondCount()-t1);
то выигрыш расчета в массивах более чем в три раза (!!!) производительнее, чем в векторах.
В чистых массовых математических расчетах, как пример тестов Alglib, преимущества AVX/AVX2 сборок видны сразу.
В операциях перемножения матриц мы уже ранее ввели автоматическое использование AVX/AVX2 вне зависимости от того, под какой набор инструкций собран терминал. Это основа машинного обучения.
В тестере при запуске "пустых/незатратных" задач практически вся нагрузка ложится на невекторизируемую системную обвязку и ускорения можно не получить.
Через пару недель мы начнем большой апгрейд MQL5 компилятора для расширения поддержки AVX2/AVX512 инструкций. Это должно улучшить генерацию кода.
Сборки терминалов AVX и AVX2 открыли нам возможности массовой оптимизации и заставит нас оптимизировать все по максимуму. Векторные/массивные операции и тд.
Впереди еще минимум полгода, в течение которых мы будем вручную внедрять оптимизации под новые возможности.
MetaQuotes: 1. Terminal: Добавлена поддержка балансовых операций снятия и пополнения торгового счета непосредственно в клиентском терминале.
Мы добавили интеграцию наиболее популярных платежных систем прямо в платформу MetaTrader 5, что позволяет брокерам предоставить трейдерам новый уровень сервиса.
Очевидно, что в 2023 году наиболее популярной платёжной системой в части расчётов между трейдерами и FOREX брокерами является криптовалюта. Её поддерживают уже большинство брокеров. В то же время WebMoney стремительно теряет популярность из-за потери привязки титульного знака WMZ к доллару США. От неё большинство брокеров уже отказалось, да и трейдерам нет никакого смысла использовать её. Также очень странно видеть в числе наиболее популярных платёжных систем PayPal, которую не поддерживает ни один из известных мне FOREX брокеров.
Было бы логично внедрить в следующую сборку терминала поддержку пополнения счёта в криптовалюте (как это уже реализовано у большинства брокеров).
WebMoney же вполне можно заменить на Perfect Money.
Очевидно, что в 2023 году наиболее популярной платёжной системой в части расчётов между трейдерами и FOREX брокерами является криптовалюта. Её поддерживают уже большинство брокеров. В то же время WebMoney стремительно теряет популярность из-за потери привязки титульного знака WMZ к доллару США. От неё большинство брокеров уже отказалось, да и трейдерам нет никакого смысла использовать её. Также очень странно видеть в числе наиболее популярных платёжных систем PayPal, которую не поддерживает ни один из известных мне FOREX брокеров.
Было бы логично внедрить в следующую сборку терминала поддержку пополнения счёта в криптовалюте (как это уже реализовано у большинства брокеров).
WebMoney же вполне можно заменить на Perfect Money.
Вы далеко не первый, кто рекомендует подобное.
Но все советчики подобного просто не догоняют многих вещей, связанных с регулированием крупных финансовых систем.и необходимостью для серьезных компаний, связанных с финансовой сферой, оставаться прозрачными для этих систем.
Nikolai Semko #: Вы далеко не первый, кто рекомендует подобное.
Но все советчики подобного просто не догоняют многих вещей, связанных с регулированием крупных финансовых систем.и необходимостью для серьезных компаний, связанных с финансовой сферой, оставаться прозрачными для этих систем.
Человек все верно пишет - крипта нужна! А вы Николай плиз не гоните чепухи если не разбираетесь в том как современные форекс-брокеры принимают крипту - никто из брокеров не открывает аккаунты на "непрозрачных" крипто-кухнях (Binance etc), а используются специализированные сервисы крипто-платежей (Сonfirmo etc ).
Так что замечание верное - необходимо добавить 2-3 наиболее известных сервисов крипто-платежей.
А вот для советника прироста не увидел
Renat Fatkhullin,Такой вопрос если в советнике есть ресурсы - индикаторы, то их так же надо перекомпилировать в ожидании какого либо эффекта? Или как бы код независимый?Перекомпилировал все индикаторы - получилось даже чуть хуже
Написал короткий скрипт для проверки производительности AVX и векторов (т.к. вектора должны иметь максимальный прирост производительности при AVX)
В каждой итерации бесконечного цикла формируются три массива, каждый размером 1000000 double элементов (arr1, arr2, arr3)
Из этих массивов формируются три вектора того же размера (vec1, vec2, vec3)
Из этих массивов формируется новый массив arr4[i] = (arr1[i]+ arr2[i])/ arr3[i]
Далее из массива arr4[i] находятся минимальный и максимальный элементы, а так же вычисляется среднее арифметическое всего массива.
Все тоже самое происходит и с векторами
Время расчета с массивами и с векторами замеряется и с каждой итерацией точность замера увеличивается из-за вычисления средних значений замеров.
Вот результаты этого теста в разных режимах компиляции:
X64 Regular:
AVX:
AVX2+FMA3:
Из теста видно, что разницы в производительности нет.
Более того вектора работают чуть медленее чем массивы.
Поэтому в данный момент целесообразность использования векторов под большим вопросом
Более того, алгоритм вычисления максимума, минимума и среднего значения в массивах, я максимально приблизил к логике работы векторов. Но если оптимизировать рассчет в массивах, что невозможно сделать в векторах, когда расчет всех значений происходит внутри одного цикла:
то выигрыш расчета в массивах более чем в три раза (!!!) производительнее, чем в векторах.
Хотя, конечно, через вектора код короче:
Результаты вычислений в массивах и векторах совпадают ( есть проверка)
пару попыток
p.s.
2023.09.11 11:31:41.087 LiveUpdate check for beta version
2023.09.11 11:31:48.179 LiveUpdate new version build 3932 (IDE: 3932, Tester: 3932) is available
2023.09.11 11:32:06.567 LiveUpdate 'mt5clw64' downloaded (36743 kb)
2023.09.11 11:32:08.865 LiveUpdate 'mt5clwide64' downloaded (22266 kb)
2023.09.11 11:32:10.213 LiveUpdate download 'MT5CLWTST64' failed
В чистых массовых математических расчетах, как пример тестов Alglib, преимущества AVX/AVX2 сборок видны сразу.
В операциях перемножения матриц мы уже ранее ввели автоматическое использование AVX/AVX2 вне зависимости от того, под какой набор инструкций собран терминал. Это основа машинного обучения.
В тестере при запуске "пустых/незатратных" задач практически вся нагрузка ложится на невекторизируемую системную обвязку и ускорения можно не получить.
Через пару недель мы начнем большой апгрейд MQL5 компилятора для расширения поддержки AVX2/AVX512 инструкций. Это должно улучшить генерацию кода.
Сборки терминалов AVX и AVX2 открыли нам возможности массовой оптимизации и заставит нас оптимизировать все по максимуму. Векторные/массивные операции и тд.
Впереди еще минимум полгода, в течение которых мы будем вручную внедрять оптимизации под новые возможности.
1. Terminal: Добавлена поддержка балансовых операций снятия и пополнения торгового счета непосредственно в клиентском терминале.
Мы добавили интеграцию наиболее популярных платежных систем прямо в платформу MetaTrader 5, что позволяет брокерам предоставить трейдерам новый уровень сервиса.
Очевидно, что в 2023 году наиболее популярной платёжной системой в части расчётов между трейдерами и FOREX брокерами является криптовалюта. Её поддерживают уже большинство брокеров.
В то же время WebMoney стремительно теряет популярность из-за потери привязки титульного знака WMZ к доллару США. От неё большинство брокеров уже отказалось, да и трейдерам нет никакого смысла использовать её.
Также очень странно видеть в числе наиболее популярных платёжных систем PayPal, которую не поддерживает ни один из известных мне FOREX брокеров.
Было бы логично внедрить в следующую сборку терминала поддержку пополнения счёта в криптовалюте (как это уже реализовано у большинства брокеров).
WebMoney же вполне можно заменить на Perfect Money.
Очевидно, что в 2023 году наиболее популярной платёжной системой в части расчётов между трейдерами и FOREX брокерами является криптовалюта. Её поддерживают уже большинство брокеров.
В то же время WebMoney стремительно теряет популярность из-за потери привязки титульного знака WMZ к доллару США. От неё большинство брокеров уже отказалось, да и трейдерам нет никакого смысла использовать её.
Также очень странно видеть в числе наиболее популярных платёжных систем PayPal, которую не поддерживает ни один из известных мне FOREX брокеров.
Было бы логично внедрить в следующую сборку терминала поддержку пополнения счёта в криптовалюте (как это уже реализовано у большинства брокеров).
WebMoney же вполне можно заменить на Perfect Money.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 3800: ордера Book or Cancel, помощь AI при написании кода и расширенная поддержка ONNX
Vladimir Pastushak, 2023.09.06 22:35
Как то так, исчезла подсветка
Исчезла подсветка и у dynamic_cast. Просьба вернуть.
Просьба добавить комплексное сопряжение в complex, приходится пользоваться старой версией al_complex из alglib.
Ждать ли alglib 4 ? Там тоже синтаксис меняется.
Вы далеко не первый, кто рекомендует подобное.
Человек все верно пишет - крипта нужна! А вы Николай плиз не гоните чепухи если не разбираетесь в том как современные форекс-брокеры принимают крипту - никто из брокеров не открывает аккаунты на "непрозрачных" крипто-кухнях (Binance etc), а используются специализированные сервисы крипто-платежей (Сonfirmo etc ).
Так что замечание верное - необходимо добавить 2-3 наиболее известных сервисов крипто-платежей.