Wykorzystanie sieci neuronowej do obrotu giełdowego


17

Zanurkowałem w dziedzinie sieci neuronowych i zafascynowałem się nimi.

W końcu opracowałem platformę do testowania systemów handlowych na giełdach, a teraz zamierzam wdrożyć w niej moją pierwszą sieć neuronową. Bardzo prosty i prymitywny, nieprzeznaczony do prawdziwego handlu, tylko na początek.

Chcę tylko wiedzieć, czy moje podejście jest dobre.

A jeśli zauważysz, że coś mi brakuje (lub coś się mylę) lub masz pomysł, co może pomóc początkującemu w dziedzinie sieci neuronowych w handlu rynkowym, to by mnie bardzo ucieszyło :)


Mam 40 danych wejściowych, wartości rynkowe z giełdy (S&P e-mini, ale to nie jest ważne).

Dla tych 40 wejść znam 2 liczby.

  • Ile pieniędzy miałbym zarobić lub stracić przy zamówieniu zakupu
  • Ile pieniędzy miałbym zarobić lub stracić przy zamówieniu sprzedaży

Ze względu na to, jak działają giełdy, obie liczby mogą faktycznie być ujemne / dodatnie, co wskazuje, że mogę stracić / zarobić pieniądze na zakup i sprzedaż (dzieje się tak, ponieważ transakcja może zawierać zlecenia „ograniczające straty” lub „celujące”, takie jak STOP, LIMIT itp., które zachowują się inaczej).

Ale jeśli tak się stanie, oznacza to, że nie powinienem w ogóle składać zamówienia, nawet jeśli oba zamówienia kupna i sprzedaży dają liczby dodatnie.

Wyobrażam sobie, że najlepszą dostępną funkcją aktywacji jest ... sigmoid, ale z zakresem od -1 do 1 (znalazłem, że w Internecie nazywa się to wiele nazw ... bipolarna sigmoid, tanh, styczna coś ... Nie jestem głębokim matematykiem).

Dzięki uczeniu się wstecznej propagacji uczę sieć, że dla 40 wejść jest 1 wyjście i to wyjście jest jedną z tych liczb.

  • -1, co oznacza, że ​​zlecenie sprzedaży będzie zarabiać, zakup straci pieniądze
  • +1, co oznacza, że ​​kupno zarobi pieniądze, a sprzedaż straci pieniądze
  • 0, co oznacza, że ​​zarówno kupowanie, jak i sprzedaż będą sprzedawać / tracić pieniądze, najlepiej unikać handlu

Wyobrażam sobie, że po nauce wyjście sieciowe będzie zawsze miało wartość zbliżoną do -1, 1 lub 0 i to ode mnie zależy, gdzie ustawię próg kupna lub sprzedaży.

Czy to właściwy sposób korzystania z sieci neuronowej?

Wszędzie w Internecie, wyniki uczenia się ludzi dają maszynie uczenia się propagacji wstecznej są przyszłymi wartościami wykresu rynkowego, a nie oczekiwaną wydajnością pieniężną różnych pozycji handlowych (kup lub sprzedaj). Uważam to za złe podejście, ponieważ nie interesują mnie przyszłe wartości wykresów, ale pieniądze, które chcę zarobić.

Edycja: Mam zamiar zbudować sieć neuronową do automatycznego handlu, a nie do wspomagania decyzji.


1
Biorąc pod uwagę, że Geoff Hinton nie jest multibillionarem, powiedziałbym, że nie zadziała tak dobrze, jak myślisz. Odkładając na bok, możesz użyć istniejącej architektury, która mapuje na przyszłe wartości i zasila ją dodatkową warstwą, która dokonuje klasyfikacji zgodnie z twoją propozycją. Myślę, że idea istniejących sieci polega na tym, że w oparciu o ceny wytrawny handlowiec może podjąć własną decyzję, czy np. Krótka sprzedaż może być korzystna w danym stanie rynku.
jonsca

Rozumiem, że ludzie chcą używać sieci neuronowych jako pomocników w podejmowaniu decyzji. Zredaguję post, ponieważ to naprawdę ważne wyjaśnienie, że chcę pójść dalej i używać sieci neuronowych również do automatycznego handlu.
Mirek

Odpowiedzi:


27

Podejście to ma poważne wady.

90%10%

6%5%60%. Inwestycja o ujemnej stopie zwrotu może być nadal cenna, jeśli jest silnie negatywnie skorelowana z ryzykowną inwestycją o wysokiej stopie zwrotu. Tak więc stopa zwrotu jest niewystarczająca do oceny inwestycji.

Po trzecie, powinieneś zdawać sobie sprawę, że konkurujesz z innymi ludźmi, którzy również mają dostęp do sieci neuronowych. Istnieje wiele programów komercyjnych skierowanych do traderów działających w oparciu o sieci neuronowe. (Są one tworzone przez osoby, dla których bardziej opłacalne jest sprzedawanie oprogramowania zdezorientowanym traderom niż używanie własnych systemów.) Istnieje wiele zastrzeżonych systemów, z których niektóre mogą obejmować sieci neuronowe. Aby znaleźć wartość, którą przeoczają, musisz mieć przewagę, o której nie wspomniałeś.

Jestem wielkim fanem sieci neuronowych, ale myślę, że typowi użytkownicy sieci neuronowych na giełdzie nie rozumieją podstaw i nie palą pieniędzy.


Doskonale zdaję sobie sprawę z zarządzania ryzykiem, myślałem, że nie jestem świadomy tego, jak zarządzanie ryzykiem poradziłoby sobie z tym prymitywnym zadaniem, ale nie spodziewałem się cudów. I tak, naprawdę chcę dobrze znać sieci neuronowe, dlatego sam je buduję. To jest zaleta, której szukam.
Mirek

16
These are made by people who find it more profitable to sell software to confused day traders than to use their own systemsTo samo w sobie byłoby warte pochwały.
jonsca

1

Pojedynczy człowiek może tego nigdy nie widzieć, ale nadal chciałbym wnieść swój wkład jako ktoś, kto był zaangażowany zarówno w finanse, jak i informatykę.

Nigdy nie powiem, że sieć neuronowa nie odniesie sukcesu w handlu akcjami, ale trzeba pomyśleć o różnicach między tym, jak człowiek handluje akcjami, a tym, jak sieć neuronowa będzie handlować akcjami. Przeciętny przedsiębiorca podświadomie bierze pod uwagę setki czynników przy podejmowaniu prostej decyzji kupna, wstrzymania lub sprzedaży.

  • Ostatnie wiadomości
  • Ostatnie zarobki / finanse
  • Wskaźniki ekonomiczne (stopy procentowe, przestępstwa kredytowe, polityka)
  • Konkurenci branżowi

I tak dalej, i jestem pewien, że ponad połowa osób handlujących akcjami nie przekroczyła standardów. Sieć neuronowa naprawdę będzie miała trudności z podjęciem lepszej decyzji niż człowiek z powodu braku danych wejściowych. Patrzenie na czyjąś twarz i powiedzenie „Och, to Bobby John” jest o wiele łatwiejsze niż podejmowanie decyzji inwestycyjnych i niektóre sieci mają trudności z wybraniem twarzy. Możliwe, że 40+ 150 kujonów z IQ z Cal Tech w Renaissance Technology lub DE Shaw & Co wymyśliło, jak sprawić, by sieci neuronowe handlowały akcjami, ale nie marnowałbym czasu. Trzymaj się programów, które wybiorą podstawowe trendy lub zbędne dane finansowe EDGAR.


-1

zdaję sobie sprawę, że to stary wątek, ale na wypadek, gdyby ktoś się na nim natknął, OP musiał zrobić, aby zmniejszyć swoje pożądane pole do pola 0 do 1. tj. po prostu remap -1 = 0,0, 0 = 0,5, a 1 = 1. Następnie możesz po prostu użyć standardowej logistycznej funkcji aktywacji sigmoid.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.