roma095
roma095 личный блог
07 февраля 2014, 11:54

Кто программирует Альфа директ 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);

10 Комментариев
  • Дмитрий Столетов
    07 февраля 2014, 13:42
    Пишу для Квика.
    Думаю, смогу помочь, если сбросите спецификацию заявки из документации.
    Подозреваю, там и примеры есть.
    Если есть, тоже давайте сюда.
  • gib
    07 февраля 2014, 13:47
    Сильно сомневаюсь, что символ фьюча надо передавать как текст: «USD-3.14».

    Если это так, то это просто пздц.

    Приведите здесь выдержку из хелпа в отношении CreateLimitOrder
    • AlexeyTikhonov
      07 февраля 2014, 14:04
      gib, да, так передается.
      • gib
        07 февраля 2014, 14:10
        AlexeyT, жесть конечно.
  • AlexeyTikhonov
    07 февраля 2014, 14:06
    Навскидку:
    1. как-то не так дата передается
    2. заменить кавычки на одинарные (вряд ли)
  • xp-trade
    07 февраля 2014, 14:25
    Попробуй вместо DateTime datetoday = DateTime.Today;
    написать
    DateTime datetoday = DateTime.Now + TimeSpan.FromSeconds(60)
  • winbin
    07 февраля 2014, 14:57
    Програмирую на Delphi

    // Лимитированная заявка на покупку инструмента 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 минут )
  • Александр Володин
    07 февраля 2014, 15:10
    у вас проблема в том, что
    DateTime datetoday = DateTime.Today;
    возвращает дату с временем 00:00:00.000 и в момент приема ее сервером она уже не активна
    Прибавьте один день и все будет ок
    например так
    DateTime orderdate = DateTime.Today.AddDays(1); // Сегодняшняя дата + 1 день
  • winbin
    19 февраля 2014, 14:22
    Програмирую на Delphi.

    Если прочитать руководство от Альфабанка то там вот что пишут
    :
    СВОЙСТВО «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;

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн