Кто программирует Альфа директ 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);
Думаю, смогу помочь, если сбросите спецификацию заявки из документации.
Подозреваю, там и примеры есть.
Если есть, тоже давайте сюда.
Если это так, то это просто пздц.
Приведите здесь выдержку из хелпа в отношении 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;