PythonでMT5から取得した為替データの移動平均線(Moving Average)の値を求める

PythonMT5連携

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表示されています。

タイトルとURLをコピーしました