Tushare Data
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
Trading API de Primary (Matba ROFEX): futuros, opciones, acciones, bonos.
$ npx skills add gauss314/skills --skill primary -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gauss314/skills primary --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/gauss314/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/primary .claude/skills/primary && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "primary" agent skill from https://github.com/gauss314/skills/tree/main/skills/primary into .claude/skills/primary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/gauss314/skills/tree/main/skills/primaryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add gauss314/skills --skill primary -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gauss314/skills primary --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gauss314/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/primary .agents/skills/primary && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "primary" agent skill from https://github.com/gauss314/skills/tree/main/skills/primary into .agents/skills/primary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gauss314/skills --skill primary -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gauss314/skills primary --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gauss314/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/primary .cursor/skills/primary && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "primary" agent skill from https://github.com/gauss314/skills/tree/main/skills/primary into .cursor/skills/primary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/gauss314/skills.git --path skills/primary--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add gauss314/skills --skill primary -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gauss314/skills primary --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gauss314/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/primary .gemini/skills/primary && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "primary" agent skill from https://github.com/gauss314/skills/tree/main/skills/primary into .gemini/skills/primary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gauss314/skills primaryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gauss314/skills --skill primary -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/gauss314/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/primary .github/skills/primary && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "primary" agent skill from https://github.com/gauss314/skills/tree/main/skills/primary into .github/skills/primary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gauss314/skills --skill primary -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gauss314/skills primary --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/gauss314/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/primary .opencode/skills/primary && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "primary" agent skill from https://github.com/gauss314/skills/tree/main/skills/primary into .opencode/skills/primary/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "primary", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
primaryTrading API de Primary (Matba ROFEX): futuros, opciones, acciones, bonos.
Primary is an agent skill from gauss314/skills. Trading API de Primary (Matba ROFEX): futuros, opciones, acciones, bonos. Órdenes, posiciones, cuenta, market data.
Its SKILL.md is about 4.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `references/REFERENCE.md`, `scripts/check_account.py` and `scripts/check_positions.py`).
It sits in Business, Finance & HR, covering Trading and backtesting and Stock and market analysis. The repository describes itself as: Financial market data consumption skills for claude code and AI agents. The licence is MIT.
Read from SKILL.md and the folder at commit 5156f81. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 8 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.remarkets.primary.com.arAlso links to:
github.comremarkets.primary.venturesFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
PRIMARY_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Primary loads about 4.4k tokens when it runs, and up to ~8.8k if it reads all its reference files. Until then it costs about 31 tokens; SKILL.md has 1,086 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from gauss314/skills at commit 5156f81, republished under its MIT licence (© gauss314). 1,086 words, ~4,370 tokens.
.claude/skills/primary/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.API para operar en el Mercado Argentino de Futuros y Opciones (Matba ROFEX) a través de Primary Trading Platform (PTP). Soporta futuros (dólar, soja, trigo, maíz, índices), opciones sobre futuros, acciones, bonos y CEDEARs.
Base URL: https://api.remarkets.primary.com.ar
Docs: github.com/matbarofex — repositorio oficial con ejemplos open source.
| Entorno | URL | Descripción |
|---|---|---|
| REMARKET (demo) | remarkets.primary.ventures | Crear cuenta gratis para paper trading |
| LIVE (producción) | Contactar a mpi@primary.com.ar | Solicitar acceso al equipo MPI |
Una vez creada la cuenta en REMARKET, tendrás:
REM + últimos dígitos del usuario)import requests
r = requests.post("https://api.remarkets.primary.com.ar/auth/getToken",
headers={"X-Username": tu_usuario, "X-Password": tu_password})
token = r.headers["X-Auth-Token"]El token se envía en adelante como header X-Auth-Token en todos los requests.
⚠️ NUNCA hardcodear credenciales. Usar variables de entorno o parámetros CLI.
import os
TOKEN = os.getenv("PRIMARY_TOKEN") # Opcional: cachear token
USER = os.getenv("PRIMARY_USER")
PASS = os.getenv("PRIMARY_PASSWORD")
ACCOUNT = os.getenv("PRIMARY_ACCOUNT") # Ej: 12345 o REM12345Si recibís un 401, el token expiró. Renovalo con un nuevo POST a /auth/getToken.
El mercado se organiza en segmentos (ruedas de negociación). Cada instrumento pertenece a un segmento.
| Segmento | Descripción |
|---|---|
DDF | Derivados Financieros (futuros de dólar, índices) |
DDA | Derivados Agropecuarios (soja, trigo, maíz) |
DUAL | Instrumentos listados en ambas divisiones |
MERV | Mercados externos a Matba ROFEX (BYMA) |
MAE | Mercado Abierto Electrónico |
TEST | Ambiente de pruebas |
U-DDF, U-DDA, U-DUAL, U-FIN, U-COMM, U-STOCK | Sub-segmentos de usuarios |
TIVA, AVS | Otros segmentos |
GET https://api.remarkets.primary.com.ar/rest/segment/allr = requests.get("https://api.remarkets.primary.com.ar/rest/segment/all",
headers={"X-Auth-Token": token})
print(r.json()["segments"])Respuesta:
{"status":"OK","segments":[
{"marketSegmentId":"DDF","marketId":"ROFX"},
{"marketSegmentId":"DDA","marketId":"ROFX"},
...
]}Los instrumentos se identifican por su símbolo y marketId. Ejemplos:
| Símbolo | Descripción | CFI Code |
|---|---|---|
DLR/JUN26 | Futuro de dólar Junio 2026 | FXXXSX |
SOJ.ROS/MAY26 | Futuro de soja Rosario Mayo 2026 | FXXXSX |
DLR/JUN26 1460 C | Opción Call sobre futuro dólar | OCAFXS |
DLR/JUN26 1420 P | Opción Put sobre futuro dólar | OPAFXS |
GGAL | Acción Grupo Galicia | ESXXXX |
GET https://api.remarkets.primary.com.ar/rest/instruments/allGET https://api.remarkets.primary.com.ar/rest/instruments/detailsDevuelve: symbol, segment, lowLimitPrice, highLimitPrice, minPriceIncrement, minTradeVol, maxTradeVol, tickSize, contractMultiplier, roundLot, maturityDate, currency, orderTypes, timesInForce, cficode.
GET https://api.remarkets.primary.com.ar/rest/instruments/detail?symbol=DLR/JUN26&marketId=ROFXGET https://api.remarkets.primary.com.ar/rest/instruments/byCFICode?CFICode=FXXXSX| CFI Code | Tipo |
|---|---|
FXXXSX | Futuro |
FXXXXX | Futuro (genérico) |
OCAFXS | Opción Call sobre Futuro |
OPAFXS | Opción Put sobre Futuro |
OCEFXS | Opción Call europea sobre Futuro |
OPEFXS | Opción Put europea sobre Futuro |
ESXXXX | Acción |
DBXXXX | Bono |
EMXXXX | CEDEAR |
OCASPS | Opción Call sobre Acción |
OPASPS | Opción Put sobre Acción |
DBXXFR | Obligación Negociable |
GET https://api.remarkets.primary.com.ar/rest/instruments/bySegment?MarketSegmentID=DDF&MarketID=ROFXGET https://api.remarkets.primary.com.ar/rest/marketdata/get
?marketId=ROFX
&symbol=DLR/JUN26
&entries=BI,OF,LA,OP,CL,SE,OI
&depth=3| Entry | Significado |
|---|---|
BI | Bids (ofertas de compra en el book) |
OF | Offers (ofertas de venta en el book) |
LA | Last (último precio operado) |
OP | Opening Price (precio de apertura) |
CL | Closing Price (cierre rueda anterior) |
SE | Settlement Price (precio de ajuste, solo futuros) |
HI | High Price (máximo de la rueda) |
LO | Low Price (mínimo de la rueda) |
TV | Trade Volume (volumen operado en contratos) |
OI | Open Interest (interés abierto, solo futuros) |
IV | Index Value (solo índices) |
EV | Effective Volume (solo BYMA) |
NV | Nominal Volume (solo BYMA) |
ACP | Auction Price (cierre del día corriente) |
r = requests.get("https://api.remarkets.primary.com.ar/rest/marketdata/get",
headers={"X-Auth-Token": token},
params={"marketId": "ROFX", "symbol": "DLR/JUN26",
"entries": "BI,OF,LA,OP,CL,SE,OI", "depth": 3})
data = r.json()["marketData"]
print(f"Bid: {data['BI']} | Offer: {data['OF']}")
print(f"Last: {data['LA']} | Settle: {data['SE']}")GET https://api.remarkets.primary.com.ar/rest/data/getTrades
?marketId=ROFX
&symbol=DLR/JUN26
&dateFrom=2026-06-01
&dateTo=2026-06-08Parámetros: marketId, symbol, date (una fecha), dateFrom/dateTo (rango), external (para mercados externos), environment (REMARKETS).
r = requests.get("https://api.remarkets.primary.com.ar/rest/data/getTrades",
headers={"X-Auth-Token": token},
params={"marketId": "ROFX", "symbol": "DLR/JUN26",
"date": "2026-06-05"})
trades = r.json()["trades"]
for t in trades[:3]:
print(f"{t['datetime']} {t['price']} {t['size']}")| Tipo | Descripción |
|---|---|
LIMIT | Orden con precio límite |
MARKET | Orden a mercado |
STOP_LIMIT | Orden stop que se activa como limit |
MARKET_TO_LIMIT | Market que se convierte en limit |
Nota: STOP_LIMIT y MARKET_TO_LIMIT no están disponibles para todos los instrumentos. Verificar orderTypes en el detalle del instrumento.
| TIF | Descripción |
|---|---|
DAY | Solo válida por el día. Se expira al cierre de rueda |
IOC | Immediate or Cancel |
FOK | Fill or Kill |
GTD | Good Till Date (requiere expireDate) |
GET https://api.remarkets.primary.com.ar/rest/order/newSingleOrder
?marketId=ROFX
&symbol=DLR/JUN26
&side=BUY
&orderQty=10
&ordType=LIMIT
&price=1450.0
&timeInForce=DAY
&account=TU_CUENTA
&cancelPrevious=False
&iceberg=FalseParámetros:
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
marketId | String | ✅ | ROFX |
symbol | String | ✅ | Símbolo del instrumento |
side | String | ✅ | BUY o SELL |
orderQty | Integer | ✅ | Cantidad de contratos |
ordType | String | ✅ | LIMIT o MARKET |
price | Float | Condicional | Requerido para LIMIT |
timeInForce | String | No | DAY (default), IOC, FOK, GTD |
account | Integer/String | ✅ | Número de cuenta |
cancelPrevious | Boolean | No | Cancela órdenes previas del mismo contrato/lado |
iceberg | Boolean | No | Orden Iceberg (default: false) |
displayQty | Integer | Condicional | Cantidad a divulgar (para iceberg) |
expireDate | Date | Condicional | Requerido para GTD (formato: YYYYMMDD) |
Respuesta:
{"status":"OK","order":{"clientId":"21581341758","proprietary":"PBCP"}}El clientId es el clOrdId (Client Order ID) que se usa para consultar/cancelar la orden.
{"type":"no","product":{"marketId":"ROFX","symbol":"DLR/JUN26"},
"price":185,"quantity":23,"side":"BUY","account":"20","iceberg":false}Para identificar la orden vía WebSocket, incluir wsClOrdId:
{"type":"no","product":{"marketId":"ROFX","symbol":"DLR/JUN26"},
"price":185,"quantity":23,"side":"BUY","account":"20",
"iceberg":false,"wsClOrdId":"mioid-unico-123"}Respuesta WebSocket (Execution Report):
{"type":"or","orderReport":{"orderId":"1128056","clOrdId":"user14545...",
"status":"PENDING_NEW","text":"Enviada","wsClOrdId":"mioid-unico-123"}}Importante: El
wsClOrdIdsolo aparece en el primer execution report. Luego se debe usar elclOrdIddevuelto para seguimiento.
GET https://api.remarkets.primary.com.ar/rest/order/replaceById
?clOrdId=user144733478280357
&proprietary=api
&price=17
&orderQty=10GET https://api.remarkets.primary.com.ar/rest/order/cancelById
?clOrdId=ajduj3l13ieci2jr4ck
&proprietary=PBCP{"type":"co","clientId":"user114121092035207","proprietary":"PBCP"}| Endpoint | Descripción |
|---|---|
GET /rest/order/id?clOrdId=...&proprietary=api | Último estado del request |
GET /rest/order/allById?clOrdId=...&proprietary=api | Todos los estados del request |
GET /rest/order/byOrderId?orderId=... | Estado por Order ID |
GET /rest/order/actives?accountId=10 | Órdenes activas (NEW o PARTIALLY_FILLED) |
GET /rest/order/filleds?accountId=10 | Órdenes total o parcialmente operadas |
GET /rest/order/all?accountId=10 | Todos los estados de la cuenta |
GET /rest/order/byExecId?execId=T1234567 | Estado por Execution ID |
Suscribirse a una cuenta:
{"type":"os","account":{"id":"40"}}Varias cuentas:
{"type":"os","accounts":[{"id":"40"},{"id":"4000"}]}Todas las cuentas:
{"type":"os"}Solo órdenes activas:
{"type":"os","snapshotOnlyActive":true}La Risk API usa HTTP Basic Auth con el mismo user/password, no token. Requiere el header Authorization: Basic <base64> adicionalmente al X-Auth-Token.
import base64
auth = base64.b64encode(f"{user}:{password}".encode()).decode()
headers = {"X-Auth-Token": token, "Authorization": f"Basic {auth}"}GET https://api.remarkets.primary.com.ar/rest/risk/position/getPositions/{accountName}r = requests.get(f"https://api.remarkets.primary.com.ar/rest/risk/position/getPositions/TU_CUENTA",
headers=headers)
positions = r.json()["positions"]
for p in positions:
print(f"{p['symbol']} Buy:{p['buySize']} Sell:{p['sellSize']} Diff:{p['totalDiff']}")GET https://api.remarkets.primary.com.ar/rest/risk/detailedPosition/{accountName}Devuelve desglose por instrumento con: contractType, marketPrice, currency, exchangeRate, contractMultiplier, buyCurrentSize, sellCurrentSize, detailedDailyDiff.
GET https://api.remarkets.primary.com.ar/rest/risk/accountReport/{accountName}import base64
auth = base64.b64encode(f"{user}:{password}".encode()).decode()
headers = {"X-Auth-Token": token, "Authorization": f"Basic {auth}"}
r = requests.get(f"https://api.remarkets.primary.com.ar/rest/risk/accountReport/TU_CUENTA",
headers=headers)
data = r.json()["accountData"]
print(f"Colateral: {data['collateral']}")
print(f"Margen: {data['margin']}")
print(f"Disponible: {data['availableToCollateral']}")
# Saldos por moneda
for moneda, saldo in data['detailedAccountReports']['0']['currencyBalance']['detailedCurrencyBalance'].items():
print(f" {moneda}: consumido={saldo['consumed']} disponible={saldo['available']}")URL: wss://api.remarkets.primary.com.ar/
La API WebSocket recibe mensajes asíncronos. El token se envía como header en la conexión:
import websocket
ws = websocket.WebSocketApp(
"wss://api.remarkets.primary.com.ar/",
header=[f"X-Auth-Token: {token}"],
on_open=on_open,
on_message=on_message,
...
)
ws.run_forever()Los mensajes tienen el formato:
| type | Significado |
|---|---|
no | New Order (enviar orden) |
co | Cancel Order (cancelar orden) |
or | Order Report (execution report recibido) |
os | Order Subscription (suscribirse a reports) |
smd | Subscribe Market Data |
Md | Market Data (recibido) |
{"type":"smd","level":1,"entries":["OF","BI","LA"],
"products":[{"symbol":"DLR/JUN26","marketId":"ROFX"}],"depth":2}Respuesta:
{"type":"Md","instrumentId":{"marketId":"ROFX","symbol":"DLR/JUN26"},
"marketData":{"OF":[{"price":189,"size":21},{"price":188,"size":13}]}}| Estado | Significado |
|---|---|
PENDING_NEW | Enviada al mercado, aún no procesada |
NEW | Aceptada, activa en el book |
PARTIALLY_FILLED | Parcialmente operada |
FILLED | Totalmente operada |
CANCELLED | Cancelada |
REJECTED | Rechazada (ver text para motivo) |
PENDING_CANCEL | Cancelación en proceso |
PENDING_REPLACE | Reemplazo en proceso |
REPLACED | Reemplazada |
PENDING_APPROVAL | Pendiente de aprobación |
| Error | Causa | Solución |
|---|---|---|
| 401 Unauthorized | Token inválido o expirado | Renovar con /auth/getToken |
"No tiene acceso a la cuenta" | Account ID incorrecto | Verificar accountId |
"Product doesn't exist" | Symbol incorrecto | Verificar símbolo con instruments/all |
"Access Denied" | Sin permisos para el endpoint | Verificar segmento/método |
"Ruta invalida" | Endpoint no existe | Revisar URL |
| Bid/Offer vacíos | Mercado cerrado o sin liquidez | Consultar en horario de rueda |
Ver ./scripts/:
# Autenticación y token (opcional, los scripts hacen login automático)
export PRIMARY_USER="tu_usuario"
export PRIMARY_PASSWORD="tu_password"
export PRIMARY_ACCOUNT="TU_CUENTA"
# Listar segmentos e instrumentos
python scripts/instruments.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD
# Market data de un futuro
python scripts/market_data.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--symbol DLR/JUN26 --entries BI,OF,LA
# Ver reporte de cuenta
python scripts/check_account.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--account TU_CUENTA
# Ver posiciones
python scripts/check_positions.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--account TU_CUENTA
# Enviar orden (¡cuidado! orden real en live)
python scripts/place_order.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--symbol DLR/JUN26 --side BUY --qty 1 --type LIMIT --price 1450 --account TU_CUENTA
# WebSocket: Market Data en tiempo real
python scripts/websocket_md.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--symbols DLR/JUN26 --entries BI,OF,LA --depth 3
# WebSocket: Execution Reports
python scripts/websocket_orders.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--account TU_CUENTA
# WebSocket: Enviar orden (requiere suscripción a execution reports aparte)
python scripts/websocket_send_order.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--symbol DLR/JUN26 --side BUY --qty 1 --type LIMIT --price 1450 --account TU_CUENTA
# WebSocket: Cancelar orden
python scripts/websocket_send_order.py --user $PRIMARY_USER --password $PRIMARY_PASSWORD \
--cancel --clordid user12345... --proprietary PBCP| Campo | Descripción |
|---|---|
clOrdId | Client Order ID — ID del request al mercado |
orderId | Order ID — ID de la orden en el mercado |
execId | Execution ID — ID de una ejecución particular |
proprietary | Usuario FIX que envió la orden (PBCP o ISV_PBCP) |
wsClOrdId | ID de orden enviada por WebSocket (solo en 1er report) |
avgPx | Precio promedio operado |
cumQty | Cantidad acumulada operada |
leavesQty | Cantidad remanente |
lastPx | Último precio operado |
lastQty | Última cantidad operada |
transactTime | Fecha y hora de la transacción |
tickSize | Incremento mínimo de cantidad |
minPriceIncrement | Incremento mínimo de precio (tick price) |
contractMultiplier | Multiplicador del contrato |
maturityDate | Fecha de vencimiento |
priceConvertionFactor | Factor para precio unitario |
lowLimitPrice | Límite mínimo de precio |
highLimitPrice | Límite máximo de precio |
© gauss314, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 9 other files (scripts, references) in skills/primary of gauss314/skills.
Open the folder on GitHubat commit 5156f81
Primary next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Primary this skillgauss314/skills | 246 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Tushare Datazillionare/zillionare | 319 | 2 repos | ~2.3k | Automated safety check: Pass | None | |
| Tradingview MCPatilaahmettaner/tradingview-mcp | 5k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Digital Oraclekomako-workshop/digital-oracle | 870 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Worth Buy Stocksstarriv/worth-buy-stocks | 174 | — | ~4.5k | Automated safety check: Notes | None | |
| Regimejackson-video-resources/markov-hedge-fund-method | 483 | — | ~1.6k | Automated safety check: Pass | Custom licence |
zillionare/zillionare
面向中文自然语言的 Tushare 数据研究技能。用于把“看看这只股票最近怎么样”“帮我查财报趋势”“最近哪个板块最强”“北向资金在买什么”“给我导出一份行情数据”这类请求,转成可执行的数据获取、清洗、对比、筛选、导出与简要分析流程。适用于 A 股、指数、ETF/基金、财务、估值、资金流、公告新闻、板块概念与宏观数据等研究场景。
atilaahmettaner/tradingview-mcp
AI Trading Intelligence — live prices, 30+ technical indicators, backtesting (6 strategies), walk-forward overfitting detection, trade logs, equity curves, licensed news sentiment (Marketaux), and…
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
starriv/worth-buy-stocks
Evaluate US stocks under an Alpaca trend and relative-strength framework, and prioritize defined-risk net-credit income spreads: Bull Put/Bear Call first, Iron Condor second.
jackson-video-resources/markov-hedge-fund-method
Detect the market regime (Bull / Bear / Sideways) for ANY asset and turn it into a tradeable signal or a risk filter.
Oft3r/agentic-trading-desk
Personal trading desk for short-term technical analysis on stocks/ETFs via Robinhood MCP.
gauss314/skills
Academic backtesting framework for quantitative research. An agent skill from gauss314/skills.
gauss314/skills
Datos de Google Finance via batchexecute (API RPC interna sin auth ni API key).
gauss314/skills
History of Market (historyofmarket.com) — API publica con 88 datasets historicos de indices US desde 1871.
gauss314/skills
Datos macro y sociales de Argentina via la API oficial Series de Tiempo del Estado (apis.datos.gob.ar/series).
gauss314/skills
Morningstar Screener via API JSON publica: descarga masiva de 53 universes (102K+ listings, 39 paises, NYSE/Nasdaq/BCBA/etc) con 33 campos (precio, market cap, ratios, retornos…
gauss314/skills
Pricing completo de opciones europeas y americanas. An agent skill from gauss314/skills.
Categories
Trading API de Primary (Matba ROFEX): futuros, opciones, acciones, bonos. Primary is an agent skill from gauss314/skills. Trading API de Primary (Matba ROFEX): futuros, opciones, acciones, bonos.
Primary fits situations like: tasks that involve Trading and backtesting; tasks that involve Stock and market analysis.
Run `npx skills add gauss314/skills --skill primary -a claude-code`. Or copy the skill folder (skills/primary in gauss314/skills) into .claude/skills/primary in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gauss314/skills --skill primary -a codex`. Or copy the skill folder (skills/primary in gauss314/skills) into .agents/skills/primary in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gauss314/skills --skill primary -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/primary, .gemini/skills/primary, .github/skills/primary and .opencode/skills/primary in your project.
Going by SKILL.md and its folder, Primary needs Python for the scripts in its folder, the command-line tools its instructions call (python) and credentials named PRIMARY_PASSWORD. Our summary lists: Python 3; A credential in PRIMARY_TOKEN.
SKILL.md names 3 domains. In commands or code: api.remarkets.primary.com.ar; the agent is likely to contact it when it follows the instructions. As links in the text: github.com and remarkets.primary.ventures. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Primary is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.4k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Primary: Tushare Data (zillionare/zillionare, 319 stars), Tradingview MCP (atilaahmettaner/tradingview-mcp, 5k stars), Digital Oracle (komako-workshop/digital-oracle, 870 stars) and Worth Buy Stocks (starriv/worth-buy-stocks, 174 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gauss314 (a GitHub user) maintains it in gauss314/skills, which has 246 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on June 14, 2026.
Source: gauss314/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.