Главная » Описание проекта и направления разработки EA Generator.

Описание проекта и направления разработки EA Generator.

1. Что такое EA Generator (EAG).

2. Состав EA Generator.

2.1 Системный модуль.

2.2 Исполнительный модуль.

2.3 Модуль визуализации.

3. Состав торговой стратегии EAG

3.1 Классы торговых платформ (терминалов).

3.2 Классы данных обучения нейросетей EAG.

3.3 Классы для работы с нейросетями EAG.

3.4 Классы обеспечивающие торговлю с помощью автоматических стратегий EAG.

4. Технологии использованные в EAG.

4.1 Введение в нейронные сети

4.2 Основные типы нейросетей

4.3 Обучение

4.4 Нормирование переменных

4.5 Предсказание направления движения рынка

5. Основные этапы генерации стратегий EAG.

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

5.2 Нормализация входных данных

5.3 Сбор данных

5.4 Выбор типа сети

5.5 Выбор параметров сети

5.6 Тренировка и тестирование сети

5.7 Изменение входных данных.

Что такое EA Generator (EAG).

EA Generator (EAG), это продукт разрабатываемый для автоматизации торговли на бирже Форекс. В нем должны быть реализованы технологии искусственного интеллекта, позволяющие прогнозировать финансовые временные ряды, строить и оптимизировать автоматические торговые стратегии. Создание в нем торговых стратегий с помощью нейронных сетей и генетических алгоритмов должно быть просто и понятно даже для пользователя, не являющегося профессионалом в этой области. Кроме того, для работы сгенерированных автоматических стратегий EA Generator должен обеспечивать широкий выбор торговых платформ Форекс.

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

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

EA Generator, должен обеспечивать возможность задать необходимые параметры и логику торговой стратегии, без написания программного кода. Созданная с помощью EA Generator автоматическая торговая стратегия должна представлять собой компьютерную программу, имитирующую способность человеческого мозга классифицировать примеры, делать предсказания изменения рынка Форекс и принимать решения, основываясь на опыте прошлого.

EA Generator должен обеспечить возможность генерации торговой стратегии следующим образом:

1. Выбор доступной торговой платформы (из установленных на компьютере пользователя)

2. Создание структуры объектов данных обучения нейросетей (тиковые данные, данные индикаторов, данные сделок), из доступных для выбранной торговой платформы

3. Получение входных данных для обучения неросетей (тиковые данные, данные индикаторов)

4. Получение выходных данных (данных сделок) для создания обучающей выборки нейросетей .

5. Обучение и оптимизация параметров нейросетей.

6. Сохранение проекта торговой стратегии и установка стратегии на выбранную торговую платформу (терминал).

7. Тестирование и торговля сгенерированной автоматической стратегии на выбранной торговой платформе.

2. Состав EA Generator.

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

Краткая характеристика модулей и классов EA Generator.

2.1 Системный модуль.

Классы системного модуля обеспечивают взаимодействие с операционной системой, межпрограммное взаимодействие, функции настройки интерфейса, работу со справкой, функции регистрации EA Generator и т.д.

Функции и классы (для расширенной информации см. Диаграмму компонентов EAG).

  1. Базовые классы приложения EA Generator. Обеспечение взаимодействия с операционной системой.

Классы: TDataModule, TInitProg.

  1. Работа с системным реестром. Хранение сведений о настройках EA Generator.

Классы: TInitProg.

  1. Гибкая настройка интерфейса (Actions Menu). Настройка расположения элементов управления. Возможность назначить элементам управления определенные действия или последовательность действий. Действия могут одновременно связываться с несколькими элементами управления, что существенно упрощает конфигурирование пользовательского интерфейса.

Классы: TAbsActionManager, TClassActionList, TAbsAction.

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

Классы: TAbsInet.

  1. Контекстная справка. Подсказки, которые появляются автоматически, когда пользователь наводит мышь на управление. Возможность выбрать опцию «Что это?» на элементе управления, которая отображает всплывающее окно с текстом справки. Возможность автоматического отображения справки, когда пользователь нажимает клавишу F1.

Классы: TInitProg.

  1. Поддержка MSAgent. Отображение или звуковой синтез различной информации для пользователя при использовании EA Generator. Советы, события на рынке, новости.

