MT5和trans2quik.dll - 页 4

 
prostotrader:

有没有人真正与这个故障打过交道?

我是这样做的,现在也是。几年前写的,此后没有任何改变。我不记得有任何问题。

见手册中的副本。

 
Yuriy Asaulenko:

起作用了,并继续起作用。几年前写的,此后没有任何改变。我不记得有任何问题。

见手册中的副本。

你试试我描述的方法。

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

结果和我一样吗?

如果成功的话,你能给我你的代码吗?

 
prostotrader:

你试试我描述的方法。

结果和我一样吗?

你能给我你的代码吗,如果它工作的话?

代码可以工作,但你必须把它从系统中扯出来,之后它将不再工作,而且没有用处)。

在API手册中没有看到你的T2QSubscribeOrders 函数。

ZZZ我明白了,我是说上一页的功能)。不,我自己用一个干净的API写了所有的功能,实例只是供参考。

 
Yuriy Asaulenko:

代码可以工作,但你必须把它从系统中扯出来,之后它将不再工作,而且没有用处)。

我在API手册中没有看到你的T2QSubscribeOrders 函数。

ZZZ我明白了,我是说上一页的功能)。不,我自己用一个干净的API写了所有的功能,实例只是供参考。

好的。

但你了解你的代码是如何工作的吗?

对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:

等等,就像你所做的那样?

类似这样的事情。连接,检查,订阅colbecs,转移交易。API很小,没有其他办法。只是你有自己的API包装器,而我有一个沉浸在类中的API。

顺便说一下,今天是星期天,市场已经死了。真的不能检查什么。

 
Yuriy Asaulenko:

类似这样的事情。连接,检查,订阅colbecs,转移交易。API很小,没有其他办法。只是你有你自己的API包装,而我的API则沉浸在一个类中。

顺便说一下,今天是星期天,市场关闭。真的无法检查任何东西。

Quirk-demo正在工作(我正在工作)。

 
prostotrader:

Qurick演示正在工作(我正在工作)。

我没有一个演示。我不需要它。

顺便说一下,我记得在另一个终端中,不是在Quick中,一些带有演示请求的功能没有工作。

我不明白问题出在哪里?我不明白123号文件有什么问题,如果我想使用SPBFUT和SRZ8或特定符号的数据,然后观察前后的事件。

我不明白你在做什么,为什么。

 
Yuriy Asaulenko:

我没有一个演示。我不需要它。

顺便说一下,我记得在另一个终端中,不是在Quick中,一些带有演示投标的功能没有工作。

我不明白,问题是什么?我不明白123号文件有什么问题,如果我想使用SPBFUT和SRZ8或特定符号的数据,然后观察前后的事件。

我不明白你在做什么,为什么。

只是犯了一个错误,函数返回说一切正常。

试了一下123,......结果是正确的。

所以我想也许我有什么地方做错了......

 
prostotrader:

只是犯了一个错误,而该函数将其返回为正确。

试了一下123,......结果是正确的。

所以我想也许我做错了什么......。

如果你是用Quick Junior工作,我认为这是一个奇怪的设计。当我改用Quick时,我决定看看这只野兽是什么,它对Junior不起作用,一点也不起。

 
Yuriy Asaulenko:

如果你和Quick Junior一起工作,我认为这是一个奇怪的设计。当我改用Quick时,我决定看看它到底是怎么回事,它对我的Junior不起作用,完全没有。

我没有什么问题。