Podsumowanie
Firma poświęca czas na ręczną analizę rynku, obsługę arkuszy kalkulacyjnych i składanie zleceń.
Rozwiązaniem stało się oprogramowanie tradingowe w Pythonie, które łączy dane rynkowe, logikę strategii, arkusze kalkulacyjne i konta brokerskie.
Oprogramowanie ma ograniczyć ręczną pracę związaną z handlem, powtarzalne przetwarzanie danych i możliwy do uniknięcia wysiłek przy realizacji zleceń.
Historia klienta
Klientem jest firma zajmująca się handlem algorytmicznym z Polski. Prowadzi strategie na żywo, strategie przetestowane historycznie i strategie wysokiej częstotliwości za pośrednictwem API brokerów oraz zajmuje się handlem akcjami i opcjami.
Zespół obsługuje dane świecowe, dane wejściowe dotyczące handlu oraz zlecenia kupna i sprzedaży na kontach brokerskich. Traderzy i firmy tradingowe potrzebują zastąpić ręczną analizę danych rynkowych, obsługę danych transakcyjnych i składanie zleceń systemami automatycznymi.
Prośba była prosta: zautomatyzować proces handlowy w Pythonie, połączyć go z Interactive Brokers lub kontem Shoonya Broker, jeśli będzie to wymagane, oraz weryfikować strategie za pomocą backtestów. Firma potrzebowała także przekazywać dane z Excela do procesu i otrzymywać po realizacji zleceń zaktualizowane dane tradingowe.
Rozwiązanie zaprojektowano jako połączone ekrany do konfiguracji interwałów, analizy świec, monitorowania na żywo, obsługi danych Excel i backtestów. Pola strategii, typy zleceń, status brokera i dzienniki transakcji pozostawiono widoczne, aby firma mogła zarządzać procesem zgodnie z własnymi zasadami.
Klient poprosił o
- Weryfikację strategii za pomocą backtestów oraz zapewnienie wymaganych instrukcji lub dokumentacji.
- Stworzenie automatyzacji handlu w Pythonie, z możliwością wykorzystania Javy lub C++, jeśli będzie to potrzebne.
- Połączenie z Interactive Brokers lub kontem Shoonya Broker, jeśli będzie to wymagane.
- Odczytywanie danych tradingowych z Excela i aktualizowanie ich po realizacji zleceń.
Dlaczego gotowe oprogramowanie nie pasowało
Gotowe platformy brokerskie obsługują kupno, sprzedaż i zarządzanie aktywami finansowymi, ale ich opisy nie łączą danych z arkuszy tej firmy, konfigurowalnej logiki strategii, backtestów i realizacji zleceń brokerskich w jednym dopasowanym procesie. Rozwiązanie zaprojektowano tak, aby połączyć te elementy i dostosować je do własnych zasad firmy, a dokumentacja i wsparcie szkoleniowe umożliwiały samodzielne korzystanie z systemu.
Przegląd projektu
Rozwiązanie oparto na aplikacji tradingowej w Pythonie, która łączy dane rynkowe, logikę strategii, dane z arkuszy kalkulacyjnych i konta brokerskie. Struktura obejmuje najważniejsze etapy w jednym miejscu: przygotowanie danych, analizę świec, walidację strategii, realizację zleceń i monitorowanie pozycji.
Do obsługi danych tradingowych udostępniono przestrzeń roboczą Excel. Odczytuje ona dane z arkuszy, wyświetla dane świecowe i oznacza zaktualizowane dane tradingowe wygenerowane po realizacji zleceń.
Ekran tradingowy łączy wybieralne interwały, parametry strategii oraz kryteria kupna i sprzedaży. Status połączenia z brokerem oraz typy zleceń rynkowych, z limitem i stop pozostają dostępne na tym samym ekranie.
Aplikacja składa zlecenia za pośrednictwem obsługiwanych połączeń brokerskich i udostępnia informacje o realizacji do monitorowania.
Szczególną uwagę poświęcono walidacji strategii. Ekran backtestów wykorzystuje historyczne dane świecowe, parametry strategii i tabele wyników, aby firma mogła porównać strategię przed użyciem jej w handlu na żywo.
System zaplanowano jako zestaw modułów, pozostawiając przestrzeń na dokumentację, instrukcje konfiguracji, wsparcie po wdrożeniu i późniejsze rozszerzenia, takie jak lokalne przetwarzanie lub debugowanie rynku na żywo.
Dostarczone najważniejsze funkcje
- Automatyczny handel za pośrednictwem kont brokerskich
- Zlecenia rynkowe, z limitem i stop
- Pobieranie danych świecowych w wybieralnych interwałach
- Konfigurowalne strategie i kryteria kupna/sprzedaży
- Import i aktualizacja danych tradingowych z Excela
- Backtesting strategii z wykorzystaniem historycznych danych świecowych
- Monitorowanie zleceń, pozycji i alertów na żywo
- Status połączenia z kontem brokerskim
- Automatyzacja handlu oparta na Pythonie