Классы: TAbsAgent.

  1. Интерпретатор команд java. Возможность автоматизировать действия пользователя EA Generator с помощью макросов. Задать временную последовательность операций.

Классы: TJvInterpreter, TMacroAction.

  1. Поддержка технологии COM/DCOM. Возможность создавать взаимодействующие распределённые компоненты EAG, каждый из которых может использоваться во многих программах одновременно, обеспечивая возможность взаимодействия по сети.

Классы: TAbsAutoObject.

2.2 Исполнительный модуль.

Классы исполнительного модуля обеспечивают хранение и управление объектами EA Generator, поддержку различных торговых терминалов Форекс, функции работы с нейросетями, функции получения и обработки входных и выходных данных, функции генерации стратегий и т. д.

Функции и Классы (для расширенной информации см. Диаграмму компонентов EAG) .

  1. Иерархическое хранилище объектов. Объекты хранятся в виде древовидной структуры. Каждый составной объект содержит корневое хранилище, в котором могут распологаться другие объекты. Это позволяет упорядоченно управлять множеством объектов исполнителей.

Классы: TAbsExpert, TAbsForm, TAbsList, TAbsContainer.

  1. Возможность сохранения объектов в файл. Объекты могут содержать данные или деревья объектов. Сохранение проекта автоматической торговой стратегии.

Классы: TAbsStStorage, TAbsStorage.

2.3 Модуль визуализации.

Функции и Классы (для расширенной информации см. Диаграмму компонентов EAG) .

  1. Визуализация иерархической структуры объектов. Позволяет интуитивно управлять сложными структурами составных объектов автоматической торговой стратегии EAG.

Поддержка технологии Drag&Drop. С помощью перетаскивания мышкой пользователь может менять структуру торговой стратегии, перемещать объекты данных или нейросетей по дереву торговой стратегии.

Набор инструментальных средств, позволяющих в наглядной форме моделировать предметную область EA Generator, анализировать эту модель на всех этапах разработки и разрабатывать структуру в соответствии с потребностями пользователей.

Классы: TAbsTree, TAbsTreeNode, TAbsTreeWin

  1. Возможность визуализации данных в различных форматах. Текстовый формат позволяет анализировать параметры нейросетей, входных и выходных данных. Графический 2D формат позволяет отображать входные и выходные данные в виде графиков распространенных видов (линейные, графики баров, японские свечи). Графический 3D формат позволяет отображать нейросети для общей оценки уровня обученности, входные и выходные данные в удобном для пользователя виде. Возможность редактировать данные.

Классы: TTextWin, TGraphWin, THexWin, T3DWin

3. Состав торговой стратегии EAG

Главными объектами автоматической торговой стратегии EAG являются объекты торговых платформ. Эти объекты определяют возможности использования различных данных обучения нейросетей. EA Generator, должен обеспечивать возможность использования различных наборов входных и выходных данных нейросетей, согласно с возможностями используемой торговой платформы. Для каждой торговой платформы могут существовать уникальные параметры торговли, уникальный набор инструментов и индикаторов.

EA Generator, должен обеспечивать возможность выбора торговой платформы для автоматической торговой стратегии, из доступных (установленных на компьютере пользователя).

В зависимости от типа поставки, EA Generator должен обеспечивать работу со следующими торговыми платформами: MetaTrader4 – в базовой поставке; MetaTrader4, MetaTrader5, Dukascopy (JForex), MBT Trader, Ninja Trader, TradeStation – в расширенной поставке. Для каждой торговой платформы (ТП), должен быть разработан класс, обеспечивающий работу EAG с данной ТП и несущий в себе полную информацию о возможностях и составе ТП.

EA Generator, должен обеспечивать возможность, генерировать автоматические торговые стратегии, с использованием следующих классов торговых платформ (подробней см. диаграмму классов, диаграмму взаимодействия).

3.1 Классы торговых платформ (терминалов).

MetaTrader 4

Классы: TMT4Terminal

Клиентский терминал Meta Trader предназначен для проведения торговых операций и технического анализа в реальном режиме времени при работе на рынках Forex, CFD, Futures. Имеет встроенный язык программирования собственных индикаторов и систем, визуальный тестер стратегий с генетическим оптимизатором. Автоматические торговые стратегии EAG для торговой платформы MT4 могут дополнительно оптимизироваться и тестироваться средствами клиентского терминала. Отчеты о торговле в MT4 (трейдеров или автоматических торговых стратегий) могут быть использованы в качестве выходных данных для обучения нейросетей EAG. Данные потока цен и данные индикаторов MT4 могут быть использованы в качестве входных данных для обучения нейросетей EAG.

