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.
$25/month 14-day free trial
Start Free Trial
Cara Menggunakan Release Calendar API untuk Jadwal Indikator Fetch image
Share headline card X LinkedIn Email
Download

Implementation

How-To Guides

Cara Menggunakan Release Calendar API untuk Jadwal Indikator Fetch

Berhenti jajak pendapat setiap titik akhir pada timer. Pelajari cara menanyakan kalender rilis FXMacroData untuk menemukan waktu pengumuman yang tepat untuk indikator apa pun, kemudian menjadwalkan panggilan API yang ditargetkan tunggal untuk saat itu di Python dan JavaScript.

Juga tersedia dalam English
Share article X LinkedIn Email

Pada akhir panduan ini Anda akan memiliki penjadwal yang menggunakan produksi FXMacroData release kalender untuk menemukan berikutnya announcement_datetime Untuk indikator yang dipilih, kemudian memanggil pengumuman yang cocok titik akhir tepat ketika cetakan baru harus tersedia.

Persyaratan

  • A Kunci API FXMacroData untuk mata uang non-USD; penjadwalan USD adalah publik
  • Python 3.9+ atau Node.js 18+
  • - Apa? requests paket untuk contoh Python
  • Keterampilan dasar dengan timestamp Unix dan jadwal UTC

Mengapa jadwal bukan jajak pendapat?

Polling setiap beberapa menit sederhana, tetapi membuang permintaan dan memperkenalkan penundaan yang dapat dihindari sekitar detik rilis yang tepat. Endpoint kalender produksi memberi Anda waktu publikasi yang dijadwalkan berikutnya secara langsung, sehingga Anda dapat tidur sampai tepat sebelum acara dan membuat satu permintaan tindak lanjut yang ditargetkan.

Alur kerja inti

  1. Hubungi. /api/v1/calendar/{currency} dengan pilihan indicator filter.
  2. Baca baris berikutnya announcement_datetimeAku tidak tahu.
  3. Tidur sampai sebelum waktu UTC.
  4. Ambil. /api/v1/announcements/{currency}/{indicator}Aku tidak tahu.
  5. Bacalah pengamatan terbaru dari yang kembali data array, lalu jadwalkan acara berikutnya.

Langkah 1 - Memahami respon kalender

Kalender rilis mengembalikan objek JSON dengan data Setiap baris berisi slug rilis dan timestamp UTC yang dijadwalkan.

curl "https://fxmacrodata.com/api/v1/calendar/usd?indicator=inflation"

Bentuk respon:

{
  "currency": "USD",
  "indicator": "inflation",
  "data": [
    {
      "announcement_datetime": 1773077400,
      "release": "inflation"
    }
  ]
}

Untuk mata uang non-USD, tetap rute yang sama dan menambahkan api_key Jika Anda menanyakan jadwal mata uang yang lebih luas tanpa filter indikator, beberapa baris juga dapat mencakup metadata routing seperti endpoint_family atau endpoint_path.


Langkah 2 - Cari time stamp rilis berikutnya

Pembantu di bawah ini meminta kalender produksi untuk satu indikator dan mengembalikan timestamp masa depan pertama.

import time
import requests

BASE = "https://fxmacrodata.com/api/v1"

def next_release(currency: str, indicator: str, api_key: str | None = None) -> float | None:
    url = f"{BASE}/calendar/{currency}"
    params = {"indicator": indicator}
    if api_key:
        params["api_key"] = api_key

    response = requests.get(url, params=params, timeout=10)
    response.raise_for_status()

    now = time.time()
    for row in response.json().get("data", []):
        ts = row.get("announcement_datetime")
        if row.get("release") == indicator and ts and float(ts) > now:
            return float(ts)
    return None

Langkah 3 - Dapatkan data yang dirilis pada waktu yang tepat

Ketika timestamp tiba, memanggil pengumuman yang cocok titik akhir dan membaca pengamatan terbaru dari kembali data array.

def wait_and_fetch(currency: str, indicator: str, api_key: str | None = None) -> dict | None:
    release_ts = next_release(currency, indicator, api_key)
    if release_ts is None:
        print(f"No upcoming release found for {currency}/{indicator}.")
        return None

    wake_at = release_ts - 2
    time.sleep(max(0.0, wake_at - time.time()))

    url = f"{BASE}/announcements/{currency}/{indicator}"
    params = {"api_key": api_key} if api_key else {}
    response = requests.get(url, params=params, timeout=10)
    response.raise_for_status()
    return response.json()
