自動取引 FX STORE

複数のチャートでオブジェクトを同期(コピー)するインジケータ – ChartObjectSync for MT4

demo.gif

次のようなお悩みはありませんか?

・複数のチャートでトレンドラインや水平線を同期(コピー)したい

・使用中のコピーツールに不満な点がある

… オブジェクトの数が増えるにしたがって動作が重くなる

… トレンドラインなどがズレて、正しい位置に表示されない

… 同期できるオブジェクトの種類が少ない

… オブジェクトの種類ごとに動作を設定したい

… 名前変更するとオブジェクトが削除される

このようなお悩みをすべて解決するインジケータです。

試用版をご用意していますので、ぜひ一度お試しください!

>> 試用版(無料)で動作を確認する <<

◆ 特長

「すべてのオブジェクトに対応」

メタトレーダーで利用可能なすべてのオブジェクトに対応しています。

種類別に同期モードやキーワードフィルターを設定することができ、お好みに合わせた環境を構築できます。

今後、新しいオブジェクトが追加された場合も可能な限り対応いたします。

「すべてのプロパティをコピー」

オブジェクトの色や線種をはじめ、すべてのプロパティ(*)を同期(コピー)します。

たとえば、オブジェクトの選択状態やフィボナッチなどのレベルラインの値・テキストなども含みます。

また、オブジェクトがドラッグあるいはクリックされた時は、コピーするプロパティの範囲を必要最小限にしぼり

応答性を高めるこだわりの設計です。

(*)「仕様」の[コピーされないプロパティについて]もご確認ください。

「トレンドラインなどのズレを自動で修正」

安値同士や高値同士で引いたトレンドラインが、同期先のチャートでズレて表示されることはありませんか?

このインジケータでは、同期先のチャートの時間軸に合わせて、オブジェクトの時間プロパティを調整します。

この機能は、チャート上の座標を「時間と価格」で設定するすべてのオブジェクトが対象となります。

たとえば、トレンドライン・チャネル・フィボナッチ・矢印などが該当します。

ただし、オブジェクトの価格が始値・高値・安値・終値のいずれかである場合に限ります。

「仕様」の[時間プロパティの自動調整について]もご確認ください。

「オブジェクトの数に関係なく軽快な動作を維持」

オブジェクトが「新規に作成された」や「削除された」などのチャートイベントを利用した設計のため、

オブジェクトの数に関係なく常に(*)軽快な動作を維持します。

(*)「仕様」の[名前変更の実装について]もご確認ください。

「オブジェクトの名前変更にも対応」

オブジェクト名を変更するとチャートから削除されることはありませんか?

このインジケータでは名前変更にも対応しています。

※このインジケータで唯一、オブジェクト数が動作に影響を与える部分です。

チャート上に 約15,000個 以上のオブジェクトを表示されている方はご注意ください。

詳しくは「仕様」の[名前変更の実装について]をご確認ください。

詳細・購入

◆ パラメータ

大きく分けて「全般設定」・「オブジェクトごとの設定」・「拡張設定」の3つがあります。

「全般設定」

隠しオブジェクトをコピー [trueの場合]

オブジェクト一覧で非表示になっているものも同期対象になります。

[falseの場合]

オブジェクト一覧で非表示になっているものは同期対象外になります。

一般的にプログラムから作成するオブジェクトは、HIDDENプロパティが有効になっており、オブジェクト一覧には表示されません。

これらのオブジェクトをまとめて同期対象または対象外とするための設定です。

非表示のオブジェクトは次のようにして確認することができます。

1) コンテキストメニューの[表示中のライン等]でダイアログを表示

2) 右側にある[すべて]のボタンをクリック

同期対象となるウィンドウ [メインウィンドウのみ]

ローソク足が表示されているウィンドウに存在するオブジェクトのみが対象となり、

RSIなどが表示されるすべてのサブウィンドウにあるオブジェクトは対象外となります。

[すべてのウィンドウ]

サブウィンドウを含むすべてのウィンドウに存在するオブジェクトが対象となります。

同期先に、対応するサブウィンドウが表示されていない場合は同期できません。

Web認証の結果をコメントに表示 [trueの場合]

Web認証の結果はチャート左上のコメント部分とログに出力されます。

[falseの場合]

Web認証の結果はログにのみ出力されます。

「オブジェクトの設定」

オブジェクトの種類ごとにそれぞれ設定可能です。

オブジェクトの「新規作成」・「削除」・「プロパティ変更」などの情報は、「イベント」という形で他チャートに通知されます。

同期モード [送信・受信]

オブジェクトを他チャートと同期する場合はこのモードに設定します。

他チャートと相互にイベントをやりとりするため、すべてのチャートでオブジェクトの状態を共有できます。

[受信のみ]

他チャートからのイベントを受信し、オブジェクトの状態をコピーします。

オブジェクトが存在しない場合は新規に作成されます。

イベントを送信しないため、オブジェクトの状態に変更が生じても他チャートとは共有されません。

[送信のみ]

オブジェクトの情報を他チャートへ送信します。

他チャートからのイベントは破棄されます。

[無効]

同期が無効になり、イベントの送受信は行いません。

