У кого нить получается на C# отправить заявку в терминал? Хоть режьте, не уходят у меня заявки. Подтверждение пишется что все ок, но заявка не появляется. Где ошибка?
т.е вместо 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» — СОСТОЯНИЕ СОЕДИНЕНИЯ
Установка и получение состояния соединения с сервером «Альфа-Директ».
СИНТАКСИС
Самый богатый депутат за 2022 год увеличил состояние в 12 раз, Доход за год
в размере 3,5 млрд руб. задекларировал представитель КПРФ Владимир Блоцкий —
— зампредседателя комитета по аграрным в...
Вот думаю завтра или во вторник на гэп Лукойл взять акции банка Санкт Петербург… Хочу взять столько же, сколько сейчас имею, т.е. на 50 процентов усредниться, это для меня ускорит закрытие гэп
Думаю, смогу помочь, если сбросите спецификацию заявки из документации.
Подозреваю, там и примеры есть.
Если есть, тоже давайте сюда.
Если это так, то это просто пздц.
Приведите здесь выдержку из хелпа в отношении 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;