AIとファイナンス

AIとファイナンスの架け橋、それがこのブログの目指すところです。兼業投資家向けに、Pythonを駆使して株やFXの分析を「自分で」行えるようになるための情報を提供します。ニューラルネットワークを活用した市場予測から、実証済みの金融理論まで、全てのコードを公開し、誰もが活用できるように!是非色々なコードで遊んでみてください!

【FX】Datetimeオブジェクトのマスター・Timedeltaとは?【テクニカル分析】

こんにちは!今回の記事は前回に引き続きDatetimeオブジェクトの使い方についてです!timedeltaクラスを使用して、日時の差分を表すオブジェクトの作成方法について紹介します。日時データの分析の重要性は前回お伝えしましたが、日数を加算または減算することで、株価や価格の差分を出せるようになります。このことでテクニカル分析を行う上でも様々な利点があります。

特定の期間の平均価格の計算

from datetime import datetime, timedelta
import pandas as pd

# 仮想の株価データフレームを作成
dates = pd.date_range(end=datetime.now(), periods=30, freq='D')
prices = pd.Series([100 + i * 0.5 for i in range(30)], index=dates)

# 過去30日間の平均株価を計算
average_price_last_30_days = prices.mean()
print(f"過去30日間の平均株価: {average_price_last_30_days}")

この例では、pandasライブラリを使用して日付範囲を生成し、仮想の株価データを作成しています。その後、timedeltaを用いて指定した期間内の平均株価を計算しています。

特定の期間の値上がり、値下がりの平均価格の計算

# 前日との価格差分を計算
price_changes = prices.diff()

# 値上がり(正の変動)の平均
average_up = price_changes[price_changes > 0].mean()

# 値下がり(負の変動)の平均
average_down = price_changes[price_changes < 0].mean()

print(f"平均値上がり: {average_up}")
print(f"平均値下がり: {average_down}")

このコードは、pandasdiff()メソッドを使って、日ごとの価格変動を計算します。その後、正の変動(値上がり)と負の変動(値下がり)を分けて、それぞれの平均を求めています。今回は人工的に作ったデータで試しているので値上がり平均は0.5、値下がり平均はnanとなります。

EURUSDの過去データを使って分析!

以下は実際のEURUSDの過去データを使って分析するためのコードです。Yfinanceを使うと4本値と出来高など、全てダウンロードされるので「終値のみを抽出」しています。

import yfinance as yf
from datetime import datetime, timedelta
import pandas as pd

# 今日の日付
today = datetime.now()

# 30日前の日付を計算
thirty_days_ago = today - timedelta(days=30)

# 日付を文字列形式に変換
start_date = thirty_days_ago.strftime('%Y-%m-%d')
end_date = today.strftime('%Y-%m-%d')

# EURUSDのデータを指定した期間で取得
data = yf.download("EURUSD=X", start=start_date, end=end_date, interval="1d")

# 終値のみを抽出
close_prices = data['Close']

# 前日比の変動を計算
price_changes = close_prices.diff()

# 値上がり(正の変動)の平均
average_up = price_changes[price_changes > 0].mean()

# 値下がり(負の変動)の平均
average_down = price_changes[price_changes < 0].mean()

print(f"平均値上がり: {average_up}")
print(f"平均値下がり: {average_down}")

分析結果

分析結果は上の図の通りです。値上がりするときは22pips、値下がり時は23pipsとほとんど変わらないです。もちろんこのデータを見てどう判断するかは私や皆さま、各投資家次第ですが、timedeltaクラスを使うことで、このように具体的な期間を簡単に加算・減算でき、ファイナンスの分析や予測に役立てることができます。次回は、これらの技術をさらに活用するための応用例を見ていきましょう。

以下是非クリックお願いします。

 

参考にしたサイト

docs.python.org