Добавить в корзинуПозвонить
Найти в Дзене
AlgoRussian

Как начать использовать Finam API для торговли на бирже

Если вы хотите создать свои торговые алгоритмы или анализировать финансовые данные с помощью Python, Finam API — отличный инструмент, позволяющий получить доступ к рынку и автоматизировать торговлю. В этой статье рассмотрим процесс подключения к Finam API с нуля, а также покажем, как использовать пакет finam-trade-api для взаимодействия с сервисом. Чтобы работать с Finam API, вам понадобится торговый счет в «Финаме». Если вы еще не являетесь клиентом компании, начните с открытия счета на официальной странице Финама. Процедура займет немного времени, после чего у вас будет доступ к биржевым инструментам. Для получения торгового API-токена, необходимого для авторизации в системе, нужно пройти регистрацию в сервисе Comon. Это платформа, которая объединяет функции для управления инвестициями и доступа к торговым API. Перейдите по ссылке для регистрации и создайте учетную запись, используя ваши данные. После регистрации в Comon выполните следующие действия для получения токена: После за
Оглавление

Если вы хотите создать свои торговые алгоритмы или анализировать финансовые данные с помощью Python, Finam API — отличный инструмент, позволяющий получить доступ к рынку и автоматизировать торговлю. В этой статье рассмотрим процесс подключения к Finam API с нуля, а также покажем, как использовать пакет finam-trade-api для взаимодействия с сервисом.

Шаг 1: Откройте счет в «Финаме»

Чтобы работать с Finam API, вам понадобится торговый счет в «Финаме». Если вы еще не являетесь клиентом компании, начните с открытия счета на официальной странице Финама. Процедура займет немного времени, после чего у вас будет доступ к биржевым инструментам.

Пример экрана регистрации на сайте Финам.
Пример экрана регистрации на сайте Финам.

Шаг 2: Зарегистрируйтесь в сервисе Comon

Для получения торгового API-токена, необходимого для авторизации в системе, нужно пройти регистрацию в сервисе Comon. Это платформа, которая объединяет функции для управления инвестициями и доступа к торговым API. Перейдите по ссылке для регистрации и создайте учетную запись, используя ваши данные.

Главный экран регистрации Comon.
Главный экран регистрации Comon.

Шаг 3: Получите токен в личном кабинете Comon

После регистрации в Comon выполните следующие действия для получения токена:

  1. Войдите в личный кабинет и перейдите в раздел настроек аккаунта.
  2. Найдите вкладку с API-ключами.
  3. Сгенерируйте новый API-токен, который будет использоваться для авторизации при работе с Finam API.
  4. Сохраните токен в надежном месте, так как он потребуется для всех последующих операций.
Пример экрана с API-ключами.
Пример экрана с API-ключами.

Шаг 4: Установка Python и настройка finam-trade-api

После завершения регистраций и получения токена можно приступить к настройке рабочего окружения в Python. Для этого используем пакет finam-trade-api, который упрощает взаимодействие с Finam API.

Установка Python

  1. Перейдите на официальный сайт Python и скачайте последнюю версию для своей операционной системы.
  2. Установите Python, отметив опцию Add Python to PATH.

Установка библиотеки finam-trade-api

Откройте терминал (или командную строку) и введите:

pip install finam-trade-api

Шаг 5: Подключение к Finam API с использованием токена

Теперь, когда библиотека установлена, можно подключиться к Finam API. В коде ниже приведен базовый пример подключения к API и получения рыночных данных:

import os

from finam_trade_api.client import Client

from finam_trade_api.candles.model import (

DayCandlesRequestModel,

DayInterval,

IntraDayCandlesRequestModel,

IntraDayInterval

)

# Задание токена и client_id

token = os.getenv("TOKEN", "ВАШ ТОКЕН")

client_id = os.getenv("CLIENT_ID", "ВАШ СЧЕТ")

client = Client(token)

# Асинхронная функция для получения дневных свечей

async def get_day_candles():

client = Client(token)

params = DayCandlesRequestModel(

securityBoard="TQBR",

securityCode="SBER",

timeFrame=DayInterval.D1,

intervalFrom="2024-06-05",

intervalTo="2024-06-07",

count=10 # Укажите нужное количество свечей

)

return await client.candles.get_day_candles(params)

# Асинхронная функция для получения внутридневных свечей

async def get_in_day_candles():

client = Client(token)

params = IntraDayCandlesRequestModel(

securityBoard="TQBR",

securityCode="SBER",

timeFrame=IntraDayInterval.M1,

intervalFrom="2024-06-07 08:33:52",

intervalTo="2024-06-07 18:33:52", # Добавлено конечное время интервала

count=10

)

return await client.candles.get_in_day_candles(params)

# Основной блок кода для вызова асинхронных функций

if __name__ == "__main__":

import asyncio

async def main():

# Получение дневных и внутридневных свечей

day_candles = await get_day_candles()

in_day_candles = await get_in_day_candles()

# Вывод полученных данных

print(day_candles)

print(in_day_candles)

# Запуск основного асинхронного процесса

asyncio.run(main())

Замените "ВАШ_ТОКЕН" и "ВАШ СЧЕТ" на токен и номер счета из личного кабинете Comon. Этот код выполнит запрос на получение рыночных данных для акций Сбербанка на минутном таймфрейме.

Советы по использованию Finam API

  1. Защищайте токен: Ваш API-токен предоставляет полный доступ к торговому счету. Не храните его в открытом виде и не передавайте третьим лицам.
  2. Используйте таймауты и лимиты на запросы: Чтобы избежать блокировок или превышения лимитов, устанавливайте разумные интервалы между запросами, особенно если вы анализируете большие объемы данных.
  3. Тестируйте стратегию на исторических данных: Прежде чем использовать алгоритмы для реальных сделок, протестируйте их на исторических данных. Это поможет оценить их эффективность и минимизировать риски.

Заключение

Finam API в сочетании с пакетом finam-trade-api предоставляет доступ к торговым данным и позволяет автоматизировать ваши стратегии. Надеемся, что это руководство поможет вам начать свой путь в автоматизированной торговле. Удачной торговли!

Отказ от ответственности.