Есть интерестная идея но смущает невозможность оптимизировать строковые или логические параметры. Есть ли выход?

 

Разработал простой советник работающий по закрытым барам.

Идея: Советник анализирует пару EURUSD и когда происходит пересичения быстрым мувингом более медленого проверяет этоже условия на остальных парах GBPUSD, USDCHF, USDJPY и если пересичения происходят на всех 4х парах (не обязательно одновременно) то выполняется вход.

В советнике кроме параметров основной пары имеются также параметры 3х такие параметры:

Simbol - GBPUSD

Parametrs fast ma - 8

Parametrs slow ma - 21

Simbol - USDCHF

Parametrs fast ma - 8

Parametrs slow ma - 21

Simbol - USDJPY

Parametrs fast ma - 8

Parametrs slow ma - 21

Параметр Simbol изменяемый, то есть можно в него вписать любую пару и тогда она будет фильтром.

Хотелось создать параметры:

Сomplex optimization:

GBPUSD - 1

USDCHF - 1

USDJPY - 1

NZDUSD - 1

AUDUSD - 1

Идея такова была такова: параметр валюты (раздела Сomplex optimization) 1 означал что пара используется для оптимизаций а параметр 0 что не используется. При параметре пары 1 пары должны были подставлятся случайным образом в параметр Simbol и оптимизация 2х параметров мувинга должна была выполнятся на той паре которая автоматически попадала в параметр Simbol. Это позволило бы не вписывать руками валюты в поле Simbol а вписать один раз десятки пар в раздел Сomplex optimization и подобрать не только параметры мувингов но и наиболее подходящие пары для подтверждения. Возможно оптимизацию пар можно организовать подругому без необходимости оптимизации строковых или логических параметров? Что скажете господа?

 

Попробуй закодировать включенность всех пяти пар одним двоичным числом. Например, 10011 = 19 означает, что чиф и иена не включены, а кабель, киви и оззи включены. Все возможные числа - от 1 до 31, соответствие между числом и признаками включенности однозначно.

Перевод двоичного в десятичное и обратно вроде как несложен. И оптимизируй по этому параметру.

 

Прежде, чем что-либо оптимизировать, стоило бы проверить идею на работоспособность. Зарядить оптимизацию по 31 паре, при том что по каждой паре имеется еще по два параметра, это ни тестера не хватит, ни жизни.

Если идея не рабочая, то положительный результат оптимизации будет просто случайной подгонкой. Поставите на реал и потеряете не только силы и время, но и деньги.

Я бы начал с того, что взял бы 2, максимум 3 пары, и попытался бы проверить идею на этом фиксированном варианте. Если советник будет давать прибыль при достаточно широком диапазоне параметров, то это будет означать, что идея рабочая. Тогда оптимизация даст наиболее профитный вариант. При этом надо еще учесть, что пары для такой стратегии надо брать не любые. Например, EURUSD и GBPUSD вместе сочетаются, USDCHF к ним можно присоединить только если учитывать что BUY сигналу на первых двух будет соответствовать SELL сигнал на франке. A USDJPY вообще к этим трем не лепится.

 

Yurixx, ты не понял. Пар-то всего пять, а не 31. А 31 - это максимальное возможное число, состоящее из 5 двоичных цифр (11111).

 
Yurixx:

Прежде, чем что-либо оптимизировать, стоило бы проверить идею на работоспособность. Зарядить оптимизацию по 31 паре, при том что по каждой паре имеется еще по два параметра, это ни тестера не хватит, ни жизни.

Если идея не рабочая, то положительный результат оптимизации будет просто случайной подгонкой. Поставите на реал и потеряете не только силы и время, но и деньги.

