Programowanie w Tradingu / rynkach kapitałowych

Programowanie w Tradingu / rynkach kapitałowych
LJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Cześć wszystkim,

Chciałbym się dowiedzieć, jaki język programowania będzie najlepszy do pisania prostych algorytmów do tradingu. Interesuję się rynkami i tradingiem, ale nie mam dużej wiedzy z zakresu programowania.

Chciałbym zacząć pisać proste algorytmy, które kupowałyby/sprzedawały dane aktywo, gdy spełnione zostaną określone warunki (strategie). Zależy mi również na możliwości wizualizacji strategii, czyli wygranych, strat, procentu skuteczności, maksymalnej straty itd. Chciałbym zacząć od tego, a następnie rozwinąć projekt w bardziej zautomatyzowany system, w którym bot sam kupowałby i sprzedawał aktywa na giełdzie, zarządzając ryzykiem.

Stąd moje pytanie – czego najlepiej się uczyć w tym kierunku?

Z wstępnego researchu wynika, że najlepszym wyborem jest Python. Jeśli tak, to czy sam Python wystarczy, czy warto nauczyć się jeszcze czegoś dodatkowego?

Ponadto chciałbym się dowiedzieć, czy ze stackiem technologicznym wymaganym do realizacji takich rzeczy, o których wspomniałem, istnieje możliwość znalezienia pracy? W jakim kierunku mogłaby ona pójść? (chodzi mi o branze, specjalizacje)

Na ten moment nie uczylbym się programowania z myślą o zmianie pracy – traktuję to raczej jako hobby związane z rynkami kapitałowymi. Jednak w przyszłości, kto wie? Jeśli dałoby się połączyć pasję z pracą, to byłoby świetnie.

obscurity
  • Rejestracja: dni
  • Ostatnio: dni
0
ljuuuk napisał(a):

Z wstępnego researchu wynika, że najlepszym wyborem jest Python. Jeśli tak, to czy sam Python wystarczy, czy warto nauczyć się jeszcze czegoś dodatkowego?

Jak najbardziej Python. Te strategie miałyby być oparte na AI? Jeśli tak to tym bardziej python.

Ponadto chciałbym się dowiedzieć, czy ze stackiem technologicznym wymaganym do realizacji takich rzeczy, o których wspomniałem, istnieje możliwość znalezienia pracy? W jakim kierunku mogłaby ona pójść? (chodzi mi o branze, specjalizacje)

Nie. Python jest obecnie najpopularniejszym językiem programowania a co za tym idzie jest przesyt kandydatów.

ljuuuk napisał(a):

Na ten moment nie uczylbym się programowania z myślą o zmianie pracy – traktuję to raczej jako hobby związane z rynkami kapitałowymi. Jednak w przyszłości, kto wie? Jeśli dałoby się połączyć pasję z pracą, to byłoby świetnie.

W takim razie w ogóle się nie przejmuj, nie musisz mieć pracy w pierwszym języku jaki poznasz (choć tak pracuje większość javowców). Im więcej liźniesz języków przed pierwszą pracą tym lepiej, natomiast obecnie w żadnym języku nie da się za bardzo znaleźć pracy jako nowicjusz więc nie musisz się spieszyć.

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 114
1

Dużo zależy o tego, co będziesz dokładnie chciał robić i jakie masz pomysły :)

Generalnie do większości implementowanych strategii algorytmicznych styknie python.

Jak zależy Ci na jakichś bardzo szybkich rozwiązaniach to się schodzi do języków bliżej systemu typu c++ czy rust a już idąc dalej, wykorzystuje się bufory kart sieciowych albo FPGA. Podejrzewam, że to nie twój przypadek.

