Кто программирует Альфа директ API, отзовитесь!
У кого нить получается на C# отправить заявку в терминал? Хоть режьте, не уходят у меня заявки. Подтверждение пишется что все ок, но заявка не появляется. Где ошибка?
DateTime datetoday = DateTime.Today; // Сегодняшняя дата
AD.CreateLimitOrder(«111111-000», «FORTS», «USD-3.14», datetoday, «BUY ORDER», «RUR», «B», 1, 34848, null, null, null,null, null, null, null, null, null, null, null, null, null, null, null, null, 10);
1К |
Читайте на SMART-LAB:
«Цифра брокер»: справедливая цена акций MGKL — 4 руб.
Инвестиционная компания Цифра брокер повысила оценку справедливой стоимости акций ПАО «МГКЛ» с 3,44 руб. до 4,00 руб. за акцию. Пересмотр...
Хит-парад доходности: «золотые» акции
Главное Начав 2026 год с падения, российский фондовый рынок в течение последней недели демонстрирует рост. В секторе ритейла...
ИИ изменится и изменит рынок в 2026 году #SOFL_тренды
В 2026 году ИИ выходит из режима экспериментов. Чат-боты и пилоты остаются в прошлом — технологии начинают массово работать в реальных...
Актуальный состав портфеля и взгляд на рынок 2026: по-прежнему 0% позитива.
Добрый вечер! С момента предыдущего поста, касающегося моего портфеля, прошел квартал. Пришло время актуализировать его состав. Также поделюсь...
Думаю, смогу помочь, если сбросите спецификацию заявки из документации.
Подозреваю, там и примеры есть.
Если есть, тоже давайте сюда.
Если это так, то это просто пздц.
Приведите здесь выдержку из хелпа в отношении CreateLimitOrder
1. как-то не так дата передается
2. заменить кавычки на одинарные (вряд ли)
написать
DateTime datetoday = DateTime.Now + TimeSpan.FromSeconds(60)
// Лимитированная заявка на покупку инструмента X-12.13
OrdNo := FAD.CreateLimitOrder(Portfel, 'FORTS', instrument_kr, Now + 1, '', 'RUR', 'B', Kolich, Prise1, Null, Null, Null, Null, Null, 'Y', Null, Null, Null, Null, Null, Null, Null, Null, Null, Null, 0);
т.е вместо DateTime datetoday = DateTime.Today; // Сегодняшняя дата просто пишу Now + 1 (если надо чтобы заявка отменилась через сутки от выставления) или Now + 0,5 (отменится через 12 часов) или Now + 0.004 (через примерно 6 минут )
DateTime datetoday = DateTime.Today;
возвращает дату с временем 00:00:00.000 и в момент приема ее сервером она уже не активна
Прибавьте один день и все будет ок
например так
DateTime orderdate = DateTime.Today.AddDays(1); // Сегодняшняя дата + 1 день
Может кто то подскажет, почему в c# ругается на строчку подключения к терминалу?
AD.Connected = «TRUE»;
AD.Connected = TRUE;
Ошибка 1 Элемент «TRUE» не существует в текущем контексте.
Если прочитать руководство от Альфабанка то там вот что пишут
:
СВОЙСТВО «CONNECTED» — СОСТОЯНИЕ СОЕДИНЕНИЯ
Установка и получение состояния соединения с сервером «Альфа-Директ».
СИНТАКСИС
[VB]
ADObj.Connected
[C++]
HRESULT get_Connected(VARIANT_BOOL *Value);
HRESULT put_Connected(VARIANT_BOOL Value);
Некоторые ответы ты можеш найти на свободной требуне: www.alfadirect.ru/common/?page=forum&f=AD
На делфи я так подключаюсь: FAD := CoAlfaDirect.Create;
например:
private
FAD: IAlfaDirect;
procedure TFormTorg.btnPerMICEXClick(Sender: TObject);
begin
try
FAD := CoAlfaDirect.Create;
mResult.Lines.Add('Подключение установлено');
except
mResult.Lines.Add(Exception(ExceptObject).Message);
end;
…
end;
В потоках незабываем прописывать Application.Initialize;
например
begin
Application.Initialize;
try
FAD := CoAlfaDirect.Create;
mResult.Lines.Add('Подключение установлено');
except
mResult.Lines.Add(Exception(ExceptObject).Message);
end;
…
end;