Я бы начал с того, что взял бы 2, максимум 3 пары, и попытался бы проверить идею на этом фиксированном варианте. Если советник будет давать прибыль при достаточно широком диапазоне параметров, то это будет означать, что идея рабочая. Тогда оптимизация даст наиболее профитный вариант. При этом надо еще учесть, что пары для такой стратегии надо брать не любые. Например, EURUSD и GBPUSD вместе сочетаются, USDCHF к ним можно присоединить только если учитывать что BUY сигналу на первых двух будет соответствовать SELL сигнал на франке. A USDJPY вообще к этим трем не лепится.


Идея работоспособна, по поводу скорости нестоит волноватся - оптимизация по опен в МТ4 происходит довольно быстро.

По поводу оптимизации: я понимаю что пары нужно правильно подбирать поэтому мне и нужно автоматизировать этот процес.

 
Mathemat:

Yurixx, ты не понял. Пар-то всего пять, а не 31. А 31 - это максимальное возможное число, состоящее из 5 двоичных цифр (11111).

По поводу оптимизации: я понимаю что пары нужно правильно подбирать поэтому мне и нужно автоматизировать этот процес.

Если их всего 5, то и напрягаться так не стоит. Подбирать пары в тестере по-моему совсем неправильно. Если есть положительная корреляция между двумя парами, то это определяется очень быстро и без всех остальных. А потом, когда этот вопрос решен, выбрать из тех, что имеют положительныю корреляцию оптимальный вариант опять-таки можно весьма просто - надо только из всего пакета определить 2-3 наиболее реактивные пары. А все туда пихать - только вводить дополнительную задержку.

Короче, головой это надо делать, а не автоматизировать этот процес. Если засунуть в автомат EURUSD и USDCHF, то он никогда не покажет профит, потому что у них отрицательная корреляция. Но если работать головой, то и ее можно использовать.

 
Yurixx:
Mathemat:

Yurixx, ты не понял. Пар-то всего пять, а не 31. А 31 - это максимальное возможное число, состоящее из 5 двоичных цифр (11111).

По поводу оптимизации: я понимаю что пары нужно правильно подбирать поэтому мне и нужно автоматизировать этот процес.

Если их всего 5, то и напрягаться так не стоит. Подбирать пары в тестере по-моему совсем неправильно. Если есть положительная корреляция между двумя парами, то это определяется очень быстро и без всех остальных. А потом, когда этот вопрос решен, выбрать из тех, что имеют положительныю корреляцию оптимальный вариант опять-таки можно весьма просто - надо только из всего пакета определить 2-3 наиболее реактивные пары. А все туда пихать - только вводить дополнительную задержку.

Короче, головой это надо делать, а не автоматизировать этот процес. Если засунуть в автомат EURUSD и USDCHF, то он никогда не покажет профит, потому что у них отрицательная корреляция. Но если работать головой, то и ее можно использовать.


Дык я же буду указывать направления пересичения пары. У каждой пары планируется ввести дополнительный параметр "направление пересичения" который будет нам говорить направления сделки. Поетому и нужна автоматизация так как есть не только много пар с положительной корреляцией но и есть возможность использовать пары с отрицательной корреляцией. Одинх только пар EURUSD и GBPUSD мало для подверждения. Наличия йеновых пар значительно повышает качество прогноза ведь когда доллар начинает сильно падать или расти то это происходит не только по отношению к фунту или евро а и йене и австралийцу например. Так же можем торговать на паре USDJPY и использовать для подтверждения пары EURJPY, CHFJPY, GBPJPY. Груповое движение пар более ефективно нежели движение одной пары.
 

Честно говоря, мне было все равно, имеет ли то, что оптимизируется, шансы на жизнь. Я всего лишь предложил решение, позволяющее автоматизировать процесс оптимизации, избавившись от ввода строковых или логических переменных... Достаточно только вынести числовой параметр, описанный мной, в десятичной форме во внешние переменные советника, написать простенькую функцию, расшифровывающую его на предмет наличия/отсутствия конкретных пар, и задать оптимизацию по нему от 1 до 31.

Причина обращения: