Все для торговли на форекс!
Пятница, 18.07.2025, 16:07
Приветствую Вас Гость | RSS
 
Главная СоветникиРегистрацияВход
Меню сайта
reklama
Категории раздела
Советники mt4 [20]
Форма входа
Статистика
Главная » Файлы » Советники mt4

Форекс советник Сombo
[ Скачать с сервера (1.2 Kb) ] 11.07.2011, 15:15

Постановка задачи для данной МТС звучит так:

Пусть у нас есть некая базовая торговая система - БТС. Необходимо спроектировать и обучить нейросеть таким образом, чтобы она могла делать то, на что неспособна БТС. В результате чего должна получиться торговая система из двух комбинированных и взаимнодополняющих друг друга БТС и НС.

Или говоря по простонародному, незачем изобретать велосипед, коли он уже давно изобретен. Ведь зачем пытаться научить кого либо быстро бегать, если есть автомобиль или летать, если есть вертолет?

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

Для этой цели была спроектирована двуслойная нейронная сеть, состоящая из двух перцептронов нижнего слоя и одного перцептрона в слое верхнем.

Выход нейросети имеет три состояния:
1. Вход в рынок длинной позицией
2. Вход в рынок короткой позицией
3. Неопределенное состояние

Собственно третье состояние - это передача управления БТС, в то время, как в первых двух торговые сигналы выдаются нейросетью.

Обучение нейросети разделено на три этапа, на каждом из которых обучается один перцептрон. И на любом этапе обязательно присутствует оптимизированная БТС, чтобы перцептроны знали, на что она способна.

Раздельное обучение перцептронов генетическим алгоритмом связано с недостатком этого самого алгоритма, а именно ограничением количества входных параметров, подбираемых с его помощью. Впрочем, каждый этап обучения логически последователен и размер нейросети не слишком велик, поэтому весь процесс оптимизациии проходит за вполне приемлемое время.

Но самый первый этап, предваряющий обучение НС, состоит в оптимизации БТС.

Чтобы не запутаться, номер этапа заносится во входной параметр МТС c идентификатором - pass. А идентификаторы входных параметров, соответствующих номеру этапа заканчиваются на число равное этому самому номеру.

Итак, предварительная подготовка к оптимизации и обучению НС. В в тестере в свойствах эксперта, вкладка "Тестирование" установим начальный депозит $1000000 (так, чтобы не создать искуственного маржинколла во время оптимизации), оптимизируемый параметр "Balance" и включим генетический алгоритм.

Переходим во вкладку "Входные параметры" свойств советника.
Устанавливаем размер лота открываемых позиций, присвоив идентификатору
lots значение 1.

Оптимизацию будем проводить по модели: "По ценам открытия (Быстрый метод на сформировавшихся барах, только для советников с явным контролем открытия баров).", поскольку такой контроль в алгоритме МТС присутствует.

Первый этап оптимизации. Оптимизация БТС:

Входному параметру pass устанавливаем значение 1.
Оптимизируем только входные параметры соответствующие первому этапу, все идентификаторы которых заканчиваются единичкой, а следовательно устанавливаем только на них галочки, оптимизации, и удаляем галочки со всех остальных параметров.

tp1 - тейкпрофит БТС. Оптимизируется значениями от 10 до 100 с шагом 1
sl1 - стоплосс БТС. Оптимизируется значениями от 10 до 100 с шагом 1
p1 - период осциллятора CCI, который применяется в БТС. Оптимизируется значениями от 3 до 100 с шагом 1

Второй этап. Обучение перцептрона отвечающего за короткие позиции:

Входному параметру pass придаем значение 2, т.е. соответствующее номеру этапа.
Убираем галочки оптимизации, выставленные на предыдущем этапе. Сохраняем, на всякий случай входные параметры, полученные на предыдущем этапе в файл.

Устанавливаем галочки оптимизации для параметров второго этапа, т.е. идентификаторы которых заканчиваются двойкой:

