ボタンやマウスクリックの傍受による自動化。 - ページ 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;
      }
   }
}



それは素晴らしいことです。シェアしていただき、ありがとうございます。

でも、それじゃダメなんです。MetatraderとTerminal IdはOKですが、テスターウィンドウが見つかりません。私はMT5を使用していますが、あなたのソルーションはMT4用だと思います。あるいは、言語の問題かもしれません(私のMT5はポルトガル語です)。テスターウィンドウの適切なIDを発見する他の方法はありますか?本当にありがとうございました。そして、(下手な)英語で答えてしまい、本当に申し訳ありません。

 

こんにちは。

みんな、1click取引オン時の売買スクリプトを助けてください。敷地面積を変更する手間もなく、シンプルに...。など...

すでに私の頭は壊れている - 何も取得しないでください。

あらかじめご了承ください。スレッドを読み直しましたが、このようなものは見つかりませんでした。

 
axis:

こんにちは。

みんな、1click取引時の売買スクリプトを助けてください。敷地面積を変更する手間もなく、シンプルに...。など...

すでに私の頭は壊れている - 何も取得しないでください。

あらかじめご了承ください。Vetku再読、このようなものは見つかりませんでした。


ここで取得できないもの(コード)を拡散するか、新しい投稿で、何が問題なのかをアドバイスします。ワンクリック取引でスクリプトは取引できないのですか?自動売買ボタンが 作動していないだけ では?または、お使いの証券会社が自動売買を許可していない。

せめてジャーナルからエラーコードを 公開するとか、いっそのことソースコードを公開するとか、工夫すべきです。

 

それにしても、EAをテストするための日付をプログラムで設定する合理的な方法はないのでしょうか?先に紹介したYuriy Zaytsev 氏の方法が有効だと思いますが、DateTimePickerのような要素に対応する関数として、以下のようなものがあります。

DateTime_SetSystemtime(GetDlgItem(hwndDlg, IDD_Date1), GDT_VALID, &SysTime) を実行

ただ、まだ実装できない。何か感想はありますか?