PythonでドルR円FXのRSIアラートBotを作る【LINE通知で自動化】

自動化・運用

ドル円は毎日動きがあるので、子供が生まれる前は子供が寝た後にチャートを確認するのが習慣でした。でも最近はそれすらできなくて、気づいたら大きく動いていたことが何度かあって。。。せめてRSIが特定の水準に達したらアラートだけ飛ばしてくれるBotを作ることにしました。これがあるだけで張り付かなくていいのでだいぶ精神的に楽です。

なぜRSIアラートを作ろうと思ったか

ドル円FXで失敗するパターンのひとつが「気づいたときにはもう動いていた」というやつです。仕事中や育児中はチャートを見られないので、RSIが売られすぎ・買われすぎの水準に達したときだけ通知が来るようにすれば、大事なタイミングだけ確認できます。完全自動売買ではなく「通知だけ自動」というのが最初のステップとしておすすめです。

必要なライブラリのインストール

pip install yfinance pandas

通知にはLINE Notify(無料)を使います。スマホにLINEが入っていれば、トークンを取得するだけで使えます。LINE Notifyのサイト(notify-bot.line.me)でログインして「トークンを発行する」からトークンを取得します。

RSI計算の実装

import yfinance as yf
import pandas as pd

def calculate_rsi(series, period=14):
    delta = series.diff()
    gain = delta.clip(lower=0)
    loss = (-delta).clip(lower=0)
    avg_gain = gain.rolling(window=period).mean()
    avg_loss = loss.rolling(window=period).mean()
    rs = avg_gain / avg_loss
    return 100 - (100 / (1 + rs))

# ドル円データ取得
df = yf.download("USDJPY=X", period="60d", interval="1h", progress=False)
close = df["Close"].squeeze()
rsi_series = calculate_rsi(close)
current_rsi = float(rsi_series.iloc[-1])
current_price = float(close.iloc[-1])
print(f"ドル円={current_price:.2f} RSI={current_rsi:.1f}")

# 判定
if current_rsi <= 30:
    print("売られすぎシグナル")
elif current_rsi >= 70:
    print("買われすぎシグナル")

LINE Notifyへの通知

上記のコードにLINE通知を追加します。LINE NotifyのAPIトークンを取得したら、以下のように通知を送ります。

import urllib.request
import urllib.parse

def notify_line(token, message):
    data = urllib.parse.urlencode({"message": message}).encode()
    req = urllib.request.Request(
        "https://notify-api.line.me/api/notify",
        data=data,
        headers={"Authorization": "Bearer " + token}
    )
    with urllib.request.urlopen(req) as res:
        return res.status

# RSI判定後に通知
if current_rsi <= 30:
    notify_line(LINE_TOKEN, "ドル円売られすぎ RSI=" + str(round(current_rsi,1)))
elif current_rsi >= 70:
    notify_line(LINE_TOKEN, "ドル円買われすぎ RSI=" + str(round(current_rsi,1)))

定期実行の設定

このスクリプトを1時間ごとに実行するには、Windowsのタスクスケジューラを使うのが一番シンプルです。バッチファイルを作ってタスクスケジューラに登録するだけで、PCが起動している間は自動で動いてくれます。本格運用するならVPS(月500〜1000円くらい)がおすすめです。子供に電源を切られてBotが止まるというトラブルが2回ありました(笑)。

まとめ

ドル円のRSIアラートBotは1〜2時間あれば作れます。「完全自動売買は怖い」という方でも、通知だけなら実害がないので試しやすいと思います。次は通知と一緒にチャート画像も送るようにしたいと考えています。スマホでLINEを見るだけでチャート状況がわかれば、育児中でも瞬時に判断できるので。

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