Wcześniej przyjrzeliśmy się, dlaczego chcemy stworzyć program do automatycznego handlu z wykorzystaniem API Korea Investment Securities oraz jakie są jego zalety.
Teraz chciałbym podzielić się podsumowaniem procesu gromadzenia informacji niezbędnych do opracowania API Korea Investment Securities. Wiele doświadczonych osób już udostępniło API Korea Investment Securities, więc znalezienie informacji nie było trudne. Niemniej jednak chciałbym krótko skomentować, jakie informacje udało mi się uzyskać i mam nadzieję, że te informacje okażą się pomocne. (Najlepiej zacząć od repozytorium GitHub!)
Oficjalna strona
Oficjalna strona Korea Investment Securities
Podstawowe informacje można uzyskać na oficjalnej stronie. Za pośrednictwem oficjalnej strony Korea Investment Securities można wykonywać czynności takie jak ustawianie identyfikatora i konta, składanie wniosków o symulację handlu, składanie wniosków o handel zagraniczny itp. Ponadto na oficjalnej stronie znajduje się łatwy dostęp do linków do stron deweloperskich.
W menu Korea Investment Securities sekcje związane z programowaniem znajdują się w menu Trading.
Centrum programistów KIS Developer
Strona KIS Developer to strona, do której należy zaglądać w trakcie tworzenia API. Można na niej sprawdzić szczegółową dokumentację API.
Najbardziej podstawowe API to API do uzyskiwania tokena dostępu.
Szczegółowe informacje na temat wartości żądania i odpowiedzi API. Na podstawie tych wartości wysyłamy żądania i odbieramy odpowiedzi, a następnie je przetwarzamy.
GitHub - koreainvestment/open-trading-api
Repozytorium GitHub Open Trading API. W pliku README.md znajduje się przyjazna instrukcja krok po kroku. Dlatego jak wspomniałem wcześniej, warto zacząć od GitHub.
Repozytorium GitHub.
Wikidocs
Na koniec, Wikidocs, który może być przydatny podczas programowania w Pythonie. Ponieważ autorem jest Korea Investment Securities, większość informacji jest wiarygodna. Powodem, dla którego napisałem „większość”, jest to, że z biegiem czasu nie dodano nowych treści, a osobiście utknąłem podczas naśladowania części dotyczącej danych w czasie rzeczywistym i nie znalazłem rozwiązania.
Przewodnik programistyczny jest dobrze opracowany w WikiDocs.
Dodatkowe odnośniki
Po zapoznaniu się z tymi materiałami, można by pomyśleć, że można je wykorzystać do szybkiego stworzenia aplikacji, ale niestety moje umiejętności nie są na tyle wysokie, więc napotkałem na sporo trudności. Dlatego szukałem różnych informacji i skorzystałem z dodatkowych odnośników, które chciałbym wymienić. Ponieważ są to informacje, które sam znalazłem, myślę, że Wy również będziecie mogli je łatwo odnaleźć.
Jeden filmik z kanału JoCoding (23:41)
Dzięki temu filmowi zrozumiałem zalety API Korea Investment Securities z perspektywy użytkownika. I jak zwykle, kiedy ktoś wyjaśnia działający kod w formie filmu, łatwiej jest zrozumieć. Jeśli wcześniej zorientowaliście się w ogólnym zakresie możliwości dzięki oficjalnej stronie, polecam szybkie obejrzenie filmu JoCoding (23:41).
Websockets
Jak wspomniałem wcześniej, utknąłem na etapie obsługi danych w czasie rzeczywistym, a w Wikidocs wykorzystano bibliotekę websockets w Pythonie. Jednak nie do końca rozumiałem, czym są websockety. W takich przypadkach trzeba pytać. +_+
ChatGPT, pomóż!
Bez ChatGPT byłoby bardzo źle.
Wydaje mi się, że jest to sposób na komunikację, który po nawiązaniu połączenia umożliwia odbieranie strumienia danych. Po przeczytaniu tego wnioskuję, że REST API zwraca jedną odpowiedź na jedno żądanie, a Websocket po zarejestrowaniu żądania zwraca ciągłe odpowiedzi. Aby zrealizować program do automatycznego handlu, należy wdrożyć i połączyć obie metody.
Jednak utknąłem na przykładzie z Wikidocs. Udało mi się wysłać żądanie przez websocket, ale potem natychmiast pojawiło się while True:, w wyniku czego program utknął w tym stanie. Z pewnością istnieje jakieś rozwiązanie, ale jako początkujący nie jestem zaznajomiony z tymi koncepcjami i nie mogłem zrozumieć, jak to rozwiązać. Dlatego zacząłem szukać na GitHubie innych implementacji tego rozwiązania.
Repozytoria GitHub
- python-kis - Soju06/python-kis: 📈 Biblioteka API handlu w Pythonie oparta na REST dla Korea Investment Securities (github.com)
- pykis - pjueon/pykis: Pakiet Pythona do łatwego korzystania z nowego otwartego API handlu Korea Investment Securities (github.com)
- mojito - sharebook-kr/mojito: Owijka Pythona dla KIS (github.com)
Jeszcze raz uświadomiłem sobie, jak wielu utalentowanych programistów istnieje. Sprawdziłem 3 repozytoria, ale ostatecznie wykorzystałem pierwsze z nich, python-kis. Zastosowałem logikę z tego repozytorium, aby odnieść się do części związanej z websocketami. Ostatecznie zamiast biblioteki websockets użyłem bibliotek websocket i websocket-client. Z tej okazji chciałbym podziękować Soju06 oraz wszystkim, którzy udostępniają wartościowy kod na GitHubie.
Teraz, korzystając z tych informacji, mogę rozpocząć tworzenie aplikacji. Napotkałem na kilka problemów, ale opiszę je osobno w innym wpisie. Następnie chciałbym podzielić się przemyśleniami na temat „struktury automatycznego handlu akcjami”, co może być nieco bardziej fundamentalne. Mam nadzieję, że dzięki temu w przyszłości będę mógł uniknąć błędów i łatwiej wykorzystywać już opracowane fragmenty kodu.
Komentarze0