🧭 あなたに最適なVPSを30秒で無料診断 診断する →

【2026年版】24時間株価・仮想通貨を監視&分析するAIシステムをVPS上に作る

読む前に30秒だけ。用途・予算を選ぶだけで、あなたに最適なVPSがわかります(無料・登録不要) 無料診断 →

【2026年版】24時間株価・仮想通貨を監視&分析するAIシステムをVPS上に作る

最初に結論を言います

VPSに置くべき。自分のPCに置くのはやめた方がいい。

株価や仮想通貨の監視ボットって、「とりあえず自分のPCで動かしてみよう」から始める人が多い。自分もそうだった。でも正直、PCつけっぱなしは精神的に気になるし、何かあったときにリモートデスクトップで入らないといけないから結局手放しにならない。それって「自動化した」とは言えない。

VPSに乗せて初めて「本当に手放した」感覚になれる。月数百円〜1,000円台で動き続けてくれる環境が作れるんだから、ここはケチらなくていい。

もう一つ。このシステムにGPUは一切不要。 LLMはOpenAI APIを叩くだけだから、GPU付きVPSを勧めてくる記事を見かけたら少し疑った方がいい。GPU VPSは月額が跳ね上がる。この用途では完全に過剰スペック。


システム全体の構成

VPS(24時間稼働)
├── price_monitor.py        ← 価格データ取得(yfinance/ccxt)
├── ai_analyzer.py          ← LLMで市場コメント生成(OpenAI API)
├── alert_sender.py         ← Slack/LINE通知送信
└── cron / systemd          ← 定期実行・常駐管理
ツール役割
yfinance株価・ETFデータ取得(Yahoo Finance)
ccxt国内外の仮想通貨取引所API統合ライブラリ
OpenAI API価格変動のAI解説生成
Slack Webhook通知送信先

構成としてはシンプル。Pythonスクリプトが数個あって、それをVPS上で定期実行するだけ。「AIシステム」と聞くと大げさに聞こえるけど、やることは地道なスクリプト管理だったりする。難しくはない。


推奨VPSスペック

項目最小推奨
vCPU1コア2コア
メモリ2GB4GB
SSD20GB50GB
稼働率SLA99.9%99.99%
固定IP必須必須

正直に言うと、メモリ2GBで十分動く。 4GB推奨と書いたけど、監視対象の銘柄数が少なければ2GBで問題ない。最初は安いプランで始めて、重くなってきたらスケールアップする判断でいい。

固定IPだけは絶対に妥協しないでほしい。 取引所のAPIキーにIPホワイトリストを設定するとき、IPが変わるたびに設定し直しが発生する。これが地味に面倒で、セキュリティ上も良くない。固定IPはこの用途では必須条件と思ってください。

月額で計算すると、XServer VPSの2GBプランなら約830円/月 = 1日あたり約27円。コーヒー1杯より安い。

XServer VPS →


Step 1: Python環境と必要ライブラリの準備

# VPSにSSHログイン後
python3 -m venv ~/trading-env
source ~/trading-env/bin/activate

pip install yfinance ccxt openai requests python-dotenv schedule

venv(仮想環境)を作るのは「後で消しやすくするため」でもある。試行錯誤しながら作るときに、環境が汚れていくのが地味にストレスになるから、最初からこの習慣をつけておくと楽。


Step 2: 株価監視スクリプト(yfinance)

#!/usr/bin/env python3
# price_monitor.py

import yfinance as yf
import datetime
import os
from dotenv import load_dotenv

load_dotenv()

WATCHLIST = {
    "日経225 ETF": "1321.T",
    "S&P500 ETF": "SPY",
    "トヨタ":    "7203.T",
    "Apple":     "AAPL",
}

ALERT_THRESHOLD = 0.03  # 3%以上変動でアラート

def check_prices():
    alerts = []
    for name, ticker in WATCHLIST.items():
        stock = yf.Ticker(ticker)
        hist = stock.history(period="2d")

        if len(hist) < 2:
            continue

        prev_close = hist["Close"].iloc[-2]
        current = hist["Close"].iloc[-1]
        change_rate = (current - prev_close) / prev_close

        print(f"{name}: {current:.2f} ({change_rate:+.2%})")

        if abs(change_rate) >= ALERT_THRESHOLD:
            direction = "上昇" if change_rate > 0 else "下落"
            alerts.append(f"⚠️ {name}{change_rate:+.2%} {direction}しています(現在: {current:.2f})")

    return alerts

if __name__ == "__main__":
    alerts = check_prices()
    for a in alerts:
        print(a)

ALERT_THRESHOLD = 0.03(3%)はデフォルトとして書いてあるけど、ここは好みで調整してほしい。仮想通貨なら5〜10%にしないと通知がうるさくなる。逆に株式ETFなら2%でも十分シグナルになる。最初は大きめにしておいて、「この通知多すぎる」と思ったら絞る、でいい。


Step 3: 仮想通貨価格取得(ccxt)

import ccxt

def get_crypto_prices():
    exchange = ccxt.binance()  # bybit, coincheck等も同じ書き方で使える
    symbols = ["BTC/USDT", "ETH/USDT", "SOL/USDT"]

    results = {}
    for symbol in symbols:
        ticker = exchange.fetch_ticker(symbol)
        results[symbol] = {
            "price": ticker["last"],
            "change_24h": ticker["percentage"],
        }
        print(f"{symbol}: ${ticker['last']:,.2f} ({ticker['percentage']:+.2f}%)")

    return results

