mcpField
B
byma

byma

github.com/gauss314データ・データベース252275 回インストール20 週間前に更新
リポジトリ

byma について

bymaは、BYMAの公開APIからアルゼンチン市場データを取得するコマンドラインスキルです。API認証なしで、銘柄パネル、価格履歴、債券情報を扱えます。

主な機能

  1. 01株式、CEDEAR、債券パネルの取得
  2. 02レポ取引とオプションのデータ取得
  3. 03日次・週次・月次OHLCV履歴の取得
  4. 04債券の技術情報の検索

活用シーン

  1. 01BYMA銘柄の価格や取引項目の確認
  2. 02銘柄や指数の価格履歴の取得
  3. 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-equityMERVAL上位20銘柄の株式×2種類の決済区分(40銘柄)POST /leading-equity
panel cedearsCEDEAR(約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-onSENEBI ON(約3160銘柄、ページネーション対応)POST /senebi-obligaciones-negociables
panel optionsオプション(約429銘柄)POST /options
historico <SYM>商品の日次/週次/月次 OHLCVGET /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/BONCAPTY30P 24HS、TZX26 24HS
債券:通貨ごとのサフィックス規則
サフィックスバリエーション例
(なし)ARS — ペソ建てAL30
CCCL(Contado con Liquidacion / EXT)AL30C
DUSD MEPAL30D
X、Y、Zその他のバリエーション(イントラデイ、別決済など)AL30X
既知の指数
コード指数
MS&P MERVAL
GBURCAP

その他のコード(A、B、V など)も受け付けますが、すべてゼロの系列が返されます。おそらく非推奨の指数です。


POST パネルで共通のフィルター

フィルター説明
T0=truesettlementType=1(CI / Contado Inmediato)のみ
T1=truesettlementType=2(24 時間)のみ
T2=truesettlementType=3(48 時間 — ほぼ空)のみ
page_size=50001 回の呼び出しですべてのデータセットを取得します(public-bonds と senebi-on での使用を推奨)

⚠️ page パラメーター(ページ番号)はAPI に無視されます。 常に 1 ページ目が返されます。回避策:大きな page_size を使うか、--all フラグを指定します。


技術上の考慮事項

panel が返すデータ(すべて)

各項目には以下が含まれます。

フィールド型説明
symbolstringBYMA ティッカー。
settlementTypestring"1"(CI)または "2"(24 時間)。
securityTypestringCS(普通株)、CD(CEDEAR)、GO(国債)、CORP(ON)、QS(レポ取引)、OPT(オプション)。
denominationCcystringARS、USD、EXT。
marketstringBYMA または SENEBI。
tradefloat最後に約定した価格。
closingPricefloat当日の終値。
settlementPricefloat決済価格。
openingPrice、tradingHighPrice、tradingLowPricefloat当日の OHL。
previousClosingPrice、previousSettlementPricefloat前日の終値/決済価格。
imbalancefloat前日比の変動率(小数:-0.0098 = -0.98%)。
volume、tradeVolumefloat名目取引量。
volumeAmountfloat通貨建ての実効金額。
vwapfloat出来高加重平均価格。
bidPrice、offerPricefloat最良買い気配/売り気配(取引時間外は 0)。
quantityBid、quantityOfferfloat買い気配/売り気配の数量。
numberOfOrdersint当日の注文総数。
openInterestfloat建玉(オプション/レポ取引では実際の値、株式では 0)。
tickDirectionint-1 / 0 / +1(下落/変化なし/上昇)。
tradeHourstring最後の取引時刻。
債券/ON/レポ取引/オプションの追加フィールド
フィールド説明
maturityDate満期日(ISO YYYY-MM-DD)。
daysToMaturity満期までの日数。
underlyingSymbol原資産(レポ取引とオプションのみ)。
optionTypeCALL または 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] のフィールド:

フィールド型説明
leystring適用される管轄法:Nacional、Extranjera、Nueva York、Inglaterra。AL30(現地法)とGD30(ニューヨーク州法)を区別するうえで重要です。
formaAmortizacionstring償還スケジュール(回数、頻度、日付、割合)をプレーンテキストで記載します。満期一括償還の場合は "Al vencimiento" です。
interesstring利息の発生条件をプレーンテキストで記載します。ステップアップの場合は各金利区間を、CERの場合はインフレ調整を説明します。
denominacionMinimaint発行単位の最低額です。
fechaEmisionstringYYYY-MM-DD HH:MM:SS.f。
fechaVencimientostringYYYY-MM-DD HH:MM:SS.f。
fechaDevenganInteresesstring利息発生日(通常は空です)。
codigoIsinstring金融商品のISINです。
tipoEspeciestringTitulos Publicos、Obligaciones Negociables、Letras del Tesoro。
tipoObligacionstring規制上の分類:Valores Publicos Nacionales、Provinciales、Corporativos。
tipoGarantiastringComun など。
defaultstringデフォルト状態(返済が正常な場合は空です)。
montoNominalint発行された額面総額です。
montoResidualint現在の残存額(償還後)です。
denominacionstring債券の正式名称です。
insTypestringBOND。
paisLeystring適用される法律の国です。
monedastringDolares、Pesos、Pesos Ajustables por CER、Dolar Linked。
emisorstringGobierno Nacional、Provincia de Buenos Aires、YPF S.A. など。
dict パネルと list パネルの違い
パネルレスポンス型構造
leading-equity、public-bonds、senebi-ondict{content: {page_number, page_count, page_size, total_elements_count}, data: [...], empty, upgrade}
cedears、on、cauciones、optionslist[item, item, ...] の形式で直接返されます
追加フラグ
フラグ説明
--allすべてのデータを1回の呼び出しで取得するため、page_size=5000 に設定します
--t0settlementType=1(CI)のみ
--t1settlementType=2(24hs)のみ
--page Nページ番号(APIでは無視されます。--all を使用してください)
--page-size N1ページあたりの項目数(デフォルト:200)
--desde YYYY-MM-DD開始日(過去データ)
--hasta YYYY-MM-DD終了日(過去データ)
--resolution XD、W、M(デフォルト:D)
-o archivo.json出力をファイルに保存します
-q / --quietサイレントモード(JSONのみ)
レート制限

レート制限についての文書化された情報はありません。以下を推奨します:

  • リクエスト間に最低0.3秒空けてください。
  • all モードでは time.sleep(0.3) が自動的に実行されます。
エラー処理
ステータス主な原因
400無効なシンボル(24HS がない、不明なティッカー)
401エンドポイントが存在しない(BYMAは404ではなく、汎用の401を返します)
415Content-Typeが正しくない(POSTでは application/json が必要です)
500BYMAの内部エラー
日付変換
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 を参照してください。

コメント