Skip to content

mikitomi21/Stock_price_analysis

Repository files navigation

Stock_price_analysis

Polish version

1.Wstęp

Głównym celem projektu jest zaprogramowanie wskaźnika giełdowego MACD w języku Python przy użyciu dodatkowych bibliotek:

  1. Pandas -> wczytywanie/modyfikowanie danych
  2. Numpy -> operacja na macieżach, pomoc przy wykresach
  3. 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.

2.Analiza zadania

image

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. image

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.

3.Algorytm

Początek symulacja zaczynamy z kapitałem 1000 jednostek, oraz trwa ona 900 dni. Algorytm automatycznego operowania akcjami polega na:

  1. Jeżeli MACD przecina SIGNAL od dołu to akcja zostaje zakupiona
  2. Jeżeli MACD przecina SIGNAL od góry to akcja zostaje sprzedana

Akcja jest kupowana ze względu na poniższy wzór:
image

Akcja jest sprzedawana w 100%:
image

4.Wizualizacja kupna/sprzedaży

Zostały przeprowadzone 2 symulacje:

  1. Symulacja nie uwzględniająca prowizję sprzedaży
  2. Symulacja uwzględniająca prowizję sprzedaży

Symulacja 1.


image image

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.

Symulacja 2.


image image

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.

5.Opis plików

GitHub: https://github.com/mikitomi21/Stock_price_analysis

  1. Main.ipynb -> Plik Jupyter do wizualizacji danych, wykresów, oraz do testowania
  2. ecofunction.py -> Plik zawierający funckje do obliczeń: EMA, SIGNAL, MACD
  3. visualization.py -> Plik automatycznej wirtualizacji algorytmu
  4. chart.py -> Plik tworzący wykres symulacji
  5. trader.py -> Plik zawierający klasy: Trader, Share, Tax
  6. intc_us_d.csv -> Historyczne dane wartości akcji Intela

6.Zakończenie

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.

About

Algorithm of buying/selling Intel shares

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published