イベント通知範囲 同期モードが[送信・受信]か[送信のみ]の場合に、イベントの送信範囲を指定します。

[すべての時間軸]

シンボル名(通貨ペア)が一致するすべてのチャートにイベントを送信します。

[短い時間軸]

シンボル名(通貨ペア)が一致し、同期元の時間軸よりも短い時間軸のチャートへのみイベントを送信します。

例)

D1,H1,M15のチャート表示している場合:

H1を同期元のチャートとすると、M15チャートに対してのみイベントを送信し、D1へは送信されません

オブジェクト名フィルター [キーワードを含む]

指定した文字列を含むオブジェクトのみを同期対象とします。

[キーワードを含まない]

指定した文字列を含まないオブジェクトのみを同期対象とします。

[無効]

キーワードフィルターが無効になり、すべてのオブジェクトが同期対象となります。

キーワード キーワードフィルターのキーワードを設定します。

キーワードが空の場合は、フィルターの設定に関わらず、すべてのオブジェクトが同期対象となります。

「拡張設定」

通常、これらの値を設定する必要はありません。

新規作成イベントID 各イベントを識別するIDを設定します。

他のインジケータと競合が発生した場合などに、適切な値を設定してください。

重複しない任意の値(0 – 65535)を設定することができます。

ただし、0 から 14 および 100 は、メタトレーダーによってすでに使用されていますので、それ以外の値を設定してください。

メタトレーダーが使用するの値は、将来変更される可能性があります。

イベントIDを変更する場合は、念のため、MetaEditorで次のファイルの「Events」をご確認ください。

「Include/Controls/Defines.mqh」

削除イベントID
ドラッグイベントID
プロパティ変更イベントID
名前変更イベントID
クリックイベントID
通知遅延(ミリ秒) オブジェクトを新規作成またはドラッグしたときのイベントを、他チャートへ送信するまでの時間を設定します。

トレンドラインなどが、ローソク足の各価格に磁石のようにくっつく仕様に配慮した設定です。

あまりに短い時間を設定すると、正しい価格で同期されない場合があります。
デフォルトの設定でうまく同期できない場合は、10ミリ秒単位で値を調整してみてください。

◆ 使い方

1) 同期させたいすべてのチャートにこのインジケータを導入

2) すべてのインジケータでチャートオブジェクトごとに同期モードを設定

基本的にはこれだけで使い始めることが可能です。

上記の画像ではH4(左)とH1(右)にインジケータを導入し、垂直ラインの同期モードを「送信・受信に」設定しています。

◆ 仕様

[コピーされないプロパティについて]

r/o(読み取り専用)のプロパティ(例: OBJPROP_CREATETIME(作成時間))はコピーされません

「MQL4 公式ドキュメント – オブジェクトプロパティ」 でご確認いただけます
https://docs.mql4.com/constants/objectconstants/enum_object_property

[時間プロパティ自動調整について]

同期先のチャートの状態によっては調整できない場合があります。

「チャートの最大バー数」よりも古いローソク足のデータにアクセスする必要がある場合

使用している関数の仕様上、上記の情報を取得できないため。

一部の期間のローソク足情報が欠落している場合

サーバーから取得できるデータには時間軸ごとに期限があり、それより古いものは取得できません。

このため一部期間が欠落したチャートになる場合があります。

たとえば、日頃、それぞれの通貨ペアの動きを日足で確認していて、取引するときにだけ時間足を表示する場合などが該当します。

この場合、日足のデータは問題ありませんが、時間足の場合、取得できるデータには期限がありますので、

以前取引した日付から、今回の取引まで期間が空くとその間のデータが抜け落ちる可能性があります。

残念ながら、この状態をこのインジケータから検出・修正することは現在のところできませんので、

利用者様ご自身で管理していただく必要があります。

これらの期間をご確認していただくために、欠落の疑いがある場合には、

「時間足チャート」に限り「シンボル名(通貨ペア)」、「時間軸」、「期間」をログに出力していますので、

ヒストリーセンターから当該期間をご確認ください。

チャートを読み込むためのスクリプトをご用意しておりますのでよろしければご利用ください。

>> ChartLoader for MT4(無料) をダウンロードする <<

[名前変更の実装について]

この機能を実装するにあたり、チャート上のすべてオブジェクトの名前を取得する必要があります。

そのため、かなり多くのオブジェクトが存在するチャートの場合、一時的にフリーズした状態になる場合があります。

開発時のテストでは、15,000個 のオブジェクトで 0.22秒 かかり、少しもたつきを感じました。

10,000個までであれば、気にならない程度ですので、実用上の問題はないかと思います。

[その他]

他のインジケータからプロパティを変更したり、移動させたオブジェクトは同期できません

これは同期処理に必要なイベントが発生しないためです。

オブジェクトの作成・削除に関しては同期可能です。

同期(コピー)系インジケータなどのオブジェクトを操作するインジケータと競合する可能性があります

他のインジケータに影響を与えないよう配慮して開発していますが、競合する可能性は否めません。

試用版をご用意していますので、必ず本番環境で動作をご確認ください。

詳細・購入
モバイルバージョンを終了