На данной торговой платформе работают большинство трейдеров форекс.

JForex

Классы: TJForexTerminal

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

Основные преимущества:

— поддержка различных операционных систем, работа через Web интерфейс

— реальные исторические тиковые данные (в отличии от интерполированных в МТ4)

— Большое количество торговых индикаторов, доступных для автоматических торговых стратегий EAG

— интегрированная среда для разработки Java IDE расширяет возможности использования автоматических стратегий EAG.

— Отчеты о торговле JForex (трейдеров или автоматических торговых стратегий) могут быть использованы в качестве выходных данных для обучения нейросетей EAG. Тиковые данные и данные индикаторов JForex могут быть использованы в качестве входных данных для обучения нейросетей EAG.

Ninja Trader

Классы: TNinjaTraderTerminal

Торговая платформа для торговли фьючерсными контрактами, акциями и валютами на FOREX. Обладает встроенным языком программирования, возможностью выполнения скриптов. Открытые программные интерфейсы COM, DLL, .NET способствуют расширению функционала. Тиковые данные и данные индикаторов Ninja Trader могут быть использованы в качестве входных данных для обучения нейросетей EAG.

TradeStation

Классы: TTradeStationTerminal

TradeStation пользуется не меньшей популярностью чем MetaTrader среди компаний по управлению активами. Данные в формате TradeStation можно использовать для обучения нейросетей EAG. При получении данных обучения нейросетей EAG от поставщика данных используется API (application programming interface) TradeStation.

Классы торговых платформ (терминалов) должны нести в себе информацию о доступных иструментах, периодах (таймфреймах), технических индикаторах выбранной торговой платформы. Должны обеспечивать функции получения исторических или realtime данных для обучения нейросетей и торговли автоматических торговых стратегий EAG на выбранной ТП.

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

Обработку и хранение данных обучения нейросетей автоматических торговых стратегий EAG должны обеспечивать классы данных обучения нейросетей.

3.2 Классы данных обучения нейросетей EAG.

Классы: TRFXSymbol, TRFXIndicator (для расширенной информации см. Диаграмму компонентов EAG).

Классы данных обучения нейросетей EAG должны ассоциироваться с источниками входных данных обучения. Это могут быть инструменты или индикаторы на определенном таймфрейме, определенной ТП.

Для создания обучающих выборок нейросетей необходимо получить входные и выходные данные.

EA Generator, должен обеспечивать возможность получать входные данные обучения нейросетей с сервера торговой платформы или средствами клиентского терминала, в зависимости от выбранной ТП. Или импортировать входные данные из внешних файлов (текстовые файлы котировок).

EA Generator, должен обеспечивать возможность определять выходные данные с помощью графических инструментов на графике котировок или индикаторов, или импортировать выходные данные из внешних файлов (отчеты о торговле).

Классы данных обучения должны обеспечивать хранение массива выборок входных и выходных данных. Классы данных обучения должны включать в себя объекты нейросетей. Размер выборок данных должен определяться исходя из параметров нейросетей (количество входов, выходов нейросети). EA Generator, должен обеспечивать возможность выбора типа и параметров нейросетей, предварительную подготовку данных для эффективного обучения.

3.3 Классы для работы с нейросетями EAG.

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

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

Для эффективного обучения и использования нейросети необходимо правильно определить параметры: значение допустимой ошибки, кол-во слоев, нейронов, входов, выходов и т. д. EA Generator должен обеспечивать возможность использования генетического алгоритма для оптимизации параметров нейросетей.

Нейронные сети обратного распространения (back propagation)

Классы: TWizardNetwork (для расширенной информации см. Диаграмму компонентов EAG).

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

Название нейронные сети обратного распространения (back propagation) получили из-за используемого алгоритма обучения, в котором ошибка распространяется от выходного слоя к входному, т. е. в направлении, противоположном направлению распространения сигнала при нормальном функционировании сети.

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

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

Самоорганизующиеся карты Кохонена

Классы: TSelfOrgMapKohhonen (для расширенной информации см. Диаграмму компонентов EAG).

