High-frequency trading - rozwój, praca

0

Dzięki Waszym wypowiedziom z tego tematu Dobra praca, dobra kasa i ucieczka z IT przemyślałem trochę całą sprawę i doszedłem do wniosku, że wcale nie muszę uciekać z IT, ale muszę znaleźć coś co mnie na nowo wciągnie, a po pracy więcej integrować się z ludźmi :) Ale nie o tym.

Czy ktoś z forum miał styczność/siedzi w temacie algorithmic tradingu, szczególnie tzn. High-frequency trading?
Studiuję finanse, zawsze interesowałem się giełdą, trochę sam inwestuje na GPW. Od dawna przyglądam się forexowi, na razie tylko biernie...

Ale wracając do tematu HFT.
Skąd czerpać informacje na te tematy, jaka wiedza jest potrzebna? Czy bardziej trzeba znać się na analizie rynku czy bardziej na programowaniu? Jaka wiedza z algorytmiki tam jest wykorzystywana? Jak dobrym trzeba być programistą? Przypuszczam, że wszystko to autorskie algorytmy oderwane od klasycznych przykładów, które przerabiają studenci infy?

Czy jest to ogólnodostępna praca czy raczej pojedyncze stanowiska, które można dostać wielkim fartem albo po znajomości?

Jakie języki się w ogóle wykorzystuje?

Jak w ogóle się kierunkować, żeby w bliższej lub dalszej przyszłości pracować w czymś takim?

0

Nie zajmuję się tym, ale trochę o tym czytałem i słuchałem. Z moich obserwacji wynika, że aplikacje HFT są pisane w Javie, są proste, jednowątkowe i dzięki temu szybkie. Inne hasło kluczowe, które jest tu istotne, to low latency. Cała zabawa polega na minimalizowaniu czasu wykonania programu tak, aby wykonywał się on w czasie krótszym, niż jedna milisekunda. Aby to osiągnąć, zmniejsza się złożoność obliczeniową algorytmów, tuninguje się GC, lokuje się serwery blisko miejsc, do których lecą requesty, większość danych przechowuje się w RAMie, optymalizuje się też sprzęt i izoluje środowisko, tzn. jedna maszyna jest odpowiedzialna za wykonywanie tylko i wyłącznie jednego zadania oraz może mieć dedykowany i wypatroszony OS. Najwięcej czasu zajmują połączenia sieciowe, odczyt/zapis danych na dysk twardy i przełączanie kontekstu procesorów. Są to wąskie gardła, na które zwraca się uwagę podczas redukcji czasu działania programu. Z moich obserwacji wynika też, że użytkownik @wojciech.kudla zna temat (przynajmniej tak wnioskuję czytając wypowiedzi na tym forum i przeglądając internet), więc możesz spróbować poprosić go o profesjonalną wypowiedź, bo moja jest czysto teoretyczna. ;)

Jeśli chodzi o pracę w tym obszarze, to w Polsce trudno będzie Ci ją znaleźć (choć jest to możliwe, bo raz widziałem takie ogłoszenie). Najwięcej ofert tego typu jest chyba w Londynie, Nowym Jorku i Zurychu.

0

Na geeconie z tego co pamietam to jeden gosciu opowiadal ze:

  • jak logika jest prymitywna to uzywa sie FPGA
  • czasami jeszcze C++ tez
  • czesciej jednak Java, ale nie uzywa sie HEAP
  • jak logika jest bardziej rozbudowana to pisze ja sie w Scali, a reszta infrastruktury w javie

W krakowie UBS rozwija swoj system HFT

2

@julekbolek

julekbolek napisał(a):

Czy ktoś z forum miał styczność/siedzi w temacie algorithmic tradingu, szczególnie tzn. High-frequency trading?

Siedze w low latency Java (w HFT) od kilku lat

julekbolek napisał(a):

Skąd czerpać informacje na te tematy, jaka wiedza jest potrzebna?

To zalezy czym sie chcesz zajmowac

julekbolek napisał(a):

Czy bardziej trzeba znać się na analizie rynku czy bardziej na programowaniu? Jaka wiedza z algorytmiki tam jest wykorzystywana? Jak dobrym trzeba być programistą? Przypuszczam, że wszystko to autorskie algorytmy oderwane od klasycznych przykładów, które przerabiają studenci infy?

