Импорт сделок с помощью веб API

1. Адрес сервиса

POST   https://mfd.ru/tradingsignals/deals/import

2. Примеры запросов

Сервис понимает два формата запроса — application/x-www-form-urlencoded и application/json.

Принимаются только POST-запросы. В ответ на GET, PUT и др. возвращается 404 ошибка.

2.1. application/x-www-form-urlencoded

DealDirection=3&DealPrice=169.77&DealSize=1000&ExtRef=3758880&InstrumentName=GAZP&Password=12345&SecBoard=EQBR&StrategyId=1503&Username=manager&X-Requested-With=XMLHttpRequest

2.2. application/json

{
	"DealDirection": 3,
	"DealPrice": 169.77,
	"DealSize": 1000,
	"ExtRef": 3758880,
	"InstrumentName": "GAZP",
	"Password": "12345",
	"SecBoard": "EQBR",
	"StrategyId": 1503,
	"Username": "manager",
	"X-Requested-With": "XMLHttpRequest"
}

3. Примеры ответов

Ответ всегда в формате application/json.

3.1. Пример успешного ответа

{ "d": { "Success": true } }

3.2. Пример ответа с ошибкой

{
	"d":
	{
		"Errors":
		{
			"DealDirection": [ "Поле «DealDirection» обязательно для заполнения." ],
			"DealPrice": [ "Поле «DealPrice» обязательно для заполнения." ]
		},
		"Message": "Ошибка валидации. Поле «DealDirection» обязательно для заполнения. Поле «DealPrice» обязательно для заполнения.",
		"Success": false
	}
}

4. Параметры запроса

Все параметры кроме DealSize и DealAmount являются обязательными.

Размер сделки можно указать либо в лотах (DealSize), либо в штуках (DealAmount). В случае, если ни один из этих двух параметров не указан, или указаны оба одновременно, веб-сервис вернёт ошибку. 

Наименования параметров регистро-независимые, сервис понимает как dealDirection, так и DEALDIRECTION и т.п.

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

НаименованиеТипОписание
DealDirection Int32 Тип сделки (3 — покупка, 4 — продажа)
DealPrice Decimal Цена сделки
DealSize Int32 Размер сделки в лотах (нельзя указать одновременно с DealAmount)
DealAmount Int32 Размер сделки в штуках (нельзя указать одновременно с DealSize)
ExtRef Int64 Код сделки
InstrumentName String Код инструмента
Password String Пароль управляющего
SecBoard String Код рынка
StrategyId Int32 Код стратегии
Username String Логин управляющего
X-Requested-With String Служебное поле, значение всегда XMLHttpRequest

5. HTTP-коды ответов

Подробное описание ошибки содержится в теле ответа.

КодУсловие
200 OK
  • Сделка была успешно добавлена в базу.
403 Forbidden
  • Неверный логин или пароль.
  • Указанный пользователь не является управляющим.
  • Указанный пользователь заблокирован.
  • Указанный пользователь не является управляющим указанной стратегии.
404 Not Found
  • Указанная стратегия не найдена.
409 Conflict
  • Сделка с указанными кодом управляющего, стратегии и внешним кодом уже есть в базе.
500 Internal Server Error
  • Ошибка валидации (не указано обязательное поле, размер поля превышает ограничение по размеру).
  • Ошибка при обращении к серверу стратегий.
  • Любая непредвиденная ошибка.

6. Справочник: Коды рынков

Коды рынков:

  • TQBR — ММВБ Акции
  • PSFU — FORTS Фьючерсы

Нотация тикеров: акции — SBER, GAZP, фьючерсы — RTS-9.12 и т.п.