Эффективное обучение нейросетей с обратным распространением ошибки возможно только при наличии закономерностей в данных обучения.

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

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

Алгоритм функционирования самообучающихся карт (Self Organizing Maps – SOM) представляет собой один из вариантов кластеризации многомерных векторов. Примером таких алгоритмов может служить алгоритм k-ближайших средних (c-means). Важным отличием алгоритма SOM является то, что в нем все нейроны (узлы, центры классов…) упорядочены в некоторую структуру (обычно двумерную сетку). При этом в ходе обучения модифицируется не только нейрон-победитель, но и его соседи, но в меньшей степени. За счет этого SOM можно считать одним из методов проецирования многомерного пространства в пространство с более низкой размерностью. При использовании этого алгоритма вектора, схожие в исходном пространстве, оказываются рядом и на полученной карте.

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

Генетический алгоритм оптимизации параметров нейросетей.

Классы: TGeneticAlgorithm (для расширенной информации см. Диаграмму компонентов EAG).

Генетические алгоритмы предназначены для решения задач оптимизации. Примером подобной задачи может служить оптимизация обучения нейросетей, то есть подбор таких параметров, при которых достигается минимальная ошибка предсказания. Оптимизация параметров нейросетей с помощью генетического алгоритма заключается в повторении процессов обучения и тестирования нейросетей с различным набором параметров, для выявления оптимального набора, дающего максимальный результат при тестировании на данных не входящих в набор обучения. EA Generator, должен обеспечивать возможность использования генетического алгоритма для оптимизации параметров нейросетей.

В основе генетического алгоритма лежит метод случайного поиска. Основным недостатком случайного поиска является то, что нам неизвестно сколько понадобится времени для решения задачи. Для того, чтобы избежать таких расходов времени при решении задачи, применяются методы, проявившиеся в биологии. При этом используются методы открытые при изучении эволюции и происхождения видов. Как известно, в процессе эволюции выживают наиболее приспособленные особи. Это приводит к тому, что приспособленность популяции возрастает, позволяя ей лучше выживать в изменяющихся условиях. Подобный алгоритм получил название «репродуктивный план Холланда» и лег в основу практически всех вариантов генетических алгоритмов.

3.4 Классы обеспечивающие торговлю с помощью автоматических стратегий EAG.

EA Generator должен обеспечивать возможность: сохранения в файл, загрузки ранее сохраненных и редактирования автоматических торговых стратегий. Для этого должен быть разработан формат файла проекта автоматической торговой стратегии EAG, включающий в себя все объекты и параметры стратегии. Функциональность сохранения объектов автоматической стратегии в файл должна быть обеспечена классами исполнительного модуля EAG TAbsStStorage, TAbsStorage.

EA Generator, должен обеспечивать возможность инсталляции автоматических торговых стратегий на выбранную торговую платформу. В зависимости от особенностей торговой платформы, форматы и наборы файлов необходимых для работы автоматической торговой стратегии на выбранной ТП, могут варьироваться. Функции исталляции автоматических торговых стратегий на выбранную ТП, должны обеспечиваться классами торговых платформ.

Форматы файлов автоматических торговых стратегий EAG.

1. Файлы проектов автоматических торговых стратегий.

Описание: Предназначены для хранения структуры объектов нейросетей и данных обучения, параметров автоматической торговой стратегии, обученных нейросетей и данных обучения. Файлы проектов могут быть повторно загружены в EA Generator для изменения структуры автоматический торговых стратегий, изменения параметров, переобучения нейросетей.

2. Формат файлов для торговой платформы MetaTrader 4.

Работа автоматических стратегий EAG на торговой платформе MetaTrader 4 должна осуществляться через клиентский терминал.

Автоматическая торговая стратегия EAG для ТП Meta Trader 4 должна состоять из следующих файлов:

2.1 Файл советника Meta Trader 4 для работы автоматической торговой стратегии EAG.

Путь и имя файла: <Папка терминала>\experts\NeuroX.ex4

Назначение: Обеспечивает открытие и закрытие ордеров согласно прогнозу нейросетей, выходные сигналы (оповещения), содержит настраиваемые параметры стратегии EAG (параметры торговли, параметры выходных сигналов, параметры нейросетей).

2.2 Файл библиотеки функций для работы автоматических торговых стратегий EAG с нейросетями.