x12, x22, x32, x42 - весовые коэффициенты перцептрона, распознающего короткие позиции. Оптимизируются значениями от 0 до 200 с шагом 1.
tp2 - тейкпрофит позиций, открываемых перцептроном. Оптимизируется значениями от 10 до 100 с шагом 1
sl2 - стоплосс позиций, открываемых перцептроном. Оптимизируется значениями от 10 до 100 с шагом 1
p2 - период значений разницы цен, который анализируется перцептроном. Оптимизируется значениями от 3 до 100 с шагом 1.

Запустим обучение через оптимизацию ГА. По завершении получаем результаты:

Третий этап. Обучение перцептрона отвечающего за длинные позиции:

Входному параметру pass придаем значение 3, т.е. соответствующее номеру этапа.
Убираем галочки оптимизации, выставленные на предыдущем этапе.
Сохраняем, на всякий случай входные параметры, полученные на предыдущем
этапе в файл.

Устанавливаем галочки оптимизации для параметров второго этапа, т.е. идентификаторы которых заканчиваются тройкой:

x13, x23, x33, x43 - весовые коэффициенты перцептрона, распознающего длинные позиции. Оптимизируются значениями от 0 до 200 с шагом 1.
tp3 - тейкпрофит позиций, открываемых перцептроном. Оптимизируется значениями от 10 до 100 с шагом 1
sl3 - стоплосс позиций, открываемых перцептроном. Оптимизируется значениями от 10 до 100 с шагом 1
p3 - период значений разницы цен, который анализируется перцептроном. Оптимизируется значениями от 3 до 100 с шагом 1.

Завершающий четвертый этап. Обучение первого слоя, т.е. перцептрона, который находится в верхнем слое:

Входному параметру pass придаем значение 4, т.е. соответствующее номеру этапа.

Убираем галочки оптимизации, выставленные на предыдущем этапе.

Сохраняем, на всякий случай входные параметры, полученные на предыдущем
этапе в файл.

Устанавливаем галочки оптимизации для параметров второго этапа, т.е. идентификаторы которых заканчиваются четверкой:

x14, x24, x34, x44 - весовые коэффициенты перцептрона первого слоя. Оптимизируются значениями от 0 до 200 с шагом 1.
p4 - период значений разницы цен, который анализируется перцептроном. Оптимизируется значениями от 3 до 100 с шагом 1.

Все, нейронная сеть обучена.

У МТС есть еще один неоптимизируемый входной параметр mn - магический номер, т.е. идентификатор позиций, чтобы торговая система не путала свои ордера с ордерами открытыми вручную или другими МТС. Значение магического номера должно быть уникальным и не совпадать с магическими номерами позиций которые не были открыты данным советником.

P.S.

·         Размер начального депозита определяется как абсолютная просадка умноженная на два, т.е. с запасом прочности.

·         Советник в исходниках не оптимизирован

·         Если возникнет необходимость заменить встроенную БТС , алгоритмом другой торговой системы, то необходимо изменить содержимое функции basicTradingSystem()

·         Чтобы не вводить вручную начальные, конечные значения и размеры шагов оптимизации, можно взять готовый файл combo.set и поместив его в папку \tester MT4, загрузить в свойствах советника в тестере.

Переоптимизация советника выполняется в выходные, т.е. в субботу или (либо) в воскресенье, но только в том случае, если результаты предыдущей недели были убыточными. Наличие убытков говорит, что рынок изменился и необходима переоптимизация. Наличие прибыли, говорит о том, что МТС не нуждается в переоптимизации и достаточно хорошо распознает рыночные паттерны

Категория: Советники mt4 | Добавил: sviders93
Просмотров: 2106 | Загрузок: 343 | Комментарии: 1 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
реклама
Котировки
Котировки от Forex4You
Поиск
Copyright MyCorp © 2025
Бесплатный хостинг uCoz