Индикатор зигзаг и нейронные сетки - страница 9

[Удален]  
Piligrimm:
Вся программа написана в Матлабе, та часть которая осуществляет расчет прогнозов, откомпилирована в Матлабе и работает как ехе-файл запускаемый из индикатора собирающего входные данные по прходу нового бара каждую минуту. Та часть которая производит обучение сети и оптимизацию пороговых коэффициентов работает непосредственно в Матлабе и запускается по таймеру каждые 5 минут, т.к. откомпилированный ехе-шник с обучением сети не работает, причину понять не могу, компиляция проходит без ошибок.


Спасибо, буду разбираться с построением сетей в матлабе и с привязкой к МТ4. Если можете поделиться чем-либо из Ваших личных разработок - пришлите пожалуйста на loknar@list.ru . Буду очень признателен.

 
Mathemat:
Piligrimm писал (а): Сейчас моя система переобучается каждые 5 минут, а перерасчет прогнозов происходит каждую минуту по поступлению нового бара, если бы у меня на порядок были больше оперативная память и быстродействие, то переобучение производилось на каждом шаге вместе с расчетом, и значительно повысилась точность прогнозов

Переобучение каждые 5 минут и перерасчет прогнозов каждую минуту - не слишком ли часто? А твое стремление к дальнейшему увеличению частоты переобучения (и расчетов) для повышения точности прогнозирования (на каждом тике, что ли?) мне кажется странным. Сомневаюсь, что реально работающей системе поможет переобучение с частотой, совпадающей с частотой поступления данных.

P.S. А pf>25 - это не просто мечта, а что-то запредельное... Хотя при соотношении прибыльных сделок к убыточным 5:1 и TP/SL = 5 это вполне реализуется.


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

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

 
Loknar:
Piligrimm:
Вся программа написана в Матлабе, та часть которая осуществляет расчет прогнозов, откомпилирована в Матлабе и работает как ехе-файл запускаемый из индикатора собирающего входные данные по прходу нового бара каждую минуту. Та часть которая производит обучение сети и оптимизацию пороговых коэффициентов работает непосредственно в Матлабе и запускается по таймеру каждые 5 минут, т.к. откомпилированный ехе-шник с обучением сети не работает, причину понять не могу, компиляция проходит без ошибок.


Спасибо, буду разбираться с построением сетей в матлабе и с привязкой к МТ4. Если можете поделиться чем-либо из Ваших личных разработок - пришлите пожалуйста на loknar@list.ru . Буду очень признателен.

Для примера, простая сеть, но эффективно работающая, я такую использую:

[Удален]  
Piligrimm:

Для примера, простая сеть, но эффективно работающая, я такую использую:



Спасибо за информацию

Ежели Вам нужна будет какая приблуда для матлаба (7.5 сейчас качаю с кучей аддонов) или вообще весь ассоциативный софт для нейросетей - готов к сотрудничеству.

 

Для всех желающих, могу поделиться "формулой счастья"!

GP1[iq+1] = 0.3*((-0.610885 *GP1[iq-1]*GP1[iq-1]*GP1[iq-2]-0.0795671 *GP1[iq]*GP1[iq-1]*GP1[iq-1]*GP1[iq-1]*GP1[iq-2]+1.19161 *GP1[iq-1]*GP1[iq-1]-0.422269 
                   *GP1[iq])/(GP1[iq-1]*GP1[iq-1]-0.505662 *GP1[iq]*GP1[iq-1]*GP1[iq-1]-0.415455 *GP1[iq-2]*GP1[iq-2]))+0.7*((-0.610885 *GP1[iq-2]*GP1[iq-2]*GP1[iq-3]
                   -0.0795671*GP1[iq-1]*GP1[iq-2]*GP1[iq-2]*GP1[iq-2]*GP1[iq-3]+1.19161 *GP1[iq-2]*GP1[iq-2]-0.422269 *GP1[iq-1])/(GP1[iq-2]*GP1[iq-2]-0.505662 *GP1[iq-1]
                   *GP1[iq-2]*GP1[iq-2]-0.415455 *GP1[iq-3]*GP1[iq-3]));
 
GP1 - это или точки перелома в Зиг-Заге, или в любой другой последовательности, которую Вы хотите прогнозировать, например, МА, или просто цены валют, 
хотя я в этих вариантах не проверял, но думаю будет работать.
В расчетах используются переменные сформированные в обратном порядке по отношению к стандартной индексации в МТ4, если хотите применять формулу для
прямой индексации МТ4,то iq-..., замените на iq+... .
Прогноз не 100%, но лучше, чем ничего, использовать в индикаторах можно.

