【2026年版】Vibe Codingで作るPython自動売買BOT入門 ─ ChatGPT × Claudeで始めるアルゴトレード

AI×自動売買

2026年、生成AIを活用した「Vibe Coding(バイブコーディング)」が個人投資家の間で急速に広がっています。ChatGPTやClaudeに自然言語でロジックを伝えるだけで、Pythonの自動売買BOTがスラスラと書ける時代になりました。本記事では、Vibe Codingで作る最小構成の自動売買BOTを実例つきで紹介します。

Vibe Codingとは?

Vibe Codingとは、コードを1行ずつ書くのではなく、生成AIに「こんな動作をするコードが欲しい」と”雰囲気”で依頼して、AIにコードを生成させながら対話的に開発を進めるスタイルのことです。アルゴトレードは仕様が明確(指標→シグナル→注文)なため、AIが非常に得意とする領域でもあります。

Vibe Codingが向いている場面

たとえば「ゴールデンクロスで買い、デッドクロスで売る」「RSIが30を下回ったらエントリー」のように、ルールがシンプルでバックテストで検証しやすい戦略は、Vibe Codingで一気にプロトタイプを作れます。逆に、ニュース解釈や板情報の解析など、暗黙知が多い領域はAIだけに任せると事故りやすいので注意です。

最小構成の自動売買BOTを作る

ここではyfinanceで価格を取得し、移動平均線のゴールデンクロスを検知してシグナルを出すPythonコードを示します。AIに「移動平均クロスでシグナルを出すBOTの雛形を書いて」と依頼すれば、下記のような骨組みを返してくれます。

import yfinance as yf
import pandas as pd

def fetch_price(symbol="7203.T", period="6mo"):
    df = yf.download(symbol, period=period, interval="1d", progress=False)
    return df

def generate_signal(df, short=5, long=25):
    df["SMA_S"] = df["Close"].rolling(short).mean()
    df["SMA_L"] = df["Close"].rolling(long).mean()
    df["signal"] = 0
    df.loc[df["SMA_S"] > df["SMA_L"], "signal"] = 1
    df["position"] = df["signal"].diff()
    return df

if __name__ == "__main__":
    df = fetch_price("7203.T")
    df = generate_signal(df)
    latest = df.iloc[-1]
    if latest["position"] == 1:
        print("BUY signal!")
    elif latest["position"] == -1:
        print("SELL signal!")
    else:
        print("No signal")

Vibe Codingの注意点

AIが生成するコードはあくまで「最もよくある実装」を返してきます。そのため、本番運用前に必ず以下を自分で確認しましょう。

  • 未来データのリーク(look-ahead bias)が無いか
  • 手数料・スリッページがバックテストに含まれているか
  • シグナル発生時刻と約定時刻のズレを考慮しているか
  • API認証情報がコードに直接書き込まれていないか

まとめ

Vibe Codingは、アルゴトレード初心者にとって「とりあえず動くもの」を手早く作る最高の入り口です。AIで雛形を作り、自分でロジックを精査し、バックテストで検証する。この三段ステップで、無理なく自動売買の世界に踏み込んでみましょう。次の記事ではRSIとMACDを組み合わせた逆張り戦略のバックテストを紹介します。

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