ブログトップ 記事一覧 ログイン 無料ブログ開設

とあるMetaTraderの備忘秘録 RSSフィード

忙しいです。ネタもないし・・・

2009-08-06

VPS上で動く商用EAのAlert をGrowlで他のPCに送る

f:id:fai_fx:20090806002837p:image:right

pontaさんが、VPS上で動くMT4の接続/切断状況をGrowlでローカルのPCに送るのを試して頂いたので、今日は、商用EAのカスタマイズ出来ないAlert をGrowlで他のPCに送る手順を考えました。

原理は接続/切断状況を伝送するのとほぼ同じで、Alert発生時に音を鳴らす代わりにスクリプトを実行し、警告ダイアログ内のメッセージを読み取ってGrowlに送ります。

トレード用のPCから、作業用のノートPCに送るとちょっといい感じです。

以下は導入手順。

VPS上で動く商用EAのAlert をGrowlで他のPCに送る

  1. Growl for Windows導入方法を行います。
  2. http://www.autohotkey.com/download/から、AutoHotkey Installer をダウンロードしてインストールします。
  3. MT4_Alert.ahk をsoundsフォルダに置き、テキストエディタで適宜修正します。
    • Broker := "ODL" は、MT4のメインウィンドウのタイトル部分に含まれる単語を入れてください。
    • AppPath は、MT4Popup.exeのインストール先を指定してください。
    • Msg := "" は、空欄でよいです。
  4. MT4のTool->Optionの音声設定タブから、AlertイベントにMT4_Alert.ahkを選びます。
  5. 8/3の記事を参考に各PCの設定をします。

この方法では、複数のアラートが0.3秒以内に同時に発生すると、読み飛ばしが起きてしまうのですが、ex4ファイルを改造する必要がないので、お手軽かなぁと思います。

MT4_Alert.ahk を書き換えれば、MT4のアラートダイアログを自動で閉じることも可能です。




以下はFAQかな。

Growl でもMT4と同じ音を鳴らす

  • MT4のsoundsフォルダ内のWAVファイルをC:\Windows\MediaにコピーすればGrowl の設定で選択可能になります。

Growl のアイコンがタスクトレイに現れない場合

  • タスクマネージャからGrowl.exe を終了し、Growl を再起動してみてください。

Vista で、growlnotify.exeが動かない

  • C:\Windows\System32\drivers\etc\hosts を 127.0.0.1 localhost に修正してください。

2009-08-03

MT4のアラート(Growl)を他のパソコンで受け付ける設定。

受信側のパソコンの設定

  1. GrowlのSecurity で、Allow network notifications にチェックを入れる。
  2. Password Manager にパスワードを設定する。
  3. Windows ファイアーウォールで、ポート番号23053 を登録する。

送信側のパソコンの設定

  1. GrowlのNetworkで、Forward notifications to other computersにチェックを入れる。
  2. プラスボタンを押して受信用パソコンの追加をし、IPアドレス/PASSWORD等を設定する。
  3. 追加されたパソコンにチェックを入れる。
  4. Windows ファイアーウォールで、Growl を通信アプリとして登録する。

これが他パソコンに送りつける最低限の設定だと思います。

送信側は、ApplicationsのForwarding の設定で、Don't Forward を選べば送らなくなり、Chooseを選べば、送り先のパソコンを個別に選ぶことが出来ます。

2009-08-02

MT4にGrowlで、MSNメッセンジャー風のアラートを付ける。

MetaTrader4で自作EAや自作indicatorからのAlert()は、複数業者で複数通貨ペアを取引し始めると、どこか不便に感じてしまいます。


(1)バックグラウンドで動いているMT4のAlertが最前面に来ない。

(2)アラート画面が邪魔で一旦閉じると、再度開く方法が無い。

(3)どの業者のアラート画面なのか分かり難い。

(4)重要なアラートとそうでないアラートが混ざる。

(5)些細なアラートでもOKボタンを押さないと閉じない。


等でしょうか…。それぞれの不具合に個別に対応することは可能なのですが、どれも一長一短で、いろいろ考えた結果、MSNメッセンジャー風のポップアップアラートが好ましいのではとの結論に至りました。

・アラートは常に最前面に出てくる。

・些細なアラートは、数秒後に自動消滅

・重要なアラートは、付箋のようにデスクトップに残り個別に閉じることが出来る。

・アイコン付であれば業者の区別もしやすい。

・個別のインジケータのアラート設定を変えることなく表示の一括ON/OFFが出来る。

・(他のPCやiPhone,Twitterにアラートを伝送できる。)


というのが私の理想です。…で、それを実現できるのがGrowl for Windowsというソフトになります。

以下の画面は、実際にMetaTrader4からGrowl経由で右下にアラートを出してみたものです。

f:id:fai_fx:20090801180839p:image


Growl for Windows導入方法

  1. http://www.growlforwindows.com/gfw/ から最新のGrowl をダウンロードします。
  2. インストール完了後、デスクトップ上のアイコンからGrowl を起動します。Growl is Running と表示されるように出来ればOKです。
  3. http://www.growlforwindows.com/gfw/displays.aspx からダイアログのスキンをダウンロードします。CompactDarkとTranslucent Darkがお勧めです。(デフォルトのスキンは正しく表示できません..)
  4. Translucent Darkは、C:\Program Files\Growl for Windows\Displays 以下にTranslucentDarkフォルダをそのままコピーすることでインストールできます。
  5. MT4_Growl_Kit.zipをダウンロードします。C:\MT4 フォルダにMT4Popup.exeを置いて、MT4Popup.exeをダブルクリックしてGrowlからアラートが出たら、導入は成功です。

MT4のEAやインジケータからの呼出し方法

  1. MT4_Growl_Kit.zipのCallGrowl.mq4をexperts\scripts に置いてください。
  2. MT4のTool->OptionのExpertAdvisorsタブからAllow DLL importsにチェックを入れます。
  3. ShellExecuteでMT4Popup.exeを呼び出すので、CallGrowl.mq4内のAppPath を正しく設定します。
  4. CallGrowlを実行し、アラートが表示されるか確認します。
  5. アイコンが表示されない場合、その業者のterminal.icoは使えないので、IconPathに他の画像のパスやURLを指定します。
  6. ブローカー名が適切に表示できない場合は、Brokerの値を適宜変更します。
  7. CallGrowl.mq4を参考に他のEAやインジケータのAlert()部分を改造してください。

接続切断イベントへの対応方法

  1. MTのMT4_Connect.vbsとMT4_Disconnect.vbsをsoundsフォルダにコピーします。
  2. 二つの.vbsファイルをテキストエディタで開きます。
  3. AppPath,Broker,IconPath を適切に設定しなおします。
  4. MT4のTool->Optionの音声設定タブから、Connect,Diconnectイベントにそれぞれの.vbsを選びます。(具体的には、フォルダ名の欄からChoose Other...を選び、ファイルの種類を*.wavから*.vbsに変更して選択します。)f:id:fai_fx:20090801192355p:image

Growlのアラートをカスタマイズする

  1. タスクトレイから、Growlの設定ウィンドウを開きます。
  2. Applicationsアイコンの中から、Application Name(=ブローカー名)と、Nortification Type(=Alert Type)を選び、DUration(=表示時間)、Sticky(=付箋モード)、Sound 等を設定します。f:id:fai_fx:20090801192808p:image:right
  3. これ以上の使い方は...試行錯誤してみてください。><


ほとんど自分専用ツールになっていて、詳細な説明は省略していますので、不明点があればコメントにて質問頂ければと思います。