私たちのファンページに参加してください
- ビュー:
- 31
- 評価:
- パブリッシュ済み:
-
このコードに基づいたロボットまたはインジケーターが必要なら、フリーランスでご注文ください フリーランスに移動
開いているチャート間でグラフィカル・オブジェクトをコピー・アンド・ペーストする必要が生じたことはないだろうか。あると思います。意外なことに、MetaTraderはオブジェクトの「コピー&ペースト」機能を提供していません。唯一、多かれ少なかれ似たような効果を得ることができるのがテンプレート(tplファイル)です。しかし、テンプレートにはインジケーターや設定、多くの補助的なものを含む完全なチャート状態が保存されており、必要な複製手順には無関係で不必要な場合があります。
そこで私が開発したのがこのインジケータChartObjectsCopyPaste.mq5 です。選択したオブジェクトをクリップボードにコピーし、そこから他のチャートに貼り付けることができます。文字列はありません。
このインジケータは、algotrading bookに 掲載されている別のインジケータ、ObjectGroupEdit.mq5を ベースにしています。
裏側で動作しているすべての基礎クラス(ObjectMonitor、MapArray、その他)の詳細については、リンクをたどってください。
このインジケーターにはバッファがありません。オブジェクトをコピーしたいソースチャートと、オブジェクトを貼り付けたい ターゲットチャートです。
チャート上で動作している間、インジケータは既存のグラフィカル・オブジェクトを追跡し、どれが選択されているかをメモします。
コピー&ペースト」コマンドは通常通り2つ1組で動作します:
- Ctrl+Q ホットキーを押すと、選択された全てのオブジェクトがテキストとして Windows のクリップボードにコピーされます。
- ターゲットチャート上で Ctrl+J を押すと、クリップボードからすべてのオブジェクトが貼り付けられます。
なぜCtrl+Q/Ctrl+Jなのか?この2つのキーの組み合わせは、数少ないキーの中から自発的に選ばれたものです。これはMetaTraderが多くのホットキーをMQLプログラムに伝達しないためです。特に、標準的なCtrl+C/Ctrl+V/Ctrl+Ins/Shift+Insはこのコンテキストでは動作しません。
ソースコードが公開されているので、ホットキーを他の組み合わせに変更することもできます。
インジケータはWindowsのクリップボードにアクセスするためにシステムDLLを使用するので、プロパティダイアログの[依存関係] タブでDLLのインポートを許可する必要があります。
コードベースがDLLのインポートを許可していないため、クリップボードに関連するコードは条件付きプリプロセッサ指令#ifdef DLL_LINKに包まれています。
#define DLL_LINK
という行をアンコメントしてください。そうしないと、クリップボード関数のスタブがホットキーの押下に応じてアラートを表示し、実際のアクションは実行されないことがわかります!
- MakeAllSelectable- すべてのオブジェクトを選択可能にするフラグ(プログラムで作成されたオブジェクトでは通常falseです);
- LogDetails- 転送されたオブジェクトのすべてのプロパティをログに出力するフラグ;
以下は、2つのオブジェクトを含むクリップボードテキストの例です:
OBJ_VLINE H1 Vertical Line 5578 0 0 enum ENUM_OBJECT_PROPERTY_INTEGER 0 OBJPROP_COLOR 55295 1 OBJPROP_STYLE 2 2 OBJPROP_WIDTH 1 3 OBJPROP_BACK 0 4 OBJPROP_SELECTED 1 7 OBJPROP_TYPE 0 8 OBJPROP_TIME 1726739940 10 OBJPROP_SELECTABLE 1 11 OBJPROP_CREATETIME 1726847009 12 OBJPROP_TIMEFRAMES 2097151 200 OBJPROP_LEVELS 0 207 OBJPROP_ZORDER 0 208 OBJPROP_HIDDEN 0 1032 OBJPROP_RAY 1 enum ENUM_OBJECT_PROPERTY_DOUBLE 9 OBJPROP_PRICE 1.11449 enum ENUM_OBJECT_PROPERTY_STRING 5 OBJPROP_NAME H1 Vertical Line 5578 6 OBJPROP_TEXT 206 OBJPROP_TOOLTIP OBJ_CHANNEL H1 Equidistant Channel 40885 5 1 enum ENUM_OBJECT_PROPERTY_INTEGER 0 OBJPROP_COLOR 255 1 OBJPROP_STYLE 0 2 OBJPROP_WIDTH 1 3 OBJPROP_BACK 0 4 OBJPROP_SELECTED 1 7 OBJPROP_TYPE 5 8 OBJPROP_TIME 1726758000 8 OBJPROP_TIME.1 1726797600 8 OBJPROP_TIME.2 1726758000 10 OBJPROP_SELECTABLE 1 11 OBJPROP_CREATETIME 1726847883 12 OBJPROP_TIMEFRAMES 2097151 200 OBJPROP_LEVELS 0 207 OBJPROP_ZORDER 0 208 OBJPROP_HIDDEN 0 1003 OBJPROP_RAY_LEFT 0 1004 OBJPROP_RAY_RIGHT 0 1031 OBJPROP_FILL 0 enum ENUM_OBJECT_PROPERTY_DOUBLE 9 OBJPROP_PRICE -28.113879003558715 9 OBJPROP_PRICE.1 -21.708185053380777 9 OBJPROP_PRICE.2 -48.04270462633452 enum ENUM_OBJECT_PROPERTY_STRING 5 OBJPROP_NAME H1 Equidistant Channel 40885 6 OBJPROP_TEXT 206 OBJPROP_TOOLTIP
そして、これらのオブジェクトがチャートに貼り付けられています:
MetaQuotes Ltdによって英語から翻訳されました。
元のコード: https://www.mql5.com/en/code/52263

ジグザグ・インディケータで確認された強気・弱気の期間を、vlines を使って簡単に視覚化することができます。ジグザグの表示をコントロールすることができ、チャートの始点から開始するか、特定のバー数から開始するかを選択できます。また、ピークや谷の価格、過去の期間の方向、振幅(pips)を示すラベルの表示も可能です。もちろん、メイン・ウィンドウ上でもサブ・ウィンドウ上でも機能します。 警告!これは、インジケーターを理解し、キャリブレーションし、戦略を開発するための貴重な補助ツールですが、直接使用するためのものではありません。 DeepL.comで翻訳(無料版)

- このスクリプトは、現在のチャートをスキャンして、利用可能なチャート・オブジェクトを探し出し、そのオブジェクトをカウントして削除する。

適応移動平均線は、ノイズの影響を受けにくい移動平均線を作るときに使われ、トレンドを検知する際にラグが最小に抑えられるという特徴を持ちます。

アクセルレーション/デセレレーションインジケーター(AC)は現在の市場を動かす力の加速と減速を測ります。