買シグナル:VIX(恐怖指数)定期監視+Gmail通知

NISA投資において、通常は定期購入ですが、このシグナルで市場の荒れに気づき追加発注を行っています。

プログラムの動作フロー

  1. Gmailの設定情報を環境変数から取得。
  2. Yahoo Financeから^VIXの1分ごとの価格データを取得。
  3. 現在の価格を判定し、以下の条件に応じてメールを送信:
    • 20以上: 「価格が20以上になった」通知を送信。
    • 20未満: 「価格が20未満になった」通知を送信。
  4. データ取得後、1時間待機して次のチェックを実行。

事前準備

  1. Gmailのアプリパスワードを取得
  2. 環境変数の設定
    • Linux/Mac:
      export GMAIL_USER="your_email@gmail.com"
      export GMAIL_PASSWORD="your_app_password"

コードのポイント

1. Gmailのセキュリティ管理

  • 環境変数からパスワードを取得:
    GMAIL_USER = os.getenv('GMAIL_USER')
    GMAIL_PASSWORD = os.getenv('GMAIL_PASSWORD')
    • セキュリティを高めるため、Gmailのメールアドレスとパスワードをプログラム内に直接記述せず、環境変数に保存して取得します。
  • 環境変数が未設定の場合のエラー処理:
    if not GMAIL_USER or not GMAIL_PASSWORD:
    raise EnvironmentError("環境変数 'GMAIL_USER' または 'GMAIL_PASSWORD' が設定されていません。")

2. Yahoo Financeからデータ取得

  • yfinanceでリアルタイムの価格を取得:
    data = yf.download(tickers=stock_symbol, period="1d", interval="1m", progress=False)

    latest_price = data['Close'].iloc[-1]

3. メール通知のロジック

  • 価格が20以上になった場合の通知:
    if latest_price >= price_threshold and not price_above_threshold:
    send_email(subject, body)
    price_above_threshold = True
  • 価格が20未満になった場合の通知:
    elif latest_price < price_threshold and price_above_threshold:

    send_email(subject, body)


    price_above_threshold = False

4. 監視間隔

  • データ取得後に1時間(3600秒)待機して次のチェックを実行:
    time.sleep(interval_seconds)

5. エラーハンドリング

  • データ取得中にエラーが発生した場合、エラーメッセージを表示し、監視を継続:
    except Exception as e:

    print(f"データ取得中にエラーが発生しました: {e}")


    time.sleep(interval_seconds)


    continue


実際のプログラムはこちら
ファイル名:vix_alert.py

 

\ 最新情報をチェック /