Нейросети.

Тема в разделе "Нейросети", создана пользователем лёксус, 2 авг 2009.

  1. Loknar

    Loknar Активный пользователь

    ребят, а какая у вас глобальная цель с сетками ?
     
  2. maloyz

    maloyz Новичок


    Как и у любого трейдера- стабильный доход. :tatice_06: С помощью НС попытаться спрогнозировать развитие движения рынка.
     
  3. Loknar

    Loknar Активный пользователь


    отлично, тогда доп. вопросы :

    1. что значит "стабильный доход" ? как его определить ? если ты 2 недели получал по 10$ в час это стабильный ? а если потом перестал получать ? или может "натренировать сетку чтоб в течение следующего месяца заработать 1 миллион долларов " это "стабильный доход" ? можешь "стабильный доход" описать в конкретике ?
    2. есть примеры того, что сетки позволяют добиться твоей конкретной цели ?
     
  4. лёксус

    лёксус Активный пользователь

    Стабильный доход - понятие изначально усредненное, поскольку автоматически предполагает наличие вполне определенного отрезка времени (другими словами в "рассматриваемый период времени"). Таким образом можно смело говорить, что, например, за прошедший год (день, месяц, столетие...) доход составил 1 рубль в 15 минут, или 4 рубля в час или 96 рублей в сутки ... и т.д. Хороший пример - заработная плата. Человек, работающий на предприятии и получающий, например, 20 тыс. в месяц имеет право утверждать, что он имеет стабильный доход в размере 20 тыс. в месяц. Никому и в голову не придет оспаривать. А ведь фактически, человек не получает по 30 рублей каждый час, или по 50 копеек в каждую минуту или 0.85 копеек в каждую секунду. Он получает 20 тыс. один раз в месяц. А остальные 29 (30) дней в этом месяце он ничего не получает. Однако, такая ситуация на понятие "стабильности дохода" никоим образом не влияет. Также вполне правомерно использовать понятие стабильного дохода и в будущем времени. Например, хотелось бы получать стабильный доход в размере не менее 10-ти кратного по отношению к потребительской корзине. Как бы неопределенно эта фраза не звучала, но понятие стабильного дохода тут присутствует по полной программе.
     
  5. лёксус

    лёксус Активный пользователь

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

    На текущий момент есть только один вопрос - почему же всё-таки нейро сеть. А только потому, что это мощный инструмент с широчайшими возможностями. Большинство задач, которые сейчас пытаются решать нейросетями на самом деле вполне могут быть решены и обычными формальными методами. Но если задача довольно сложная, то формализация может потребовать колоссального объёма работы (надо ведь описать все составляющие задачи). А с нейро сетями - данные выгрузил, сеть обучил и в дамках. Тут, конечно, возникают несколько другие проблемы, но все равно, трудоемкости несравнимые.
     
  6. Ice

    Ice Профи форума

    Советник - скальпер на основе нейросетей, думаю будет интересно
     

    Вложения:

    • nnea.rar
      Размер файла:
      1,2 МБ
      Просмотров:
      322
  7. Ilya_Chel

    Ilya_Chel Новичок

    Нда... Попробуйте ввести в интерполируемую функцию шумовую компоненту - уверен, результаты вас разочаруют))
    Я этой темой увлекся с полгода назад, начинал тоже с простых функций, только одно отличие - я строил собственную нейронку, писал алгоритмы обучения и прямого прогона сам.
    Итог: всякие разные гармоники и функция вейерштрасса интерполируются нормально. С введением 10% шумовой компоненты - появляются проблемы))
    На реальных рядах (тестовый сервер алора) ситуация еще хуже)) Тогда удалось добиться результата нейросетевого предсказания в 2 раза хуже, чем результат наивного предсказание. Единственное, что радует - что все-таки в 2 раза, а не в 10 ))
    На мой взгляд, нейронку использовать выгодно только на больших перепадах интерполируемой функции (грубо: на перепадах не менее 15-20%) и на детерминированных рядах с выраженными периодическими или фрактальными составляющими (пусть даже нерегулярными). Чувствительность к шумам снижается при росте сети (я обучал 50-тислойную сеть примерно с 25 тыс нейронов). Использовать малые сети на зашумленных рядах с предварительным шумовым фильтром - плохая идея))
    Случайно наткнулся на ветки, что-то вспомнилось)) Надо возродить работу)) Желающие поделится опытом - пишите в тему
     
  8. yu-sha

    yu-sha Активный пользователь

    <b>Ilya_Chel</b>,
    Много вопросов вызывает Ваш подход к использованию НС в торговле
    - зачем экстраполировать функцию цены, если для торговли нужны сигналы ?
    - что делала сеть 50 слоев / 25 000 нейронов? пыталась "сфотографировать" всю историю ?
    - под какую стратегию "затачивалась" НС ?
    - как это все должно было работать совместно ?
     
  9. $i-$i

    $i-$i Новичок

     
  10. Fund

    Fund Новичок

    Всем доброго времени суток!

    Кто нибудь может помочь дистрибутивом Neuro Shell Day Trader пятой версии? С четверкой сломал голову. Пытаюсь организовать поставку котировок из QUIK нехватает NSTFEED.DLL. Если у кого есть, можете поделиться счастьем?
     
  11. EvgeTrofi

    EvgeTrofi Новичок

    Скажите пожалуйста. Для входов нужно использовать нормализацию (приведение к числам от -1 до + 1). Затем, на стадии обучения, после вычисления нейрона, необходимо сравнить полученное значение с идеальным фактическим значением. Правильно?

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

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

    Я попытался описать работу нейрона на языке Visual Basic так:
    <!--c1--><div class='codetop'>Код</div><div class='codemain'><!--ec1-->Function Neuron(INPUTS() As Double, VALUES() As Double, Optional Alpha As Double = 5) As Double
    &nbsp;&nbsp;&nbsp;&nbsp;'Функция-нейрон, возвращающая значение нейрона (выход)
    &nbsp;&nbsp;&nbsp;&nbsp;'INPUTS() - массив входов (от -1 до +1) - необходима нормализация
    &nbsp;&nbsp;&nbsp;&nbsp;'VALUES() - массив весов (от -1 до 1)
    &nbsp;&nbsp;&nbsp;&nbsp;'Alpha - альфа-переменная для активационной функции, принимает значения от 0 до бесконечности (сигмоид)
    &nbsp;&nbsp;&nbsp;&nbsp;'при Alpha = 0 - нейрон будет мёртвым (всегда возвращать 0)
    &nbsp;&nbsp;&nbsp;&nbsp;'при Alpha бошого размера - нейрон будет возвращать либо -1, либо +1
    &nbsp;&nbsp;&nbsp;&nbsp;Dim i As Long, s As Double, e As Double
    &nbsp;&nbsp;&nbsp;&nbsp;If UBound(INPUTS) <> UBound(VALUES) Then
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Debug.Print "Ошибка! В нейроне имеются различные размеры входных параметров и их весов!"
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function
    &nbsp;&nbsp;&nbsp;&nbsp;End If
    &nbsp;&nbsp;&nbsp;&nbsp;For i = 0 To UBound(INPUTS) - 1
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s = s + INPUTS(i) * VALUES(i)
    &nbsp;&nbsp;&nbsp;&nbsp;Next i
    &nbsp;&nbsp;&nbsp;&nbsp;e = Exp(1)
    &nbsp;&nbsp;&nbsp;&nbsp;Neuron = 2 / (1 + e ^ (-Alpha * s)) - 1 'активационная функция возвращает значения от -1 до 1
    End Function<!--c2--></div><!--ec2-->
     
  12. EvgeTrofi

    EvgeTrofi Новичок

    Лови
     

    Вложения:

  13. yu-sha

    yu-sha Активный пользователь

    "Сравнивать" - нечеткое понятие. Нужно определиться с целевой функцией. Часто для обучения используют минимизацию MSE=1/2*(y-y')^2, где у-полученное значение, а y'-требуемое.
    Естественно, причем следует принимать во внимание диапазон значений выходного нейрона. Если это tanh(x), то выходы могут принимать значения (-1;+1), если сигмоид, то (0;+1), и т.д. Соответственно y' нужно приводить к этому диапазону, или (реже) значение выходного нейрона "денормализировать" до диапазона значений y'
    Обратной операцией от "нормализации". Можно вставить доп.нейрон, можно непосредственно в алгоритме
    Alpha - это что такое?
     
  14. sledge

    sledge Новичок

    что-то Лёксус куда-то подевался... Каких-то результатов все-таки добились?

    зы а NS2 как я понял бесплатный? крякать его вроде не приходится...
     
  15. pocketmike

    pocketmike Активный пользователь

    И Вам привет.

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

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

    С уважением
     
  16. pocketmike

    pocketmike Активный пользователь

    ОК.
    Не в плане переубеждения (ибо это никому не нужно), а для возможно лучшего понимания...

    <i>С нейрошелом (NSDT) я боролся несколко месяцев и пришел к выводу, что программирование может дать результаты лучше (теоретически, не пробывал еще).
    </i>

    1. Думаю, что несколько месяцев - это не показатель. И не только для занятий нейрошеллом, но и вообще для столь сложной темы.
    2. С самописным программированием соглашусь конечно. Наверняка серьезные конторы, играющие на форексе, используют что-то другое, гораздо более продвинутое и скорее всего далеко не только нейросети, а некий комплекс.
    3.Однако, у нейрошелла есть большое преимущество, и не одно. Она доступна а варезе, она напичкана множеством индикаторов, к ней есть куча аддонов (те же индикаторы и доп. сети и.пр.). Как я понимаю, это приличный конструктор стратегий, плюс возможность использования нейросетей. Плюс к этому, есть интерфейс в торговый терминал, а это важно, эта программа лидер рынка (я думаю). Плюс мощные алгоритмы оптимизации...
    4. Плюс, то самое юзабилити. О нем можно долго говорить и спорить, но оно отражает потенциальную аудиторию этой программы, и не может удовлетворить всю аудиторию, т.е. большинство НЕ гениальных программеров, не стоящих у "кормушки" форекса и прочих НЕ, имеют возможность (пусть теоретическую) зарабатывать. И не только в заработке тут дело. Возможно, что с несколько большим успехом, чем без этой программы. И цена этому - то самое юзабилити, когда все "потроха" спрятаны.
    5. Лично я пока знаю только одного человека, который более-менее внятно смог объяснить, чем его не устраивает нейрошелл и в чем ее ограничения. И даже с учетом нежелания делиться "секретами и наработками" (что вполне справедливо), т.е. без особых подробностей, это объяснение понятно.
    6. п.5. Это я к чему: были ли Вами (тобой - не знаю пока, как лучше) получены некоторые положительные (обнадеживающие) результаты при использование программы? Хотя бы не на реале, а на демке? Если ответ "да", то это одно дело и надо смотреть, все ли "выжато" из программы и убедиться в том, что на дальнейшее ее использование накладываются непреодолимые ограничения, а не недостаток знаний и понимания. Если же честный ответ "нет", то... понятно, что можно на это сказать.
    7. Естественно, я не питаю иллюзий относительно "волшебности" нейрошелла, но на данном этапе (в форекс "заглядываю" года 3, а нейрошелл пытаюсь покорить месяцев 10 и увы, весьма нерегулярно) я не вижу альтернативы. По причинам, в том числе, что изложены выше.

    <i>В NSDT мне не понравились цели предсказания, а число баров - тупо увеличение периода для предсказываемого индикатора (В Insert в первой строчке выберите предишен сигнал или что то такое, и увидите, что сеть пытается предсказать и как это у нее получается).
    </i>

    1. Вот здесь уже почва зыбкая начинается. Как понять "не понравились"? Принципиально, цели-то могут быть любыми, а не только теми, что по умолчанию подтыкаются, Любыми, естественно, в пределах возможностей программы, темы для прогнозирования и собственного понимания. Нам же не надо на основе данных о движении валютной пары предсказывать погоду... , ну в Бразилии например.
    2. Число баров..., а чем этот-то параметр не угодил? Понятно же, что чем дальше заглядывать, тем хуже прогноз. Про "...Insert в первой строчке..." в курсе конечно и думаю, что "кривое" предсказание говорит не столько о кривизне программы, сколько о "кривизне" входов, настроек, понимания сути и работы с программой.

    <i>Еще там не хватает минимального размера движения для цены, а добиться подобного эффекта с помощью настроек мне не удалось :ac: , еще нельзя выбирать историю для обучения кусками.
    </i>

    1. По моему скромному разумению, надо объяснить, что под этим подразумевается и каковы причины иметь эту возможность. В моем понимании (пока) этот вопрос можно решить штатными средствами. В крайнем случае, программер может наваять для себя индикатор.
    2. Историю для обучения можно выбирать легко как настройками на чарте, так и подгрузкой ксв-файлов с нужными периодами. Да не просто легко, а элементарно. А клотовский интерфейс позволяет даже эмулировать подачу данных в реальном, замедленном-ускореном темпе.

    <i>Вообще для сети важны входные данные, а здесь с их предобработкой как то не очень (не считая индикаторов, которые повторяют друг друга).
    :ab: так что в соседней ветке мне делать нечего.
    </i>

    1. Кто же будет с этим спорить? Мусор на входе - мусор на выходе... бла-бла-бла.
    2. Какие "первичные" входы могут быть еще, кроме О-H-L-C, именно первичные?
    3. Что понимается под словом "предобработка" и что с ней не так в нейрошелле?
    4. Что есть "индикатор" в Вашем понимании?
    5. Получается, что все, как ненормальные, ваяют свои системы на повторяющихся индикаторах, да?
    6. Конечно, присутствовать или НЕ в соседней ветке - это дело личное.

    Касательно индикаторов отдельно:
    1. В моем понимании, индикатор представляет собой "интерфейс" между графиком валютной пары и человеком. Не более, но и не менее.
    2. Индикатор удобен для применения в программе и самой программе (криво сказано конечно, но надеюсь, что понятно)
    3. Индикатор частично сглаживает "шум" и "дребезг"
    4. Имеет др. достоинства, которых я либо не знаю пока, либо много текста набивать надо
    5. Цена всех удобств - отставание индикатора от реальных событий
    6. Возможно, что поэтому они все и "повторяются". т.к. их разработчики пытаются это отставание и дребезг уменьшить. Например, можно сравнить MA и JMA
    7. Что в этом плохого? А если мы пытаемся построить систему на кроссоверах, то вообще, берем два одинаковых индикатора но с немного разными периодами (как вариант)

    Пока не будет понятно, что можно взять в качестве первичных данных, кроме O-H-L-C, ничего другого и не будет, имхо. Тому пример: как было в "старой" нерке 800+ индикаторов, так и в новой осталось. Но вард считает, я думаю, что и с этим набором можно уже начать работать.

    С уважением, см. подпись
     
  17. Rulezzz

    Rulezzz Активный пользователь

    в нейросети 800 индикаторов встроено?как все это можно впихнуть?
     
  18. Чарикар

    Чарикар Активный пользователь

    Расставлю акценты... )))

    А так - ничего, нормально, весьма наукообразно. Для дипломной работы предисловие - в самый раз. ))
    Особенно первый пунктик понравился... Если с NS не получилось (просто, как в супермаркете), то что же дальше?
    О чем дальше можно рассуждать? О каких, в душу, вейвлетах? ))
     
  19. pocketmike

    pocketmike Активный пользователь

    Привет, рулез.

    Они туда не встроены и не впиханы, конечно. Ни в одной сети, независимо от архитектуры, нет ни одного индикатора. Он там, внутре просто и не нужен. Цифра 800+ говорит о том, что разработчики изрядно постарались, создавая свой пакет. А со всеми аддонами буддет наверное 1000 - 1200+. ИМХО, это говорит о том, в том числе, что программу знающие тему люди делали, а не просто на модной теме нейросетей прокатиться захотели. Гораздо хуже было бы, если как у трейдингсолюшена кажись, 50+ и усе на этом. Или меньше даже. Возможность выбора - это хорошо. (Похоже на ситуацию с майкрософтовским вордом: все ругают, а реально и 1-й десятой возможностей не знают и не используют).
    Солюшен не хаю, даже не думаю. Однако, пробовал воткнуть его - чего-то замороченный он, на мой взгляд. Не стал я с ним ковыряться. Да и в терминал он ходить не умеет или я не знаю как.

    С уважением
     
  20. pocketmike

    pocketmike Активный пользователь

    ТО Федор.

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

    С уважением
     

Поделиться этой страницей