ボタンやマウスクリックの傍受による自動化。 - ページ 4

 
HIDDEN >> :

ストラテジーテスターのソフトウェア制御に興味がある。

1. Expert Advisorから開く(コードが見つかりました)

2. スタートボタンを押す

一般的には,このウィンドウにあるすべてのコードが表示されることが望ましい。

簡単に済ませたいのでしょう。:))

いろいろと複雑なんですよ。


1. テスターのウィンドウを開く

2. EAのリストを開き、リストから任意のEAを名前で選択する(あらかじめリストの位置を1つ残してスキップ可能)

3. シンボルリストを開き、リストから任意のシンボルを名前で選択する(あらかじめリストの位置を1つ空けておけば省略できる)

4. メソッドのリストを開き、名前または番号でリストから任意のメソッドを選択します。

5.期間リストを開き、リストから名前または番号で期間を選択します。

6.日付を使用する "ボックスにチェックを入れる、チェックする

7.最適化」チェックボックスをチェックし、チェックを入れる 10.

8.可視化」ボックスのチェック、チェックを外す(オプション)

9.From "ウィンドウに指定された日付を入力します(可能な場合)。

10.設定した日付を "To "ウィンドウに入力する(可能な場合のみ)

11. "Start "ボタンを押す

12.最適化終了の合図、つまりボタンに「開始」の文字が表示される(タイマーを使用することも可能)。

13.テスターウィンドウを閉じる


まだ何も見逃していなければの話ですが。

 
granit77 >> :

簡単に済ませたいのでしょう。:))

いろいろと複雑なんですよ。


1. テスターのウィンドウを開く

2. Expert Advisorのリストを開き、リストから任意のExpert Advisorを名前で選択する(あらかじめリストの位置を1つ残してスキップ可能)

3. シンボルリストを開き、リストから任意のシンボルを名前で選択する(あらかじめリストの位置を1つ空けておくとスキップできる)。

4. メソッドのリストを開き、名前または番号でリストから任意のメソッドを選択します。

5.期間リストを開き、リストから名前または番号で期間を選択します。

6.日付を使用する "ボックスにチェックを入れる、チェックする

7.最適化」チェックボックスをチェックし、チェックを入れる 10.

8.可視化」ボックスのチェック、チェックを外す(オプション)

9.From "ウィンドウに日付を入力します(可能な場合)。

10.設定した日付を "To "ウィンドウに入力する(可能な場合のみ)

11. "Start "ボタンを押す

12.最適化終了の合図、つまりボタンに「開始」の文字が表示される(タイマーを使用することも可能)。

13.テスターウィンドウを閉じる


まだ見逃していないことがあれば

テスターフォルダにlastparameters.iniファイルがありますが、Expert Advisorで準備し、テスターで書き込んで開き、スタートボタンが押されるのを防ぐものです。すでに半分が欠品していることが判明。

 

そうだ、忘れていた。

もし、あなたがそれを使って作業し、リストに目を通したなら、もしかしたら本当に必要なのは「スタート」を押すことだけかもしれませんね?

 
granit77 >> :

そうだった、忘れていた。

リストを見ながら作業した場合、もしかしたら本当に「スタート」を押すだけでいいのかもしれませんね。

最適化=0 //最適化のオンとオフ
genetic=1 //遺伝学
fitnes=0
method=0 //テスト用メソッド
use_date=0 //日付で指定
from=1226620800 // 1970年からの秒数で表した開始日
to=1226620800 // 終了日


EAも同様で、テストと最適化を行った後、手動で一旦パラメータを保存し、好きなように変更します。まだスタートボタンが押せない、ああ、どれだけ必要なんだ...。


チャート上で取引するExpert Advisorの最適化が行われている場合、F6コードを押すことで、Expert Advisorと通貨ペアが自動的に選択され、さらにいくつかのポイントが見逃されます。

 
HIDDEN >> :

やっぱりスタートボタンを押さないと、ああ、どれだけ必要なんだろう...。

特にお世辞でもなんでもない。定期的な最適化を伴う手動での実行では、まだ明確に肯定的な結果は得られていません。

その上、最適なパラメータセットを選択する問題も宙に浮き、誰もが新たに思いつく。

Mathematが記事を約束してくれたので、少しはすっきりするかもしれませんね。

しかし、このツールがあれば、その可能性は桁違いに広がり、ブレイクスルーとなることでしょう。

 

近くのスレッドから Erics が を提案しています。


ボタンコードはSpy++で調べます(コントロールID)

そして、それらはボタンディスクリプタを取得するために使用される。

hButtonStart = GetDlgItem(hTester, 0x40A)とします。



起きてから付け方を考えます。

 

Strategy Tester ウィンドウで何らかの操作を行う前に、まず MetaTrader におけるウィンドウツリーの配置を理解し、次に
そのシステムディスクリプタを決定する必要があります。そして、GetDlgItem(int hDlg,int nIDDlgItem) 関数を使って、必要なコントロールのIDを取得 することができるのです。


下図は、Spy++でMetaTraderのウィンドウツリーの一部を表示したものです。 赤い マーカーはそのルートを示しています。黄色い マーカーは、ツリー内の「端末」ウィンドウの位置などを示しています。
したがって、「開始」ボタンのシステム識別子(写真では青い マーカーで示されている)を取得するためには、すべての上位レベル(
)を順次通過する必要があります。説明のために、各レベルに色を付けています。




以下は、"Start "ボタンディスクリプタを取得するMQLのサンプルコードです。

#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);
   hButtonStart = GetDlgItem(GetDlgItem(hTester,0x81BF),0x40A);  //дескриптор кнопки "Старт"
}

記述子を決定するために、GetDlgItem() 関数の第2パラメータに、ウィンドウコンポーネントのコントロールIDを渡します。右クリックで
メニュー項目「Properties...」を呼び出して定義することができる。例として、下図では「ターミナル」ウィンドウのコントロールID(0xE81E)を赤色で 表示しています。


 
Ilnur >> :

ストラテジーテスターのウィンドウを操作する前に、まずMetaTraderのウィンドウツリーがどのように構成されているかを理解し、次に


チュートリアルをありがとうございました。MetaTrader 4というコントロールパネルにある他の必要なボタンと同様に、スタートボタンが無事押されました。

 

えー...。が思い浮かびます。


アメリカは、ソ連の潜水艦に観光客を送り込んだ。初日から酔っ払ってしまい、朝起きると警棒を持った船長が船員を追いかけてきて叫んでいるのが見えた。"赤いボタン "を押したのは誰だ?赤いボタンを押したのは誰だ?"アメリカ人は彼をたしなめる。
- あのね、先生、アメリカにはあんなにふるまう船長はいないんですよ!?
- アメリカはもうだめだ!誰が赤いボタンを押したんだ!

 
HIDDEN писал(а)>>

えー...。思い知らされました。

アメリカは、ソ連の潜水艦に観光客を送り込んだ。初日から酔っ払ってしまった。朝起きると、警棒を持った船長が船員を追いかけ、叫んでいた。"赤いボタン "を押したのは誰だ?赤いボタンを押したのは誰だ?"アメリカ人は彼をたしなめる。
- あのね、先生、アメリカにはあんなにふるまう船長はいないんですよ!?
- アメリカはもうだめだ!誰が赤いボタンを押したんだ!

良い端末でした : -)))

理由: