То же самое, что делается сейчас. Подгружать символы во время процесса тестирования.
Либо сразу перед началом теста определять и дополнять к выбранным для теста символов в списке, если бы такой список был. Как вариант, если определили, что символы, которые в кеше, больше не нужны, то не использовать их в тестере.
У меня в любом случае не может быть однозначного ответа, а только на уровне предположений и предложений вариантов.
Ok.
Эксперт не торгует. Но так как, по всей видимости, производится проверка возможности входа, то наряду с основной парой подгружается ещё одна пара для расчёта маржинальных требований. Данные по двум парам закешированы, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Эксперт начал торговать. Для расчёта прибыли подгружается вторая недостающая пара. Опять же эти данные кешируются, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Лично Вам не нравится терять время на "лишнее" применение тиков к истории. Остальным сильно не понравится терять гораздо большее время на повторной распаковке и подготовке данных.
Ок, ответите Вы. Почему бы, пока нету запроса не применять тики "лишних" инструментов? "Хороший вопрос"(ц) А к этому моменту, моменту запроса, надо построить историю, (да ещё чтобы тики были, так как кто-то их тоже может запрашивать). Потеря времени будет ещё большей, чем если бы мы постепенно выстраивали исорию (как и выстраиваем сейчас).
Нельзя гарантированно предсказать, что использующий какую-то историю эксперт, не будет использовать эту историю на других проходах. 99 процентов за то, что история на последующих проходах тестирования понадобится та же самая, что и на предыдущих проходах
Эксперт не торгует. Но так как, по всей видимости, производится проверка возможности входа, то наряду с основной парой подгружается ещё одна пара для расчёта маржинальных требований. Данные по двум парам закешированы, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Эксперт начал торговать. Для расчёта прибыли подгружается вторая недостающая пара. Опять же эти данные кешируются, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Лично Вам не нравится терять время на "лишнее" применение тиков к истории. Остальным сильно не понравится терять гораздо большее время на повторной распаковке и подготовке данных.
Ок, ответите Вы. Почему бы, пока нету запроса не применять тики "лишних" инструментов? "Хороший вопрос"(ц) А к этому моменту, моменту запроса, надо построить историю, (да ещё чтобы тики были, так как кто-то их тоже может запрашивать). Потеря времени будет ещё большей, чем если бы мы постепенно выстраивали исорию (как и выстраиваем сейчас).
Нельзя гарантированно предсказать, что использующий какую-то историю эксперт, не будет использовать эту историю на других проходах. 99 процентов за то, что история на последующих проходах тестирования понадобится та же самая, что и на предыдущих проходах
Я на самом деле не настаиваю. Можно было сразу начать с этого пояснения. Если Вам точно известно, что Ваш вариант наилучший, то можно сэкономить время не тратя его на обсуждение. Но нужно уточнение, если можно, так как не уверен, что был понят.
Всё это пояснение касается процесса оптимизации?
А если речь только о процессе одиночного теста? Зачем тики от GBPUSD и AUDUSD от предыдущих тестов, когда тестируется только EURUSD ?
Просто не вижу, в каком случае могут понадобиться тики других символов (GBPUSD и AUDUSD), когда однозначно нужен только один (EURUSD). Нужны какие-то конкретные примеры и цифры.
А если я перед этим тестировал одновременно 20 символов? Зачем тики от всех этих символов, если мне нужен сейчас тест только на одном? Чем больше символов использовалось в предыдущем одиночном тесте, тем больше времени займёт тест всего лишь на одном. Я ведь могу перейти на тесты символов совсем из другой группы символов. И данные из предыдущей группы символов мне совершенно сейчас не нужны.
А о каких временных затратах идёт речь (распаковка/подготовка)? Сколько времени занимает распаковка и подготовка данных? И насколько увеличивается время одиночного теста после мультисимвольного теста?
Сейчас проведу тесты и покажу результат. Нужно пояснение относительно, какого-то конкретного примера.
2018.01.2919:30:33.875 Core 1 EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in0:00:00.078. Test passed in0:00:27.266 (including ticks preprocessing 0:00:01.282).
2018.01.2919:30:33.875 Core 1 EURUSD,M5: total time from login to stop testing 0:00:27.344 (including 0:00:00.078for history data synchronization)
2018.01.2919:30:33.875 Core 1837 Mb memory used including 8 Mb of history data, 512 Mb of tick data
//---
5 символов: EURUSD,GBPUSD,USDJPY,AUDUSD,USDCAD
2018.01.2919:59:39.750 Core 1 EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in0:00:00.078. Test passed in0:11:52.156.
2018.01.2919:59:39.750 Core 1 EURUSD,M5: total time from login to stop testing 0:11:52.234 (including 0:00:00.078for history data synchronization)
2018.01.2919:59:39.750 Core 1130637614 total ticks for all symbols
2018.01.2919:59:39.750 Core 1 AUDUSD: passed to tester 20717720 ticks
2018.01.2919:59:39.750 Core 1 EURUSD: passed to tester 26169180 ticks
2018.01.2919:59:39.750 Core 1 GBPUSD: passed to tester 27742039 ticks
2018.01.2919:59:39.750 Core 1 USDCAD: passed to tester 23409978 ticks
2018.01.2919:59:39.750 Core 1 USDJPY: passed to tester 32598697 ticks
2018.01.2919:59:39.750 Core 11574 Mb memory used including 44 Mb of history data, 1088 Mb of cached tick data (total memory for tick data 2495 Mb)
//---
Теперь понадобилось снова провести тест на одном символе.
1 символ: EURUSD
2018.01.2920:04:25.737 Core 1 EURUSD,M5: 26169180 ticks, 74266 bars generated. Environment synchronized in0:00:00.078. Test passed in0:01:34.203.
2018.01.2920:04:25.737 Core 1 EURUSD,M5: total time from login to stop testing 0:01:34.281 (including 0:00:00.078for history data synchronization)
2018.01.2920:04:25.737 Core 1130637614 total ticks for all symbols
2018.01.2920:04:25.737 Core 1 AUDUSD: passed to tester 20717720 ticks
2018.01.2920:04:25.737 Core 1 EURUSD: passed to tester 26169180 ticks
2018.01.2920:04:25.737 Core 1 GBPUSD: passed to tester 27742039 ticks
2018.01.2920:04:25.737 Core 1 USDCAD: passed to tester 23409978 ticks
2018.01.2920:04:25.737 Core 1 USDJPY: passed to tester 32598697 ticks2018.01.2920:04:25.737 Core 11288 Mb memory used including 44 Mb of history data, 1024 Mb of cached tick data (total memory for tick data 2495 Mb)
//---
Вот в этом случае, зачем здесь тики этих символов? Из-за этого лишнего груза время теста на одном символе увеличилось более, чем в 3 раза. Временной диапазон один год. А если мне понадобилось провести тест на 5 годах?
Для тестов буду использовать своего эксперта. Вы можете провести такую же серию тестов и представить свои результаты. В моём случае за период 1 год получается несколько десятков тысяч сделок.
1. Сколько длится один тест эксперта в тестере стратегий?
В качестве примера приведём результаты тестов в режиме Только по ценам открытия (Open price only). Таймфрейм M5(пятиминутные данные). Тип счёта Hedge. Временной диапазон один год (2017.01.01 - 2018.01.01).
Символ: EURUSD
EURUSD,M5: 281877 ticks, 74300 bars generated. Test passed in 0:00:01.453.
282883 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
466 Mb memory used including 8 Mb of history data, 64 Mb of tick data
По результатам теста выше видно, что за период одного года тест на одном символе длится 1-1.5 секунды.
Теперь попробуем провести тест валютной пары, в которой нет валюты счёта. Например, если у Вас счёт в долларах США (USD), то для теста возьмём символ, в котором нет USD. Например, EURCHF. Дело в том, что для корректных расчётов маржевых требований и прибыли в таком случае в тесте будут использоваться символы EURUSD и USDCHF, а это в свою очередь увеличит время теста.
Символ: EURCHF
EURCHF,M5: 281063 ticks, 74273 bars generated. Test passed in 0:00:01.860.
846826 total ticks for all symbols
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
USDCHF: passed to tester 281475 ticks
467 Mb memory used including 8 Mb of history data, 64 Mb of tick data
Как видно, тест для кросс-курсов будет приблизительно в два раза дольше. В данном случае тест занял 1.5-2 секунды. Теперь попробуем провести тест на нескольких символах.
Символы: EURUSD,GBPUSD,USDJPY
EURUSD,M5: 282881 ticks, 74300 bars generated. Environment synchronized in0:00:00.031. Test passed in0:00:07.172.
EURUSD,M5: total time from login to stop testing 0:00:07.203 (including 0:00:00.031for history data synchronization)
853054 total ticks for all symbols
EURUSD: passed to tester 282883 ticks
GBPUSD: passed to tester 285067 ticks
USDJPY: passed to tester 285104 ticks
628 Mb memory used including 26 Mb of history data, 64 Mb of tick data
Символы: EURCHF,AUDCAD,AUDNZD
EURCHF,M5: 282465 ticks, 74273 bars generated. Environment synchronized in0:00:00.031. Test passed in0:00:12.109.
EURCHF,M5: total time from login to stop testing 0:00:12.140 (including 0:00:00.031for history data synchronization)
2264405 total ticks for all symbols
AUDCAD: passed to tester 284995 ticks
AUDNZD: passed to tester 285398 ticks
AUDUSD: passed to tester 282069 ticks
EURCHF: passed to tester 282468 ticks
EURUSD: passed to tester 282883 ticks
NZDUSD: passed to tester 282153 ticks
USDCAD: passed to tester 282964 ticks
USDCHF: passed to tester 281475 ticks
854 Mb memory used including 26 Mb of history data, 192 Mb of tick data
При тестировании нескольких символов, скорость теста замедляется. К сожалению, сейчас это невозможно сделать иначе, не потеряв в точности тестов. Но, как уже упоминалось ранее, разработчики терминала в ближайших обновлениях расширят возможности языка MQL5, добавив возможность проводить мультисимвольные тесты в разы быстрее.
Тестер стратегий позволяет тестировать и оптимизировать торговые стратегии (советники) перед началом использования их в реальной торговле. При тестировании советника происходит его однократная прогонка с начальными параметрами на исторических данных. При оптимизации торговая стратегия прогоняется несколько раз с различным набором параметров...
2. Сколько длится оптимизация параметров на компьютере?
Для примера попробуем оптимизировать параметры на данных у брокера Alpari на разных символах в режиме Только цены открытия (Open price only). Таймфрейм M5 (пятиминутные данные). Тип счёта Hedge. Временной диапазон один год (2017.01.01 - 2018.01.01).
Символ: EURUSD
result cache used 7953 times
genetic optimization finished on pass 15616 (of 504330836375520000)
optimization done in 28 minutes 56 seconds
local 7663 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Символ: EURCHF
result cache used 2507 times
genetic optimization finished on pass 8704 (of 504330836375520000)
optimization done in 32 minutes 50 seconds
local 6197 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Символы: EURUSD,GBPUSD,USDJPY
result cache used 9892 times
genetic optimization finished on pass 18176 (of 504330836375520000)
optimization done in 2 hours 15 minutes 03 seconds
local 8284 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
Символы: EURCHF,AUDCAD,AUDNZD
result cache used 7281 times
genetic optimization finished on pass 13312 (of 504330836375520000)
optimization done in 3 hours 13 minutes 37 seconds
local 6031 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
В ближайшем будущем терминал MetaTrader 5 будет обновлён и скорость тестирования и оптимизации будет проходить в разы быстрее. Возможно, что тогда появится возможность проводить оптимизацию даже в режиме Все тики. Кроме этого, пользоваться сервисом MQL5 Cloud Network станет выгодней, так как скорость оптимизации возрастёт.
Большую часть времени современные компьютеры простаивают и не используют всех возможностей процессора. Мы предлагаем задействовать их с пользой. Вы можете сдавать мощности вашего компьютера другим участникам нашей сети для выполнения разнообразных...
То же самое, что делается сейчас. Подгружать символы во время процесса тестирования.
Либо сразу перед началом теста определять и дополнять к выбранным для теста символов в списке, если бы такой список был. Как вариант, если определили, что символы, которые в кеше, больше не нужны, то не использовать их в тестере.
У меня в любом случае не может быть однозначного ответа, а только на уровне предположений и предложений вариантов.
Ok.
Эксперт не торгует. Но так как, по всей видимости, производится проверка возможности входа, то наряду с основной парой подгружается ещё одна пара для расчёта маржинальных требований. Данные по двум парам закешированы, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Эксперт начал торговать. Для расчёта прибыли подгружается вторая недостающая пара. Опять же эти данные кешируются, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Лично Вам не нравится терять время на "лишнее" применение тиков к истории. Остальным сильно не понравится терять гораздо большее время на повторной распаковке и подготовке данных.
Ок, ответите Вы. Почему бы, пока нету запроса не применять тики "лишних" инструментов? "Хороший вопрос"(ц) А к этому моменту, моменту запроса, надо построить историю, (да ещё чтобы тики были, так как кто-то их тоже может запрашивать). Потеря времени будет ещё большей, чем если бы мы постепенно выстраивали исорию (как и выстраиваем сейчас).
Нельзя гарантированно предсказать, что использующий какую-то историю эксперт, не будет использовать эту историю на других проходах. 99 процентов за то, что история на последующих проходах тестирования понадобится та же самая, что и на предыдущих проходах
Ok.
Эксперт не торгует. Но так как, по всей видимости, производится проверка возможности входа, то наряду с основной парой подгружается ещё одна пара для расчёта маржинальных требований. Данные по двум парам закешированы, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Эксперт начал торговать. Для расчёта прибыли подгружается вторая недостающая пара. Опять же эти данные кешируются, чтобы при повторном тестировании не терять время на распаковку и подготовку данных.
Лично Вам не нравится терять время на "лишнее" применение тиков к истории. Остальным сильно не понравится терять гораздо большее время на повторной распаковке и подготовке данных.
Ок, ответите Вы. Почему бы, пока нету запроса не применять тики "лишних" инструментов? "Хороший вопрос"(ц) А к этому моменту, моменту запроса, надо построить историю, (да ещё чтобы тики были, так как кто-то их тоже может запрашивать). Потеря времени будет ещё большей, чем если бы мы постепенно выстраивали исорию (как и выстраиваем сейчас).
Нельзя гарантированно предсказать, что использующий какую-то историю эксперт, не будет использовать эту историю на других проходах. 99 процентов за то, что история на последующих проходах тестирования понадобится та же самая, что и на предыдущих проходах
Я на самом деле не настаиваю. Можно было сразу начать с этого пояснения. Если Вам точно известно, что Ваш вариант наилучший, то можно сэкономить время не тратя его на обсуждение. Но нужно уточнение, если можно, так как не уверен, что был понят.
Всё это пояснение касается процесса оптимизации?
А если речь только о процессе одиночного теста? Зачем тики от GBPUSD и AUDUSD от предыдущих тестов, когда тестируется только EURUSD ?
Просто не вижу, в каком случае могут понадобиться тики других символов (GBPUSD и AUDUSD), когда однозначно нужен только один (EURUSD). Нужны какие-то конкретные примеры и цифры.
А если я перед этим тестировал одновременно 20 символов? Зачем тики от всех этих символов, если мне нужен сейчас тест только на одном? Чем больше символов использовалось в предыдущем одиночном тесте, тем больше времени займёт тест всего лишь на одном. Я ведь могу перейти на тесты символов совсем из другой группы символов. И данные из предыдущей группы символов мне совершенно сейчас не нужны.
А о каких временных затратах идёт речь (распаковка/подготовка)? Сколько времени занимает распаковка и подготовка данных? И насколько увеличивается время одиночного теста после мультисимвольного теста?
Сейчас проведу тесты и покажу результат. Нужно пояснение относительно, какого-то конкретного примера.
1 символ: EURUSD
//---
5 символов: EURUSD,GBPUSD,USDJPY,AUDUSD,USDCAD
//---
Теперь понадобилось снова провести тест на одном символе.
1 символ: EURUSD
//---
Вот в этом случае, зачем здесь тики этих символов? Из-за этого лишнего груза время теста на одном символе увеличилось более, чем в 3 раза. Временной диапазон один год. А если мне понадобилось провести тест на 5 годах?
Не хватает галочки "Сбросить кеши".
Не хватает галочки "Сбросить кеши".
Была у нас такая (аналогичная) галка в четвёрке. Убрали её. Так как было непонимание основной массы пользователей и много вопросов.
Была у нас такая (аналогичная) галка в четвёрке. Убрали её. Так как было непонимание основной массы пользователей и много вопросов.
Далее будет опубликовано три сообщения:
Для тестов буду использовать своего эксперта. Вы можете провести такую же серию тестов и представить свои результаты. В моём случае за период 1 год получается несколько десятков тысяч сделок.
1. Сколько длится один тест эксперта в тестере стратегий?
В качестве примера приведём результаты тестов в режиме Только по ценам открытия (Open price only). Таймфрейм M5(пятиминутные данные). Тип счёта Hedge. Временной диапазон один год (2017.01.01 - 2018.01.01).
Символ: EURUSD
По результатам теста выше видно, что за период одного года тест на одном символе длится 1-1.5 секунды.
Теперь попробуем провести тест валютной пары, в которой нет валюты счёта. Например, если у Вас счёт в долларах США (USD), то для теста возьмём символ, в котором нет USD. Например, EURCHF. Дело в том, что для корректных расчётов маржевых требований и прибыли в таком случае в тесте будут использоваться символы EURUSD и USDCHF, а это в свою очередь увеличит время теста.
Символ: EURCHF
Как видно, тест для кросс-курсов будет приблизительно в два раза дольше. В данном случае тест занял 1.5-2 секунды. Теперь попробуем провести тест на нескольких символах.
Символы: EURUSD,GBPUSD,USDJPY
Символы: EURCHF,AUDCAD,AUDNZD
При тестировании нескольких символов, скорость теста замедляется. К сожалению, сейчас это невозможно сделать иначе, не потеряв в точности тестов. Но, как уже упоминалось ранее, разработчики терминала в ближайших обновлениях расширят возможности языка MQL5, добавив возможность проводить мультисимвольные тесты в разы быстрее.
2. Сколько длится оптимизация параметров на компьютере?
Для примера попробуем оптимизировать параметры на данных у брокера Alpari на разных символах в режиме Только цены открытия (Open price only). Таймфрейм M5 (пятиминутные данные). Тип счёта Hedge. Временной диапазон один год (2017.01.01 - 2018.01.01).
Символ: EURUSD
Символ: EURCHF
Символы: EURUSD,GBPUSD,USDJPY
Символы: EURCHF,AUDCAD,AUDNZD
В ближайшем будущем терминал MetaTrader 5 будет обновлён и скорость тестирования и оптимизации будет проходить в разы быстрее. Возможно, что тогда появится возможность проводить оптимизацию даже в режиме Все тики. Кроме этого, пользоваться сервисом MQL5 Cloud Network станет выгодней, так как скорость оптимизации возрастёт.