見出し画像

【情報収集】簡易株価監視ツール サンプルコード

・業務効率化には何すればいいのかな?
・Pythonで自動化ツールを作成できると聞くけど、具体的に何が作れるの?
・自動化のアイデアが出てこない

こんな悩みを抱えている人に向けて、Pythonで作れる自動化ツールを解説しています。

情報収集のツールについて、こちらの記事で紹介しています。
 ⇒【Webマーケティング】Pythonで作れる自動化ツールの具体例アイデア11選【業務効率化】

本記事では、簡易株価監視ツールのサンプルコードを公開しています。

サンプルコードは、自分で作成するのが難しい方や、ツール作成の手間を減らしたい方にお勧めです。ぜひご活用ください。



アイデア「簡易株価監視ツール」

概要

指定した銘柄の株価をリアルタイムで監視し、閾値を超えた際に通知します。

導入メリット

市場の動きに迅速に対応でき、投資判断の手助けをします。

ツール機能

ユーザーが設定した銘柄の株価を定期的にチェックし、設定した価格範囲を超えた場合に通知します。

必要技術

yfinance:株価情報を取得

処理フロー

  1. 監視対象の銘柄と価格閾値をユーザーから入力受け取り

  2. 定期的に指定されたAPIから株価情報を取得

  3. 取得した株価が設定された価格範囲を超えたか確認

  4. 閾値を超えた場合、ユーザーに通知

  5. 株価情報と通知履歴を記録


注意事項

著作権について

本ソースコードの著作権は、販売者に帰属します。
修正や改変は自由に行えますが、無断での複製、配布は法律で禁止されています。

ライセンスについて

本ソースコードは、個人利用及び商用利用が可能です。ただし、再販売や、本ソースコードを基にした派生作品の販売は禁止します。

返金について

デジタルコンテンツの性質上、購入後の返品や返金は原則として受け付けておりません。

使用上の免責事項

本ソースコードは予告なく変更や修正を行う場合があります。
本ソースコードの動作を保証するものではありません。
本ソースコードの使用から生じたいかなる直接的または間接的な損害に対しても、販売者は責任を負いません。
動作の不具合については、購入者自身の責任で対処してください。

サポートについて

本ソースコードに関するサポートは行っておりません。バグ報告や質問への対応は致しかねます。


ソースコード

import yfinance as yf
import time
import json
import os

# 設定の初期化
config = {
    "ticker": "",
    "lower_threshold": 0.0,
    "upper_threshold": 0.0,
    "check_interval": 60,  # チェック間隔(秒)
    "log_file": "stock_monitor_log.json"
}

def initialize_config():
    config["ticker"] = input("監視する銘柄のティッカーシンボルを入力してください: ")
    config["lower_threshold"] = float(input("下限価格を入力してください: "))
    config["upper_threshold"] = float(input("上限価格を入力してください: "))
    config["check_interval"] = int(input("チェック間隔(秒)を入力してください: "))

def get_current_price(ticker):
    stock = yf.Ticker(ticker)
    data = stock.history(interval="1m", period="1d")
    if data.empty:
        raise ValueError(f"株価データを取得できませんでした: {ticker}")
    return data["Close"].iloc[-1]

def log_notification(ticker, price):
    log_entry = {
        "ticker": ticker,
        "price": price,
        "time": time.strftime("%Y-%m-%d %H:%M:%S")
    }
    if os.path.exists(config["log_file"]):
        with open(config["log_file"], "r") as f:
            log_data = json.load(f)
    else:
        log_data = []

    log_data.append(log_entry)

    with open(config["log_file"], "w") as f:
        json.dump(log_data, f, indent=4)

def notify_user(ticker, price, threshold_type):
    print(f"通知: {ticker}の株価が{threshold_type}閾値を超えました。現在の価格: {price}")
    log_notification(ticker, price)

def monitor_stock():
    while True:
        try:
            current_price = get_current_price(config["ticker"])
            print(f"現在の価格: {current_price}")

            if current_price < config["lower_threshold"]:
                notify_user(config["ticker"], current_price, "下限")
            elif current_price > config["upper_threshold"]:
                notify_user(config["ticker"], current_price, "上限")
        
        except Exception as e:
            print(f"エラーが発生しました: {e}")

        time.sleep(config["check_interval"])

# メイン処理
def main():
    initialize_config()
    monitor_stock()

if __name__ == "__main__":
    main()

最後まで読んでいただき、ありがとうございました!
参考のなったと思っていただけたら、
♡スキを押していただけると嬉しいです。

今後もサンプルコードを紹介する予定なので、
関心のある方は是非アカウントのフォローをお願いします!

この記事が気に入ったらサポートをしてみませんか?