W HFT jako programista mozesz pracowac w sumie w dwoch rolach. Core Java/Low latency developer to stanowisko wymagajace bardzo zaawansowanej wiedzy nie tylko o danym jezyku (C++/Java), ale w takim samym stopniu o sieciach, dyskach, procesorach, pamieciach, itp.
Jesli pracujesz jako quant developer, wtedy zajmujesz sie pisaniem modeli pricingowych, algorytmow matchujacych, itp. Do tego zazwyczaj brani sa goscie z doktoratami z matematyki lub fizyki.

julekbolek napisał(a):

Czy jest to ogólnodostępna praca czy raczej pojedyncze stanowiska, które można dostać wielkim fartem albo po znajomości?

Troche ogloszen znajdziesz na pewno na serwisach internetowych, ale najciekawsze role obsugiwane sa przez agencje typu finding partner (np. Nicoll Curtin), ktore bez wiekszego rozglosu poszukuja kandydatow spelniajacych okreslone kryteria.
Odnosnie pracy "po znajomosci": wyobrazasz sobie ze bank inwestycyjny albo HFT prop shop powierza miliony dolarow programiscie, ktory nie wie co robi, ale za to dobrze zna sie z ich CTO?

julekbolek napisał(a):

Jakie języki się w ogóle wykorzystuje?

Java/C/Assembly

julekbolek napisał(a):

Jak w ogóle się kierunkować, żeby w bliższej lub dalszej przyszłości pracować w czymś takim?

Baaardzo duzo czytac, eksperymentowac i sie doksztalcac. Z wszystkiego co wymienilem.
Kiedys popelnilem AMA na wykopie. Powinienes tam znalezc odpowiedzi na dodatkowe pytania; ludzie zadawali podobne.
http://www.wykop.pl/link/1209873/ama-programista-z-doswiadczeniem/10988857/

Pozdrawiam
Wojtek

0

A jest miejsce dla OpenCL w HFT lub ogólnie inwestowaniu na giełdzie/ forexie?

Czy tworzy się boty pracujące z większymi opóźnieniami, np rzędu jednej sekundy? Jeśli tak to jakie są pieniądze do zarobienia na nich w porównaniu do tych ultra szybkich botów?

0

@wojciech.kudla w takim razie, jesli np. ktos chcialby wkrecic sie w rynek, na czym najlepiej skupic sie uczac jezykow tj. C czy Assembler? jest jakis konkretny "worth of learning" dział/bilbioteki/frameworki etc? (czytalem twoje AMA, ale nie ukrywam ze docenilbym rozwinieta odpowiedz :D)

To zalezy czym sie chcesz zajmowac

Np dla pisania dla low latency tj wyciskanie wydajnosci - potrzeba znajomosci procesorow, znajomosci OSów, pamieci operacyjnych itp. Skad wiedza w tym temacie? Czytanie książek (jakies konkretne pozycje?), blogow, moze jakies kursy/seminaria? Czytanie dokumentacji poszczegolnych procesorow :D? Co mógłbyś polecić?

A tak btw: czy w warunkach domowych jest szansa "pobawic sie" w pisanie takiego low latency? mówie tu o samokształceniu np. dla osoby ktora kiedys chcialaby pracowac w takich tematach czy raczej takich rzeczy uczy sie już pracując?

0
wojciech.kudla napisał(a):

W HFT jako programista mozesz pracowac w sumie w dwoch rolach. Core Java/Low latency developer to stanowisko wymagajace bardzo zaawansowanej wiedzy nie tylko o danym jezyku (C++/Java), ale w takim samym stopniu o sieciach, dyskach, procesorach, pamieciach, itp.
Jesli pracujesz jako quant developer, wtedy zajmujesz sie pisaniem modeli pricingowych, algorytmow matchujacych, itp. Do tego zazwyczaj brani sa goscie z doktoratami z matematyki lub fizyki.

Czyli jednym słowem jest to praca dla wymiataczy z kilkuletnim doświadczeniem i dużą wiedzą nie tylko stricte programistyczną, ale też z zakres hardware/matematyki/statystyki/algorytmiki? Bo rozumiem, że w branży nie ma czegoś takiego jak 'stanowisko Juniorskie' tylko bierze się bardzo doświadczonych koderów?

0

ja mam pytanie , poniewaz jestem teraz w swojej pierwszej pracy jako junior java developer i mam okazje pracowac przy systemie bankowym Calypso ,czy to jest dobry kierunek rozwoju jeżeli później chcialbym sie zajmowac tematyka hft i low latency ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1