Клиентский API > Когда же будет API для терминала.
-
- Сообщения: 77
- Зарегистрирован: 23 мар 2018, 10:54
- Поблагодарили: 2 раза
Re: Когда же будет API для терминала.
Именно новой 4.0.2186.1134 появилась описанная проблема. В двух предыдущих версиях все работало. Как было еще раньше - не знаю, написал роботов только в ноябре
Re: Когда же будет API для терминала.
DenisK
Ждать не нужно. Подпишись на событие OnTerminalConnectionChanged. Когда прийдет событие с параметром ConnectionStatus.Connected логинься.
Вообще нужно код смотреть. Напиши простую программу для теста коннекта.
Ждать не нужно. Подпишись на событие OnTerminalConnectionChanged. Когда прийдет событие с параметром ConnectionStatus.Connected логинься.
Вообще нужно код смотреть. Напиши простую программу для теста коннекта.
Re: Когда же будет API для терминала.
Разобрался! Спасибо, piyyy!
Оказалось, теперь нельзя вызывать ADClient.Connect(...) когда терминал уже залогинен.
Вот так с версией 4.0.2186.1135 у меня работает:
Оказалось, теперь нельзя вызывать ADClient.Connect(...) когда терминал уже залогинен.
Вот так с версией 4.0.2186.1135 у меня работает:
Код: Выделить всё
Packer.Initialize(@"C:\Program Files (x86)\Alfa-Direct Pro\ad.xml");
AdClient myClient = new AdClient();
// OnTerminalConnectionChanged with Connected status occurs earlier than this 5 seconds delay. Need rewrite on it.
Thread.Sleep(5000);
ConnectionStatus connectionStatus = myClient.GetConnectionStatus(FrontEndType.AuthAndOperInitServer);
Console.WriteLine($"connectionStatus = {connectionStatus}");
if (connectionStatus != ConnectionStatus.Authorized)
{
Console.WriteLine("Not yet authorized. Logging in...");
myClient.Connect(loginVAd, passwordVAd);
}
else
{
Console.WriteLine("Already logged in.");
}
piyyy писал(а):DenisK
Ждать не нужно. Подпишись на событие OnTerminalConnectionChanged. Когда прийдет событие с параметром ConnectionStatus.Connected логинься.
Вообще нужно код смотреть. Напиши простую программу для теста коннекта.
-
- Сообщения: 220
- Зарегистрирован: 28 июн 2017, 13:56
- Благодарил (а): 4 раза
- Поблагодарили: 40 раз
Re: Когда же будет API для терминала.
1. Прочитали бы этот тред с начала, там был пример как и что и задержки обсуждались.
2. Использовать API - мазохизм, берите AdirConnector и данные напрямую, а не через WCF как в API
2. Использовать API - мазохизм, берите AdirConnector и данные напрямую, а не через WCF как в API
Re: Когда же будет API для терминала.
Читал, но сделал не правильно. Каждый раз Connect вызывал. Работало... Все живые люди и можем ошибаться.
Про adirconnector нашел вашу ветку. Благодарю за совет!
Про adirconnector нашел вашу ветку. Благодарю за совет!
Re: Когда же будет API для терминала.
Всем привет
Нужны данные по цене: high, low, open, close цена, а так же данные от индикаторов MACD / AO
Используя данный АПИ можно получать свечи 5минутки или как эту инфу еще можно получить в свое приложение .net?
Нужны данные по цене: high, low, open, close цена, а так же данные от индикаторов MACD / AO
Используя данный АПИ можно получать свечи 5минутки или как эту инфу еще можно получить в свое приложение .net?
Re: Когда же будет API для терминала.
Ребят, получилось законнектиться к приложению.
Теперь бы данные от индикатора получить, свечку пятиминутную, а еще надо с заявками работать, открыть, закрыть.
Примеров не нашел в форуме.
Поможет кто-нибудь?
Теперь бы данные от индикатора получить, свечку пятиминутную, а еще надо с заявками работать, открыть, закрыть.
Примеров не нашел в форуме.
Поможет кто-нибудь?
Re: Когда же будет API для терминала.
Могу помочь с заявками.
Создать заявку:
AccountId - строка вида 12345-000. Можно глянуть в терминале во всплывающем окошке при наведении мыши на синенький кружок с восклицательным знаком рядом с любой заявкой. Account-Id будет справа сверху.
IdFi - Financial Instrument ID. Можно глянуть в терминале на вкладке main, где много всяких инструментов. Там также навести мышь на синенький кружок. Во всплывающей подсказке будет КодИнстр. Это и есть IdFi.
Quantity - количество акций в штуках. Например, для VTB это будет 10000.
Остальные параметры вроде интуитивно понятны.
Получить статус заявки:
orderEntity = adTrading.GetOrderByClientNum(OrderClientNumEDocument);
Если исполнена, то сработает проверка:
orderEntity.IdOrderStatusWithMask == OrderStatus.Filled
Отменить заявку:
adTrading.CancelOrder(InternalOrderId);
InternalOrderId можно вытащить из структуры orderEntity. Это десятизначное число, которое видно во всплывающем окошке с параметрами заявки.
Создать заявку:
Код: Выделить всё
// Next line should be somewhere after connecting to the terminal.
AdTrading myAdTrading = new AdTrading();
String errorMessage = "";
String OrderClientNumEDocument = "";
OrderClientNumEDocument = adTrading.CreateLimitOrder(AccountId, IdFi, OrderDirection.Buy, Quantity, BuyPrice,
LifeTime.D30, out errorMessage);
AccountId - строка вида 12345-000. Можно глянуть в терминале во всплывающем окошке при наведении мыши на синенький кружок с восклицательным знаком рядом с любой заявкой. Account-Id будет справа сверху.
IdFi - Financial Instrument ID. Можно глянуть в терминале на вкладке main, где много всяких инструментов. Там также навести мышь на синенький кружок. Во всплывающей подсказке будет КодИнстр. Это и есть IdFi.
Quantity - количество акций в штуках. Например, для VTB это будет 10000.
Остальные параметры вроде интуитивно понятны.
Получить статус заявки:
orderEntity = adTrading.GetOrderByClientNum(OrderClientNumEDocument);
Если исполнена, то сработает проверка:
orderEntity.IdOrderStatusWithMask == OrderStatus.Filled
Отменить заявку:
adTrading.CancelOrder(InternalOrderId);
InternalOrderId можно вытащить из структуры orderEntity. Это десятизначное число, которое видно во всплывающем окошке с параметрами заявки.
Re: Когда же будет API для терминала.
DenisK писал(а):Могу помочь с заявками.
Денис благодарствую!
Все работает.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя