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を組み合わせた逆張り戦略のバックテストを紹介します。