W takich projektach warto zacząć od tego co jest najprostsze (np. python) albo co się najlepiej zna. Nie wiem jak dokładnie byś chciał realizować swoje pomysły, czy przez api domów maklerskich czy może bezpośrednie wpięcia do giełd (np. crypto) ale zwróć uwagę, że zazwyczaj takie platformy udostępniają gdzieś gotowe przykładowe implementacje do swoich platform które zazwyczaj działają i z których można od razu skorzystać. Odchodzi Ci cała warstwa implementowania połączeń czy przesyłanych komunikatów

Mbappe_koksik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

Cześć pracowałem w frmie tradingowej i odszedłem po niecałym roku pracy. Nie wiem czy sobie zdajesz z tego sprawę, że tam każda sekunda się liczy i operuje się na hajsie. Bycie programistą przy takich systemach było tak dla mnie nerwowe że ja piernicze, prawie osiwiałem

Dla porównania pracowałem w firmach typu Allego (sklep) i był w opór chill w porównaniu do tego.

To tylko takie ostrzeżenie, ja bym w to nie wszedł ze względu że programuje się przepływ hajsu, transakcje, jest to w bardzo skomplikowane, w dodatku robi się pod presją czasu w sprintach (jak to programiści), często są błędy, bo każdemu się zdarzają, to jest taka pompa i ciśnienie bo.... to dotyczy pieniędzy

Zdarzało się że miałem telefony o 2 w nocy bo coś na giełdzie nie działało, także odradzam tą robotę.

Ciężko mi opisać ten stres, ale w tejże pracy pierwszy raz nabawiłem się "potnicy" rąk, zaczynało to brzydko wyglądać :) Po zwolnieniu z tamtej pracy jak ręką odjął.

LJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Dziekia za odpowiedz. @MateInf raczej proste rzeczy (na pewno na poczatku). Chcialbym pobawic sie z programowaniem jezeli chodzi o automatyczne zawieranie transakcji. Np.zrobic takiego bota, co bedzie mi skanowal wszystkie krypto z market capem powyzej 100mln w ktorych nastapi pewien warunek (np. duza likwidacja na 4 godzinym interwale) Gdy bot zbierze takie krypto w czasie rzeczywistym, to wtedy beda kolejne wytyczne do zawarcia transakcji. Na poczatek bez zadnego serwera, tylko jak komp wlaczony 😄 Oczywiscie zanim takie cos mialoby miejsce - chcialbym sobie testowac strategie na historycznych danych. Czy do testowania strategii (win ratio, max drawdown, symulacja portfela) wystarczy sam python czy cos jeszcze?

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 114
0
ljuuuk napisał(a):

Dziekia za odpowiedz. @MateInf raczej proste rzeczy (na pewno na poczatku). Chcialbym pobawic sie z programowaniem jezeli chodzi o automatyczne zawieranie transakcji. Np.zrobic takiego bota, co bedzie mi skanowal wszystkie krypto z market capem powyzej 100mln w ktorych nastapi pewien warunek (np. duza likwidacja na 4 godzinym interwale) Gdy bot zbierze takie krypto w czasie rzeczywistym, to wtedy beda kolejne wytyczne do zawarcia transakcji. Na poczatek bez zadnego serwera, tylko jak komp wlaczony 😄 Oczywiscie zanim takie cos mialoby miejsce - chcialbym sobie testowac strategie na historycznych danych. Czy do testowania strategii (win ratio, max drawdown, symulacja portfela) wystarczy sam python czy cos jeszcze?

Python to najmniejszy problem ale wraz z bibliotekami dostarcza odpowiednich narzędzi :P

Dobry pomysł, backtesty, dane historyczne różnej postaci... . Ogólnie jest sporo problemów do ogarnięcia które trzeba sensownie zaimplementować

  1. monitorowanie pozycji w orderbookach
  2. składanie zleceń z odpowiednim poziomem cenowym i wolumenem
  3. rebalansowanie portfela
  4. hedging

a wszystko powyższe zależy od konkretnej strategii. Oczywiście, jak pomysły będą oparte na kup i zapomnij to robi się prosto. Natomiast jakbyś chciał szukać arbitrażu albo być mini market makerem to się wszystko lawinono komplikuje ☺️

