niedziela, 28 stycznia 2024

Analiza SMA - wykres SMA

Ten post jest kontynuacją: https://kamilkondrat.blogspot.com/2024/01/analiza-sma-i-definiowanie-istotnej.html

Ta praca odzwierciedla zainteresowanie autora analizą finansową i wykorzystaniem narzędzi informatycznych w jej realizacji. Niniejszy blog nie ma na celu dostarczania porad finansowych, lecz stanowi konstruktywne podejście autora do dzielenia się wiedzą. Autor widzi w tym sposobność do rozwijania swoich umiejętności i zachęcania do wzajemnej dyskusji. Należy pamiętać, że wnioski wynikające z analiz prezentowanych na tym blogu nie powinny być bezpośrednio stosowane do podejmowania decyzji finansowych. Nawet jeśli analizy są dokładne, stanowią one tylko fragment potrzebnych informacji do podjęcia w pełni świadomej decyzji. Brak szerszego kontekstu, w którym znajduje się potencjalny inwestor lub decydent, może prowadzić do niepełnych wniosków.

W ostatnim wpisie zdefiniowaliśmy funkcję ("buy_sell_signal") wykonującą dla nas najważniejszą pracę jeśli chodzi o odnalezienie sygnałów kupna i sprzedaży przy użyciu SMA. 

Funkcja ta zwraca nam obiekt typu Series, który zawiera w sobie dwie listy "buy_signal" oraz "sell_signal." 

Dopiszemy sobie zawartość tych dwóch list do dwóch nowo tworzonych przez nas kolumn ("Buy Price Signal" i "Sell Price Signal"). Zrobimy to dzięki poniższej linijce kodu:

df['Buy Price Signal'], df['Sell Price Signal'] = buy_sell_signal(df)

Kolejnym krokiem będzie napisanie kodu potrzebnego do wizualizacji  danych:

fig, ax = plt.subplots(figsize=(15, 7))
ax.plot(df['Adj Close'], label='Ceny zamknięcia (Adj Close)', linewidth=1, 
	color='silver', alpha=1)
ax.plot(df['SMA_30'], label='SMA 30', alpha=1, color='violet')
ax.plot(df['SMA_120'], label='SMA 120', alpha=1, color='green')
ax.scatter(df.index, df['Buy Price Signal'], label='Kup', marker='^', 
	color='blue', alpha=1)
ax.scatter(df.index, df['Sell Price Signal'], label='Sprzedaj', marker='v', 
	color='red', alpha=1)
ax.set_title('Apple Inc.:' + " Historia cen z sygnałami kupna i sprzedaży", 
	fontsize=20)
ax.set_ylabel('Cena', fontsize=20)
legend = ax.legend()
ax.grid()
plt.show()

Jeśli chodzi o powyższy kod, to nie będę go ze szczegółami wyjaśniał. Można samemu wydedukować jaki element kodu czemu służy przez manipulowanie parametrami i obserwowanie zachodzących zmian, można też zajrzeć do Internetu. U mnie wygląda to tak:

Ceny akcji są w kolorze srebrnym, to kolor kojarzący mi się z Apple. Na wykresie znajdują się tylko dwa sygnały kupna i jeden sygnał sprzedaży. Ogólna tendencja cen akcji raczej rosnąca, jednak byłaby ona znacznie bardziej zauważalna, ta tendencja, gdybym wziął pod uwagę dane z większej ilości czasu niż rok, również ilość sygnałów kupna i sprzedaży byłaby większa. 

Wiem, bo takie dane też przetworzyłem przez skrypt, natomiast, uwierzcie mi :-) linie i oznaczenia sygnałów mogłyby się "zlewać" ze sobą i wymagać większego skupienia, aby odczytać wykres. Mnie jednak zależało, żeby przykład był bardziej demonstracyjny i na pierwszy rzut oka można by było rozróżnić wszystkie krzywe i z łatwością zauważyć sygnały kupna/sprzedaży.

To na razie wszystko, jeśli chodzi o SMA, przynajmniej na ten moment. Tym trzecim wpisem zamykam tę mini serię i otwieram ten blog: Hello World!

Kolejne wpisy będę dotyczyły już bardziej złożonych projektów, które mam w planach.

Brak komentarzy:

Prześlij komentarz

Analiza sentymentów - wpisy na mediach społecznościowych (podział danych)

Ten wpis zaczniemy od stworzenia DataFrame z danymi treningowymi train_df = pd.read_csv('train.csv', encoding='ISO-8859-1')....