SOM: способы приготовления - страница 8

 
Sych:

Можно отчет (шапку) полностью посмотреть? Нижняя часть урезана.

Обновил.

alexeymosc:

Ни че так. А какая стратегия? Сделка закрывается по количеству баров (по времени)? или как то по иному?

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

Понял. С перекосом видимо значит с отклонением вероятности от 50%? И условие закрытия привязано к каждому нейрону? Перекос это сколько? 55%? 60%?

 
alexeymosc:

Понял. С перекосом видимо значит с отклонением вероятности от 50%? И условие закрытия привязано к каждому нейрону? Перекос это сколько? 55%? 60%?

Да. Примерно в 1.5 раза, т.е. примерно 60\40 -- вот кусок кода:

{
   if (positive/(negative + 1.0) > 1.5 && count > 3)
   {
      OpenBuy(Magic, TP, SL, TradeLot);
   }
   
   if (negative/(positive + 1.0) > 1.5 && count > 3)
   {
      OpenSell(Magic, TP, SL, TradeLot);
   }
}

Обнаружил небольшую ошибку... Скоро будет в нормальном состоянии.

 
Здорово!
 
TheXpert:

Обновил.

Оптимизм есть но мало.

Можешь улучшить эти показатели:

Средняяприбыльная сделка121.33убыточная сделка-130.51
Максимальное количествонепрерывных выигрышей (прибыль)17 (1227.10)непрерывных проигрышей (убыток)11 (-2390.10)

?

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

Я понимаю что это OOS, но чему научишь - так и будет себя вести.

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

 

Народ, необходима квалифицированная консультация по SOM.

Конкретно интересуют способы контроля распределения количества паттернов по кластерам.

 

Добрый день!

У меня не было нормального доступа к Интернету неделю. Пишу с опозданием.

Прочитал здесь: http://www.eicstes.org/EICSTES_PDF/PAPERS/The%20Self-Organizing%20Map%20(Kohonen).pdf

Проблема оптимального распределения входных векторов по ячейкам СКП, во-первых, зависит от адекватного обучения СКП. Кохонен пишет, что количество итераций обучения должно быть как минимум в 500 раз больше количества нейронов в сети! То есть, если обучаем сеть размером 100 нейронов (10 на 10), то число итераций должно быть хотя бы 50 000. Честно говоря, обучение такой сети на обычном ПК, при условии, что входной вектор очень большой размерности (скажем, 40) - займет несколько суток. Эвристика, предложенная Кохоненом, заключается в том, что должно быть не меньше 10 000 итераций обучения. Тоже много, ИМХО, но как вариант можно сократить размер входного вектора и посмотреть, что получится.

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

Третий момент, радиус обучения нейронов, как предлагается в статье, должен изначально быть очень большим (можно его делать больше половины диаметра СКП), чтобы установить базовый "топологический порядок" на СКП, а затем радиус уменьшается обратно пропорционально количеству итераций вплоть до 0, то есть, когда просходит коррекция весов только одного нейрона. При этом изначальный топологический порядок, установленный в начале обучения не нарушается, но в локальных областях карты он уточняется. См. там же...

Еще один момент, связанный с обучением, это шаг обучения, который также должен вначале быть большим (около 1), затем уменьшаться обратнопропорционально количеству итераций, при чем функция зависимости шага обучения от количества пройденных итераций может быть как линейной так и нелинейной. В конце обучения шаг долгое время остается очень маленьким, меньше 0,01, для тонкой подстройки СКП.

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

 

На основании чего вы полагаете, что SOM вообще возможен в автотрейдинге?

Для того, чтобы сфокусировать свое зрение на чем-то, надо знать на чем.

На исторических данных (а именно на них вы хотите, чтобы сеть обучилась) почти бесконечное множество возможных вариантов движения цены. Как сеть должна понять сама, что надо делать и на что обратить внимание?

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

Запустить SOM можно лишь, если сеть знает, на что она нацелена, только тогда она сможет сфокусировать свое зрение. Это может быть определение номера автомобиля или поиск нужного слова/словосочетания автоматическим переводчиком. Но, так или иначе, прежде вам придется научить сеть различать цифры или слова и только после этого пускать сеть в свободное плавание.

Что вы хотите/можете предложить сети на потоке исторических данных? И на что вы рассчитываете?

Причина обращения: