МТ5 и trans2quik.dll - страница 4

 
prostotrader:

Кто-нибудь реально работал с этой глюкавкой?

Работал, и продолжаю работать. Писал пару лет назад, с тех пор ничего не менял. Не помню, чтобы какие-либо проблемы были.

См. экземплы в мануале.

 
Yuriy Asaulenko:

Работал, и продолжаю работать. Писал пару лет назад, с тех пор ничего не менял. Не помню, чтобы какие-либо проблемы были.

См. экземплы в мануале.

ВЫ попробуйте, что я описал.

result:= T2QSubscribeOrders(PAnsiChar(AnsiString('123')),
                                    PAnsiChar(AnsiString('123')));

Результат такой же как у меня?

Может быть дадите Ваш код, если он рабочий?

 
prostotrader:

ВЫ попробуйте, что я описал.

Результат такой же как у меня?

Может быть дадите Ваш код, если он рабочий?

Код рабочий, но его надо выдирать из системы, после чего он перестанет быть рабочим, и толку от него не будет.)

Что-то Вашей функции T2QSubscribeOrders в мануале АПИ не вижу.

ЗЫ Понял, имеется в виду функция с предыдущей страницы.) Не, я сам писал весь функционал, используя чистый АПИ и экземплы только для справки.

 
Yuriy Asaulenko:

Код рабочий, но его надо выдирать из системы, после чего он перестанет быть рабочим, и толку от него не будет.)

Что-то Вашей функции T2QSubscribeOrders в мануале АПИ не вижу.

ЗЫ Понял, имеется в виду функция с предыдущей страницы.) Не, я сам писал весь функционал, используя чистый АПИ и экземплы только для справки.

Ок.

Но Вы понимаете как работает Ваш код?

Интересует порядок работы с trans2quik.dll

Т.е Что делает (пошагово).

Н-р:

1. Загружаем DLL

2. Вызываем TRANS2QUIK_CONNECT

3. Смотрим, что вернула функция

4. Если TRANS2QUIK_SUCCESS вызываем TRANS2QUIK_CONNECTION_STATUS_CALLBACK

5. Если TRANS2QUIK_SUCCESS вызываем TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK

//--- load trans2quik.dll ---
    if((QTrader.QuikPath <> '') and (FileExists(IncludeTrailingPathDelimiter(QTrader.QuikPath) + DllName))) then
    begin
      QTrader.Tr2QHandle:= LibLoad(QTrader.QuikPath);
      if(QTrader.Tr2QHandle > 0) then
      begin
        ErrCode:= 0;
        ErrSize:=0;
        ErrStr:= nil;
        res:= T2QConnect(LPSTR(AnsiString(QTrader.QuikPath)), ErrCode, ErrStr, ErrSize);
        case res of
          TRANS2QUIK_SUCCESS: begin
            QTrader.QConn:= true;
            QTrader.DLLConn:= true;
            res:= T2QSetConnStatCB(@pfConnStatusCB, ErrCode, ErrStr, ErrSize);
            if(res = TRANS2QUIK_SUCCESS) then
            begin
              res:= T2QSetTransReplyCB(@pfTransReplyCB, ErrCode, ErrStr, ErrSize);
              if(res = TRANS2QUIK_SUCCESS) then
              begin
                res:= T2QStartOrders(@pfOrderStatusCB);
                if(res = TRANS2QUIK_SUCCESS) then
                begin
                  res:= T2QStartTrades(@pfTradeStatusCB);
                  if(res <> TRANS2QUIK_SUCCESS) then
                  begin
                    Application.MessageBox(PWideChar('Не установлен колбэк статуса сделок!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
                    close();
                  end;
                end else
                begin
                  Application.MessageBox(PWideChar('Не установлен колбэк статуса ордеров!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
                  close();
                end;
              end else
              begin
                Application.MessageBox(PWideChar('Не установлен колбэк ответов!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
                Close();
              end;
            end else
            begin
              Application.MessageBox(PWideChar('Не установлен колбэк соединения!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
              Close();
            end;
          end;
          TRANS2QUIK_FAILED: begin
            Application.MessageBox(PWideChar('Непредвиденая ошибка при попытке соединения с QUIK!'
                                             + #10#13 +
                                             'Возможно не влючён импорт внешних транзакций.'
                                             + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND: begin
            Application.MessageBox(PWideChar('Не найден терминад QUIK!' + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED: begin
            Application.MessageBox(PWideChar('Данная версия trans2quik.dll не поддерживается!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          //ANS2QUIK_ALREADY_CONNECTED_TO_QUIK:;
          TRANS2QUIK_WRONG_SYNTAX: begin
            Application.MessageBox(PWideChar('Синтаксическая ошибка ы пути к терминалу!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_QUIK_NOT_CONNECTED: begin
            Application.MessageBox(PWideChar('Нет соединения терминала с сервером!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_DLL_NOT_CONNECTED: begin
            Application.MessageBox(PWideChar('Не соединения библиотеки с терминалом!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_MEMORY_ALLOCATION_ERROR: begin
            Application.MessageBox(PWideChar('MEMORY ALLOCATION ERROR!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_WRONG_CONNECTION_HANDLE: begin
            Application.MessageBox(PWideChar('WRONG CONNECTION HANDLE!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
          TRANS2QUIK_WRONG_INPUT_PARAMS: begin
            Application.MessageBox(PWideChar('WRONG INPUT PARAMS!'
                                              + #10#13 +
                                             'Программа будет закрыта.'),
                                             PWideChar('ОШИБКА!'), MB_ICONHAND);
            Close();
          end;
        end;
      end else
      begin
        Application.MessageBox(PWideChar('Не загружена библиотека трансакций!'+ #10#13 +
                                          'Программа будет закрыта.'),
                                           PWideChar('ОШИБКА!'), MB_ICONHAND);
        Close();
      end;
    end;


и так далее, как у Вас сделано? 

 
prostotrader:

и так далее, как у Вас сделано? 

Что-то типа того. Коннектимся, проверяем, подписываемся на колбеки, передаем транзакции. АПИ-то небольшой, по другому и не сделаешь. Только у Вас обертка АПИ своя, а у меня АПИ в класс погружено.

Кстати, воскресенье сегодня, рынок не работает. Толком и не проверишь ничего. 

 
Yuriy Asaulenko:

Что-то типа того. Коннектимся, проверяем, подписываемся на колбеки, передаем транзакции. АПИ-то небольшой, по другому и не сделаешь. Только у Вас обертка АПИ своя, а у меня АПИ в класс погружено.

Кстати, воскресенье сегодня, рынок не работает. Толком и не проверишь ничего. 

Кврик-демо работает (я же работаю)

 
prostotrader:

Кврик-демо работает (я же работаю)

У меня нет демо. Не нужен.

Кстати, помнится еще в другом терминале, не в Квик, часть функциональности с заявками на демо не работала.

Я не пойму, в чем проблема-то? Зачем эти 123? если надо типа SPBFUT и SRZ8 или данные другого конкретного инструмента(ов), и далее смотреть события до того и после.

Не понимаю, что и зачем вы делаете.

 
Yuriy Asaulenko:

У меня нет демо. Не нужен.

Кстати, помнится еще в другом терминале, не в Квик, часть функциональности с заявками на демо не работала.

Я не пойму, в чем проблема-то? Зачем эти 123? если надо типа SPBFUT и SRZ8 или данные другого конкретного инструмента(ов), и далее смотреть события до того и после.

Не понимаю, что и зачем вы делаете.

Просто ошибся, а функция вернула, что всё правильно.

Попробовал 123 и.. вернула, что всё правильно.

Вот я и подумал, что может быть что-то Я не правильно делаю...

 
prostotrader:

Просто ошибся, а функция вернула, что всё правильно.

Попробовал 123 и.. вернула, что всё правильно.

Вот я и подумал, что может быть что-то Я не правильно делаю...

Если вы с Квик Junior работаете, то это, имхо, странная конструкция. Когда на Квик переходил, решил посмотреть что за зверь, и у меня с Junior не задалось, вообще никак.

 
Yuriy Asaulenko:

Если вы с Квик Junior работаете, то это, имхо, странная конструкция. Когда на Квик переходил, решил посмотреть что за зверь, и у меня с Junior не задалось, вообще никак.

У меня нет проблем

Причина обращения: