Программа для подключения через API Interactive Brokers

Дмитрий5 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
07.06.2022

Необходимо создать программу, либо веб-приложение для подключения через API Interactive Brokers.

Задача программы автоматизировать рутинные действия в торговле - создание, редактирование, закрытие торговых ордеров.

Рекомендованные разработчиками языки программирования - C++, C#, Java, Python, ActiveX, RTD or DDE

[table]Брокер - Interactive brokers

Терминал - IB TWS (работает на Windows)

Размещение - VPS сервер на Windows, можно сделать любой

Информация по API: https://www.interactivebrokers.com/en/trading/ib-api.php

Рынки акций: NYSE, NASDAQ

Валюта: USD

Продукт: Stock

Время операций с акциями делим на 2 вида:

1. основная сессия и

'2. пре- и постмаркетпоскольку на пре-маркете нельзя открывать дробленные позиции, то необходимо, чтобы при создании ордеров делалось округление не превышающее сумму установленного в настройках размера size.

Источник данных для ордеров: таблица на странице сайта, желательная частота обновления - примерно 1 сек. Данные в таблице обновляются в режиме реального времени

Поля таблицы: date, time, stock, enterprice, action (open, close, closepart), type (short, long), target, stop, size, risk. Для открытия позиции обязательно заполненными должны быть поля - stock, enterprice, action, type. если заполнено - создаем ордера.

Описания полей:

stock - название тикера фондовой биржы, прописан латиницей, в начале установлен # для упрощения фильтрации в таблице

enterprice - цена, которая используется для ориентира по формированию ордеранеобходимо, чтобы цена входа в позицию редактировалась для двух рынков (премаркет/постмаркет и основаная сессия). На пре- и постмаркете +N% (например, +0,2%), аналогично на основной сессии. Но для основной сессии необходимо, чтобы была возможность включать режим входа Market price. Если позиция была частично закрыта, то и стоп уменьшается в соответствии к оставшейся части позиции.

action.

1. open - открытие позиции в лонг, либо шорт

2. close - закрыть всю позицию по market price

3. closepart 1/3, либо 1/2 - закрыть соответствующую часть позиции market price. Если эти поля не заполнены, то в таблице указаны изменения на исправления стопов, либо тейков

type - short и long, одноименные входы

target - profit take для лонга или шорта от enterpriceв процессе торговли это поле не меняем, если указали заранее

stop - стоп ордер, либо в % от enterprice, либо фиксированное значение

size - размер позиции для открытия (small, basic, big - значения прописываются в настройках) если при открытии позиции это поле не указано в таблице, то по-умолчанию используем значение, которое задаем в настройках. К примеру, указываем, что на премаркете используем пол умолчанию small, а на основной сессии по-умолчанию basicrisk - уровень риска (standard, high) Если риск указан standard, то в других полях используем значения по-умолчаниюю Если указан high, то значение size для позиции используется small, независимо от рынка.

Программу необходимо установить на 2 компьютера, с возможностью установки на другие устройства.

Опционально:

необходимо генерировать отчет аналогичный таблице-источнику, а в поле exitprice указывать реальную цену выполнения ордера на закрытие позиции. Добавить поле result с процентным результатом + и - от поля exitprice после полного закрытия. Добавить поле realprice - значение по которому был выполнен ордер на открытие позиции.

Сделать окно настроек для формирования стратегий автоматического входа и выхода из позиций.

Необходимые настройки:

1. Стоп лосс.

Установка стоп лоса в определенном процентном значение от точки enterprice, если поле Stop не указано в таблице.

2. Увеличение.

Установка одера на УВЕЛИЧЕНИЕ позиции на определенный процент до стопа от цены enterptice, и на определенный процент от размера открытой позиции. К примеру, enterprice 100 usd, стоп 5% (95), размер открытой позиции 1000 usd. Значение до стопа установили 80%, а значение увеличения установили 30%. С открытием позиции должен быть автоматически установлен ордер на увеличение в точке 96 usd (80% от стопа 5%) на сумму 300 usd. На эту же часть (в данном случае 300 usd), в случае срабатывания ордера на открытие, автоматически должен создаваться ордер на закрытие этой части позиции 300 usd по цене enterprice. Данная функция должна включаться/выключаться в настройках.

3. Уменьшение.

Установка одера на УМЕНЬШЕНИЕ позиции (частичный тейк профит) на определенный процент от цены enterptice, и на определенный процент от размера открытой позиции. К примеру, enterprice 100 usd, размер открытой позиции 1000 usd. Значение для уменьшения размера установили 30%, а точка тейк на уменьшение 1%. С открытием позиции должен быть автоматически установлен ордер на уменьшение в точке 101 usd (+1%) на сумму 300 usd. На эту же часть (в данном случае 300 usd), в случае срабатывания ордера на открытие, автоматически должен создаваться ордер на закрытие этой части позиции 300 usd по цене enterprice. Данная функция должна включаться/выключаться в настройках.

При увеличении/уменьшении позиции размер общего стопа должен автоматически изменяться на оставшийся размер позиции. В т.ч. если часть позиции была закрыта через несение данных в таблицу в поле closepart.

4. Перенос стоп лоса.

При достижении стоимости позиции до определенного процента от цены enterprice, необходимо автоматически перемещать стоп в точку значения enterprice. К примеру, enterprice 100 usd, стоп 5% (95). Установили значение переноса стопа 2%. После достижения стоимости 102 usd стоп автоматически переносится в точку 100.

Все возникшие вопросы пишите в личные сообщения - обсудим, возможно в чем-то пересмотрим функционал.

Заявки фрилансеров