ccxtの良いところは、Binanceだろうとbybitだろうとcoincheckだろうと、コードがほぼ同じで動くところ。取引所を変えるときはccxt.binance()の部分を書き換えるだけ。最初はBinanceで試して、使い慣れてから他の取引所に移す流れでいいと思う。

さくらのVPS →


Step 4: LLMで市場状況を解説する

from openai import OpenAI

client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])

def generate_market_comment(price_data: dict) -> str:
    summary = "\n".join([
        f"- {symbol}: ${info['price']:,.2f} ({info['change_24h']:+.2f}%)"
        for symbol, info in price_data.items()
    ])

    response = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{
            "role": "user",
            "content": f"以下の仮想通貨価格データをもとに、100字以内で今日の市場状況を日本語でコメントしてください:\n{summary}"
        }]
    )
    return response.choices[0].message.content

モデルはgpt-4o-miniで十分。 「市場コメントを100字で作る」程度の作業に、上位モデルを使う必要はない。コストも全然違う。gpt-4o-miniなら2時間おきに呼び出しても月数十円〜数百円の範囲に収まる。ここに上位モデルを使いたくなる気持ちはわかるけど、まず安いモデルで動かして、「これじゃ物足りない」と感じてから切り替える判断で十分。

繰り返すけど、このLLM呼び出しにGPUは一切関係ない。 APIを叩くだけ。VPSのCPUで余裕で処理できる。


Step 5: Slackへ通知送信

import requests

SLACK_WEBHOOK = os.environ["SLACK_WEBHOOK_URL"]

def send_slack(message: str):
    requests.post(SLACK_WEBHOOK, json={"text": message})

# メイン処理
def main():
    stock_alerts = check_prices()
    crypto_data = get_crypto_prices()
    ai_comment = generate_market_comment(crypto_data)

    message = f"*📊 マーケットアップデート {datetime.date.today()}*\n"
    message += f"🤖 AIコメント: {ai_comment}\n"
    if stock_alerts:
        message += "\n*⚠️ アラート*\n" + "\n".join(stock_alerts)

    send_slack(message)

if __name__ == "__main__":
    main()

Slack Webhookの設定自体は5分もあればできる。「Slack Webhook 設定方法」で検索すれば公式ドキュメントが出てくるのでそちらを参照してほしい。LINEに飛ばしたい場合もLINE Notify(またはLINE Messaging API)に差し替えるだけで、このコードの構造はほぼそのまま使える。


Step 6: systemdで常駐化・cronで定期実行

# crontabで朝9時(市場開始前)と15時半(市場終了後)に実行
crontab -e
0 9 * * 1-5 /home/user/trading-env/bin/python /home/user/price_monitor.py
30 15 * * 1-5 /home/user/trading-env/bin/python /home/user/price_monitor.py
# 仮想通貨は24時間なので2時間おきに実行
0 */2 * * * /home/user/trading-env/bin/python /home/user/price_monitor.py

cronのタイムゾーンにだけ注意してほしい。VPSのデフォルトがUTCになっていると、日本時間で「朝9時実行」のつもりが「夜中に実行」になる。timedatectl set-timezone Asia/Tokyoでタイムゾーンを変えておくか、cronの時刻をUTCで逆算して指定するか、どちらかを最初に確認しておくこと。これで一度ハマると地味に時間を取られる。


A. ccxtを使えば注文の発注も可能です(取引所APIの取引権限キーが必要)。ただし自動売買は予期しない損失リスクがあります。最初は通知のみに留め、実際の注文は手動で行うことを強く推奨します。
A. 環境変数(.envファイル)に保存し、取引所側でIPホワイトリスト制限を必ずかけてください。また「読み取り専用」権限のAPIキーを使えば、万が一漏洩しても資産への直接被害を防げます。
A. 取引所側でポジションは維持されます。VPSの死活監視には稼働率99.9%以上のサービスを選ぶこと、またsystemdの `Restart=always` 設定で自動復帰させることが重要です。

まとめ:あなたの使い方で選ぶ

はっきり書いておきます。「自分のPCで動かす」は選択肢から外していい。 VPS代を惜しむより、PCつけっぱなしの電気代と精神的コストの方が高くつく。

あなたの状況判断
とにかく安く始めたい・使用頻度が低い時間課金のKAGOYAで試す。無料14日間あり
月76時間以上VPSを稼働させる予定XServer VPS(830円固定)の方が安くなる
「毎月いくらか計算したくない」人XServer VPS一択。固定料金は精神的にラク
GPU付きVPSを勧められた断っていい。このシステムにGPUは不要
自動売買まで実装したいまず通知だけで動かしてから考える。焦らない
VPS選びで迷っているさくらのVPSは老舗で安定。初心者でも情報が多い

月額コスト感の目安:

  • XServer VPS 2GBプラン:約830円/月 ≒ 1日27円
  • さくらのVPS 2GBプラン:約880円/月 ≒ 1日29円
  • OpenAI API(gpt-4o-mini、2時間おき呼び出し):月数十円〜数百円

合計しても月1,000〜1,500円以内に収まる構成。24時間監視体制としては破格だと思う。

自動売買まで発展させるかどうかは、まず「通知だけ受け取る」フェーズで動かしてみてから考えれば十分。最初から完璧なシステムを目指す必要はない。これが最終回答じゃないんだから、まず動かしてみてください。

XServer VPS →

さくらのVPS →

あわせて読みたい