フレッシュアイとFXMacroDataでFXトレードボットを構築する方法
執筆者: FXマクロデータチーム
発行: May 21, 2026
Hermesモデルは,ツールコールワークフローで速く,ローカルで実行しやすく,予測可能であるため,実践的な取引アシスタントに強く適合しています.このガイドでは,マクロサプライズ,ランク取引設定,そして課則的な取引アイデアを出すことができるように,Hermesの推論とFXMacroDataの市場データを組み合わせる軽量FX取引ボットを構築します.
戦略の例は ドル/JPY 活用する アメリカ合衆国インフレほら 連邦準備制度理事会の政策金利ほら 日本銀行 政策金利 FXMacroDataでカバーされる任意のペアに同じフレームワークを再利用できます.
条件
- Python 3.10+のローカル環境です
- からのFXMacroData API キー API管理わかった
- Hermes モデルエンドポイント (ローカルまたはホスト) は,Ollama を通して Hermes のようなものです.
- REST API と Python スクリプトの基本的な知識
依存をインストールする:
pip install requests python-dotenv
ステップ1:ボットの目標とリスクルールを定義
プログラミングの前に 意思決定範囲をロックします
- Trade only one pair (USD/JPY).
- 影響力の大きなマクロシフトに 反応するだけです
- V1で自動的に注文をしない
- 輸出:方向性,信頼度,無効化レベル,位置サイズ提案
ブラックボックスに変える必要がないのです ブラックボットが
Step 2: Pull macro and FX data from FXMacroData
リリースとスポットデータから始めます.
curl "https://fxmacrodata.com/api/v1/announcements/usd/inflation?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/announcements/jpy/policy_rate?api_key=YOUR_API_KEY"
curl "https://fxmacrodata.com/api/v1/forex?base=USD"e=JPY&api_key=YOUR_API_KEY"
検索することもできます リリースカレンダー ほら COT位置付け 緊急の文脈に リスクと位置偏りを追加します
ステップ3: Python で Hermes に対応する信号ループを構築する
下のスクリプトは最近のデータを取得し,コンパクトなコンテキスト・ペイロードを作成し,Hermess に構造化された決定を求めます.厳格な JSON 輸出を必要とするので決定的にしてください.
import os
import json
import requests
from datetime import datetime, timezone
API_BASE = "https://fxmacrodata.com/api/v1"
API_KEY = os.environ["FXMD_API_KEY"]
HERMES_URL = os.environ["HERMES_URL"] # Example: http://localhost:11434/api/generate
HERMES_MODEL = os.environ.get("HERMES_MODEL", "hermes3")
def fxmd_get(path, **params):
r = requests.get(
f"{API_BASE}{path}",
params={"api_key": API_KEY, **params},
timeout=25,
)
r.raise_for_status()
return r.json()
def last_value(payload):
rows = payload.get("data", [])
return rows[-1] if rows else {}
usd_infl = last_value(fxmd_get("/announcements/usd/inflation"))
jpy_rate = last_value(fxmd_get("/announcements/jpy/policy_rate"))
usd_rate = last_value(fxmd_get("/announcements/usd/policy_rate"))
spot = fxmd_get("/forex", base="USD", quote="JPY").get("data", [])
spot_last = spot[-1] if spot else {}
spot_prev = spot[-2] if len(spot) > 1 else spot_last
context = {
"timestamp_utc": datetime.now(timezone.utc).isoformat(),
"pair": "USD/JPY",
"macro": {
"usd_inflation_latest": usd_infl.get("value"),
"usd_policy_rate_latest": usd_rate.get("value"),
"jpy_policy_rate_latest": jpy_rate.get("value"),
},
"price": {
"last": spot_last.get("value"),
"previous": spot_prev.get("value"),
},
"rules": {
"allowed_actions": ["long", "short", "flat"],
"max_risk_per_trade_pct": 0.5,
"require_invalidation_level": True,
},
}
prompt = f"""
You are an FX strategy assistant.
Use this JSON context: {json.dumps(context)}
Return JSON only with keys:
action, confidence, thesis, invalidation, size_pct, next_data_to_watch
Rules:
- No prose outside JSON.
- Confidence between 0 and 1.
- size_pct must be <= 0.5.
"""
hermes_req = {
"model": HERMES_MODEL,
"prompt": prompt,
"stream": False,
}
resp = requests.post(HERMES_URL, json=hermes_req, timeout=45)
resp.raise_for_status()
raw = resp.json().get("response", "{}")
decision = json.loads(raw)
print(json.dumps(decision, indent=2))
なぜこのパターンが機能するのでしょう
- FXMacroDataは構造化された入力を提供するため,Hermesは騒々しいスクレイプテキストではなくクリーンフィールドを理由にします.
- 命令は境界的なスキーマを強制し,出力漂流を減らす.
- リスクの制約は文脈に注入され 暗黙に留まることはありません
ステップ4: イベント認識フィルターを追加
波動性の高い窓の周りに 悪いボット決定が多く起こります
- 予定近さ レベルアップの放出が30分以内に予定されている場合 サイズや力を降ろします
flatわかった - 制度の不一致 マクロバイアスと価格の勢いが 大きく異なる場合 信頼を自動的に低下させる
簡単な参考のために,自分のドキュメントにエンドポイントリンクを使用してください: アメリカ合衆国 非農業の給与ほら アメリカ合衆国 核心PCEほら 日本インフレわかった
ステップ5: 自動実行ではなく 警告に決定を変換
生産では,まず Slack/Telegram に決定を転送する. 十分な先行テストサンプルが確保されるまで,人間の確認は必須である. 実践的な警告形式:
[FX BOT] USD/JPY
Action: LONG
Confidence: 0.72
Thesis: US inflation + sticky core, policy divergence still USD-supportive.
Invalidation: Daily close below 154.20
Suggested Size: 0.35%
Watch Next: US Core PCE (Friday 12:30 UTC)
責任と監査が明確になりながら 研究時間を節約できます
避けるべき 常 に 起き て いる 間違い
- モデルがリスクを動的に制限することを選択します
- 複数のペアを使うと 深く検証できるのです
- 古いデータチェックを無視して
- モデル信頼を 利益の確率として扱う
あなたが作ったもの
You now have a complete v1 architecture for a Hermes-powered FX bot: structured macro + FX ingestion, deterministic model output, and risk-bounded signal generation. Next, extend the same framework to a second pair such as EUR/USD and compare how policy divergence logic differs across regions.
設定を深めたいなら 日々の概要を追加して 香港開店前には 予想される外為影響に マクロサプライズを並べて