2013.05.18 12:22:58 Tester OnTesterInit works too long. Tester cannot be initialized.
Такс.. ага. Оптимизируем 1000 параметров, значения всех от 0 до 10 (11 шагов). И этого оказывается слишком много.
А вообще если в эксперте нету OnTick() то в тестере не будет тратиться время на всякие не нужные (для меня) бары, тики. ???
Посмотрите справку терминала (F1), раздел Клиентский терминал / Тестер стратегий / Входные параметры. Там подробная информация.
Кратко:
Ограничения оптимизируемых параметров
Существуют некоторые ограничения параметров, которые могут быть оптимизированы:
·Нельзя оптимизировать параметры, которые имеют тип "string";
·При оптимизации параметров, являющихся перечислениями (Enum), нельзя задать шаг перебора. Можно лишь указать диапазон значений перечисления (например, с 1 по 5). При этом начальное значение может быть больше конечного. Например, при указании диапазона с 8 по 2 в перечислении с 10 значениями, в оптимизации будут участвовать значения 8, 9, 10, 1 и 2;
·Максимально количество оптимизируемых параметров — 1024;
·Максимальное число шагов в одном параметре не должно превышать 2 147 483 647 (int max);
·Общее количество шагов не должно превышать целое 1024-битное число;
·Если общее количество шагов оптимизации превышает 1 000 000 в 32-х битной системе или 100 000 000 в 64-х битной системе, то автоматически включается режим генетической оптимизации.
А вообще если в эксперте нету OnTick() то в тестере не будет тратиться время на всякие не нужные (для меня) бары, тики. ???
Может быть Вам подойдёт режим Математические вычисления?
Может быть, тогда мне стоит присмотреться к статье "Генетические алгоритмы - это просто".
Можно ли с помощью генетических алгоритмов решить такую задачу.
Имеется какая-нибудь игра. Не важно, главное что есть стратегии. Стратегия имеет некоторое количество параметров (напр 10000, или 100 000, м.б. даже миллион).
Эти парметры принимают значения от 0 до 100 (с шагом 10 допустим). Как видно вариантов всевозможных стратегий оч большое.
Так вот, задача такая. У нас есть конкретная стратегия (заполнены эти 10000 параметров). Нам нужно найти самую выгодную контр стратегию, то есть подбирать стратегии и тестировать с нашей заполненной стратегией. (тестировать стратегии известно как, там достаточно сложная игра, главное что будет известен результат игры в долларах). Ну и так найдется самая выгодная контр стратегия с самым лучшим результатом игры.
Вообщем моя задача подходит для ген алг. ??
- 2010.05.25
- Andrey Dik
- www.mql5.com
Вообще-то можно любое количество собственных (например, миллион) параметров или механизмов переложить/свести к операциям со штатной системой параметров (макс 1024 параметра, ген не длиннее 1024 битного числа).
Например, некоторое нечисловое многообразие можно свести в параметр long/double, а уже в своем коде разворачивать значение этого параметра в свою схему.
Я недавно один проект такой написал, где масса характеристик не поддается лобовому перебору и проблема легко решилась методом свертки хитрого нечислового многообразия в обычный счетчик. В такие числовые перебираемые счетчики можно многое свести.
Как раз для поддержки переборов в режиме "я пока даже пределов хитрого многообразия не знаю, пока не запущу свой инит и не пересчитаю пределы", мы реализовали функции ParameterSetRange, где в функции OnTesterInit(только в ней) можно переназначить пределы счетчиков.
Вот пример кода:
//--- входные не изменяемые параметры //--- обратите внимание - заблокированные для изменений sinput, а не обычные input sinput int MyParam1 =1; // хитрый инициатор, не участвующий с перебором от и до sinput int MyParam2 =1; // хитрый инициатор, не участвующий с перебором от и до sinput int MyParam3 =1; // хитрый инициатор, не участвующий с перебором от и до sinput int MyParam4 =1; // хитрый инициатор, не участвующий с перебором от и до sinput SomeEnum MyType1 =SomeEnumType10; // хитрый вариант из енума, не участвующий с перебором от и до sinput string MyContent1 ="тут какой-то контент"; // что-то сильно изменчивое sinput string MyFileContent1 ="файл с исходными данными" // что-то совсем все большое //--- а вот и рабочая лошадка, ее и будем изменять ОТ и ДО. На ее номере прохода и будет выстраиваться все внешнее окружение sinput long Counter=0; //+------------------------------------------------------------------+ //| TesterInit function | //+------------------------------------------------------------------+ void OnTesterInit() { long passes=0; //--- подсчитаем пределы переборов на основе своих хитрейших параметров if(!CalculatePasses(MyParam1,......,MyContent1,MyFileContent,.....,passes)) return; //--- вот тут выставляем пределы перебора ParameterSetRange("Counter",true,0,0,1,passes);
В результате мы сами автоматически рассчитали количество проходов для виртуального счетчика Counter и теперь оптимизатор исправно будет все гонять от 0 до passes.
В своем эксперте остается только по формуле развернуть назад номер прохода Counter в 3-5-10 собственных параметров/состояний.
То есть, с помощью такой виртуализации можно в рамках штатного тестера гонять любые кастомные области переборов. Это если не хватает штатных возможностей, которые реально огромные.
Может быть, тогда мне стоит присмотреться к статье "Генетические алгоритмы - это просто".
Можно ли с помощью генетических алгоритмов решить такую задачу.
Имеется какая-нибудь игра. Не важно, главное что есть стратегии. Стратегия имеет некоторое количество параметров (напр 10000, или 100 000, м.б. даже миллион).
Эти парметры принимают значения от 0 до 100 (с шагом 10 допустим). Как видно вариантов всевозможных стратегий оч большое.
Так вот, задача такая. У нас есть конкретная стратегия (заполнены эти 10000 параметров). Нам нужно найти самую выгодную контр стратегию, то есть подбирать стратегии и тестировать с нашей заполненной стратегией. (тестировать стратегии известно как, там достаточно сложная игра, главное что будет известен результат игры в долларах). Ну и так найдется самая выгодная контр стратегия с самым лучшим результатом игры.
Вообщем моя задача подходит для ген алг. ??
На мой взгляд, чем больше число параметров системы - тем больше вероятность "подгона под историю". Необходимо стремиться к тому, чтобы параметров было как можно меньше.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте.
Я решаю не типичную для метатрейдер5 задачу никак не связанную с трейдингом. Существуют ли какие-либо рамки по количеству оптимизируемых параметров, просто параметров?
Скажем, 10 000 параметров - это уже много и работать становится не комфорно. программа Метатрейдер5 "не отвечает". А может кому-нибудь надо использовать 100тысяч или миллион параметров. Или в этом случае, тестер стратегий не подходит.
Вообщем, вопрос, какое максимальное количество параметров для более-менее комфортной работы. (будет использоваться только OnTester() ).
Спасибо за внимание.