Coder Social home page Coder Social logo

stock_price_analysis's Introduction

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.

stock_price_analysis's People

Contributors

mikitomi21 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.