チャート上にセットしてあるEAの「Allow live trading」をon/offするショートカット

とあるサイトで見つけた携帯の画像です。未来の携帯はこんな風になるのでしょうかねぇ。あまりに綺麗な出来栄えだったので載せてみました。笑






さて、今日は mystさんから依頼のあった、チャート上にセットしてあるEAの「Allow live trading」をon/offするショートカットをAutoHotKeyで作成してみます。


EAのプロパティを開くには、F7 キーを押せば良いので、

Send {F7}
WinWaitActive , ahk_class #32770

します。2行目は、ダイアログウィンドウがアクティブになるのを待ちます。


EAのプロパティは、以前の操作内容によって、画面状態が2パターンに分かれてしまいます。
(a) 全般タブが選ばれている場合

(b)パラメータの入力タブが選ばれている場合

どちらの画面が出てきても同じように操作できるように、Shift+TAB,左矢印を押します。

Send +{TAB}{Left}

異なる画面を同じ状態にするキーの組合せは、パズルを解くようなもので、これが出来ないと上手いショートカットが作れません。



次に、目的のボタンを押す為のAutoHotKey上のクラス名(ClassNN)を探ります。
AutoHotKeyのメニューから Window Spy を起動して、

Allow live tradingの辺りにマウスをもってゆくと、

Button5 だと分かります。Button5 を押すには以下のように書きます。

SetControlDelay -1
ControlClick,Button5,,,,,NA

Button5 と書く代わりに、テキストで「Allow live trading」と書いても押せます。
但し、言語が変わるとこの手法は使えないので要注意です。

SetControlDelay -1
ControlClick,Allow live trading,,,,,NA

EAのプロパティダイアログを閉じるには、ENTER を押します。

Send {ENTER}

以上をまとめると、以下のようになりました。
これで、#s=「Win + S」でチャート上にセットしてあるEAの「Allow live trading」をon/offできるはずです。

#s::
  Send {F7}
  WinWaitActive , ahk_class #32770
  Send +{TAB}{Left}
  SetControlDelay -1
  ControlClick,Button5,,,,,NA
  Send {ENTER}
  return


複数のチャートに異なるEAを動かしている人は、これでチャート毎のON/OFFがすばやくできる...ので、是非ご活用ください。