Путь и имя файла: <Папка терминала>\experts\libraries\NeuroX.dll

Описание: Набор функций для работы автоматической торговой стратегии EAG.

2.3 Файл описания библиотеки NeuroX.dll

Путь и имя файла: <Папка терминала>\experts\include\ NeuroX.mgh

Описание: Описание функций библиотеки NeuroX.dll для использования в советнике NeuroX.

2.4 Файлы обученных нейросетей.

Описание: файлы предназначены для хранения параметров и данных весов нейросетей EAG.

Путь и расширение файлов: <Папка терминала>\experts\files\*.nnb

Имя файла должно ассоциироваться с источником данных и состоять из наименования источника данных. Источником данных должен быть инструмент или индикатор на определенном таймфрейме. Например: «EURUSD5.nnb» — инструмент EURUSD, на 5 минутном таймфрейме.

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

Автоматические торговые стратегии EAG должны включать в себя наборы параметров редактируемых непосредственно при торговле. Такими параметрами могут быть стоплосс, тейкпрофит, допустимая величина спрэда, время суток разрешенной торговли и т. д.. Наборы доступных параметров могут варьироваться в зависимости от выбранной торговой платформы. На этапе создания структуры автоматической торговой стратегии, EA Generator должен обеспечивать возможность выбора параметров, доступных для изменения при торговле. Такие параметры могут быть дополнительно оптимизированы при тестировании средствами торговой платформы (терминала).

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

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

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

4. Технологии использованные в EAG.

4.1 Введение в нейронные сети

Технология нейронных сетей основана на подражании процессу решения задач мозгом. Подобно тому, как человек использует знания, полученные из предыдущего опыта, для решения новых задач или в новых ситуациях, нейронная сеть использует «решенные» ранее примеры для построения системы «нейронов», принимающей новые решения, осуществляющей классификацию и прогнозирование.

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

4.2 Основные типы нейросетей

Существуют два основных типа нейронных сетей: обучаемые с учителем и обучаемые без учителя.

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

Сети, обучаемые без учителя, могут разбить набор тренировочных примеров на указанное количество категорий, не требуя, чтобы им заранее показали, как разбивать на категории. Сеть делает это путем кластеризации примеров. Кластеризация основана на их близости в N-мерном пространстве, где N — количество входов. Пользователь сообщает сети максимальное количество категорий, и она обычно разбивает данные на это количество категорий. Однако иногда сеть может оказаться не в состоянии разделить примеры на такое большое количество различных категорий. Сети Кохонена относятся к типу сетей, обучаемых без учителя.

Структура сети

Базовым строительным элементом в технологии нейронных сетей является модельный нейрон. Однако отдельные нейроны бесполезны, пока они не соединены в сеть нейронов. Эта сеть обрабатывает некоторое количество входов из внешнего мира, выдавая на выход результаты классификации или предсказания сети. Соединения нейронов (изображенные как линии) характеризуются весами, которые применяются к значениям, передаваемым от одного нейрона к следующему.

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

4.3 Обучение

Типичная нейронная сеть — это сеть с обратным распространением ошибки, которая обычно имеет 3 слоя нейронов. Входные значения в первом слое взвешиваются и передаются во второй (скрытый) слой. Нейроны в скрытом слое «срабатывают» или выдают выходные значения, основанные на сумме взвешенных значений, которые были им переданы. Скрытый слой таким же образом передает значения выходному слою, а выходной слой выдает необходимые результаты (предсказания или результаты классификации).

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

4.4 Нормирование переменных

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

Существует, однако, одно общее предложение, которое может повысить Ваши шансы на успех: нормируйте некоторые из Ваших переменных. Давайте посмотрим, как и почему такое нормирование работает.

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

Нормирование переменных EA Generator

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

Входные данные нейросети EA Generator

Это можно сделать путем нормирования данных. Существуют много способов сделать это, среди них:

1. Используйте значение цены по отношению к некоторой базовой линии, такой, как скользящее среднее за последние 100 дней.

2. Используйте значение цены по отношению к некоторому индексу, который мог бы выровнять график.

3. Используйте изменение цены наряду с самой ценой.

4. Используйте процентное изменение цены наряду с самой ценой.

5. Используйте отношения двух переменных, чтобы получить вместо них одну переменную везде, где это возможно.

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