Powodzenia, trochę się w to bawię zawodowo i amatorsko - bardzo fajna dziedzina ale o ile ktoś nie chce się zakopać w tym technicznie i analitycznie to do realizacji pomysłów opartych o algoboty zazwyczaj nie dochodzi - no może poza "kup i zapomnij" :)

WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5226
0

e, pany, ale on nie chce robić konkurencji dla Jane Street, a po prostu sobie potradować programowo

@ljuuuk

Patrz, tu masz ładnie w CSV do pobrania cene Microsoftu kazdego dnia z ostatnich 10 lat

https://www.nasdaq.com/market-activity/stocks/msft/historical?page=1&rows_per_page=10&timeline=y10

Pobierz sobie te csvke i spróbuj chociaz na samych tych statycznych danych podziałać coś z tym pythonem czy czymś tam.

LJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Raczej chodzi mi o proste transakcje w jedna strone - bazujace na danych kryteriach nizeli hedgowanie. Jakie biblioteki warto znac do backtestu i takiego zastosowania jezeli chodzi o pisanie bota?

@WeiXiao dokladnie haha 😄 po prostu chcialbym zaprogramowac pomysly jakie mam jezeli chodzi strategie, z mozliwoscia zobaczenia jaka jest skutecznosc. No a pozniej zautomatyzowania tego

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 114
0
WeiXiao napisał(a):

e, pany, ale on nie chce robić konkurencji dla Jane Street, a po prostu sobie potradować programowo

@ljuuuk

Patrz, tu masz ładnie w CSV do pobrania cene Microsoftu kazdego dnia z ostatnich 10 lat

https://www.nasdaq.com/market-activity/stocks/msft/historical?page=1&rows_per_page=10&timeline=y10

Pobierz sobie te csvke i spróbuj chociaz na samych tych statycznych danych podziałać coś z tym pythonem czy czymś tam.

Jak już atakować takie problemy to z grubej rury 😎

@ljuuuk mogę poradzić, jak już chcemy to zacząć robić solidnie to utworzyć sobie orderbook giełdowy, wymodelować trochę jego dynamikę i poimplementować sobie strategie które strzelają do takiego orderbooka, potem można próbować przepiąć swojego bota na orderbook giełdy.

Jeśli chodzi o backtesty to w pythonie jest coś takiego jak backtrader, podobno używalne. Jak chcesz się skupiać tylko na kup/sprzedaj krypto to napisanie backtestu od ręki nie będzie skomplikowane. Natomiast koleja rzecz do polecenia - są całe platformy do robienia backtestów i researchu na danych giełdowych, subskrypcje rzędu kilkadziesiąt dolarów miesięcznie a odchodzi Ci ogrom ręcznego klepania a zostanie główna część czyli komunikacja z giełdą, a te są jak wyżej pisałem, często udostępniane przez platformy.

A no i oczywiście chatGPT zrobi większość za Ciebie :)

P5
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 954
0
MateInf napisał(a):

wykorzystuje się bufory kart sieciowych albo FPGA.

A co dokładnie się robi z buforami kart sieciowych bo aż mnie zaciekawiłeś.

MateInf napisał(a):

Natomiast jakbyś chciał szukać arbitrażu albo być mini market makerem to się wszystko lawinono komplikuje ☺️

Tak, na pewno OPa stać na colo w dc z giełdami i topowym radio linkiem miedzy nimi, no i do tego FPGA i ASIC bo inaczej żadnego arbitrażu nie zrobisz.

