複数のチャートを同時に表示していて、きれいに並べたいと思うことはありませんか?
なんとなく同じような大きさにして、表示位置を微調整したりして、そこそこ並べることはできますが、何かの拍子に動かしてしまったり、再調整が面倒だと思うこともしばしば。
mt4メニューの水平分割や垂直分割でもチャートを整列して表示できますが、今ひとつ使い勝手が悪いと思うのは私だけでしょうか。
そんな悩みを一発解決するスクリプトをどうぞ(^o^)。
ちょっと大げさですが、こんなふうに、微妙にずれて表示さているチャートも・・・、
タイルマネージャーで速攻ピッチリきれいに並びます♪
使い方は簡単で、このスクリプトをどこか適当なチャートにドロップし、下図のパラメータ設定でわかるように、「横分割数」で横方向に並べる数を、「縦分割数」で縦方向に並べる数を指定するだけです。
横、縦、それぞれ均等に分割して並べ直してくれます。
並び順は左から右へ、そして、上から下へ順番に並べますが、各チャート並び順とは関係なく、チャートをアクティブにした順、つまり、チャートをクリックした順に並べます。
上図の例で言えば、「AUDUSD,H1」→「AUDUSD,Daily」→「AUDUSD,Weekly」→「GBPUSD,H1」→「GBPUSD,Daily」→「GBPUSD,Weekly」の順にクリックしたのち、どこかのチャートにスクリプトをドロップし、横分割数を3、縦分割数を2にすれば図に示したように並びます。
また、例えば、上図の6つのチャートを、左側に1時間足、真ん中に日足、右側に週足の縦3分割で表示したい場合は、その順にチャートをクリックしたのち、次のように横分割数を3に、縦分割数を1にします。
すると、次のように、6枚のチャートが3分割され、各時間軸のチャートの後ろにもう一つのチャートが隠れるようにして表示されます。
また、縦横どちらかの分割数を0にすると、チャートの枚数と、0じゃない方の分割数から、自動的に0の方の分割数を計算して表示します。
例えば、6枚のチャートがあって、次のパラメータのように、横分割数を4に、縦分割数を0に設定すると、自動的に縦分割数を2に設定して下図のように表示してくれます。
また、このスクリプトは、「チャートタイトルと枠の表示・非表示(ボーダーコントロール)」スクリプトと合わせて使うと良いでしょう。
このタイルマネージャーで並べ直してから、このスクリプトを適用して、タイトルや枠線を非表示にして、チャートを見やすくしたり、動かないようにできます。
ソースファイル(TileManager.mq4)と実行ファイル(TileManager.ex4)をお渡しします。
なお、再コンパイルするには、ヘッダファイル「WinUser32.mqh」に次の文を追記してからコンパイルしてください。
「\MQL4\Include\WinUser32.mqh」内の 最初の方で、「#import "user32.dll"~#import」によって関数を定義しています。 その部分のどこか、最後でよいですが、 「bool GetClientRect(int hWnd , int &size[]);」 を追記した上で、再度コンパイルしてください。
元はと言えば他の方が作ったものですし、改変・再配布等ご自由にしていただいて構いませんが、バグ・改善点等お気づきの点があれば、お教えいただければ幸いです。
For those using GogoJungle for the first timeEasy 3 steps to use the product!
At GogoJungle, we provide services to enrich your investment life for our members. In addition, product purchases are normally limited to members. Why not register as a member now and make use of GogoJungle!