Opublikowano:

Aktualizacja:

3. Obliczanie średnich kroczących.

Średnia krocząca, nazywana również średnią ruchomą dla wartości ceny jest jednym z najbardziej podstawowych wskaźników rynku. W praktyce wykorzystuje się dwie średnie ruchome – “wolną” oraz “szybką”. W wolnej średniej kroczącej uśrednia się wartości z dłuższego okresu czasu np. z 13 świeczek, natomiast szybka średnia krocząca obliczana jest z krótszego okresu czasu niż wolna (np. z 3 świeczek). Jeśli cena oscyluje, średnia szybka będzie raz wyższa od średniej wolnej a raz niższa. 

Podobnie jak w poprzednich częściach importujemy dane historyczne. Korzystamy ze 100 ostatnich świeczek:

				
					import pandas as pd
import plotly.graph_objects as go
df=pd.read_csv('/content/drive/My Drive/dane_historyczne/dax.csv') #import danych do zmiennej df
df2=df.drop(['Wolumen'], axis=1) #usunięcie kolumny "Wolumen" i zapis do nowej zmiennej df2
df2=df2[-100:] #nadpisanie w zmiennej df2 stu ostatnich świeczek
df2
				
			

W tym przykładzie obliczona zostanie wykładnicza średnia krocząca EWM wolna z 13 świeczek oraz szybka z 3 świeczek. Dane są zapisane w nowych dwóch kolumnach o nazwie “sr1” oraz “sr2”. Średnie obliczane są dla wartości ceny odpowiadającej zamknięcie świeczki. W kolejnym kroku usuwamy 13 pierwszych świeczek – pozostanie nam 87 świeczek (ponieważ nie została dla nich obliczona średnia dla całego okresu uśredniania). Dodatkowo można zresetować indeks struktury danych, aby rozpoczynał się od zera. 

				
					l_usrednien_H=13 #ilość świeczek do obliczenia średniej wolnej
l_usrednien_L=3 #ilość świeczek do obliczenia średniej szybkiej
df2['sr1'] =df2['Zamkniecie'].ewm(span=l_usrednien_H, adjust=False).mean() #obliczenie średniej wolnej
df2['sr2'] =df2['Zamkniecie'].ewm(span=l_usrednien_L, adjust=False).mean() #obliczenie średniej szybkiej
df3=df2[l_usrednien_H:] #usunięcie świeczek początkowych, dla których nie została obliczona średnia wolna i zapis w nowej zmiennej df3
df3 = df3.reset_index(drop=True) #reset indeksu dla struktury danych
df3
				
			

W celu narysowania obliczonych średnich ruchomych na wykresie wpisujemy poniższy kod:

				
					fig = go.Figure(data=[go.Candlestick(x=df3.index,
                open=df3['Otwarcie'],
                high=df3['Najwyzszy'],
                low=df3['Najnizszy'],
                close=df3['Zamkniecie'])])
fig.add_trace(go.Scatter(x=df3.index, y=df3['sr1'],name='sr1'))
fig.add_trace(go.Scatter(x=df3.index, y=df3['sr2'],name='sr2'))
fig.show()
				
			

Jeśli zielona krzywa (średnia szybka) jest nad czerwoną (średnia wolna), rynek jest w fazie wzrostowej, natomiast gdy jest odwrotnie, rynek jest w fazie spadkowej.  

© 2025 All Rights Reserved.

Kopiowanie wszystkich kodów tylko dla użytkowników PREMIUM.