Automatisation avec interception des boutons et des clics de souris. - page 12

 
Ilnur Iksanov:
#include <WinUser32.mqh>

#import "user32.dll"
   int GetAncestor(int hWnd, int gaFlags);
   int GetDlgItem(int hDlg, int nIDDlgItem);
#import

void start()
{
   int hMetaTrader, hTerminal, hTester, hButtonStart;
      
   hMetaTrader = GetAncestor(WindowHandle(Symbol(),Period()),2); //дескриптор основного окна терминала
        
   hTerminal = GetDlgItem(hMetaTrader,0xE81E);
   hTester = GetDlgItem(hTerminal,0x53); // Return zero here
   hButtonStart = GetDlgItem(GetDlgItem(hTester,0x81BF),0x40A);  //дескриптор кнопки "Старт"
        
   PostMessageA(GetDlgItem(hTester,0x81BF),WM_COMMAND,0x40A,hButtonStart); //нажимаем кнопку старт
   
   Print("Запуск тестера стратегий");
   string sButtonStartName = "";
   while(!IsStopped()) 
   {
      Sleep(3000);
      GetWindowTextA(hButtonStart,sButtonStartName,6); //считываем текст кнопки запуска тестера
      if(sButtonStartName=="Старт")                    
      {
         Print("Работа тестера завершена");
         break;
      }
   }
}



C'est une bonne chose. Merci de l'avoir partagé.

Mais ça ne marche pas pour moi. Metatrader et Terminal Id sont ok, mais il ne peut pas trouver la fenêtre du testeur. Je suppose que votre solution est pour MT4 alors que j'utilise MT5. Ou peut-être s'agit-il d'un problème de langue (mon MT5 est en portugais). Y a-t-il un autre moyen de découvrir l'ID approprié pour la fenêtre de test ? Merci beaucoup. Et je suis vraiment désolé de répondre en (mauvais) anglais.

 

Bon après-midi.

Les gars, s'il vous plaît aidez avec le script d'achat et de vente lorsque le trading 1click est activé. Simple, sans les tracas d'un changement de taille de lot... etc...

J'ai déjà cassé ma tête - ne prenez rien.

Je vous en remercie d'avance. J'ai relu le fil de discussion, je n'ai rien trouvé de tel.

 
axis:

Bon après-midi.

Les gars, s'il vous plaît aidez avec le script d'achat et de vente lorsque le trading 1click est activé. Simple, sans les tracas d'un changement de taille de lot... etc...

J'ai déjà cassé ma tête - ne prenez rien.

Je vous en remercie d'avance. Vetku a relu, n'a rien trouvé de tel.


Répandez ce que vous n'arrivez pas à obtenir ici (code), ou dans un nouveau message, vous serez informé de ce qui ne va pas. La négociation en un clic empêche-t-elle le script de négocier ? Peut-être que le bouton d' échange automatique n'est pas activé ? Ou votre société de courtage n'autorise pas le trading automatique.

Vous devriez au moins essayer de publier les codes d'erreur du journal, ou mieux encore, le code source.

 

Mais quand même, existe-t-il un moyen raisonnable de fixer par programme des dates pour tester les EA ? Je pense que la méthode décrite précédemment parYuriy Zaytsev fonctionne, mais il existe des fonctions qui s'adressent à des éléments comme DateTimePicker, comme ceci :

DateTime_SetSystemtime(GetDlgItem(hwndDlg, IDD_Date1), GDT_VALID, &SysTime);

Je ne peux pas encore le mettre en œuvre. Des idées à ce sujet ?