Odbierz zniżkę na szkolenie i stwórz swój pierwszy automat w MQL4!

Biblioteki Python do wykorzystania w tradingu

Biblioteki Python są bardzo ważne wśród spekulantów, którzy analizują dane poza platformą inwestycyjną. W ten sposób trader, daje sobie znacznie więcej możliwości, które może wykorzystać. Wynika to za sprawą szansy analizowania większej ilości czynników, niż tylko zmiana ceny we wskazanym przedziale czasowym. W tym celu można korzystać z całego panelu dostępnych narzędzi oraz języków programowania. Niektórzy np. wykorzystują język R, który jest także całym środowiskiem do obliczeń statystycznych. Pomimo szerokiego wykorzystania R, to jednak Python zyskał szczególnie na popularności. Dlaczego akurat ten język programowania?

Ponieważ Python, jako język wysokiego poziomu ogólnego przeznaczenia jest uznawany za prosty w obsłudze. Oczywiście pamiętajmy przy tym, że każdy kto napotka na zdanie w stylu – „Tylko 15 minut wystarczy, byś został Python developerem” – ma prawo wybuchnąć śmiechem. Jednocześnie warto trzymać się (mocno!) za portfel, oddalając się zapewne od sprzedawcy kursu, który tak twierdzi.

To jak jest w końcu? Python jest prosty, czy nie? Jest prosty i do tego ma multum darmowych bibliotek, z których można korzystać na wiele sposobów. Można go wykorzystać także w tradingu, o czym zresztą jest ten artykuł. Po prostu bądźmy świadomi pewnego faktu. Pomiędzy poziomem „level hard”, a „ogarnę to w 15 minut”, jest ogromna przestrzeń. Tak wielka, jak między przeciętnym uczestnikiem rynku, a Warrenem Buffettem. Natomiast zanim przejdziemy do konkretnych bibliotek, warto zacząć od podstawowego pytania, który zadaje sobie każdy początkujący…

Gdzie analizować dane?

Samo powiedzenie „w Pythonie”, przypomina trochę wysłanie rannego do lekarza na środku pustyni. Wie on doskonale, że trzeba iść do lekarza, ale nie wie w którym kierunku należy się udać. Jedną z opcji jest zainstalowanie najnowszej wersji Pythona bezpośrednio z jego strony internetowej. Ja natomiast preferuję inne podejście. Polecam zainstalowanie środowiska Anaconda, które jest darmowe i idealnie się sprawdza w przypadku projektów Data Science. Możemy tam wybrać, w jakim języku chcemy przygotowywać dany projekt (jednym z nich jest Python).

Anaconda to najpopularniejsze środowisko Data Science, więc przyznaję – nie jestem w tym temacie oryginalny. Jednakże w tym aspekcie, stawiam na pragmatyzm. Kolejnym plusem jest fakt, że w przypadku jakichkolwiek zagwozdek, mam możliwość szybkiego „wygooglania” problemu. Po włączeniu tego środowiska zobaczymy, że mamy szereg narzędzi do wyboru. Najczęściej wykorzystuję Jupyter Notebook. To na nim stawiałem swoje pierwsze kroki w Data Science i jestem do niego przyzwyczajony. Poza tym, jak już wspomniałem – jestem praktyczny.

python biblioteki graficzne
źródło: Anaconda Navigator

Biblioteki Python – NumPy

Jeśli miałeś okazję robić już coś w Pythonie, to możesz być zdziwiony, że zaczynam od biblioteki NumPy. Jest to bowiem zwykła biblioteka, za pomocą której możemy dokonywać różnych obliczeń matematycznych. Generalnie dlatego od niej zaczynam. Gdy mówimy o handlowaniu z wykorzystaniem instrumentów finansowych, to zawsze mamy do czynienia z matematyką. Biblioteka NumPy umożliwia nam implementację wielowymiarowych tablic oraz matryc. Możemy także wykorzystać funkcje trygonometryczne, hiperboliczne, czy logarytmiczne. Jest to potężne narzędzie, które możemy wykorzystać. By móc skorzystać z niego wystarczy, że w „Jupyter Notebook” wpiszemy:

import numpy as np

Wówczas po uruchomieniu kodu, importujemy bibliotekę pod skrótem np. Jeśli będziemy chcieli przykładowo przypisać zmiennej 'tablica’, wartości ciągu liczb – 1,2,3,4,5 – oraz zaznaczyć, że ma to być typ 'tablica'(z ang. array), to wpisujemy:

tablica = np.array([1,2,3,4,5])

Gdy tylko wpiszemy tablica, w naszym notatniku, to wyświetli się wartość przypisanej tablicy.

