Торговый робот "Hello World"

Простейшая стратегия на скользящих средних (SMA Crossover) для быстрого старта

API methods

/api/submit_order POST Отправить рыночную заявку
Исполняется по текущей рыночной цене
  • direction: 'B' Покупка или 'S' Продажа
  • secid: Код бумаги ('SBER', 'LKOH', ...)
  • quantity: Количество акций (целое число)
  • bot: Наименование портфеля/бота (string)
/api/trades/<portfolio> GET Получить свои сделки за сегодня для указанного портфеля portfolio - название портфеля (в URL)
/api/positions/<portfolio> GET Получить свои открытые позиции для указанного портфеля portfolio - название портфеля (в URL)
/api/bots GET Получить список своих ботов

Шаг 1: Получи API токен

Для использования API нужно получить токен:

  1. Войдите в свой профиль трейдера (кликните на своё имя)
  2. В левой панели найдите секцию "API Token Generation"
  3. Нажмите кнопку "Generate New Token"
  4. Скопируйте токен и сохраните - он действует 1 год

Шаг 2: Отправляй заявки

Используй токен для отправки заявок

cURL
curl -X POST "https://arenago.ru/api/submit_order" \
     -H "Content-Type: application/json" \
     -H "Authorization: your_token" \
     -d '{
         "direction": "B",
         "secid": "SBER",
         "quantity": 10,
         "bot": "MyTradingBot"
     }'
Python
import requests

url = "https://arenago.ru/api/submit_order"
payload = {
    "direction": "B",  # "B" for Buy, "S" for Sell
    "secid": "SBER",   # Stock ticker
    "quantity": 10,    # Number of shares
    "bot": "MyTradingBot"  # Your bot's name
}
headers = {
    "Content-Type": "application/json",
    "Authorization": "your_token"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json())
Success Response
{
    "success": true,
    "message": "Trade submitted successfully",
    "order_value": 1269.4,
    "price": 126.94,
    "quantity": 1,
    "remaining_cash": 429371.46
}
Error Responses

{"error": "ERROR: MARKET CLOSED"} - Торговля: 00:00 - 23:50 MSK
{"error": "ERROR: NOT VALID SECID"} - Инструмент недоступен
{"error": "ERROR: INSUFFICIENT CASH"} - Недостаточно средств
{"error": "ERROR: BOT {bot_name} HAS REACHED DAILY TRADE LIMIT"} - Лимит 1000 сделок в день

Отслеживай сделки, позиции и ботов

Get Trades
Python
import requests

portfolio = "MyBot"  # Portfolio name
url = f"https://arenago.ru/api/trades/{portfolio}"
headers = {"Authorization": "your_token"}

response = requests.get(url, headers=headers)
trades = response.json()
for trade in trades:
    print(f"{trade['tradedate']} {trade['tradetime']}: "
          f"{trade['direction']} {trade['secid']} "
          f"x{trade['quantity']} @ {trade['price']} "
          f"by {trade['bot']}")
Get Positions
Python
import requests

portfolio = "MyBot"  # Portfolio name
url = f"https://arenago.ru/api/positions/{portfolio}"
headers = {"Authorization": "your_token"}

response = requests.get(url, headers=headers)
positions = response.json()
for pos in positions:
    print(f"{pos['secid']}: {pos['position']} lots "
          f"@ avg {pos['average_price']} "
          f"(bot: {pos['bot']})")
Get Bots
Python
import requests

url = "https://arenago.ru/api/bots"
headers = {"Authorization": "your_token"}

response = requests.get(url, headers=headers)
bots = response.json()
for bot in bots:
    print(f"Bot: {bot['name']}")
    print(f"  Cash: {bot['cash_balance']:,.2f} RUB")

Доступные ценные бумаги

Для торговли доступны 58 инструментов:

Акции (36)
AFKS AFLT ALRS CHMF FLOT GAZP GMKN HEAD LKOH MGNT MOEX MTLR MTSS NLMK NVTK PIKK PLZL POSI RNFT ROSN SBER SBERP SIBN SMLT SNGS SNGSP SPBE SVCB T TATN TRNFP UPRO VKCO VTBR X5 YDEX
Фьючерсы (15)
BRJ6 CRM6 EDM6 EuM6 GDM6 GLM6 MMM6 MXM6 NGH6 NGJ6 PDM6 PTM6 RIM6 SVM6 SiM6
Криптовалюты (7)
BNB BTC ETH SOL TON XRP ZEC