チャートのトレンドラインやオブジェクトを一括で削除する方法
チャートにたまったトレンドラインなどのオブジェクトを一括で削除したいです。
簡単な方法はありますか?
FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。
この無料EAで不労所得が稼げます
累計テスト120年以上・リアル取引公開2020年~
この記事でわかること・できること
〇オブジェクトを一括で削除する方法
〇トレンドラインだけを一括で削除する方法
〇スクリプトのダウンロード
〇スクリプトを活用した効率的なトレーディング
チャートのオブジェクトはスクリプトで一括削除
チャートにたまった描画オブジェクトはスクリプトの「DeleteAll-or-Trendline」を使用すればかんたんに一括削除できる。
このスクリプトはトレンドラインだけの削除、またはすべてのオブジェクトの削除が選択できます
スクリプトの使い方もかんたんで、オブジェクトを一括削除したいチャートにドラッグアンドドロップする、またはダブルクリックでアクティブウィンドウのチャートに確認ダイアログが表示され、選択した内容の処理が実行される。
トレンドラインやオブジェクトを一括で削除するツールのダウンロード
トレンドラインやオブジェクトを一括で削除できるスクリプト「DeleteAll-or-Trendline」はこちらのリンクからダウンロードできる。
このリンクからダウンロードできるファイルは.ex4で、ダウンロード後はMT4にインストールして使用できるようになる。
DeleteAll-or-TrendlineをMT4へインストールする
ダウンロードしたスクリプト「DeleteAll-or-Trendline」はMT4の「Scripts」フォルダへ移動すればインストールできる。
インストール後はMT4の再起動で適用される。
MT4にセットされたスクリプトは「ナビゲーター>スクリプト」内から呼び出しが可能となる。
詳しくは以下の記事を参照
DeleteAll-or-Trendlineの使い方|一括削除の手順
DeleteAll-or-Trendlineはスクリプトのため、MT4のナビゲーターから実行できる。DeleteAll-or-Trendlineをチャートにドロップ、またはダブルクリックで確認ダイアログが開く。
どのオブジェクトを削除しますか?
はい:すべてのオブジェクトを削除
いいえ:トレンドラインを削除
キャンセル:何も削除しない
スクリプトの実行前には確認ダイアログが表示されるため、誤った削除は未然に防げる。
「はい」を選択するとチャートのオブジェクトすべてを一括で削除する。
「いいえ」を選択するとチャートのトレンドラインのみを一括で削除する。
「キャンセル」を選択すると何も削除せずスクリプトは終了する。
ショートカットキーとオブジェクト一括削除
MT4でのチャート分析において水平ラインやトレンドラインを引くことは、意識されるプライスやブレイクのポイントを把握できるため裁量トレードには有効となる。
MT4でラインを引くには少々手順が面倒だが、以下で紹介しているショートカットキーを利用すると、ひとつのキーで好きなラインを簡単に引けるためおすすめだ。
日々のトレーディングでラインを多用する場合には是非ともお試しいただきたい。
ショートカットキーを使って引かれた大量のラインも、一括削除ができるスクリプトを併用すれば管理が簡単になる。
DeleteAll-or-Trendlineはトレンドラインだけの削除を選択できるため、分析はより効率的になるはずだ。
MT4チャートでオブジェクトを一括削除する重要性
トレンドラインを大量に蓄積させた場合には以下のようなデメリットが生じてしまう。
ラインを引きなおす過程で古いラインを削除し、チャートをリフレッシュさせることで分析にも良い効果が得られる。
- 情報の過多化: 大量のトレンドラインがあると、どれが本当に重要なラインなのか見極めるのが難しくなる。効いているラインとそうでないものを区別することが重要。
- 判断の混乱: 過剰なトレンドラインがあると、どのラインに焦点を当てるべきか混乱する可能性がある。
- 偽のサポート/レジスタンスレベルの形成: 多くのトレンドラインがあると、一部はランダムな価格動向に基づいて引かれたものかもしれない。これにより、偽のサポートやレジスタンスレベルが形成され、取引の精度を損なう可能性がある。
- チャートの過度の複雑化: 大量のトレンドラインがあると、チャートが複雑化し過ぎ、本質的なパターンや動向を見逃す可能性がある。シンプルで明確なチャートが分析の正確性を高める場合もある。
- トレードシグナルの誤解釈: 過剰なトレンドラインがあると、誤ったトレードシグナルを読み取る可能性がある。
市場ごとのゾーンを一括削除する
市場ごとのゾーンを描画できるスクリプト「Market Zone」を使うと、各市場の高値と安値が色分けできる。
ゾーンを表示する日数や、ゾーンの時間帯などはパラメーターで指定できる。
このMarket Zoneを使うとチャートに複数のオブジェクトが描画されるため、DeleteAll-or-Trendlineがあると更に便利にチャート分析ができるようになる。
Market Zoneであれば、市場ごとのブレイクラインが一目瞭然となるため、市場参加者に意識されやすいポイントの把握に役立つ。Market Zoneでブレイクポイントを把握し、必要なラインだけ記録。不要となったオブジェクトはDeleteAll-or-Trendlineで一括削除する、といった使い方も可能となる。
ラウンドナンバーのラインを一括削除する
チャートの節値に水平ラインを描画できるスクリプト「RoundNumbers」を使うと、チャートの意識ラインが明確になる。チャートの節値は市場参加者が意識しやすいラインとなり、視認性を上げることで分析の効率も良くなる。
DeleteAll-or-Trendlineを使えば、チャートに引かれた水平ラインを一括で削除できるため相性が良い。
ふたつのスクリプトをインストールしておけば、RoundNumbersで手軽に水平ラインを描画、DeleteAll-or-Trendlineを使って簡単に一括削除する、といった使い方ができるようになる。
スクリプトのソースコード詳細
void OnStart()
{
int choice = MessageBox("どのオブジェクトを削除しますか?\nはい: すべてのオブジェクトを削除\nいいえ: トレンドラインを削除\nキャンセル: 何も削除しない", "オブジェクト削除", MB_ICONQUESTION | MB_YESNOCANCEL);
if (choice == IDYES) // ユーザーがはいを選択した場合
{
DeleteAllObjects(); // すべてのオブジェクトを削除
}
else if (choice == IDNO) // ユーザーがいいえを選択した場合
{
DeleteTrendLines(); // トレンドラインを削除
}
// キャンセルの場合は何もしない
}
//+------------------------------------------------------------------+
//| トレンドラインを削除する関数 |
//+------------------------------------------------------------------+
void DeleteTrendLines()
{
int totalObjects = ObjectsTotal();
for (int i = totalObjects - 1; i >= 0; i--)
{
string objName = ObjectName(0, i); // オブジェクト名を取得
if (StringFind(objName, "Trend line", 0) >= 0)
{
ObjectDelete(0, objName); // トレンドラインを削除
}
}
}
//+------------------------------------------------------------------+
//| 全てのオブジェクトを削除する関数 |
//+------------------------------------------------------------------+
void DeleteAllObjects()
{
int totalObjects = ObjectsTotal(); // デフォルトのチャートIDでオブジェクト数を取得
for (int i = totalObjects - 1; i >= 0; i--)
{
ObjectDelete(0, ObjectName(0, i)); // デフォルトのチャートIDでオブジェクトを削除
}
}
このスクリプトはユーザーに対しオブジェクト削除を選択させるためのダイアログボックスを表示し、選択に応じて特定のオブジェクト削除を決定する。
- OnStart 関数:
void OnStart()
:スクリプトの初期化関数。スクリプトが実行されるときに最初に呼び出される。int choice = MessageBox(...)
:ダイアログボックスを表示し、ユーザーに削除の選択肢を示す。MB_ICONQUESTION | MB_YESNOCANCEL は、ダイアログボックスにアイコンと「はい/いいえ/キャンセル」ボタンを表示するように指示する。if (choice == IDYES)
:ユーザーが “はい” を選択した場合、DeleteAllObjects()
関数を呼び出してすべてのオブジェクトを削除する。else if (choice == IDNO)
:ユーザーが “いいえ” を選択した場合、DeleteTrendLines()
関数を呼び出してトレンドラインのみを削除する。// キャンセルの場合は何もしない
:ユーザーが “キャンセル” を選択した場合は何も削除しない。
- DeleteTrendLines 関数:
void DeleteTrendLines()
:トレンドラインを削除する関数。int totalObjects = ObjectsTotal();
:チャート上の全てのオブジェクトの数を取得。for (int i = totalObjects - 1; i >= 0; i--)
:オブジェクトを後ろから順に処理する。string objName = ObjectName(0, i);
:オブジェクトの名前を取得する。if (StringFind(objName, "Trend line", 0) >= 0)
:オブジェクト名に “Trend line” という文字列が含まれているかどうかをチェックする。含まれていれば、そのオブジェクトを削除。
- DeleteAllObjects 関数:
void DeleteAllObjects()
:全てのオブジェクトを削除する関数。int totalObjects = ObjectsTotal();
:チャート上の全てのオブジェクトの数を取得する。for (int i = totalObjects - 1; i >= 0; i--)
:オブジェクトを後ろから順に処理する。ObjectDelete(0, ObjectName(0, i));
:指定したチャートID(0はデフォルトチャート)とオブジェクト名を使ってオブジェクトを削除する。
その他の便利なMT4用スクリプト
-
海外FXのEA_MT4
ラウンドナンバーに自動で水平ラインを引く|MT4スクリプト
-
海外FXのEA_MT4
市場ごとに高値と安値を色分けするMT4ツール|時間帯ブレイクアウト
-
海外FXのEA_MT4
取引履歴をすべてCSVファイルに出力するスクリプト|MT4
-
海外FXのEA_MT4
リスクゼロの損益分岐点でストップ注文するスクリプト|ブレイクイーブン
-
海外FXのEA_MT4
MT4を便利にするスクリプトまとめ
-
海外FXのEA_MT4
すべてのチャートを一括で閉じる方法|通貨ペア選択も可|MT4スクリプト
-
海外FXのEA_MT4
MT4でSL・TP注文を一括でキャンセルする方法
-
海外FXのEA_MT4
ストップロス(損切り)とテイクプロフィット(利食い)を一括で注文する方法
-
海外FXのEA_MT4
MT4一括決済スクリプト|全決済と売り買い決済の選択もできる
-
海外FXのEA_MT4
すべてのチャートを一括で開くMT4スクリプト
-
海外FXのEA_MT4
チャートのトレンドラインやオブジェクトを一括で削除する方法
-
海外FXのEA_MT4
MT4チャートの時間足を一括で切替えるツール
まとめ
この記事は、MT4チャート上でトレンドラインなどのオブジェクトを一括削除するスクリプトについて解説している。トレンドラインが過剰に溜まるとチャート分析に支障をきたす可能性があるため、効果的な管理方法としてこのスクリプトを紹介している。
スクリプト「DeleteAll-or-Trendline」には以下の特徴がある
オブジェクトを一括で削除: チャート上に溜まったトレンドラインや他のオブジェクトを一度に消去できる。これにより、チャートの情報が複雑化しすぎる現象を防ぐ。
ダイアログボックスで選択可能: ユーザーがオブジェクトの削除方法を選択できるダイアログボックスが表示される。すべてのオブジェクトを削除するか、トレンドラインのみを削除するか選択が可能。
スクリプトの使い方が簡単: スクリプトをチャートにドラッグアンドドロップするか、ダブルクリックするだけで使る。操作も直感的で分かりやすい。
チャート分析の効率化: トレンドラインを適切に管理することで、情報過多や判断の混乱を防ぎ、正確な分析を支援する。
プログラムの詳細が解説されている: スクリプトのプログラム詳細を紹介している。
このスクリプトを使うことで、トレンドラインなどのオブジェクト管理が効率的に行えるため、チャート分析における精度や効率の向上が期待できる。