źródło: Jupyter Notebook, Anaconda Navigator

Dokumentacja biblioteki NumPy (po angielsku)

Pandas

Kolejna biblioteka jest dedykowana wszelkim tabelom, zestawom danych, które przyjdzie nam analizować. By poprawnie analizować dane, musimy je w odpowiedni sposób uszeregować. Wyobraźmy sobie, że chcemy analizować ceny zamknięcia dla spółki Apple, czy KGHM. Przyda nam się tabela. W tym miejscu właśnie kłania się biblioteka Pandas. Oczywiście nie chodzi tylko o wyświetlanie danych – do tego wystarczy nam w zupełności chociażby Excel, albo Arkusz Google. Pandas to narzędzie, dzięki któremu będziemy mogli modyfikować i analizować dane.

Tym bardziej, że pobierając plik z danymi np. z cenami OHLC spółki KGHM dla ostatnich 20 lat, będziemy najprawdopodobniej zainteresowani częścią danych. W tym celu możliwość modyfikacji tabeli jest absolutną podstawą.

Analogicznie do NumPy, aby zaimportować bibliotekę Pandas w notatniku, wystarczy wpisać:

import pandas as pd

Uruchamiasz kod i masz już dostępne Pandas w notatniku Jupyter.

Dokumentacja biblioteki Pandas (po angielsku)

Analiza techniczna – TA-Lib

Przyszła kolej do omówienia biblioteki wykorzystującej analizę techniczną. Wszyscy zainteresowani analizą z wykorzystaniem tej metody, mają możliwość sprawdzenia, w jaki sposób sprawdza się historycznie np. wskaźnik siły względnej (RSI). Dodatkowo we wspomnianej bibliotece występuje cały szereg popularnych wskaźników, jak np. średnia krocząca, Bollinger Bands, ADX, czy Momentum.

TA-Lib oferuje także funkcje stworzone z myślą o analizowaniu wolumenu. Jest to szczególnie przydatne w przypadku, analizowania instrumentów z rynku kasowego. Dodatkowo mamy możliwość korzystania ze statystycznych funkcji, jak np. BETA, czy współczynnik korelacji Pearsona, bądź regresji liniowej.

W przypadku korzystania z Anacondy, mamy już zainstalowane biblioteki, jak np. pandas czy numpy – musimy je tylko zaimportować. Jednym z czynników, które czyni Python tak popularnym językiem, jest dostęp do szeregu bibliotek open-source. Do takiej należy m.in. TA-Lib. W związku z tym musimy najpierw zainstalować tę bibliotekę. W tym celu otwórz „Anaconda Prompt”. Jeśli nie wiesz, jak odnaleźć ten plik, to wystarczy, że na komputerze w polu Szukaj wpiszesz wspomnianą frazę. Wówczas po wejściu w plik wyświetli Ci się wiersz poleceń. Następnie należy wpisać:

conda install -c conda-forge ta-lib
python biblioteki
źródło: Anaconda Prompt (Anaconda3)

Potem wybierz enter, a Anaconda zacznie instalować bibliotekę. W trakcie instalacji będziesz spytany, czy chcesz pobrać nową paczkę. Wówczas wybierasz 'y’ (z ang. yes), bądź 'n’ (z ang. no). Ja instalując wybrałem tak, ale wybór zostawiam Tobie. Nie będę Ci przecież mówił, jak masz żyć :-).

Gdy instalacja jest zakończona, zamykasz wiersz poleceń, przechodzisz do pliku Jupyter Notebook i wpisujesz:

import talib as ta

Następnie uruchamiasz kod. Teraz możesz już korzystać z omawianej biblioteki. Poniżej tradycyjnie wklejam link do dokumentacji biblioteki (z GitHub).

Dokumentacja biblioteki TA-Lib (po angielsku)

Biblioteki Python – uczenie maszynowe w tradingu

Szerokie wykorzystanie w tradingu ma również uczenie maszynowe. W miarę rozwijania skrzydeł w analizie danych i wchodzenia coraz głębiej w różne zawiłości, zapewne odkryjesz ogromny potencjał jakim jest Machine Learning.

To właśnie ta dziedzina sztucznej inteligencji, zrewolucjonizowała algotrading. Nikogo nie powinien dziwić fakt, że powstały biblioteki Python, stworzone z myślą o machine learningu. Jedną z nich jest TensorFlow, która jest otwarto źródłową biblioteką programistyczną. Jest to biblioteka do wysokowydajnych obliczeń numerycznych. Wykorzystywana jest także w Deep Neural Network. TensorFlow nie jest biblioteką typowo pythonowską. Jego rozporoszony silnik wykonawczy został zaimplementowany w języku C++. Z kolei front-end jest napisany w kilku językach, w tym m.in. w Pythonie.

