algo-trading について
algo-tradingは、市場データやブローカーAPIを使った戦略取引を自動化するOpenClawスキルです。過去データの分析、バックテスト、ライブ注文に対応し、指標やリスク管理、サンドボックスでのテスト例も含みます。
主な機能
- 01リアルタイムおよび過去の市場データ取得
- 02指標に基づく取引戦略の実行
- 03過去データを使った戦略のバックテスト
- 04ブローカーAPI経由の注文
- 05ストップロス制御とサンドボックステスト
活用シーン
- 01過去価格で移動平均戦略を比較
- 02ライブ取引前にRSIシグナルを検証
- 03生成シグナルに基づくブローカー注文
- 04サンドボックスで取引をシミュレーション
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ alphaonedev/ openclaw-graph --skill algo-tradingインストール後、Claude Code で/algo-tradingを入力して読み込まれたか確認します。
詳細
アルゴリズム取引
目的
このスキルは、定量モデルを金融 API と連携し、事前に定義された戦略に基づいて売買注文を実行することで、アルゴリズム取引を自動化します。市場データを処理し、バックテストを実行し、リアルタイム取引に対応することで、金融市場における人手の介入を最小限に抑えます。
使用する場面
高頻度取引、ポートフォリオ最適化、または変動の激しい市場での戦略のバックテストに、このスキルを使用します。特に株式、外国為替、暗号資産で、移動平均や RSI などの指標に基づいて取引を自動化し、感情に左右される判断を減らして効率を高めたい場合に適用してください。
主な機能
/query?function=TIME_SERIES_DAILYなどのエンドポイントを使用して、Alpha Vantage や Yahoo Finance などの API からリアルタイムまたは過去のデータを取得します。- 組み込み関数(例:
strategy.run('MA_Crossover', params))を使って、移動平均クロスオーバーや平均回帰などの戦略を実装します。 backtest --data CSV_FILE --strategy STRATEGY_NAMEなどのコマンドを使って、シャープレシオなどの指標で過去のデータに対するモデルのバックテストを行います。- ブローカー API 経由で取引を実行します。Alpaca(例:POST /v2/orders)や Robinhood との連携をサポートし、損切りなどのリスク管理機能を備えています。
- NumPy などのライブラリを使ってデータを分析します。例:2 行で RSI を計算します:
rsi = talib.RSI(close, timeperiod=14); signals = np.where(rsi > 70, 'sell', 'buy')。
使用パターン
このスキルを使用するには、まず認証用の環境変数を設定します(例:export ALPHA_VANTAGE_API_KEY=$SERVICE_API_KEY)。コードで import openclaw; oc = openclaw.Skill('algo-trading') を使ってスキルを初期化します。CLI では、openclaw algo-trading init --config config.json を実行して戦略ファイルを読み込みます。スクリプトでは、oc.execute_strategy('MA_Crossover', symbols=['AAPL'], timeframe='1d') のように戦略を呼び出します。エラーに強くするため、呼び出しは必ず try-except ブロックで囲んでください。リアルタイム取引を行うには、oc.run_live('--broker alpaca --key $ALPACA_KEY') のようにフラグを有効にします。
一般的なコマンド/API
- CLI コマンド:
openclaw algo-trading run --strategy MA_Crossover --symbols AAPL,GOOG --timeframe 1hを実行して、指定した株式に対して戦略を実行します。 - API エンドポイント:GET https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&apikey=$SERVICE_API_KEY で、日中データを取得します。
- コードスニペット:
import openclaw oc = openclaw.Skill('algo-trading') data = oc.fetch_data('AAPL', '1d') # Fetches daily data signals = oc.analyze_strategy('MA_Crossover', data) - 設定形式:戦略には JSON を使用します(例:{"strategy": "MA_Crossover", "params": {"short_window": 50, "long_window": 200}, "symbols": ["AAPL"]})。
openclaw algo-trading load-config path/to/config.jsonを使って読み込みます。 - 別のコマンド:
openclaw algo-trading backtest --file historical.csv --strategy RSI_Overbought --iterations 100を実行してシミュレーションを行います。 - API 呼び出しの例:注文を発注するには、本文に {"symbol": "AAPL", "qty": 10, "side": "buy", "type": "market"} を指定して POST https://api.alpaca.markets/v2/orders を呼び出します。認証には $ALPACA_KEY ヘッダーを使用します。
連携に関する注意事項
openclaw add-skill algo-trading を使って、OpenClaw エージェントにこのスキルを追加します。外部 API では、export BROKER_API_KEY=$SERVICE_API_KEY のような環境変数で認証情報を設定し、コード内で oc.set_auth('alpaca', os.environ['BROKER_API_KEY']) のように使用します。データパイプラインに互換性があることを確認します。たとえば、分析用に API のレスポンスを Pandas DataFrame に変換します。Webhook では、oc.register_webhook('/triggers', lambda event: oc.execute_strategy('event_strategy')) のようにコールバックを設定します。実際の取引を行わずにシミュレーションできるよう、--sandbox true などのフラグを使い、まずサンドボックス環境で連携をテストしてください。
エラー処理
API エラーは、必ず呼び出しを try-except で囲んで確認してください。例:
try:
response = oc.fetch_data('AAPL', '1d')
except APIError as e:
print(f"API Error: {e.code} - {e.message}") # Handles 429 for rate limits
再試行を実装して、レート制限などの一般的な問題に対処してください。oc.retry_on_error(call_func, max_retries=3) を使用します。無効な設定については、openclaw algo-trading validate-config config.json で検証してください。「Missing param: short_window」などのエラーが返されます。監査用に、すべてのエラーをタイムスタンプ付きで記録してください。例:oc.log_error('Trade failed: insufficient funds')。認証に失敗した場合は、環境変数を確認するよう案内してください。例:$SERVICE_API_KEY が設定されていることを確認します。
具体的な使用例
-
移動平均戦略のバックテスト:過去のデータを読み込み、バックテストを実行します。コマンド:
openclaw algo-trading backtest --file aapl_historical.csv --strategy MA_Crossover。コード例:oc = openclaw.Skill('algo-trading') data = oc.load_data('aapl_historical.csv') results = oc.backtest_strategy('MA_Crossover', data) print(results['sharpe_ratio']) # Outputs e.g., 1.2これにより、実運用の前に過去のパフォーマンスを分析して戦略を改善できます。
-
RSI シグナルによるライブ取引の実行:リアルタイムデータを取得し、シグナルを生成して注文を出します。コマンド:
openclaw algo-trading run --strategy RSI_Overbought --symbols TSLA --broker alpaca。コード例:oc = openclaw.Skill('algo-trading') rsi_data = oc.fetch_data('TSLA', '1m') signal = oc.analyze_strategy('RSI_Overbought', rsi_data) if signal == 'sell': oc.execute_trade('TSLA', 'sell', 5) # Sells 5 sharesこれにより、ライブ API 呼び出しを使用して RSI が 70 を超えたときに売却する処理を自動化できます。
グラフ上の関係
- 依存先:financial-data-fetcher(市場データの取得用)
- 関連:risk-analysis(取引リスクの評価用)
- 競合:manual-trading(自動化を重視するため)
- 強化:portfolio-management(自動化戦略を追加)