返回顶部
f

finam

Execute trades, manage portfolios, access real-time market data, browse and search market assets, scan volatility, and answer questions about Finam Trade API

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.4
安全检测
已通过
814
下载量
1
收藏
概述
安装方式
版本历史

finam

# Finam Trade API Skill ## Setup **Prerequisites:** `$FINAM_API_KEY` and `$FINAM_ACCOUNT_ID` must be already set in your environment. If not configured by environment, follow these steps: 1. Register and obtain your API Key from [tokens page](https://tradeapi.finam.ru/docs/tokens) 2. Obtain your Account ID from your [Finam account dashboard](https://lk.finam.ru/) 3. Set environment variables: ```shell export FINAM_API_KEY="your_api_key_here" export FINAM_ACCOUNT_ID="your_account_id_here" ``` Obtain JWT token before using the API: ```shell export FINAM_JWT_TOKEN=$(curl -sL "https://api.finam.ru/v1/sessions" \ --header "Content-Type: application/json" \ --data '{"secret": "'"$FINAM_API_KEY"'"}' | jq -r '.token') ``` **Note:** Token expires after 15 minutes. Re-run this command if you receive authentication errors. ## Market assets ### List Available Exchanges and Equities **Symbol Format:** All symbols must be in `ticker@mic` format (e.g., `SBER@MISX`) **Base MIC Codes:** - `MISX` - Moscow Exchange - `RUSX` - RTS - `XNGS` - NASDAQ/NGS - `XNMS` - NASDAQ/NNS - `XNYS` - New York Stock Exchange View all supported exchanges with their MIC codes: ```shell jq -r '.exchanges[] | "\(.mic) - \(.name)"' assets/exchanges.json ``` List stocks available on a specific exchange: ```shell MIC="MISX" LIMIT=20 jq -r ".$MIC[:$LIMIT] | .[] | \"\(.symbol) - \(.name)\"" assets/equities.json ``` ### Get Asset Specification Fetch detailed specification for a specific instrument (lot size, price step, decimals, trading schedule, etc.): ```shell SYMBOL="SBER@MISX" curl -sL "https://api.finam.ru/v1/assets/$SYMBOL?account_id=$FINAM_ACCOUNT_ID" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` `account_id` is optional but recommended — returns account-specific fields (margin, available quantity, etc.). ### Search Assets Search instruments by ticker glob pattern and/or name substring: ```shell # By ticker glob python3 scripts/asset_search.py 'SBER*' # By name (case-insensitive substring) python3 scripts/asset_search.py --name 'apple' # By ticker glob + type filter python3 scripts/asset_search.py 'NG*' --type FUTURES # Search across all instruments (including archived) via /assets/all python3 scripts/asset_search.py 'NG*' --type FUTURES --active false ``` Available types: `EQUITIES`, `FUTURES`, `BONDS`, `FUNDS`, `SPREADS`, `OTHER`, `CURRENCIES`, `OPTIONS`, `SWAPS`, `INDICES` `--max=N` switches to `GET /v1/assets/all` with pagination (rate limit: 200 req/min). `--active false` includes archived instruments. ### Get Top N Stocks by Volume Pre-ranked lists of the 100 most liquid equities for each market, ordered by trading volume descending: ```shell N=10 jq -r ".[:$N] | .[] | \"\(.ticker) - \(.name)\"" assets/top_ru_equities.json ``` ```shell N=10 jq -r ".[:$N] | .[] | \"\(.ticker) - \(.name)\"" assets/top_us_equities.json ``` ## Account Management ### Get Account Portfolio Retrieve portfolio information including positions, balances, and P&L: ```shell curl -sL "https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` ## Market Data ### Get Latest Quote Retrieve current bid/ask prices and last trade: ```shell SYMBOL="SBER@MISX" curl -sL "https://api.finam.ru/v1/instruments/$SYMBOL/quotes/latest" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` ### Get Order Book (Depth) View current market depth with bid/ask levels: ```shell SYMBOL="SBER@MISX" curl -sL "https://api.finam.ru/v1/instruments/$SYMBOL/orderbook" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` ### Get Recent Trades List the most recent executed trades: ```shell SYMBOL="SBER@MISX" curl -sL "https://api.finam.ru/v1/instruments/$SYMBOL/trades/latest" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` ### Get Historical Candles (OHLCV) Retrieve historical price data with specified timeframe: ```shell SYMBOL="SBER@MISX" TIMEFRAME="TIME_FRAME_D" START_TIME="2024-01-01T00:00:00Z" END_TIME="2024-04-01T00:00:00Z" curl -sL "https://api.finam.ru/v1/instruments/$SYMBOL/bars?timeframe=$TIMEFRAME&interval.start_time=$START_TIME&interval.end_time=$END_TIME" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` **Available Timeframes:** | Timeframe | Description | Max data depth (end_time - start_time) | |---|---|---| | `TIME_FRAME_UNSPECIFIED` | Not specified | — | | `TIME_FRAME_M1` | 1 minute | 7 days | | `TIME_FRAME_M5` | 5 minutes | 30 days | | `TIME_FRAME_M15` | 15 minutes | 30 days | | `TIME_FRAME_M30` | 30 minutes | 30 days | | `TIME_FRAME_H1` | 1 hour | 30 days | | `TIME_FRAME_H2` | 2 hours | 30 days | | `TIME_FRAME_H4` | 4 hours | 30 days | | `TIME_FRAME_H8` | 8 hours | 30 days | | `TIME_FRAME_D` | Day | 365 days | | `TIME_FRAME_W` | Week | ~5 years | | `TIME_FRAME_MN` | Month | ~5 years | | `TIME_FRAME_QR` | Quarter | ~5 years | > **Note:** The max data depth is the maximum allowed range for `end_time - start_time`. If the range exceeds the limit, the API returns empty data. **Date Format (RFC 3339):** - Format: `YYYY-MM-DDTHH:MM:SSZ` or `YYYY-MM-DDTHH:MM:SS+HH:MM` - `start_time` - Inclusive (interval start, included in results) - `end_time` - Exclusive (interval end, NOT included in results) - Examples: - `2024-01-15T10:30:00Z` (UTC) - `2024-01-15T10:30:00+03:00` (Moscow time, UTC+3) ## News ### Get Latest Market News Fetch and display the latest news headlines. No JWT token required. Russian market news ```shell curl -sL "https://www.finam.ru/analysis/conews/rsspoint/" | python3 -c " import sys, xml.etree.ElementTree as ET root = ET.parse(sys.stdin).getroot() for item in reversed(root.findall('.//item')): print(f'* {item.findtext('title','')}. {item.findtext('description','').split('...')[0]}') " ``` US market news ```shell curl -sL "https://www.finam.ru/international/advanced/rsspoint/" | python3 -c " import sys, xml.etree.ElementTree as ET root = ET.parse(sys.stdin).getroot() for item in reversed(root.findall('.//item')): print(f'* {item.findtext('title','')}. {item.findtext('description','').split('...')[0]}') " ``` **Parameters:** - Change `[:10]` to any number to control how many headlines to display ## Order Management > **IMPORTANT:** Before placing or cancelling any order, you MUST explicitly confirm the details with the user and > receive their approval. State the full order parameters (symbol, side, quantity, type, price) and wait for confirmation > before executing. ### Place Order **Order Types:** - `ORDER_TYPE_MARKET` - Market order (executes immediately, no `limit_price` required) - `ORDER_TYPE_LIMIT` - Limit order (requires `limit_price`) ```shell curl -sL "https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders" \ --header "Authorization: $FINAM_JWT_TOKEN" \ --header "Content-Type: application/json" \ --data "$(jq -n \ --arg symbol "SBER@MISX" \ --arg quantity "10" \ --arg side "SIDE_BUY" \ --arg type "ORDER_TYPE_LIMIT" \ --arg price "310.50" \ '{symbol: $symbol, quantity: {value: $quantity}, side: $side, type: $type, limit_price: {value: $price}}')" \ | jq ``` **Parameters:** - `symbol` - Instrument (e.g., `SBER@MISX`) - `quantity.value` - Number of shares/contracts - `side` - `SIDE_BUY` or `SIDE_SELL` - `type` - `ORDER_TYPE_MARKET` or `ORDER_TYPE_LIMIT` - `limit_price` - Only for `ORDER_TYPE_LIMIT` (omit for market orders) ### Get Order Status Check the status of a specific order: ```shell ORDER_ID="12345678" curl -sL "https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders/$ORDER_ID" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` ### Cancel Order Cancel a pending order: ```shell ORDER_ID="12345678" curl -sL --request DELETE "https://api.finam.ru/v1/accounts/$FINAM_ACCOUNT_ID/orders/$ORDER_ID" \ --header "Authorization: $FINAM_JWT_TOKEN" | jq ``` ## Volatility Scanner Scans the top-100 stocks for a given market and prints the most volatile ones based on annualized historical volatility (close-to-close, last 60 days). **Usage:** ```shell python3 scripts/volatility.py [ru|us] [N] ``` **Arguments:** - `ru` / `us` — market to scan (default: `ru`) - `N` — number of top results to display (default: `10`) **Examples:** ```shell # Top 10 most volatile Russian stocks python3 scripts/volatility.py ru 10 # Top 5 most volatile US stocks python3 scripts/volatility.py us 5 ``` All scripts support `--help` for usage details (e.g. `python3 scripts/volatility.py --help`). ## REST vs gRPC — When to Use Which **Use REST when:** - Fetching historical OHLCV data for backtesting or analysis - Retrieving account info, positions, balances, and trade history - Searching instruments or fetching asset specifications - Placing or cancelling a one-off order where 100–200 ms latency is acceptable - Checking order status after placement **Use gRPC when:** - Subscribing to real-time market data: quotes, order book, trade feed - Processing live bar data (M1, M5) for signal generation in event-driven strategies - Monitoring own orders and trades in real time via subscription - Your strategy requires minimal latency for rapid order placement/cancellation - Building long-running trading bots that need persistent, auto-reconnecting connections For gRPC, use the [FinamPy](https://github.com/cia76/FinamPy) Python library ( `pip install git+https://github.com/cia76/FinamPy.git`). Full usage reference: [gRPC Python Reference](references/GRPC.md) --- For full REST API details, use the local file: [REST Reference](references/REST.md) For extra gRPC API details, fetch from: [gRPC Reference](https://tradeapi.finam.ru/docs/grpc/)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 finam-1776420034 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 finam-1776420034 技能

通过命令行安装

skillhub install finam-1776420034

下载 Zip 包

⬇ 下载 finam v1.0.4

文件大小: 26.8 KB | 发布时间: 2026-4-17 20:00

v1.0.4 最新 2026-4-17 20:00
- Fixed parameter and field names in API query examples for consistency (e.g., `accountId` → `account_id`, `limitPrice` → `limit_price`, `startTime` → `start_time`).
- Updated historical candles (OHLCV) section with a new table of timeframes and their max data depth limits.
- Clarified usage of timeframe date parameters and provided guidance on valid ranges.
- Improved accuracy of several API command examples.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部