Live release feed
Sub-second macro releases for FX backtests
Point-in-time history
Official CPI, jobs, GDP, and central-bank events with point-in-time history.
USD 25/month 14-day free trial
Start Free Trial
Cara Membangun Robot Trading FX dengan Hermes dan FXMacroData image
Share headline card X LinkedIn Email
Download

Implementation

How-To Guides

Cara Membangun Robot Trading FX dengan Hermes dan FXMacroData

Bangun robot perdagangan FX praktis dengan model Hermes dan FXMacroData. Pelajari cara mengkabel rilis makro, data spot FX, dan filter risiko berbasis aturan ke dalam loop sinyal otomatis yang dapat Anda jalankan secara lokal.

Juga tersedia dalam English
Share article X LinkedIn Email

Cara Membangun Robot Trading FX dengan Hermes dan FXMacroData

Penulis: Tim FXMacroData
Diterbitkan: 21 Mei 2026

Model Hermes sangat cocok untuk asisten perdagangan praktis karena mereka cepat, mudah dijalankan secara lokal, dan dapat diprediksi dalam alur kerja panggilan alat.

Strategi contoh berfokus pada USD/JPY dan penggunaan Inflasi ASAku akan pergi. Federal Reserve kebijakan suku bunga, dan Bank of Japan kebijakan suku bunga Anda dapat menggunakan kembali kerangka kerja yang sama untuk pasangan yang dicakup oleh FXMacroData.


Persyaratan

  • Lingkungan Python 3.10+ lokal.
  • Kunci API FXMacroData dari Manajemen APIAku tidak tahu.
  • Sebuah model Hermes endpoint (lokal atau hosted), seperti Hermes via Ollama.
  • Keterampilan dasar dengan API REST dan skrip Python.

Menginstal ketergantungan:

pip install requests python-dotenv

Langkah 1: Tentukan tujuan bot dan aturan risiko

Sebelum kode, kunci ruang lingkup keputusan.

  • Perdagangan hanya satu pasangan (USD/JPY).
  • Reaksi hanya pada perubahan makro berdampak tinggi.
  • Jangan pernah menempatkan pesanan langsung secara otomatis di V1.
  • Output: arah, keandalan, tingkat invalidasi, dan saran ukuran posisi.

Ini membuat bot pertama berguna tanpa mengubahnya menjadi kotak hitam.


Langkah 2: Mengambil data makro dan FX dari FXMacroData

Gunakan API dengan query-parameter auth. Mulai dengan rilis dan data spot.

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&quote=JPY&api_key=YOUR_API_KEY"

Anda juga bisa menanyakan Kalender rilis Dan Posisi COT untuk menambahkan risiko peristiwa dan bias posisi ke konteks cepat Anda.


Langkah 3: Membangun loop sinyal yang kompatibel dengan Hermes di Python

Skrip di bawah ini mengambil data terbaru, membuat muatan konteks yang kompak, dan meminta Hermes untuk keputusan terstruktur.

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))

Mengapa pola ini bekerja:

  • FXMacroData menyediakan input terstruktur, sehingga Hermes alasan atas bidang bersih bukan suara keras teks yang digaruk.
  • Tanda perintah memberlakukan skema terbatas, mengurangi drift output.
  • Keterbatasan risiko disuntik ke dalam konteks, tidak dibiarkan tersirat.

Langkah 4: Tambahkan filter event-aware

Sebagian besar keputusan bot yang buruk terjadi di sekitar jendela volatilitas tinggi.

  • Dekat kalender: Jika pelepasan tingkat atas terjadi dalam waktu 30 menit, menurunkan ukuran atau kekuatan flatAku tidak tahu.
  • Ketidaksetujuan Regime: Jika bias makro dan momentum harga sangat berbeda, mengurangi kepercayaan secara otomatis.

Gunakan tautan titik akhir di dokumen Anda sendiri untuk referensi cepat: US Non-Land RentalAku akan pergi. PCE inti AS, dan Inflasi JepangAku tidak tahu.


Langkah 5: Ubah keputusan menjadi peringatan, bukan eksekusi otomatis

Dalam produksi, keputusan diarahkan ke Slack/Telegram terlebih dahulu. Konfirmasi manusia harus tetap wajib sampai Anda memiliki cukup sampel yang diuji ke depan. Format peringatan praktis:

[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)

Hal ini menjaga akuntabilitas dan auditabilitas jelas sementara masih menghemat waktu penelitian.


Kesalahan umum yang harus dihindari

  • Membiarkan model memilih batas risiko secara dinamis.
  • Menggunakan terlalu banyak pasangan sebelum memvalidasi satu pasangan secara mendalam.
  • mengabaikan data yang sudah usang di pipa Anda.
  • Mengobati model kepercayaan sebagai probabilitas keuntungan.
Catatan pelaksanaan: Perbaiki versi Hermes dan versi logika risiko Anda secara terpisah.

Apa yang kau bangun

Anda sekarang memiliki arsitektur v1 lengkap untuk bot FX bertenaga Hermes: makro terstruktur + konsumsi FX, output model deterministik, dan generasi sinyal yang terbatas pada risiko.

Jika Anda ingin memperdalam pengaturan, tambahkan pekerjaan ringkasan harian yang peringkat kejutan makro teratas dan memetakan mereka untuk kemungkinan dampak FX sebelum London dibuka.

Blogroll

AI Answer-Ready

Key Facts

Page
How To Build An FX Trading Bot With Hermes And FXmacrodata
Section
Articles
Canonical URL
https://fxmacrodata.com/id/articles/how-to-build-an-fx-trading-bot-with-hermes-and-fxmacrodata
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 09:39 UTC

Provenance And Trust

Cite the canonical URL and source field above. Where available, this page maps to official publisher releases and timestamped updates.

Quick Q&A

What is the main point of How to Build an FX Trading Bot with Hermes and FXMacroData? Build a Hermes-powered FX research bot that turns FXMacroData macro releases, USD/JPY spot context, strict JSON contracts, and hard risk gates into alert-only trade ideas.

How can traders use this with FXMacroData? Use the article context alongside FXMacroData dashboards, indicator docs, release calendars, and API endpoints to structure macro research and event-risk workflows.

Can an AI assistant use this topic? Yes. FXMacroData exposes ChatGPT, MCP, OpenAPI, llms.txt, and API documentation surfaces so AI assistants can retrieve the relevant macro data and cite canonical pages.

Prompt Packs

Use these in ChatGPT, Claude, Gemini, Mistral, Perplexity, or Grok for consistent source-aware outputs.