Для индивидуальной подстройки под свою задачу можете еще поиграть коэффициентами: 0.3*( и 0.7*(, в сумме должна быть единица.

 
Piligrimm:

Для всех желающих, могу поделиться "формулой счастья"!

GD[iq] 
какой то дикий полином он случайных чисел (если GD[iq] это котировки). Может он и имел бы смысл если по какомуто закону пересчитывать постоянные коэффициенты -0.610885 и т.д. Не могли бы вы подсказать теорию по которой получена эта страшная формула :-). Или это пресловутый интелект НС
[Удален]  
Piligrimm:

Для всех желающих, могу поделиться "формулой счастья"!

Для индивидуальной подстройки под свою задачу можете еще поиграть коэффициентами: 0.3*( и 0.7*(, в сумме должна быть единица.


Так а что есть iq ? Если говорим про зигзаг то это просто последовательность его индексов ? Т.е. iq-1 будет предыдущая точка перелома зигзага ?
 
Loknar:
Piligrimm:

Для всех желающих, могу поделиться "формулой счастья"!

Для индивидуальной подстройки под свою задачу можете еще поиграть коэффициентами: 0.3*( и 0.7*(, в сумме должна быть единица.


Так а что есть iq ? Если говорим про зигзаг то это просто последовательность его индексов ? Т.е. iq-1 будет предыдущая точка перелома зигзага ?

Да, именно так, iq-1 - предыдущая точка. Я прошу понимать, что универсальной "формулы счастья" - нет, у каждого она своя, я разрабатывал этот полином для своего индикатора, графики которого приведены выше, как он будет работать с другими данными - я не проверял, но надеюсь, кому-то может оказаться полезным, а если у кого-то не будет работать - не судите строго.

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

 На рисунке показано, как этот полином работает у меня: синяя линия - тренд по точкам перегиба, розовая - пропущенная через полином. Данные на вход подаются нормированные, поэтому такая шкала масштаба.

 
Piligrimm писал (а): Для всех желающих, могу поделиться "формулой счастья"!
GP1[iq+1] = 
Вот ты какой, северный олень...
 
Prival:
Piligrimm:

Для всех желающих, могу поделиться "формулой счастья"!

GD[iq] 
какой то дикий полином он случайных чисел (если GD[iq] это котировки). Может он и имел бы смысл если по какомуто закону пересчитывать постоянные коэффициенты -0.610885 и т.д. Не могли бы вы подсказать теорию по которой получена эта страшная формула :-). Или это пресловутый интелект НС

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

Написан на Матлабе, последние две строки убрал, чтобы не пошел в тираж.

GR(i)=0.25*(0.4*(0.55*(0.6*(0.09*(-0.00192393 +GM(i+3)*(-0.1725) +GM(i+6)*(1.17444))+0. 28*(-0.00130286 +(-0.000123992 +GM(i+5)*(-0.821849) ...

+GM(i+6)*(1.82199))*(0.302188) +(-0.00145804 +GM(i+4)*(-0.153087) +GM(i+6)*(1.15453))*(0. 699112))+0.09*(-0.000577229 +GM(i+3)*(-0.162435)...

+GM(i+6)*(1.16299))+0.09*((0.832328 *GM(i+4)*GM(i+6)-0.119317 *GM(i+6)*GM(i+6)*GM(i+5)-0. 100951 *GM(i+5)-0.0192996 *GM(i+2))/(GM(i+4)-0.361992...

*GM(i+5)-0.0452508 *GM(i+6)))+0.09*((1.00001 *GM(i+6)*GM(i+6)*GM(i+6)*GM(i+6)-1. 03818 *GM(i+6)*GM(i+6))/(GM(i+6)*GM(i+6)*GM(i+6)-1.03817...

*GM(i+6)))+0.09*((1.07271 *GM(i+6)-0.512733 *GM(i+6)+0.684408 *GM(i+4)-0.485238 *GM(i+4)*GM(i+4))/(1-0.240858 *GM(i+5)*GM(i+6)))+0.09...

*((1.00137*GM(i+6)*GM(i+6)-0.000473002 *GM(i+4)*GM(i+6)-0.998682 *GM(i+6)*GM(i+6)+6. 16771e-006 *GM(i+4)*GM(i+6)*GM(i+6))/(GM(i+6)-0.997777...

*GM(i+6)))+0.09*(0.730651 *GM(i+4)*GM(i+4)*GM(i+6)/(GM(i+4)*GM(i+4)-0.269349 *GM(i+5)*GM(i+5)))+0. 09*((0.717833 *GM(i+6)*GM(i+4)*GM(i+6)...

-0.11191*GM(i+4)*GM(i+4)*GM(i+4))/(GM(i+6)*GM(i+4)-0.471068 *GM(i+6)*GM(i+5)+0.209781 *GM(i+6)*GM(i+6)-0.132089 *GM(i+3)*GM(i+6)-0.000702832 ....

*GM(i+5))))+0.4*(0.2*(0.6*(-0.00130286 +(-0.000123992 +GM(i+5)*(-0.821849) +GM(i+6)*(1. 82199))*(0.302188) +(-0.00145804 +GM(i+4)...

*(-0.153087) +GM(i+6)*(1.15453))*(0.699112))+0.4*((0.717833 *GM(i+6)*GM(i+4)*GM(i+6)-0. 11191 *GM(i+4)*GM(i+4)*GM(i+4))/(GM(i+6)*GM(i+4)...

-0.471068 *GM(i+6)*GM(i+5)+0.209781 *GM(i+6)*GM(i+6)-0.132089 *GM(i+3)*GM(i+6)-0. 000702832 *GM(i+5))))+0.25*(-0.000577229 +GM(i+3)*(-0.162435)...

+GM(i+6)*(1.16299))+0.35*((1.00001 *GM(i+6)*GM(i+6)*GM(i+6)*GM(i+6)-1.03818 *GM(i+6)*GM(i+6))/(GM(i+6)*GM(i+6)*GM(i+6)-1. 03817 *GM(i+6)))...

+0.2*((1.07271 *GM(i+6)-0.512733 *GM(i+6)+0.684408 *GM(i+4)-0.485238 *GM(i+4)*GM(i+4))/(1-0. 240858 *GM(i+5)*GM(i+6)))))+0.45*(0.4*((1.73835 ...

*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)-0.0334794 *GM(i+3)*GM(i+4)*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)-0. 919558 *GM(i+4)...

*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)-0.376192 *GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)-0.345737)/(GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)-0. 0355159...

*GM(i+3)-0.901092 *GM(i+4)))+0.6*((-2.01988 *GM(i+3)*GM(i+3)*GM(i+4)*GM(i+6)+2.90062 *GM(i+3)*GM(i+3)*GM(i+4)+5.31466 *GM(i+3)*GM(i+3)...

*GM(i+5)-3.01304 *GM(i+3)*GM(i+3)-4.34954 *GM(i+3)*GM(i+5))/(GM(i+3)*GM(i+3)*GM(i+4)-2. 16719))))+0.4*(0.33*((1.00914 *GM(i+4)*GM(i+5)...

*GM(i+5)+0.977507 *GM(i+4)*GM(i+4)*GM(i+5)-1.9751 *GM(i+4)*GM(i+3)*GM(i+5))/(GM(i+4)*GM(i+5)-0. 988447*GM(i+3)*GM(i+3)))+0.67*((2.51015 ...

*GM(i+6)-0.979174 *GM(i+5)*GM(i+6)-0.642762)/(1-0.111777 *GM(i+5)*GM(i+5)*GM(i+4))))+0. 4*(0.9*(0.3*((1.00914 *GM(i+4)*GM(i+5)*GM(i+5)...

+0.977507 *GM(i+4)*GM(i+4)*GM(i+5)-1.9751 *GM(i+4)*GM(i+3)*GM(i+5))/(GM(i+4)*GM(i+5)-0. 988447*GM(i+3)*GM(i+3)))+0.7*((0.0988538 *GM(i+4)...

*GM(i+6)-0.0240242 *GM(i+4)*GM(i+4)*GM(i+5)*GM(i+5)+0.0291295 *GM(i+4)*GM(i+4)+0. 904081 *GM(i+4)-0.951504 *GM(i+3))/(GM(i+4)-0.943467...

*GM(i+3))))+0.1*((2.01304 *GM(i+5)*GM(i+5)*GM(i+5)*GM(i+5)-2.02312 *GM(i+4)*GM(i+5)*GM(i+5)*GM(i+5)+0. 0156151 *GM(i+5)*GM(i+5)*GM(i+5))...

/(GM(i+5)*GM(i+5)*GM(i+5)-1.01005 *GM(i+4)*GM(i+4)*GM(i+5)-1.14951e-005 *GM(i+5)*GM(i+5)+0. 0155924 *GM(i+5)*GM(i+5)-7.72653e-007 *GM(i+5)...

*GM(i+5)*GM(i+5))))+1.8*(0.3*((-0.610885 *GM(i+4)*GM(i+4)*GM(i+5)-0.0795671 *GM(i+3)*GM(i+4)*GM(i+4)*GM(i+4)*GM(i+5)+1. 19161 *GM(i+4)...

*GM(i+4)-0.422269 *GM(i+3))/(GM(i+4)*GM(i+4)-0.505662 *GM(i+3)*GM(i+4)*GM(i+4)-0. 415455 *GM(i+5)*GM(i+5)))+0.7*((-0.610885 *GM(i+5)*GM(i+5)...

*GM(i+6)-0.0795671*GM(i+4)*GM(i+5)*GM(i+5)*GM(i+5)*GM(i+6)+1.19161 *GM(i+5)*GM(i+5)-0. 422269 *GM(i+4))/(GM(i+5)*GM(i+5)-0.505662 *GM(i+4)...

*GM(i+5)*GM(i+5)-0.415455 *GM(i+6)*GM(i+6))))+0.3*((0.325815 *GM(i+5)*GM(i+5)*GM(i+5)-0. 322486 *GM(i+4)*GM(i+4)*GM(i+4)+0.00437944 *GM(i+5))...