Jak wybrać język programowania robota?

Спонсор цієї статі - сайт Richinvest.biz - торгуйте бінарніми опціонами з максимальним прибутком!

Nie wiem, kto myślał każdy z was o tworzeniu własnego „cud robota” dla handlu, a ja mam taki pomysł wystąpił wielokrotnie. Jedyną rzeczą, która zatrzymana - brak znajomości podstawowych zasad tworzenia algorytmu i programowanie jako coś nie bardzo skomplikowane. Ale jeśli celem jest ustawiona - jest to niezbędne do zrealizowania. Wiemy, że obecnie istnieje kilka opcji do tworzenia robota dla zawodowych - na podstawie platform obrotu (niektóre z nich pozwalają rozwijać swoje algorytmy obrotu), na podstawie znanego programu Excel, za pomocą specjalnego oprogramowania jak WealthLab lub Metastock oraz, oczywiście, napisanie programu w jednym z języków programowania. Wybór jest naprawdę szeroki - C ++, Delphi, Java, VB, C # i innych. Ale w jakim języku jest najbardziej odpowiedni do tworzenia wysokiej jakości robota? W rzeczywistości, problem został już prawidłowo podniesiona. Idealny język programowania do pisania programu algorytmicznego handlu nie istnieje. Jest to bardzo ważne przy tworzeniu systemu skupić się na całej grupy czynników, które omówiono poniżej. Tylko dzięki głębokiej analizy, można wybrać najbardziej odpowiednie narzędzie. W tym artykule, będziemy krótko przejść szereg kluczowych subtelności tworzyć doradcą.

Co powinien robota? Przed utworzeniem algorytmu, trzeba jasno zrozumieć funkcje robota przyszłości. Zdecydować, które zadania są przypisane do systemu: czy rachunkowość zarządzania ryzykiem jest konieczne, jeśli moduł portfolio projektant będzie musiał zostać dostarczone, jeśli badania i tak dalej. Dopiero po całkowitym zadania inwentaryzacji, można przystąpić do kolejnego kroku.

Rodzaje polityk Należy pamiętać, że strategia jest podzielona na dwa główne rodzaje - te, które generują sygnały i badanych strategii. W pierwszym przypadku, algorytm programu powinien jasno wiedzieć, kiedy należy dokonać zakupu, sprzedaży, wysyłać rozkazy i tak dalej. Do takiej strategii może wymagać wysokiego poziomu wydajności, dobrej przepustowości, braku różnych opóźnień. W przypadku algorytmu badań należy położyć nacisk na danych historycznych. Metoda ta jest często nazywana analizy historycznej. W tworzeniu tego modułu, należy wziąć pod uwagę dwa elementy - algorytmicznych złożoność programu oraz ilość informacji. W niektórych przypadkach, skuteczność strategii badań zależy od liczby rdzeni procesora oraz jego wydajność.

Strategia typu Decyzję w sprawie tego, co rynek pracujesz, jeśli wymagane podłączenie zewnętrznych dostawców, co jest częstotliwość pracy oraz ich ilości. Na przykład, aby pracować przy niskiej płynności akcji na rynku amerykańskim jest to niezbędne do korzystania z całkowicie odmiennych zasadach niż w przypadku algorytmu wysokiej częstotliwości w pracy na rynku terminowym. Analizować połączenia z dostawcą systemu, tryb transmisji danych o wysokiej prędkości, struktura API, możliwość zapisywania ważnych informacji, i tak dalej. Jeśli zapewni dostęp do wielu systemów jednocześnie, to tylko plus. Należy pamiętać, że do przetwarzania wysokiej jakości dużych ilości danych potrzebują niezawodnego Obrotu „silnik” i bektester. W tym przypadku idealnym rozwiązaniem byłoby C ++, aw niektórych przypadkach i może być stosowany na wszystkich możliwych dostępnych Assembler.

Stworzyć system badawczy Stworzenie takiego systemu - proces dość czasochłonny, a tu bez IDE jak R Studio lub Mathlab będzie trudne do opanowania. Ważne jest, aby wybrać język, który pozwoli pełny kod testowania i dać wymaganą wydajność. W związku z tym istnieją dwa przyzwoity język - C # i C ++. Ich zaletą - dostępność odpowiednich narzędzi do debugowania kompletnego gotowego algorytmu. Istnieje również możliwość korzystania z Mathlab lub R Studio, stworzony na podstawie języka R. Jeżeli liczba parametrów przy backtesting bardzo duże, dobrze zachowujących się pokazy C ++. Wariant z użyciem Pythona, ale w tym przypadku jest to niezbędne do korzystania z NumPy/Library pandy.

Projektant Portfolio Podczas tworzenia systemu nie należy zapominać o znaczeniu portfela projektanta, który pozwala na identyfikację najważniejszych transakcji i wykonywać tylko te, które przynoszą największe zyski. Aby to osiągnąć, algorytm musi wziąć pod uwagę wiele niuansów - klasy aktywów, rodzaj działalności, w szczególności akcji, zmienności, i tak dalej. Tutaj jest to najbardziej wygodny w użyciu biblioteki C ++ - Lapack, uBLAS i NAG.

Silnik Trading Przy wyborze języka programowania pozwalającego na silniku przyszłości musi opierać się na głównym zadaniem - w celu uzyskania „czystych” sygnałów handlowych, zarządzanie ryzykiem, projektant potfolio i tak dalej. Najczęściej konieczne jest API, lub pracy za pośrednictwem protokołu FIX. Dlatego przy wyborze trzeba poświęcić przynajmniej trochę analizy jakości API - wydajność, głośność dokumentacji, potrzeba dodatkowego oprogramowania, i tak dalej. Wiele run na pośrednictwo API Java lub C ++. Ale nawet podczas pracy w tych językach jest pożądane, aby przetestować system przed użyciem. Jeśli występują błędy w implementacji systemu, mogą wystąpić problemy z wydajnością, że w przypadku tego rodzaju handel jest bardzo krytyczna. Tak więc, pisząc silnik handlową najlepszym rozwiązaniem byłoby wykorzystanie Java lub C ++.

Wydajność Kluczowym aspektem każdego systemu obrotu jest jego pojemność, przez co rozumie się szereg czynników - szybkość wykonania, jakość łącza, obecność opóźnień sieciowych, skali i tak dalej. W związku z tym, wielki użyć opcji języków takich jak Matlab, Python, C ++, Java i R. Ich zaletą - obecność bibliotek wyczynowych. Podczas tworzenia wysokiej jakości robota musi natychmiast rozwiązać problem opóźnień, które mogą wystąpić podczas uzyskiwania dostępu do bazy danych, generowania sygnałów transakcyjnych, umieszczane rozkazy i tak dalej. Aby wyeliminować nieprzyjemne aspekty, pożądane jest, aby zoptymalizować jądro. Nie wolno nam zapominać o znaczeniu buforowanie i dynamicznej alokacji pamięci (w Java i C #, nie jest to problem).

Debugowanie Innym ważnym punktem - okazja, aby zakończyć już zakończeniu debugowania programu. Java i C ++ - dwa języki tutaj wyróżniać. Oni debugowania i pytania testowe wykazały najlepsze.

Wnioski Tak więc, wybór języka programowania dla systemu obrotu - pracochłonny proces, w którym nie ma 100% idealnym rozwiązaniem. Oto najważniejsze z umysłem przyjść do wyboru, za zadanie, aby zbudować system jakości oraz, oczywiście, aby nauczyć się języka (jeśli to konieczne). Powodzenia.