MetaTrader4 Tips



デバッグプリント

C言語でいうところのPrintf()に当たる機能として、
Print()関数がある

実際に出力された数値や文字列は
MetaTrader4のターミナルのExpertsタブ内で確認できる


チャートウィンドウの高さ(pixel)の取得

MetaTraderで図形を表示する場合、テキストラベルを除き、座標の指定は
x軸=時間、y軸=価格で指定する。
その特性上、オブジェクトの表示が困難になる場合がある。
例えば高さが16pixelのオブジェクトの下に他のオブジェクトを配置したい場合、
16Pixelは価格で表すとどのくらいなのか?を取得しなければならない。
関数で提供されているのは、表示しているチャートの最大価格と最低価格だけで、
チャートウィンドウサイズを取得する関数は与えられていない。
なので、自力で算出しないといけないのだが、その際にはWinAPIを使わざるを得なくなる。

自分の場合、GetPaneHeights.ex4という便利なツールがネットで拾えたので
それを利用させていただいております。

WinUser32.mqhをインクルドし、更にGetPaneHeights.ex4をインポートし、
GetPaneHeights()を宣言すれば、チャートウィンドウはおろか、サブウィンドウの
高さまで取得できてしまうすぐれもの。


バックテスト時のログ

バックテストするとえらい勢いでハードディスク容量が減ると思ってたら
ログファイルが異常に大きかったことが判明。
メタトレのインストールフォルダ以下の tester\logsに格納されているので、
自分で削除していく必要があるのかも。
設定でログ出さないとかしたほうがいいのか?っていうかできるのか?


コマンドプロンプト的なもの

チャートをアクティブにした状態でEnterキーを押すと、日付表示部分の一番左側に
コマンドプロンプトっぽいものが表示される。
ここで通貨単位や、チャート周期などを変更できるのだが、ぶっちゃけそれよりも使うのが
表示したい日付にジャンプする機能だと思われる。
例えば
2006.01.01
とか入力すればその日付にジャンプしてくれる。
この方法以外に指定日付にジャンプする機能が見当たらないので、重宝すると思われる。
特にヒストリカル分析しているときとか。


Expert AdvisorsでもDLLを使う

Expert Advisorが参照しているインジケータがDLLを使ってる場合、
Expert Advisor側でもDLLの使用を許可しないと、DLLのサービスが受けれない。

メニューの「ツール」->「オプション」->「Expert Advisorsタブ」の
Allow DLL importsにチェックを入れればOK
最終更新:2010年02月18日 19:27
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。