Jeśli zastanawiasz się, jak zainstalować tensorflow w jupyter – to świetnie trafiłeś. Zainstalowanie go wymaga od nas działań, które na pierwszy rzut okiem mogłyby wydawać się skomplikowanymi. Otwieramy wiersz poleceń (Anaconda Prompt), tak jak w przypadku poprzedniej biblioteki. Następnie wpisujemy:

conda create -n tf tensorflow

Uruchamiamy za pomocom przycisku 'enter’. Gdy skończy się instalować paczka wpisujemy:

activate tf

Tak jak poprzednio nie zapomnij o enter. Wówczas, wpisujemy w wierszu „conda install notebook”, tak jak ma to miejsce w podanym poniżej przykładzie.

źródło: Anaconda Prompt (Anaconda3)

Gdy zakończy się instalacja wpisujemy w wierszu poleceń:

jupyter notebook

Następnie, gdy zostaniemy przeniesieni do Jupyter Notebook, wpisujemy:

import tensorflow as tf

Gdy uruchomimy kod (ewentualnie Enter+Shift) i nie pojawi się żaden błąd, to oznacza, że zaimportowałeś TensorFlow w swoim notatniku. Teraz możesz wykorzystać machine learning w swoim projekcie. TensorFlow jest stworzony przez Google’a, więc ogromnym plusem jest dokumentacja, z którą się możesz zapoznać w języku polskim. Tłumaczone co prawda automatycznie, no ale zawsze to jakiś plus i ułatwienie :).

Dokumentacja TensorFlow

Keras

Biblioteki python w zakresie uczenia maszynowego, nie ograniczają się do jednej czy dwóch bibliotek. TensorFlow jest wykorzystywany w kilku językach, na wielu płaszczyznach. Natomiast Keras jest biblioteką stworzoną z myślą o sieciach neuronowych w Pythonie. Jeśli zainstalowałeś i zaimportowałeś TensorFlow, wówczas wystarczy, jeśli wpiszesz i uruchomisz poniższy kod:

from tensorflow import keras

Dzięki tej bibliotece możesz tworzyć wiele różnych projektów ML. W zależności od projektu i potrzeb, czasem użyjesz tensorflow, a czasem keras. Ważne aby zawsze mieć wybór – w zależności, co w danej chwili chcesz wykorzystać.

Keras dokumentacja (po angielsku)

Biblioteki Python, a pobieranie analizowanych danych

OK, czyli wiemy jak zainstalować oraz zaimportować interesujące nas biblioteki. Natomiast równie istotną kwestią jest, skąd brać dane? Metod jest wiele. Najprostszą jest pobranie danych (np. w formie pliku .csv) i następnie zaimportowanie ich za pomocą biblioteki Pandas w notatniku Jupyter. Same dane możemy pobrać ze stooq, czy yahoo finance (jeśli tam znajdziemy interesujące nas instrumenty). Wszystko zależy od tego, czego w danej chwili potrzebujesz, no i rzecz jasna, gdzie to możesz znaleźć. Ja w swoich pierwszych projektach, pobierałem dane z MetaTrader4. Bo i czemu nie, skoro szukałem odpowiedzi na pytanie, w który dzień tygodnia EURUSD jest najbardziej zmienne?

Oczywiście, w przypadku, w którym zależało by mi na danych dot. wolumenu z rynku kasowego, wówczas dane z tej platformy na nic by się nie zdały. Jednakże we wcześniej opisanym przypadku, dane były wystraczające. Potrzebowałem ceny otwarcia, zamknięcia, maksimum i minimum – i je otrzymałem.

W przypadku, gdy sporą część instrumentów jesteś w stanie znaleźć na yahoo finance, wówczas warto dodać bibliotekę yfinance. W celu jej zainstalowania wpisujesz w Anaconda Prompt:

python -m pip install yahoo-finance 

Wciskasz 'enter’, a po zainstalowaniu otwierasz Jupyter Notebook i wpisujesz:

import yfinance as yf

Po uruchomieniu kodu masz możliwość pobierania danych dot. chociażby amerykańskich akcji i następnie ich analizowaniu. Automatycznie rozwiązuje to problem związany ze znalezieniem wiarygodnego źródła informacji o historycznych cenach danych aktywów. Niestety ale nie masz dostępu do danych na żywo za pomocą tej biblioteki. No ale chyba przyznasz, że to były by trochę za dużo, w przypadku darmowego narzędzia, co nie?

Możesz również polubić…