Самообучающийся ЭКСПЕРТ
Давно уже попал мне в папку советников такой вот монстр...
Настроек в нём много. Пробовал прикрутить к демо - ничего путного не добился. Но периодически попадаясь мне на глаза в папке советников заинтересовывает как и раньше
Может совместными усилиями вдохнём в него жизнь или похороним окончательно?
Может это долгожданный Гра-а-а-ль, но, не имя хотя бы элементарные исходные данные, как "прощупать" его. Но в любом случае вот что указывается в его преамбуле:
"Работа с программой. Обучение.
При заданном наборе внешних (входных) параметров обучение программы можно проводить двумя способами:
А) В результате предварительного тестирования на Тестере Стратегий.
Для этого нужно предварительно загрузить достаточный объем истории, хотя бы за год, что можно сделать, открыв график нужной валютной пары и удерживая клавишу Home. Затем открываем меню Вид/Тестер Стратегий, и запускаем тест с выбором точной модели тестирования "по всем тикам" (подробнее о работе с Тестером см. встроенную ин-струкцию платформы МТ4).
В процессе теста файлы статистики сделок создаются Тестером и записываются в папку Tester/files. Для работы с реальным счетом их достаточно перенести в папку Experts/files.
Б) Обучение может быть также проведено при запуске программы в режиме реаль-ного времени. В этом случае файлы статистики сделок создаются сразу в папке Experts/files. Накопление статистики фиктивных сделок в реальном времени происходит не быстро. Может потребоваться неделя или больше, прежде чем советник соберет достаточ-ный объем информации и откроет первую позицию. В то же время, файлы статистики, бы-стро создаваемые Тестером Стратегий, не вполне удовлетворительны, так как они не-сколько искажены погрешностями, возникающими при моделировании Тестером движе-ния цены внутри бара. Этого достаточно для демонстрации работоспособности алгоритма и презентации программы, однако запуск советника на реальном счете с этими файлами статистики сопряжен с определенным риском. Поэтому оптимальным способом обучения представляется следующий. Файлы обучения созданные Тестером после тестирования на исторических данных, следует рассматривать как "первое приближение". Их следует пере-нести в папку Experts/files и запустить советника в режиме реального времени на демо-счете.
Советник сразу может совершать сделки. Однако обновленные файлы статистики сделок появятся спустя некоторое время (около недели- для параметров принятых по умолчанию). Проще говоря, после перехода с Тестера на реальный счет советнику необхо-димо "расторговаться".
За это время он корректирует файлы статистики, созданные ранее Тестером.
Переобучение. Параметр ReadHistory.
Если программа была ранее хотя бы раз протестирована на данном символе, она считается обученной работать на этом символе, а папка Tester/files содержит файлы стати-стики. При повторном запуске на Тестере программа по умолчанию считывает информа-цию из файлов статистики. Поэтому при изменении значений каких либо входных пара-метров необходимо запретить чтение данных из файлов статистики. В противном случае возникнет несоответствие старых результатов обучения и новых входных параметров, в результате чего программа может даже продемонстрировать отрицательный результат. За переобучение программы отвечает параметр ReadHistory. Если при запуске программы ReadHistory=0, программа стирает прежний файл статистики и пишет на его место новый, отвечающий новым входным параметрам. Если ReadHistory=1, программа считывает ре-зультаты прежнего обучения и использует их в работе. Eсли ReadHistory=1, а файла стати-стики не обнаружено, программа прописывает в журнал ошибку чтения файла (это нор-мально), создает нужные файлы и записывает в них
информацию аналогично запуску c выбором ReadHistory=0.
Прочие параметры.
- Probab - требуемая вероятность выигрыша, на основании статистических данных. Чем ближе Probab к единице, тем более вероятно достижение выигрыша в случае откры-тия позиции. Однако рыночные ситуации с гарантированным выигрышем реализуются редко. Поэтому для фактического достижения выигрыша пользователь обязан разрешить определенный риск. Таким образом, советник не является машиной по стабильному про-изводству денег. Пользователь осознает наличие инвестиционного риска и самостоятельно назначает вероятность проигрыша. Указанная вероятность проигрыша равна нулю при выборе Probab=1, в этом случае советник никогда не откроет позицию;
- forg - скорость забывания результатов обучения. От 1 (забывания нет) до 1.1 (сильное забывание). Параметр полезен, если необходимо придать последним сделкам больший статистический вес. Известно, что рынок со временем изменяется. Это выража-ется, к примеру в том, что рыночные ситуации, которые в прошлом году традиционно бы-ли благоприятными для позиции Buy, в новом году могут оказаться благоприятными для позиции Sell. Если поставлено forg=1, программа считает вполне равноправными рыноч-ные ситуации, реализованные в прошлом и в новом году. С учетом требуемой вероятности положительного закрытия (Probab) это приводит к тому, что программа ищет долгосроч-ные стабильные тренды. В то же время, она игнорирует явные признаки появления новых трендов. Напротив, при выборе forg1 программа, наряду с долгосрочными трендами, ко-торые действовали на всей доступной истории, отслеживает также появление новых трен-дов. При появлении очередной рыночной ситуации статистический вес предыдущих ана-логичных рыночных ситуации понижается в forg раз. Иначе говоря, при forg=1.05 забыва-ние истории "наполовину" происходит при появлении 10-15 аналогичных ценовых ком-бинаций;
- dstop =TakeProfit=StopLoss. В текущей версии программы всегда выставляется ог-раничение прибыли, равное ограничению потерь.
Однако, программа может закрывать позиции, не дожидаясь достижения стопов.
- delta - минимальный шаг, при котором цена считается нетождественна предыду-щей, и происходит обновление ценовых паттернов. При обучении на коротких периодах этот параметр можно взять 1-2 (обновление паттернов на каждый тик), большие периоды могут быть адекватно восприняты Тестером только при более грубом разрешении, delta=3-5. Фактически, программа анализирует тики, а параметр delta заменяет собой выбор тайм-фрейма;
- Nidelt - число типов ценовых паттернов (число шагов по изменению шага). Это непростой параметр, значение которого можно оставить равным по умолчанию. При каж-дом изменении цены программа анализирует цены, записанные в наборе из Nidelt типов паттернов из NN элементов каждый. Цены соседних элементов idelt паттерна отличаются на величину delta*idelt, где 1IDELT более становится рынка анализ Nidelt понижении при есть то ситуаций, рыночных различных отрабатываемых число уменьшает но процесс, вы-числительный ускоряет понижение что видно, Отсюда данных).
статистических основании (на заданной выше позиции закрытия положительного вероятностью с векторов множества из один реализуется времени момент данный в если случае, том дается Sell или Buy типа реальной открытие на Разрешение статистику. ним по ведет и сравнений реализованных всех для фиктивные открывает Программа 0. случае противном 1, записывается вектора элемент соответствующий номером, большим паттерна ценового элемента цены больше номером меньшим цена Если элементах. соседних его хранящиеся цены, сравниваются каждого Для сравнений. вектор соответствие ставится паттерну ценовому каждому этом При набор составляется паттернов ценовых набора На стираются. элементы последние а налево, справа номер переписываются элементов значе-ния delta*idelt), до точностью (с цене текущей равен паттерне каждом первый так паттер-нов, весь обновляется обновлении очередном огрубления.
степенях рынке о информацию представляет цен образом, ;
- NN - размер паттерна. Это важный параметр, указывающий на число элементов в паттерне. Если число элементов мало, то статистика будет значима (сделок много), но пат-терны слишком просты и грубы, и не обязательно обнаружатся паттерны, обеспечивающие выигрыш с вероятностью выше заданной. Если элементов много, значит рассматриваются длинные паттерны, самих паттернов много, и значит статистика по каждому паттерну не накопится, а тестирование будет проходить долго. Время тестирования многократно воз-растает с ростом NN! Рекомендуется NN=10 при естировании по данным за год;
- ReInvest. Если ReInvest=1, число лотов растет пропорционально сумме баланса. Если ReInvest=0, заданное в начале число лотов остается неизменным.
- Lots - число лотов (начальное);
- Nstop в текущей версии программы не используется и остается равным принятому по умолчанию".