MT5 et trans2quik.dll - page 4

 
prostotrader:

Quelqu'un a-t-il déjà travaillé avec ce problème ?

Je l'ai fait, et je le fais encore. Ecrit il y a quelques années, je n'ai rien changé depuis. Je ne me souviens pas avoir eu de problèmes.

Voir les copies dans le manuel.

 
Yuriy Asaulenko:

Cela a fonctionné, et continue de fonctionner. Ecrit il y a quelques années, je n'ai rien changé depuis. Je ne me souviens pas qu'il y ait eu des problèmes.

Voir les copies dans le manuel.

VOUS essayez ce que j'ai décrit.

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

Le résultat est-il le même que le mien ?

Pouvez-vous me donner votre code si cela fonctionne ?

 
prostotrader:

VOUS essayez ce que j'ai décrit.

Le résultat est-il le même que le mien ?

Pouvez-vous me donner votre code, s'il fonctionne ?

Le code fonctionne, mais vous devez l'arracher du système, après quoi il ne fonctionnera plus, et il sera inutile).

Je ne vois pas votre fonctionT2QSubscribeOrders dans le manuel API.

ZZZ Je vois, je veux dire fonction de la page précédente). Non, j'ai écrit toute la fonctionnalité moi-même en utilisant une API propre et les instances sont juste pour la référence.

 
Yuriy Asaulenko:

Le code fonctionne, mais vous devez l'arracher du système, après quoi il ne fonctionnera plus, et il sera inutile).

Je ne vois pas votre fonctionT2QSubscribeOrders dans le manuel API.

ZZZ Je vois, je veux dire fonction de la page précédente). Non, j'ai écrit toute la fonctionnalité moi-même en utilisant une API propre et les instances sont juste pour la référence.

Ok.

Mais comprenez-vous comment votre code fonctionne ?

Intéressé par le fonctionnement de trans2quik.dll

C'est-à-dire ce qu'il faut faire (étape par étape).

Par exemple :

1. Chargement de la DLL.

2. Appelez TRANS2QUIK_CONNECT

3. Regardez ce que la fonction renvoie

4. Si TRANS2QUIK_SUCCESS, appeler TRANS2QUIK_CONNECTION_STATUS_CALLBACK

5. Si TRANS2QUIK_SUCCESS, nous appelons 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;


et ainsi de suite, comment cela se passe-t-il ?

 
prostotrader:

et ainsi de suite, comme vous l'avez fait ?

Quelque chose comme ça. Connectez-vous, vérifiez, abonnez-vous à des colbecs, transférez des transactions. L'API est petite, il n'y a pas d'autre moyen de le faire. Seulement vous avez votre propre enveloppe d'API, alors que j'ai une API immergée dans une classe.

Au fait, c'est dimanche aujourd'hui, le marché est mort. On ne peut pas vraiment vérifier quoi que ce soit.

 
Yuriy Asaulenko:

Quelque chose comme ça. Se connecter, vérifier, s'abonner à des colbecs, transférer des transactions. L'API est petite, il n'y a pas d'autre moyen de le faire. Seulement vous avez votre propre enveloppe d'API, alors que j'ai une API immergée dans une classe.

Au fait, c'est dimanche aujourd'hui, le marché est mort. On ne peut pas vraiment vérifier quoi que ce soit.

Quirk-demo fonctionne (je travaille)

 
prostotrader:

La démo de Qurick fonctionne (je fonctionne)

Je n'ai pas de démo. Je n'en ai pas besoin.

A propos, je me souviens que dans un autre terminal, pas dans Quick, certaines des fonctionnalités avec les demandes de démonstration ne fonctionnaient pas.

Je ne comprends pas quel est le problème ? Je ne comprends pas quel est le problème avec la 123, si je veux utiliser SPBFUT et SRZ8 ou les données d'un ou plusieurs symboles spécifiques et ensuite observer les événements avant et après.

Je ne comprends pas ce que vous faites et pourquoi.

 
Yuriy Asaulenko:

Je n'ai pas de démo. Je n'en ai pas besoin.

A propos, je me souviens que dans un autre terminal, pas dans Quick, certaines des fonctionnalités avec les offres de démonstration ne fonctionnaient pas.

Je ne comprends pas, quel est le problème ? Je ne comprends pas quel est le problème avec la 123, si je veux utiliser SPBFUT et SRZ8 ou les données d'un ou plusieurs symboles spécifiques et ensuite observer les événements avant et après.

Je ne comprends pas ce que vous faites et pourquoi.

J'ai juste fait une erreur et la fonction a renvoyé que tout est correct.

J'ai essayé la 123 et... c'est revenu correct.

Alors j'ai pensé qu'il y avait peut-être quelque chose que je faisais mal...

 
prostotrader:

J'ai fait une erreur et la fonction l'a renvoyée comme correcte.

J'ai essayé la 123 et... c'est revenu correct.

Alors j'ai pensé que peut-être je faisais quelque chose de mal...

Si vous travaillez avec Quick Junior, c'est un design étrange, selon moi. Quand je suis passé à Quick, j'ai décidé de voir ce qu'était la bête, et ça ne marchait pas avec Junior, pas du tout.

 
Yuriy Asaulenko:

Si vous travaillez avec Quick Junior, c'est un design étrange, selon moi. Quand je suis passé à Quick, j'ai décidé de voir ce que c'était, et ça n'a pas marché pour moi avec Junior, pas du tout.

Je n'ai pas de problème.