@ljuuuk Python jest fajny natomiast do analizy danych i to mogło by się przełożyć jakoś na konkretne umiejętności w twojej przyszłej pracy. Natomiast w firmach, które się trejdowaniem zajmują to python zwykle służy do tooli czy pocu dla strategi i ewentualnie do algo do grania na giełdach krypto bo te siedzą w chmurze więc overhead i tak już jest duży i tam się nikt na ns nie ściga. Także skoro skłaniasz się ku pythonowi i crypto to połączenie jak najbardziej dobre i jak masz jakieś skłonności by to zrobić w miarę low latency ("w miare" czyli nie tak jak bajkopisarze tutaj) to poszukaj w jakiej chmurze twoja giełda siedzi i w jakim regionie i puszczaj algo sobie z tej VMki. Oczywiście nie bedziesz tak szybki jak MM bo ci uruchamiają setki/tysiące vmek i testują z której mają najniższe opóźnienie do giełdy, ale dalej twój algorytm będzie widocznie szybszy niż puszczany z twojego laptopa z domu.

Mbappe_koksik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

Jak ktoś poważnie o tym myśli to używa się C++
Lub biblioteki QuickFixJ. Pythona się nie używa
w tradingu bo jest wolny.

LJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

@MateInf: Jest taka opcja uzywajac tego backtradera zebym po napisaniu mojej strategii i testowaniu na historycznych danych, widzial w jakim miejscu faktycznie bot otwieral longi albo shorty - i gdzie zamykal te pozycje? Chodzi mi o zwizualizowanie mojej strategii, a nie tylko liczby (win ratio, sharp ratio, max drawndown etc.) a raczej czy faktycznie bot kupuje/sprzedaje i zamyka pozycje w tych miejscach jakie mam w zalozeniu.

//

Jezeli chodzi o "szybkosc" na jakiej mi zalezy - to skanowanie kryptowalut z market capem powyzej 100 mln - co minute, moze dwie. Jezeli znajdzie jakies krypto ktore beda spelnialy moje warunki (zalozmy 20 krypto) > wtedy sprawdza kolejne warunki na nich co minute. To chyba nie jest jakies low-latency co ? :D Rozumiem, ze jakbym chcial dzialac na sekundowych interwalach to potrzeba juz czegos bardziej skomplikowanego. Mi raczej chodzi o to, zeby bot skanowal krypto co minute , ewentualnie otwieral zalozmy 5 pozycji w tym samym momencie na innych aktywach i zarzadzal ryzykiem - anizeli ciagle kupowanie i sprzedawanie.

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 114
0

Przykładowy screen z backtradera, odkopałem bardzo stary kod i mniej więcej wygląda to tak, przykład jakiejś randomowej strategii. Musiałbyś się tym bardziej pobawić aby wyciągnąć więcej info ale wydaje się to być dosyć modyfikowalne co będzie widać w takiej analizie screenshot-20250321120207.png

LJ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Jezeli chodzi o wspomaganie sie AI w pisaniu takiego bota - jakie AI bedzie najlepsze do kodowania? ChatGPT czy moze jednak cos innego ?

MI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 114
0
ljuuuk napisał(a):

Jezeli chodzi o wspomaganie sie AI w pisaniu takiego bota - jakie AI bedzie najlepsze do kodowania? ChatGPT czy moze jednak cos innego ?

Potestuj różne :P

Również, całkiem rozsądnym pomysłem, zamiast klepać od razu swoje rozwiązania - jest ogarnięcie już jakiegoś istniejącego i poznanie je od podszewki. Polecam Hummingbot https://p.datadoghq.com/sb/a96a744f5-a15479d77992ccba0d23aecfd4c87a52?fromUser=false&refresh_mode=sliding&tpl_var_exchange%5B0%5D=%2A&tpl_var_instance_id%5B0%5D=%2A&tpl_var_version%5B0%5D=%2A&from_ts=1734784729521&to_ts=1742560729521&live=true

jest opensource, napisane w pythonie i ma fajną dokumentację. Napisane z myślą o algotradingu na crypto.

ŁW
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 12
0

Jeśli interesują Cię rzeczy do zastosowania na polskiej giełdzie to ja piszę dla siebie taką bibliotekę: https://github.com/alphatica/alis. Dorabiam GUI aby było wygodniej ale jeszcze nie jest gotowe. Trochę o algo tradingu piszę tutaj https://alphatica.com/pl/blog/. Jak chcesz pogadać to możesz mnie złapać na X: https://x.com/lukasz_wojtow

CP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 70
0

Ta deepseek firma była od tradingu, ciekawe algorytmy miała, nie jakieś proste strategie na losowych sygnałach jak wielu trayderów, ale badała cały rynek i analizowała miliony danych, które wpływają na trendy i dopiero podejmowała decyzje.

Stąd mieli tez zasoby żeby takie modele AI robić.
Ciekawe jest jak statystycznie uzyskiwali informację, ale nikt ci takich szczegółów nie powie, bo nikt nie wie, a jak ktoś wie to i tak nie powie, bo już został wyśmiany wiele razy.

AM
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 197
0

Do tego co chcesz robić spokojnie Python wystarczy. Ogarniesz trochę wiedze co i jak działa i wtedy zobaczysz gdzie iść z tym dalej.
Niestety napisanie algo które by efektywnie działało jest bardzo ciężkie (o ile nie niemożliwe) i zawsze tam dominuje efekt szczęścia. Inaczej byś w prosty sposób stworzył maszynkę do generowania pieniędzy.

Dlatego też to co koledzy pisali że pewnie finalnie będziesz chciał ogarnąć jakiś szybszy język, zrozumiał o co chodzi z kolokacjami bo według mojej wiedzy jedyny w miarę sensowny algo to taki polegający na arbitrażu a tam już czas ma znaczenie.

I1
  • Rejestracja: dni
  • Ostatnio: dni
2

@ljuuuk zabierasz się do tego od strony d**y. Jeżeli myślisz, że sam bot sprawi, że zarobisz pieniądze na giełdzie to jesteś w wielkim błędzie. Siedzę w tradingu już od kilku lat i powiem Ci co trzeba zrobić żeby zarabiać kasę na tradingu. Na początek odpuść sobie pisanie botów i odpuść sobie interwały czasowe mniejsze niż 30 minut. Im mniejszy interwał, tym większy szum. 30 i 60 minut to są wystarczająco małe interwały, mniejszych nie potrzeba. Druga fundamentalna kwestia to strategia. Stwórz strategię, która będzie działała na historycznych danych. Jak to zrobić? Odpal sobie TradingView. Naucz się języka Pine Script i pisz w nim strategie w TradingView i testuj je na historycznych danych. Jak stworzysz strategię, która będzie zarabiała na historycznych danych to dopiero wtedy bierz się za testowanie jej na aktualnych danych. Sekundy naprawdę nie mają żadnego znaczenia. To czy wejdziesz 5 sekund wcześniej czy 5 sekund później w pozycję nic nie zmienia pod warunkiem, że będziesz operował na interwałach nie mniejszych niż 30 minut. Jak już przetestujesz swoją strategię ręcznie i będziesz na niej zarabiał, to dopiero wtedy myśl o tworzeniu bota.
Polecam kurs Pine Script:
https://www.tradingview.com/pine-script-docs/

CZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2541
0

Akurat, żeby stworzyć bota co będzie CI generował kase to trzeba miec sporo pieniędzy na FPGA + serwer obok serwerów giełdowych, żeby twój program był serio szybki. Tutaj będziesz konkurował z Hudson River Trading itd. Natomiast nie mówię, że nie. To fajna zabawa o nazwie algotrading, ale nie nastawiaj się na zarabianie. Tylko 4fun.

To od czego bym zaczął to klasyczny trading + stworzenie sobie wlasnej apki na bazie API od Krakena, Binance czy innej giełdy. Będziesz sobie mógł stworzyć program do zarządzania stop lossami / take profitami, żeby nie wystawiać zleceń na giełdzie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.