byma について
bymaは、BYMAの公開APIからアルゼンチン市場データを取得するコマンドラインスキルです。API認証なしで、銘柄パネル、価格履歴、債券情報を扱えます。
主な機能
- 01株式、CEDEAR、債券パネルの取得
- 02レポ取引とオプションのデータ取得
- 03日次・週次・月次OHLCV履歴の取得
- 04債券の技術情報の検索
活用シーン
- 01BYMA銘柄の価格や取引項目の確認
- 02銘柄や指数の価格履歴の取得
- 03債券の満期、償還条件、発行体の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gauss314/ skills --skill bymaインストール後、Claude Code で/bymaを入力して読み込まれたか確認します。
同梱ファイルreferences/REFERENCE.mdscripts/fetch_byma.py
詳細
BYMA — Bolsas y Mercados Argentinos
BYMAから市場データを取得するスキルです。
公開マーケットデータ API(open.bymadata.com.ar)を使用します。API キーも認証も不要です。
BYMAはアルゼンチンの主要な証券取引所(Mervalの後継)で、以下の商品が取引されています。
- 主要株式(MERVALの20銘柄で構成されるパネル)。
- CEDEAR(決済区分2種類を合わせて約1143銘柄)。
- 国債+LECAP+BONCAP(6種類のバリエーションを合わせて約104銘柄)。
- 社債(ON)(約2117銘柄)。
- SENEBI ON(相対取引セグメント、約3160銘柄)。
- レポ取引(133銘柄、形式は
DOLAR-DDMM-U-CT-USD)。 - オプション(権利行使価格、OI、満期を含む約429銘柄)。
- 指数:S&P MERVAL(
M)、BURCAP(G)。 - すべての商品の日次/週次/月次 OHLCV 履歴。
- 債券の技術情報(償還方式、ステップアップ利息、ISIN、適用法、発行体)。
⚠️ 法的注意事項
- BYMAの公開APIであり、公式ドキュメントはありません。エンドポイントは予告なく変更される場合があります。
- BYMAの利用規約を遵守してください。1秒あたり1リクエストを超えないでください。
- データは遅延データです(アルゼンチン市場で通常約15分)。
- 商用で集中的に使用する場合は、BYMAに連絡して公式ライセンスを取得してください。
🔒 SSL証明書に関する注意
BYMAのSSL証明書には、Pythonの標準 certifi バンドルに含まれていない中間CAが使用されています。そのため、以下の問題が発生します。
SSLError: CERTIFICATE_VERIFY_FAILED
このスクリプトでは verify=False を使用します。接続は引き続きTLSで暗号化されますが、証明書チェーンの検証は省略されます。これは、BYMAの公開ライブラリ(pyhomebroker、bymadataなど)で一般的に使われている方法です。
verify=False を使いたくない場合は、BYMAの中間証明書をシステムのトラストストアにインストールできます。
スクリプト
| スクリプト | 説明 |
|---|---|
| fetch_byma.py | メインスクリプト:利用可能なすべてのエンドポイント |
クイックスタート
# ── PANELES (POST) ────────────────────────────────────────────────────
# Panel lideres: 20 acciones MERVAL x 2 settlements (40 items)
py scripts/fetch_byma.py panel leading-equity
py scripts/fetch_byma.py panel leading-equity --t0 # solo CI (T+0)
py scripts/fetch_byma.py panel leading-equity --t1 # solo 24hs (T+1)
# Panel CEDEARs (~2000 items, lista directa)
py scripts/fetch_byma.py panel cedears
# Panel bonos publicos (1018 items, paginado a 189 por defecto)
py scripts/fetch_byma.py panel public-bonds
py scripts/fetch_byma.py panel public-bonds --all # trae los 1018 en una llamada
# Panel ON corporativas (~2117 items, lista directa)
py scripts/fetch_byma.py panel on
# Panel cauciones (~133 items)
py scripts/fetch_byma.py panel cauciones
# Panel SENEBI ON (3160 items, paginado)
py scripts/fetch_byma.py panel senebi-on
py scripts/fetch_byma.py panel senebi-on --all # trae los 3160 en una llamada
# Panel opciones (~429 items, con strike, OI, vencimiento)
py scripts/fetch_byma.py panel options
# ── HISTORICOS OHLCV (GET) ────────────────────────────────────────────
# Historico de un instrumento — formato simbolo: "TICKER 24HS"
py scripts/fetch_byma.py historico "GGAL 24HS"
py scripts/fetch_byma.py historico "ALUA 24HS"
py scripts/fetch_byma.py historico "AAPL 24HS" # CEDEAR ARS
py scripts/fetch_byma.py historico "AAPLD 24HS" # CEDEAR USD
py scripts/fetch_byma.py historico "AL30 24HS" # Bono ARS
py scripts/fetch_byma.py historico "AL30D 24HS" # Bono USD
py scripts/fetch_byma.py historico "AL30C 24HS" # Bono CCL
py scripts/fetch_byma.py historico "GD30 24HS"
py scripts/fetch_byma.py historico "TZX26 24HS" # BONCAP
py scripts/fetch_byma.py historico "TY30P 24HS" # BONCAP
# Con rango de fechas (default: ultimos 30 dias)
py scripts/fetch_byma.py historico "GGAL 24HS" --desde 2024-05-15 --hasta 2026-06-05
# Resolutions: D (diario), W (semanal), M (mensual)
py scripts/fetch_byma.py historico "GGAL 24HS" --resolution W
py scripts/fetch_byma.py historico "GGAL 24HS" --resolution M
# ── INDICES ────────────────────────────────────────────────────────────
# Historico del S&P MERVAL
py scripts/fetch_byma.py indice M
py scripts/fetch_byma.py indice M --desde 2025-01-01 --hasta 2026-06-05
# Historico del BURCAP
py scripts/fetch_byma.py indice G
# ── FICHA TECNICA DE BONOS ─────────────────────────────────────────────
# Ficha tecnica completa: forma de amortizacion, intereses, ISIN, ley, emisor
py scripts/fetch_byma.py bond-info AE38 # Bono soberano USD 2038 step-up
py scripts/fetch_byma.py bond-info AL30 # Bono soberano USD 2030 ley local
py scripts/fetch_byma.py bond-info GD30 # Bono soberano USD 2030 ley NY
py scripts/fetch_byma.py bond-info AE38C # Variante CCL (misma ficha)
py scripts/fetch_byma.py bond-info AE38D # Variante USD MEP (misma ficha)
py scripts/fetch_byma.py bond-info BPOA7 # BOPREAL Serie 1 A
py scripts/fetch_byma.py bond-info TY30P # BONCAP
py scripts/fetch_byma.py bond-info TZX26 # BONCAP CER
py scripts/fetch_byma.py bond-info S237Q # LECAP
py scripts/fetch_byma.py bond-info SBC1C # ON corporativa
# ── COMBINADO ──────────────────────────────────────────────────────────
# Snapshot de todos los paneles + MERVAL + BURCAP
py scripts/fetch_byma.py all
# ── OUTPUT ─────────────────────────────────────────────────────────────
# Guardar a archivo JSON
py scripts/fetch_byma.py panel leading-equity -o leading.json
py scripts/fetch_byma.py all -o snapshot_byma.json
# Modo silencioso (solo JSON, sin logs)
py scripts/fetch_byma.py panel cauciones -q
利用可能なエンドポイント
| モード | データ | エンドポイント |
|---|---|---|
panel leading-equity | MERVAL上位20銘柄の株式×2種類の決済区分(40銘柄) | POST /leading-equity |
panel cedears | CEDEAR(約2000銘柄) | POST /cedears |
panel public-bonds | 国債+LECAP/BONCAP(約1018銘柄) | POST /public-bonds |
panel on | 社債(ON、約2117銘柄) | POST /negociable-obligations |
panel cauciones | レポ取引(約133銘柄) | POST /cauciones |
panel senebi-on | SENEBI ON(約3160銘柄、ページネーション対応) | POST /senebi-obligaciones-negociables |
panel options | オプション(約429銘柄) | POST /options |
historico <SYM> | 商品の日次/週次/月次 OHLCV | GET /chart/historical-series/history?symbol={...} |
indice <COD> | 指数の OHLCV(M=MERVAL、G=BURCAP) | GET /chart/index-historical-series/history?symbol={...} |
bond-info <TICKER> | 債券/LECAP/BONCAP/ONの技術情報(償還、利息、ISIN、発行体) | POST /bnown/fichatecnica/especies/general |
all | すべてのパネルと指数のスナップショット | (結合) |
検証済みの公開エンドポイント合計:10件 ✅(POST 8件+履歴取得 GET 2件)。
ベース URL
https://open.bymadata.com.ar/vanoms-be-core/rest/api/bymadata/free
シンボルの規則
履歴:形式は TICKER 24HS
⚠️ すべての履歴取得で接尾辞 24HS が必要です(スペースを含む)。
接尾辞がない場合はHTTP 400を返します。接尾辞 CI もHTTP 400を返します(未対応)。
48HS の場合はHTTP 200を返しますが、データポイントは0件です。
| 種類 | 例 |
|---|---|
| 株式 | GGAL 24HS、ALUA 24HS、YPFD 24HS |
| CEDEAR(ARS) | AAPL 24HS、MSFT 24HS |
| CEDEAR(USD) | AAPLD 24HS、MSFTD 24HS |
| 国債(ARS) | AL30 24HS、GD30 24HS、AE38 24HS |
| 国債(USD MEP) | AL30D 24HS、GD30D 24HS |
| 国債(CCL) | AL30C 24HS、GD30C 24HS |
| LECAP/BONCAP | TY30P 24HS、TZX26 24HS |
債券:通貨ごとのサフィックス規則
| サフィックス | バリエーション | 例 |
|---|---|---|
| (なし) | ARS — ペソ建て | AL30 |
C | CCL(Contado con Liquidacion / EXT) | AL30C |
D | USD MEP | AL30D |
X、Y、Z | その他のバリエーション(イントラデイ、別決済など) | AL30X |
既知の指数
| コード | 指数 |
|---|---|
M | S&P MERVAL |
G | BURCAP |
その他のコード(A、B、V など)も受け付けますが、すべてゼロの系列が返されます。おそらく非推奨の指数です。
POST パネルで共通のフィルター
| フィルター | 説明 |
|---|---|
T0=true | settlementType=1(CI / Contado Inmediato)のみ |
T1=true | settlementType=2(24 時間)のみ |
T2=true | settlementType=3(48 時間 — ほぼ空)のみ |
page_size=5000 | 1 回の呼び出しですべてのデータセットを取得します(public-bonds と senebi-on での使用を推奨) |
⚠️ page パラメーター(ページ番号)はAPI に無視されます。
常に 1 ページ目が返されます。回避策:大きな page_size を使うか、--all フラグを指定します。
技術上の考慮事項
panel が返すデータ(すべて)
各項目には以下が含まれます。
| フィールド | 型 | 説明 |
|---|---|---|
symbol | string | BYMA ティッカー。 |
settlementType | string | "1"(CI)または "2"(24 時間)。 |
securityType | string | CS(普通株)、CD(CEDEAR)、GO(国債)、CORP(ON)、QS(レポ取引)、OPT(オプション)。 |
denominationCcy | string | ARS、USD、EXT。 |
market | string | BYMA または SENEBI。 |
trade | float | 最後に約定した価格。 |
closingPrice | float | 当日の終値。 |
settlementPrice | float | 決済価格。 |
openingPrice、tradingHighPrice、tradingLowPrice | float | 当日の OHL。 |
previousClosingPrice、previousSettlementPrice | float | 前日の終値/決済価格。 |
imbalance | float | 前日比の変動率(小数:-0.0098 = -0.98%)。 |
volume、tradeVolume | float | 名目取引量。 |
volumeAmount | float | 通貨建ての実効金額。 |
vwap | float | 出来高加重平均価格。 |
bidPrice、offerPrice | float | 最良買い気配/売り気配(取引時間外は 0)。 |
quantityBid、quantityOffer | float | 買い気配/売り気配の数量。 |
numberOfOrders | int | 当日の注文総数。 |
openInterest | float | 建玉(オプション/レポ取引では実際の値、株式では 0)。 |
tickDirection | int | -1 / 0 / +1(下落/変化なし/上昇)。 |
tradeHour | string | 最後の取引時刻。 |
債券/ON/レポ取引/オプションの追加フィールド
| フィールド | 説明 |
|---|---|
maturityDate | 満期日(ISO YYYY-MM-DD)。 |
daysToMaturity | 満期までの日数。 |
underlyingSymbol | 原資産(レポ取引とオプションのみ)。 |
optionType | CALL または PUT(オプションのみ)。 |
historico と indice が返すデータ
{
"s": "ok",
"t": [unix_seconds, ...],
"o": [opens, ...],
"h": [highs, ...],
"l": [lows, ...],
"c": [closes, ...],
"v": [volumes, ...]
}
| フィールド | 説明 |
|---|---|
s | ステータス:"ok"、"no_data"、"error"。 |
t[] | Unix UTC タイムスタンプ(秒、ミリ秒ではありません)。 |
o[]、h[]、l[]、c[] | インデックス順に並んだ OHLC。 |
v[] | 出来高(指数では通常 0)。 |
bond-info が返すデータ
{content, data, empty, upgrade} を返します。data[0](存在する場合)には
債券の詳細情報が含まれます。株式、オプション、および存在しないティッカーの場合は、
data: [] および empty: true となります。
data[0] のフィールド:
| フィールド | 型 | 説明 |
|---|---|---|
ley | string | 適用される管轄法:Nacional、Extranjera、Nueva York、Inglaterra。AL30(現地法)とGD30(ニューヨーク州法)を区別するうえで重要です。 |
formaAmortizacion | string | 償還スケジュール(回数、頻度、日付、割合)をプレーンテキストで記載します。満期一括償還の場合は "Al vencimiento" です。 |
interes | string | 利息の発生条件をプレーンテキストで記載します。ステップアップの場合は各金利区間を、CERの場合はインフレ調整を説明します。 |
denominacionMinima | int | 発行単位の最低額です。 |
fechaEmision | string | YYYY-MM-DD HH:MM:SS.f。 |
fechaVencimiento | string | YYYY-MM-DD HH:MM:SS.f。 |
fechaDevenganIntereses | string | 利息発生日(通常は空です)。 |
codigoIsin | string | 金融商品のISINです。 |
tipoEspecie | string | Titulos Publicos、Obligaciones Negociables、Letras del Tesoro。 |
tipoObligacion | string | 規制上の分類:Valores Publicos Nacionales、Provinciales、Corporativos。 |
tipoGarantia | string | Comun など。 |
default | string | デフォルト状態(返済が正常な場合は空です)。 |
montoNominal | int | 発行された額面総額です。 |
montoResidual | int | 現在の残存額(償還後)です。 |
denominacion | string | 債券の正式名称です。 |
insType | string | BOND。 |
paisLey | string | 適用される法律の国です。 |
moneda | string | Dolares、Pesos、Pesos Ajustables por CER、Dolar Linked。 |
emisor | string | Gobierno Nacional、Provincia de Buenos Aires、YPF S.A. など。 |
dict パネルと list パネルの違い
| パネル | レスポンス型 | 構造 |
|---|---|---|
leading-equity、public-bonds、senebi-on | dict | {content: {page_number, page_count, page_size, total_elements_count}, data: [...], empty, upgrade} |
cedears、on、cauciones、options | list | [item, item, ...] の形式で直接返されます |
追加フラグ
| フラグ | 説明 |
|---|---|
--all | すべてのデータを1回の呼び出しで取得するため、page_size=5000 に設定します |
--t0 | settlementType=1(CI)のみ |
--t1 | settlementType=2(24hs)のみ |
--page N | ページ番号(APIでは無視されます。--all を使用してください) |
--page-size N | 1ページあたりの項目数(デフォルト:200) |
--desde YYYY-MM-DD | 開始日(過去データ) |
--hasta YYYY-MM-DD | 終了日(過去データ) |
--resolution X | D、W、M(デフォルト:D) |
-o archivo.json | 出力をファイルに保存します |
-q / --quiet | サイレントモード(JSONのみ) |
レート制限
レート制限についての文書化された情報はありません。以下を推奨します:
- リクエスト間に最低0.3秒空けてください。
allモードではtime.sleep(0.3)が自動的に実行されます。
エラー処理
| ステータス | 主な原因 |
|---|---|
| 400 | 無効なシンボル(24HS がない、不明なティッカー) |
| 401 | エンドポイントが存在しない(BYMAは404ではなく、汎用の401を返します) |
| 415 | Content-Typeが正しくない(POSTでは application/json が必要です) |
| 500 | BYMAの内部エラー |
日付変換
from datetime import datetime, timezone
# Unix seconds -> datetime
dt = datetime.fromtimestamp(ts, tz=timezone.utc)
# datetime -> Unix seconds
ts = int(datetime(2026, 6, 5, tzinfo=timezone.utc).timestamp())
スキルの構成
skills/byma/
├── SKILL.md # Este archivo (guia rapida)
├── references/
│ └── REFERENCE.md # Documentacion completa de todos los endpoints
└── scripts/
└── fetch_byma.py # Script principal
詳細なドキュメント: 各エンドポイント、JSONスキーマ、settlementType/securityTypeのコード、 SSL証明書の処理、ページネーション、および技術的な注意事項の詳しい説明については、 references/REFERENCE.md を参照してください。