Tips: bangun 1-5 detik lebih awal biasanya cukup untuk menyerap kesesatan jam dan latensi jaringan tanpa kembali ke jajak pendapat terus menerus.

Langkah 4 - Membangun loop yang terus menerus

import time
import requests

BASE = "https://fxmacrodata.com/api/v1"
API_KEY = None
CURRENCY = "usd"
INDICATOR = "inflation"

def on_release(payload: dict) -> None:
    rows = payload.get("data", [])
    latest = rows[-1] if rows else {}
    print(
        "New release:",
        latest.get("date"),
        "value=", latest.get("val"),
        "announced_at=", latest.get("announcement_datetime"),
    )

while True:
    release_ts = next_release(CURRENCY, INDICATOR, API_KEY)
    if release_ts is None:
        print("No release found in the current calendar window. Retrying in 24 hours.")
        time.sleep(86_400)
        continue

    sleep_seconds = max(0.0, release_ts - 2 - time.time())
    print(f"Next {CURRENCY.upper()} {INDICATOR} release in {sleep_seconds / 3600:.2f}h")
    time.sleep(sleep_seconds)

    payload = wait_and_fetch(CURRENCY, INDICATOR, API_KEY)
    if payload:
        on_release(payload)

    time.sleep(5)

Jeda singkat setelah rilis memberi sistem waktu untuk memutar acara yang dijadwalkan ke depan sebelum kueri kalender berikutnya.


Langkah 5 - Skala ke beberapa jam

Untuk mengikuti beberapa indikator, jalankan satu penjadwal per pasangan. Gunakan slug indikator kanonik di seluruh sehingga kalender dan rute pengumuman tetap sejajar.

WATCHES = [
    {"currency": "usd", "indicator": "inflation"},
    {"currency": "usd", "indicator": "gdp"},
    {"currency": "aud", "indicator": "policy_rate"},
    {"currency": "gbp", "indicator": "unemployment"},
]

Untuk rincian lapangan tentang pengambilan tindak lanjut, lihat Tingkat kebijakan AUDAku akan pergi. Pengangguran GBP, dan sisanya dari indeks dokumennya.


Langkah 6 - JavaScript / Node.js varian

Pola yang sama diterjemahkan langsung ke Node.js: query kalender dengan filter indikator, tidur sampai timestamp kembali, kemudian mengambil rute pengumuman yang cocok.

const BASE = "https://fxmacrodata.com/api/v1";

async function nextRelease(currency, indicator, apiKey) {
  const url = new URL(`${BASE}/calendar/${currency}`);
  url.searchParams.set("indicator", indicator);
  if (apiKey) url.searchParams.set("api_key", apiKey);

  const response = await fetch(url);
  if (!response.ok) throw new Error(`Calendar request failed: ${response.status}`);

  const payload = await response.json();
  const now = Date.now() / 1000;
  return payload.data.find((row) => row.release === indicator && row.announcement_datetime > now) ?? null;
}

async function fetchAnnouncement(currency, indicator, apiKey) {
  const url = new URL(`${BASE}/announcements/${currency}/${indicator}`);
  if (apiKey) url.searchParams.set("api_key", apiKey);

  const response = await fetch(url);
  if (!response.ok) throw new Error(`Announcement request failed: ${response.status}`);
  return response.json();
}

Jika Anda perlu mendukung antrian, cron worker, atau timer serverless, tetap pola dua langkah yang sama: kalender untuk waktu, pengumuman untuk nilai.

Blogroll

AI Answer-Ready

Key Facts

Page
How To Schedule With Release Calendar
Section
Articles
Canonical URL
https://fxmacrodata.com/id/articles/how-to-schedule-with-release-calendar
Source
FXMacroData editorial and official publisher references
Last Updated
2026-06-15 11:01 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 this page about? This page explains How To Schedule With Release Calendar with directly usable context for trading, research, and API workflows.

What source should be cited? Use the canonical URL and the listed source field; cite official publisher references when available.

How fresh is this content? The last updated value above reflects the page metadata or latest available data timestamp.

Can this be used in AI assistants? Yes. This section is intentionally structured for retrieval and citation in chat assistants.

Prompt Packs

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