Нейронные сети - страница 7

 
Cyclesurfer:
Замечательная новая цифровая программа! Я посмотрю материал через несколько минут... придется достать русский... который не так хорош, но я думаю, что в сочетании с AltaVista я смогу сделать достойную попытку. Сейчас я кодирую в CORTEX на других нейронных сетях (далее NN) и планирую перевести их в MQ4... Я думаю, что мы должны ОБЯЗАТЕЛЬНО поддерживать эту тему, потому что (и это мнение) NN - это будущее технического анализа. NN, для тех, кто не настолько гик, чтобы знать... это в основном алгорифмы, которые имитируют мозг (не обязательно человеческий мозг... потому что это было бы невероятно сложно) в том, что он учится по ходу дела. Я пишу советника, чтобы он давал советы, стоит ли принимать конкретный сигнал, основываясь на небольших паттернах, которые появлялись раньше, когда был дан похожий сигнал. Это то, что делает большинство NN, они ищут в данных небольшие паттерны, которые были бы бессмысленны для нас или даже для других алгоритмов, и смотрят, что эти паттерны делают со временем. В первом советнике будет использоваться Brain Trend. Я прошу всех быть терпеливыми, но кодирование CORTEX требует времени... точнее, требуется время для обучения NNs и их совершенствования. Если кто-то здесь знаком с CORTEX или преобразованием кода, любая помощь будет принята с благодарностью. Я понимаю, почему русский форум станет коммерческим... NNs - это современный стиль для трейдеров с большими деньгами. Итак... что вы, ребята, скажете?

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

 

Нейронная сеть с использованием Matlab и Metatrader

Здравствуйте!

Я использую Matlab и разработал нейронную сеть для нескольких пар, но у меня проблемы с перепрограммированием NN из Matlab в mql4!

Для теста я создал небольшую нейронную сеть, предсказывающую цену USDJPY от цены в i+10 и i+20. Она имеет 2 входа, 3 скрытых слоя, 1 выход. Функция активации скрытого слоя - tansigmoide, для выхода - линейная.

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

Расчетные веса скрытого слоя следующие:

[13.8525 -43.4534;

-11.2084 18.4331;

-0.30603 0.01022]

Веса от скрытого слоя к выходу :

[0.0020021 0.0047956 -3.4143]

Смещение скрытого слоя :

[13.876;

2.644;

0.083215]

Смещение выхода

[0.27514]

Проблема, должно быть, в функции активации, которая должна быть tan sigmoide. Поскольку цена больше 100, MathExp(-100) дает что-то очень маленькое...

Вот интересная часть кода:

>>

double a1=iClose("USDJPY",0,i+10);

double a2=iClose("USDJPY",0,i+20);

//Узел (1,1)

double Sum_node_1_1=13.8525*a1 -43.4534*a2+13.876;

double Sigmoide_node_1_1=(1-MathExp(-Sum_node_1_1))/(1+MathExp(-Sum_node_1_1));

//Узел (1,2)

double Sum_node_1_2=-11.2084*a1+18.4331*a2+2.644;

double Sigmoide_node_1_2=(1-MathExp(-Sum_node_1_2))/(1+MathExp(-Sum_node_1_2));

//Узел (1,3)

double Sum_node_1_3=-0.30603*a1+0.01022*a2+0.083215;

double Sigmoide_node_1_3=(1-MathExp(-Sum_node_1_3))/(1+MathExp(-Sum_node_1_3));

//---- Выходное значение -----

double Sum_node_2_1=(0.0020021*Sigmoide_node_1_1+0.0047956*Sigmoide_node_1_2-3.4143*Sigmoide_node_1_3+0.27514);

<<

Спасибо за помощь!

 

Вот пример, иллюстрирующий мою проблему построения нейронной сети в Matlab. На картинке, которую я разместил, показано целевое значение (X) и выход нейронной сети (Y) для EURGBP. В худшем случае, при реальной цене 0,7, выход NN составляет от 0,68 до 0,73 (довольно плохо, но это был всего лишь тест!).

Если я использую веса NN для расчета выходного значения вручную, я получаю 0.75, что невозможно для 0.7... Так что я, должно быть, где-то ошибаюсь при расчете выходного значения... Вот формула :

