Pythonでゴールデンクロスの情報を1日1回メールで通知するシステムの作成方法

はじめに

ゴールデンクロスは、テクニカル分析の一部であり、株価チャートの移動平均線が上向きに交差する現象を指します。この記事では、Pythonを使用して株価のゴールデンクロス情報を取得し、1日1回メールで通知するシステムを作成する方法を説明します。

必要なライブラリ

このシステムを作成するには、以下のPythonライブラリが必要です。

  • yfinance:株価データを取得するためのライブラリ
  • pandas:データ処理のためのライブラリ
  • smtplib:メール送信のためのライブラリ
  • datetime:日付と時刻の操作のためのライブラリ

手順

  1. 株価データを取得する

    yfinance ライブラリを使用して、指定した銘柄の株価データを取得します。

  2. 移動平均を計算する

    取得した株価データを使用して、短期移動平均と長期移動平均を計算します。

  3. ゴールデンクロスの条件をチェックする

    短期移動平均が長期移動平均を上回った場合、ゴールデンクロスが発生したと判断します。

  4. メールで通知する

    smtplib ライブラリを使用して、ゴールデンクロスが発生した場合にメールで通知します。通知は1日1回行われます。

コード例

import yfinance as yf
import pandas as pd
import smtplib
from datetime import datetime
from email.mime.text import MIMEText

def check_golden_cross(stock_symbol):
# 株価データを取得
data = yf.download(stock_symbol, start="2023-01-01", end=datetime.today().strftime('%Y-%m-%d'))
# 移動平均を計算
data['Short_MA'] = data['Close'].rolling(window=50).mean()
data['Long_MA'] = data['Close'].rolling(window=200).mean()
# ゴールデンクロスの条件をチェック
if data['Short_MA'].iloc[-1] > data['Long_MA'].iloc[-1] and data['Short_MA'].iloc[-2] <= data['Long_MA'].iloc[-2]:
return True
else:
return False

def send_email(subject, body):
# メールの設定
sender_email = "your_email@example.com"
receiver_email = "recipient_email@example.com"
password = "your_email_password"
message = MIMEText(body)
message['Subject'] = subject
message['From'] = sender_email
message['To'] = receiver_email
# メール送信
with smtplib.SMTP_SSL('smtp.example.com', 465) as server:
server.login(sender_email, password)
server.sendmail(sender_email, receiver_email, message.as_string())

def main():
stock_symbol = "AAPL" # 対象の銘柄
subject = "Golden Cross Alert" # メールの件名
if check_golden_cross(stock_symbol):
body = "Golden Cross occurred for " + stock_symbol
send_email(subject, body)

if __name__ == "__main__":
main()

 

おわりに

以上で、Pythonを使用してゴールデンクロスの情報を1日1回メールで通知するシステムの作成手順がわかりました。このシステムを使えば、株価の重要なトレンド変化を見逃すことなく、効率的に投資判断を行うことができます。

 

moun45.hatenablog.com