Работа с программой. Обучение При заданном наборе внешних (входных) параметров обучение программы можно проводить двумя способами: А) В результате предварительного тестирования на Тестере Стратегий. Для этого нужно предварительно загрузить достаточный объем истории, хотя бы за год, что можно сделать, открыв график нужной валютной пары и удерживая клавишу 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) это приводит к тому, что программа ищет долгосрочные стабильные тренды. В то же время, она игнорирует явные признаки появления новых трендов. Напротив, при выборе forg>1 программа наряду с долгосрочными трендами, которые действовали на всей доступной истории, отслеживает также появление новых трендов. При появлении очередной рыночной ситуации статистический вес предыдущих аналогичных рыночных ситуации понижается в forg раз. Иначе говоря, при forg=1.05 забывание истории “наполовину” происходит при появлении 10-15 аналогичных ценовых комбинаций; dstop =TakeProfit=StopLoss. В текущей версии программы всегда выставляется ограничение прибыли, равное ограничению потерь. Однако, программа может закрывать позиции, не дожидаясь достижения стопов. delta – минимальный шаг, при котором цена считается нетождественна предыдущей, и происходит обновление ценовых паттернов. При обучении на коротких периодах этот параметр можно взять 1-2 (обновление паттернов на каждый тик). Большие периоды могут быть адекватно восприняты Тестером только при более грубом разрешении, delta=3-5. Фактически, программа анализирует тики, а параметр delta заменяет собой выбор таймфрейма; Nidelt – число типов ценовых паттернов (число шагов по изменению шага). Это непростой параметр, значение которого можно оставить равным по умолчанию. При каждом изменении цены программа анализирует цены, записанные в наборе из Nidelt типов паттернов из NN элементов каждый. Цены соседних элементов idelt паттерна отличаются на величину delta*idelt, где 1; NN – размер паттерна. Это важный параметр, указывающий на число элементов в паттерне. Если число элементов мало, то статистика будет значима (сделок много), но паттерны слишком просты и грубы, и не обязательно обнаружатся паттерны, обеспечивающие выигрыш с вероятностью выше заданной. Если элементов много, значит рассматриваются длинные паттерны, самих паттернов много, и значит статистика по каждому паттерну не накопится, а тестирование будет проходить долго. Время тестирования многократно возрастает с ростом NN! Рекомендуется NN=10 при тестировании по данным за год; ReInvest. Если ReInvest=1, число лотов растет пропорционально сумме баланса. Если ReInvest=0, заданное в начале число лотов остается неизменным; Lots - число лотов (начальное); Nstop в текущей версии программы не используется и остается равным принятому по умолчанию.