-1.1261*tansig(-1.6589*0.6964+1.4776*0.6936+4.5965)

-0.013796*tansig(-2.6065*0.6964+ 4.3402 *0.6936+0.30321)

+1.2166*tansig( 0.88612*0.69669364+0.11309 *0.6936+0.055821)+1.1116

Веса :

-Весы для слоя от входа

[-1.6589 1.4776;

-2.6065 4.3402;

0.88612 0.11309]

-Весы для слоя

[-1.1261 -0.013796 1.2166]

-Пристрастие к слою 1

[4.5965;

0.30321;

0.055821]

-Пристрастие к слою 2

[1.1116]

2 входные цены, используемые для расчета выхода, являются :

0.6964

0.6936

Сеть представляет собой 2 входа/3 скрытых/1 выход с сигмоидной активацией Тангенте для скрытого слоя и линейной активацией для выхода.

СПАСИБО!!!

Файлы:
captureplot.jpg  23 kb
 

Кроме того, правильная функция активации Tangente sigmoide была неправильной в моем коде mql4. Правильная функция: 2/(1+MathExp(-2* x ))-1

Спасибо!

 

Первые результаты

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

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

Как я читал в различных статьях и постах, использование предыдущей комбинации High-Low-Open-Close кажется совершенно неэффективным. НС полностью теряется в темноте... График зависимости реального значения от выхода NN горизонтален (1-й снимок Open-Low-High-Close.jpg), что означает, что он вообще ничего не может предсказать. Это тот же результат, что и попытка найти числа лотереи с помощью NN Я пробовал разные входы и выходные значения, нормализованные или нет, результат тот же.

Так на что же хуже смотреть??? Кажется, что технические индикаторы работают гораздо лучше. Я протестировал смесь классических индикаторов в качестве входных данных для прогнозирования абсолютной цены. График не самый лучший, но неплохой (2-й рисунок - Technical factors inputs.jpg). Я также думаю, что использование абсолютных значений - очень плохая идея.

Использование наклона скользящей средней для прогнозирования будущего наклона дает интересные результаты для выявления возможных разворотов (3-й рисунок MA Slope.jpg).

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

Надеюсь на комментарии и обмен опытом в ближайшее время!

 

Поздравляем Webesa

Спасибо, дорогая Вебеса,

это хорошие результаты,

но один вопрос: не лучше ли использовать более крупную NN (больше входов + больше слоев + больше нейронов), чтобы аппроксимировать лучшую связь между свечами?

 

из нейронной сети в dll

Здравствуйте,

есть ли у кого-нибудь опыт интеграции dll, содержащей обученную нейронную сеть из Matlab или Neurosolutions в mq4 скрипт?

 
webesa:
Эта тема выглядит немного мертвой, но я надеюсь, что здесь еще есть люди, интересующиеся нейронными сетями! Поэтому, пожалуйста, поделитесь здесь своим опытом работы с нейросетями!

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

Как я читал в различных статьях и постах, использование предыдущих High-Low-Open-Close кажется совершенно неэффективным. НС полностью теряется в темноте... График зависимости реального значения от выхода NN горизонтален (1-й снимок Open-Low-High-Close.jpg), что означает, что он вообще ничего не может предсказать. Это тот же результат, что и попытка найти числа лотереи с помощью NN.

Я пробовал разные входные и выходные значения, нормализованные или нет, результат тот же.

Так на что же хуже смотреть??? Кажется, что технические индикаторы работают гораздо лучше. Я протестировал смесь классических индикаторов в качестве входных данных для прогнозирования абсолютной цены. График не самый лучший, но неплохой (2-й рисунок - Technical factors inputs.jpg). Я также думаю, что использование абсолютных значений - очень плохая идея.

Использование наклона скользящей средней для прогнозирования будущего наклона дает интересные результаты для выявления возможных разворотов (3-й рисунок MA Slope.jpg).

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

Надеюсь на комментарии и обмен опытом очень скоро!

Какими именно были ваши входы/выходы для NN, использующего скользящие средние?

 
 

Думаю, вы правы, что если вам не нужно постоянно переучиваться, то dll вам не нужна.

Не хотите ли вы поделиться шаблоном для этого?