4.5 Предсказание направления движения рынка

Очень часто более плодотворными оказываются попытки предсказать направление изменения цены акций или ценных бумаг, чем попытки предсказать саму цену или ее изменение. Такое предсказание является более легким для сети, обладает средствами получения степени «уверенности» сети в надежности предсказания и осуществления перекрестной проверки, и часто оказывается в состоянии точнее предсказать то: что действительно необходимо маклеру.

Чтобы предсказать направление движения рынка, Вам обычно будет необходимо знать, поднимется ли цена (на заданную величину), упадет (на заданную величину) или останется той же (т.е. не выйдет за указанные пределы). Для решения этой задачи нейросети необходимо иметь три выхода (категории), которые Вы можете назвать КУПИТЬ, ПРОДАТЬ и ДЕРЖАТЬ. Для каждого тренировочного примера только один из этих выходов будет включен (=1), а остальные будут выключены (=0). Какой именно — будет зависеть от того, поднялась ли цена, упала или осталась той же за период, на который Вы хотите осуществить предсказание. Поскольку тренировочные примеры используют данные из прошлого, Вы будете знать, который из выходов установить в 1. Затем Вы сможете натренировать сеть с помощью алгоритма обратного распространения ошибки.

Когда Вы перейдете к использованию сети, Вы будете получать во всех трех выходных категориях значения между 0 и 1. Это значение выхода может использоваться как некий показатель уверенности: чем он больше, тем более сеть уверена в данном ответе.

Возможность перекрестной проверки появляется, когда Вы рассматриваете все три выхода одновременно. Если они противоречат друг другу, Вы вряд ли захотите положиться на ответ такой сети. Например, если КУПИТЬ равно 0,8, ПРОДАТЬ равно 0,7, а ДЕРЖАТЬ равно 0,6, это означает, что сеть не слишком уверена в своем ответе. Если КУПИТЬ равно 0,3, ПРОДАТЬ равно 0,9, а ДЕРЖАТЬ равно 0,4, то уверенность в ответе гораздо выше.

  1. Основные этапы генерации стратегий EAG.

 

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

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

5.2 Нормализация входных данных

Нейронная сеть предполагает, что каждый вход является непрерывной переменной, интенсивность которой соответствует «силе» входа. Поэтому для числового входа сеть принимает во внимание амплитуду входа. Если подавать сигнал или кривую на несколько входов в качестве временной зависимости, будет более правильным, если измерения одного и того же участка кривой будут находиться во входном потоке данных на одном и том же месте для каждого примера или примерно на одном и том же месте. Это называется нормализацией входных данных. Если входные данные не нормализованы, придется предоставить сети гораздо больше примеров, в которых кривые занимали бы все возможные положения.

5.3 Сбор данных

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

Необходимо включать в тренировочный набор наиболее актуальные данные. Колебания на рынке Форекс 2005-го года могут не быть хорошим индикатором того, что произойдет на нем в 2010-м.

Рекомендуется подготовить примеры для всех возможных предсказаний или вариантов классификации. Например, если необходимо предсказать подъем на рынке, тем не менее рекомендуется включить в тренировочный набор примеры падения на рынке, в противном случае нейронная сеть будет «сбита с толку», когда ей предъявят индикаторы для ситуации падающего рынка. Другими словами, если существуют 2 возможных результата, необходимо иметь равное количество тренировочных примеров для каждого из результатов.

5.4 Выбор типа сети

Для обучения и торговли на рынке Форекс, EA Generator предлагает сети с обратным распространением ошибки. Такие сети отлично подходят для данных, представляющих собой временные зависимости.

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

5.5 Выбор параметров сети

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

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

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

5.6 Тренировка и тестирование сети

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

При тренировке сети EAG — выделяется набор данных вне набора обучения, называемый тестовым набором, который используется для оценки того, насколько хорошо сеть предсказывает или классифицирует.

5.7 Изменение входных данных.

Наиболее вероятной причиной, по которой сеть может не давать хороших результатов, является тот факт, что входные данные выбраны неверно или предъявляются сети не в самом удачном виде. В примере с предсказанием рынка Форекс мог быть пропущен какой-нибудь отлично работающий технический индикатор. EAG предоставляет богатый выбор встроенных индикаторов различных торговых платформ.