Polish version
Głównym celem projektu jest zaprogramowanie wskaźnika giełdowego MACD w języku Python przy użyciu dodatkowych bibliotek:
- Pandas -> wczytywanie/modyfikowanie danych
- Numpy -> operacja na macieżach, pomoc przy wykresach
- Matlpotlib.pyplot -> przedstawienie danych na wykresie Wskaźnik został wyliczony na podstawie 1000 historycznych wartości akcji Intela w przedziale czasowym od 2018-01-02 do 2021-12-20. Dane zostały pobrane ze strony stooq.pl.
Wykres.1 : Wartości akcji Intela na przedziale 1000 dni.
Jako wartości akcji danego dnia przyjmuję średnią z minimalnej i maksymalnej wartości danego dnia. Na podstawie tych danych zostały wyliczone wskaźniki MACD i SIGNAL.
Wykres.2 :Wykresy MACD oraz SIGNAL. Jak możemy zauważyć wykres 2 reaguje na zmiany wartości na wykresie 1, lecz nie jest on jego odwrozowaniem.
Początek symulacja zaczynamy z kapitałem 1000 jednostek, oraz trwa ona 900 dni. Algorytm automatycznego operowania akcjami polega na:
- Jeżeli MACD przecina SIGNAL od dołu to akcja zostaje zakupiona
- Jeżeli MACD przecina SIGNAL od góry to akcja zostaje sprzedana
Akcja jest kupowana ze względu na poniższy wzór:
Akcja jest sprzedawana w 100%:
Zostały przeprowadzone 2 symulacje:
- Symulacja nie uwzględniająca prowizję sprzedaży
- Symulacja uwzględniająca prowizję sprzedaży
Można zauważyć maksymalny zysk o ponad 10% kapitału początkowego, natomiast ostatecznie symulacja zwiększa swój kapitał tylko o 12 jednostek.
Z drugiej symulacji można zauważyć, że dodanie prowizji od sprzedaży drastycznie zmniejsza nasz początkowy kapitał o ponad 30% co oznacza, że ten algorytm dla ww. danych działa bardzo źle i nie jest on zalecany do używania przy takich warunkach.
GitHub: https://github.com/mikitomi21/Stock_price_analysis
- Main.ipynb -> Plik Jupyter do wizualizacji danych, wykresów, oraz do testowania
- ecofunction.py -> Plik zawierający funckje do obliczeń: EMA, SIGNAL, MACD
- visualization.py -> Plik automatycznej wirtualizacji algorytmu
- chart.py -> Plik tworzący wykres symulacji
- trader.py -> Plik zawierający klasy: Trader, Share, Tax
- intc_us_d.csv -> Historyczne dane wartości akcji Intela
Wskaźnik MACD jest dobrą metodą do wizualizacji zachodzących zmian i dawania przewidań kupna/sprzedaży. Nie działa on niestety poprawnie w pełni, gdyż jest on w stanie wyliczyć średnie zmiany z ostatnich dni, natomiast nie potrafi on przewidzeń nadchodzących zmian w przyszłych dniach. Wskaźnik ten nadaje się dobrze na dłuższy okres czasu dla wartości, które nie zmieniają się drastycznie. W przeciwnym przypadku nie powinno się opierać w pełni na nim.