PythonでMT5で取得した為替データ(closeシリーズのデータ)から移動平均線の値を求めることができます。
移動平均線(Moving Average)とは(ChatGPTより引用)
移動平均線(Moving Average)は、統計学やテクニカル分析の手法の一つであり、データの変動を滑らかに表示するために使用されます。特に、時間の経過とともに変動するデータのトレンドを把握するのに役立ちます。株価や為替レートなどの金融市場分析や、経済指標のトレンド分析に広く利用されています。
移動平均線は、特定の期間内のデータの平均値を取り、その平均値をグラフ上にプロットします。この期間を「移動平均の期間」と呼び、異なる期間の移動平均線を用いることで、短期的な変動や長期的なトレンドを観察することができます。
移動平均線は、トレンドの方向や逆転の兆候を見るために使用され、グラフ上でのクロスオーバーや線の傾きなどが分析の対象となります。一般的に、上向きの移動平均線は上昇トレンドを、下向きの移動平均線は下降トレンドを示唆することがあります。
Python で移動平均線の値を求めるコーディング例
df['MA5'] = df['close'].rolling(5).mean()コードの説明
df[‘close’]:データーフレーム ‘close’の列を選択しています。
rolling(5):’close’列に対して5つのデータ点を窓として移動平均を計算するための rolling メソッドを呼び出しています。これは5期間の移動平均を計算することを意味します。
mean():移動平均を計算するための窓の中での平均を取るメソッドです。
上記を df[‘MA5’]に代入しています。
コーディング例
2024年1月8日の12:00~12:10までのドル円(USDJPY)データを1分単位で取得します。これに対して5期間の移動平均を求めます。
import MetaTrader5 as mt5
import pandas as pd
from datetime import datetime
import pytz
#loginidにはMT5にログインするためのID,Server-NameにはMT5のサーバー名,Passwordにはそのパスワードを入力してください。
if mt5.initialize(login=loginid, server="Server-Name",password="Password") == False:
print (mt5.last_error())
exit()
timezone = pytz.timezone("Etc/UTC")
date_from = datetime(2024, 1, 8, 12,0, tzinfo=timezone) #2024/1/8 12:00
date_to = datetime(2024, 1, 8, 12, 10, tzinfo=timezone) #2024/1/8 12:10
ticks = mt5.copy_rates_range("USDJPY",mt5.TIMEFRAME_M1,date_from,date_to)
mt5.shutdown()
df = pd.DataFrame(ticks)
df['time']=pd.to_datetime(df['time'], unit='s')
df['MA5'] = df['close'].rolling(5).mean()
print(df)実行結果
PS C:\Users\user> & C:/Users/user/AppData/Local/Microsoft/WindowsApps/python3.10.exe c:/Users/user/OneDrive/ドキュメント/python/sample2.py
time open high low close tick_volume spread real_volume MA5
0 2024-01-08 12:00:00 144.231 144.235 144.200 144.230 104 3 0 NaN
1 2024-01-08 12:01:00 144.230 144.260 144.212 144.245 143 3 0 NaN
2 2024-01-08 12:02:00 144.248 144.289 144.248 144.287 159 3 0 NaN
3 2024-01-08 12:03:00 144.287 144.299 144.271 144.279 110 3 0 NaN
4 2024-01-08 12:04:00 144.279 144.311 144.276 144.300 145 3 0 144.2682
5 2024-01-08 12:05:00 144.300 144.300 144.288 144.291 106 3 0 144.2804
6 2024-01-08 12:06:00 144.291 144.320 144.291 144.308 113 3 0 144.2930
7 2024-01-08 12:07:00 144.309 144.314 144.287 144.290 128 3 0 144.2936
8 2024-01-08 12:08:00 144.290 144.313 144.285 144.311 166 3 0 144.3000
9 2024-01-08 12:09:00 144.312 144.314 144.285 144.296 144 3 0 144.2992
10 2024-01-08 12:10:00 144.294 144.308 144.280 144.282 155 3 0 144.2974
無事に移動平均線のデータ(MA5列)が取得できました。
最初の5分間のデータは計算対象外になるため NaN表示されています。

