テクニカル指標

MetaTrader 5用のColorXMA一目均衡表と標準偏差インジケーターの活用法
MetaTrader5
MetaTrader 5用のColorXMA一目均衡表と標準偏差インジケーターの活用法

皆さん、こんにちは!トレード仲間の皆さんにとって、インジケーターは戦略を支える重要なツールですよね。今回は、MetaTrader 5用の「ColorXMA一目均衡表」と「標準偏差インジケーター」についてお話ししたいと思います。 ColorXMA一目均衡表とは? ColorXMA一目均衡表は、トレンドの方向性を把握するためのインジケーターです。従来の一目均衡表に色分けされた移動平均線を組み合わせており、視覚的にわかりやすいのが特徴です。特に、トレンドの転換点を見つけるのに役立ちます。 標準偏差インジケーターの活用法 次に、標準偏差インジケーターについてです。これは市場のボラティリティを測るためのツールで、価格の変動幅を視覚化します。トレーダーはこれを利用して、リスク管理やエントリーポイントの判断に役立てることができます。 この2つのインジケーターを組み合わせるメリット トレンドの確認: ColorXMAでトレンドを把握し、標準偏差でリスクを測る。 視覚的な判断: 色分けされた移動平均線で、一目で状況を把握。 エントリーとエグジットのタイミング: 価格の動きを基に、より精度の高いトレードが可能に。 これらのインジケーターを使って、トレードの精度を上げていきましょう!皆さんのトレードがうまくいくことを祈っています。何か質問があれば、コメント欄で気軽に聞いてくださいね!

2025.04.15
ボリュームオシレーター:MetaTrader 5のトレーディングインジケーター
MetaTrader5
ボリュームオシレーター:MetaTrader 5のトレーディングインジケーター

ボリュームオシレーターは、ボリュームに基づいて計算された二つの移動平均の比率です。 計算式は以下の通りです: LongEMA = EMA(Volume, LongPeriod)ShortEMA = EMA(Volume, ShortPeriod)VolumeOsc = 100 * (ShortEMA - LongEMA) / LongEMA 価格が上昇または下降し、ボリュームが増加している場合は、トレンドの強さを示唆する可能性があります。この場合、ボリュームオシレーターがゼロラインを上回っていると、価格の方向性や市場トレンドの確認ができ、上昇トレンドまたは下降トレンドが続いていることを示します。 一方、価格が上昇または下降し、ボリュームが減少している場合は、トレンドの弱さを示唆するかもしれません。この場合、ボリュームオシレーターがゼロラインを下回ると、価格の方向性や全体的な市場トレンドが弱いことを示す可能性があります。 オシレーターの負の領域でのダイバージェンスは、トレンドの反転が近い将来に起こるかもしれないことを示すことがあります。 インジケーターラインはゼロラインの上下に変動し、価格トレンドの強さや弱さを示します。オシレーターの正の値は、価格が現在のトレンド方向を継続するための市場サポートが十分であることを示唆します。逆に、負の値は市場サポートがないことを示し、価格が停滞しているか、トレンドの反転を示唆している可能性があります。

2025.04.14
EquiPeakドローダウントラッカー - MT5用インジケーターの活用法
MetaTrader5
EquiPeakドローダウントラッカー - MT5用インジケーターの活用法

どのような目的で使用するのか? EAのパフォーマンスを視覚的に把握:自分の戦略の過去の最大ドローダウンを手動で入力することで、EAが正常な範囲内で動いているか、予期せぬ状況に陥っているかを簡単に確認できます。 現在のリスクを継続的に監視:リアルタイムで現在のドローダウンを監視し、重要なレベルを超えているかどうかをチェックできます。 スマートで詳細な通知機能:新しいドローダウン記録が設定されるたびや、設定に応じて定期的にプッシュ通知を受け取ることができ、不要なメッセージで煩わされることなく情報を得られます。 自動ログ記録:外部ファイル(CSVまたはTXT形式)にドローダウンを継続的に記録できるため、後で分析することが可能です。 どのようなトレーダーにおすすめか? 自動または半自動のシステムで取引を行い、EAが最大の期待ドローダウン内でパフォーマンスを発揮しているかを迅速に把握したいトレーダー。 実際の条件下での戦略の動作を視覚的に確認したいユーザー。 リスクを効果的に管理し、取引が許容範囲を超えた時にすぐに知りたいトレーダー。 詳細な設定ガイド(インプット) インジケーターのカスタマイズ可能なパラメータは以下の通りです: 監視するマジックナンバー(-1は全てを追跡) 監視したいポジションのマジックナンバーを指定します。全てを監視したい場合は、-1を使用してください。 初期最大ドローダウン (%) EAの過去の最大ドローダウン(例:長期間のバックテストで得られた最高結果)をここに入力します。視覚的な参考として使用します。 リフレッシュ間隔(秒) 計算更新の頻度。 MaxDD更新モード 全タイムハイの更新方法を定義します: UPDATE_MAX_DD_IF_BIGGER: 現在のドローダウンが入力した履歴を上回ると自動的に更新。 NO_UPDATE_MAX_DD: 手動で入力した履歴値は更新せず、現在の状況について60分ごとに通知。 プッシュ通知を送りますか? モバイルへのプッシュ通知を有効または無効にします。 固定またはピークの参照? 残高の参照を定義する方法を選びます: REF_FIXED_BALANCE: 手動で入力した固定残高。 REF_PEAK_BALANCE: 常に最大残高を使用(自動保存)。 固定残高 (0 => 現在) 初期の固定残高。0を使用すると、インジケーター読み込み時に現在の残高が使用されます。 現在のDDテキストの色 現在のドローダウンテキストの色。 最大DDテキストの色 過去のドローダウンテキストの色。 フォントサイズ(現在のDD) 現在のドローダウンのフォントサイズ。 フォントサイズ(最大DD) 過去のドローダウンのフォントサイズ。 チャートの後ろにラベルを表示? テキストをグラフの後ろに配置します。 ラベルX(ピクセル) 左端からの水平距離。 ラベルY(ピクセル) 上端からの垂直距離。 縦の間隔 テキスト間の垂直スペース。 ジャーナルにログを印刷しますか? ジャーナルに詳細メッセージを有効にします。 ファイルログを有効にする 現在のドローダウンを外部ファイルに自動記録します。 ファイル拡張子(CSVまたはTXT) 生成ファイルの形式を選択します。 自動的にファイルに登録 ドローダウン値は、日付と時刻とともにCSVまたはTXT形式で自動的にログされ、MT5の共通フォルダー(MetaTrader 5 Terminal/Common/Files/)に保存されます。これにより、後で結果を分析するのに最適です。 最大限に活用するための重要な推奨事項 常に期待される歴史的最大ドローダウン(バックテスト結果や過去のパフォーマンスなど)をインプットの「初期最大DD (%)」に入力してください。これにより、EAが正常な期間なのか、調整が必要なのかを迅速に評価できます。 専用のチャートにインジケーターを配置し、すべてのマジックナンバーを監視するか、特定のチャートごとに独立データを好む場合は各チャートに配置してください。 リフレッシュレート、色、位置、テキストのサイズを慎重に調整し、最適な表示を設定してください。 モバイルでプッシュ通知を受け取るために モバイルのMetaTraderを開き、自分のMetaQuotes ID(設定 > メッセージ)をコピーします。 デスクトップのMetaTrader 5で、ツール > オプション > 通知に移動します。 プッシュ通知を有効にし、自分のMetaQuotes IDを貼り付けます。

2025.04.14
Kuskus Starlight - MT5用インディケーターのご紹介
MetaTrader5
Kuskus Starlight - MT5用インディケーターのご紹介

インディケーター名: Kuskus Starlight 概要: Kuskus Starlightはオシレーターとして機能するテクニカルインディケーターで、フィッシャープライス変換を利用して、トレーダーが市場のトレンドや反転を識別するのをサポートします。指定された期間範囲で正規化されており、応答性を調整できるスムージングパラメータがあります。このインディケーターは、トレーディングシステム内での確認ツールとして特に重宝されています。潜在的なトレードシグナルのバリデーションを助けてくれるのが大きなポイントです。 背景: 私はKuskus StarlightインディケーターをStonehill ForexとNo Nonsense Forex (NNFX)のYouTubeチャンネルを通じて知りました。どちらのプラットフォームも、彼らのトレーディングシステム内での確認インディケーターとしての有用性を強調しています。Stonehill Forexによると、このインディケーターは2007年にさかのぼり、NNFXでは2017年のリリースを参照しています。 Kuskus Starlightインディケーターの詳細な概要と使用方法については、以下のリソースを参照してください: Stonehill Forexの記事: Kuskus Starlightを確認インディケーターとして NNFXのYouTube動画: Kuskus Starlightインディケーター なぜ私がコーディングしたのか: MetaTrader 5 (MT5)ユーザーとして、MT5に対応したKuskus Starlightインディケーターを見つけることができませんでした。このインディケーターがMT5環境のトレーダーにとって価値があると認識し、自分でコーディングすることにしました。元のアルゴリズムに合致するよう、機能性と整合性を維持しました。 元のMT4コードとアルゴリズム: このインディケーターの元のバージョンはMetaTrader 4 (MT4)用にデザインされ、Scriptorによって投稿されました。こちらで見つけることができます: Kuskus Starlight - MQL4コードベース。私のMT5版はこのコードを基にしており、コアの原則を維持しつつMT5コミュニティに提供することを目指しています。 このMT5版のKuskus Starlightがあなたのトレーディングツールキットに貴重な追加となることを願っています! インディケーター設定: 描画タイプオプション 描画タイプオプション: 線 描画タイプオプション: ヒストグラム 描画タイプオプション: スターリースターリーナイト 矢印タイプオプション: 選べる矢印タイプが多数

2025.04.14
Chande Kroll Stop:MetaTrader 5のストップロス設定インジケーター
MetaTrader5
Chande Kroll Stop:MetaTrader 5のストップロス設定インジケーター

Chande Kroll Stopインジケーターは、ストップロスの設定レベルを決定するためのインジケーターです。このインジケーターは、価格チャート上に二本のラインを表示します。 赤いラインはショートポジションのストップレベルを示し、緑のラインはロングポジションのストップレベルを示します。 ロングポジション用のライン(青色)は、ロングポジションのストップロスをどのレベルに設定すべきかを示しています。このラインに達した場合、資産が下落を始めたことを示唆し、購入を閉じるシグナルになるかもしれません。 ショートポジション用のライン(赤色)は、ショートポジションを閉じるべきレベルを示します。資産の価格が上昇し、このラインに触れた場合、売りを閉じるシグナルとなることがあります。 Chande Kroll Stopは、真の範囲に基づいて計算されるため、インストゥルメントのボラティリティに依存しないインジケーターとして位置付けられています。 このインジケーターは、Tushar ChandeとStanely Krollが著した「The New Technical Trader」で初めて議論され、実装されました。トレンドフォローインジケーターとして設計されたChande Kroll Stopは、市場トレンドの平均真の範囲を計算することでトレーダーにストップレベルを示します。 インジケーターの計算は、一定期間の最大価格と最小価格、標準偏差(ATR)に基づいています。これらのデータは、インジケーターが市場を「感じ取り」、現在の市場状況に応じて値を調整することを可能にします。 市場のボラティリティは、インジケーターの計算において重要な役割を果たします。ボラティリティが高い場合、Chande Kroll Stopのラインは現在の価格から遠く離れ、投資者に市場の変動に対してより多くの余裕を与えます。逆にボラティリティが低い場合、ラインは価格に近くなり、変化に迅速に反応できるようになります。

2025.04.10
ユニフォーミティファクターインジケーター:MetaTrader 5向けの分析ツール
MetaTrader5
ユニフォーミティファクターインジケーター:MetaTrader 5向けの分析ツール

こんにちは、トレーダーの皆さん!今日は、MetaTrader 5で使えるユニフォーミティファクターインジケーターについてお話しします。このインジケーターは、価格の時系列が「ランダムウォーク」を表しているという仮説を検証するためのシンプルな分析ツールです。特に、ガウス型の「ランダムウォーク」に関するものです。これを使うことで、価格の変動をパラメトリックに変換し、より安定して予測可能な時系列を構築する手助けができます。 ご存じの通り、「ランダムウォーク」変数がNステップ後にカバーする距離は、標準偏差に√Nを掛けたものとして推定されます。つまり、Nの0.5乗を掛けるということです。 このインジケーターは、事前に定義されたバーのサブレンジに対する「平均」価格変化の統計を計算します。この「平均化」は、Nバーの距離をF乗したものに基づいて行われます。ここで、Fは0.1から1まで0.1刻みで変化します。 現在のチャート上のすべてのバーを使用して、スライディングウィンドウ内で最大Nバーの統計を収集します。 その後、インジケーターは異なるFの統計の中で最も「規則的」な均一分布を見つけ、そのファクター(通常は0.5または0.6)に対するヒストグラムを表示します。ヒストグラムの各コラムは、対応する取引期間(バー数)ごとの「平均」デルタを示しています。ここでの「平均化」はN^Fによって行われます。 インジケーターは、統計曲線の「規則性」(平坦さ)を自動的に検出するための異なる方法を使用できます: 分散の最小化; 三重M(平均、中央値、最頻値)間の差の最小化(平方誤差); ジニ係数の最小化; 最適ファクターを知ることは、以下の目的で役立ちます: ニューラルネットワークや他の機械学習アルゴリズムのための入力データ(価格変化)の正規化; ボラティリティ取引システムでの分析のための単一入力ベクトルへのサンプリングに必要なバー数の推定; 異常(非標準Fまたは分布曲線の特異点)を持つシンボルや時間枠の検出; インジケーターの設定 期間 — 統計を収集するために使用する最大バー数(N)、デフォルトは200; ファクター — 距離に対する「平均化」の指数、デフォルトは0(自動検出)。0.0から1.0の間でカスタム値を入力できます。例えば、0.525; メソッド — 均一性の推定方法の1つ(分散、三重M、ジニ); MaxBars — 統計を計算するためのバーの制限、デフォルトは0(すべての利用可能なバー); 注意:無制限のバー数または数十万のバーをチャートで使用する場合、計算に時間がかかることがあります。この問題がある場合は、バーの数を数万に制限することを検討してください。 出力結果 インジケーターは、各距離に対する平均価格変化の青いヒストグラムを表示します。また、参考のために、連続して増加するバー数(距離)が示されたオレンジ色のヒストグラムも表示されます。現在の時系列のテストファクターと対応するメトリックの完全なテーブルがログに出力されます。 スクリーンショット 以下のスクリーンショットは、3つの時間枠(D1、H1、M1)におけるインジケーターの表示を示しています。各チャートには、インジケーターの2つのインスタンスが含まれています: 上のものは、ジニによるF自動検出に設定されており、見つかった値(0.4と0.5の間で変化)がタイトルに表示されています。 下のものは、事前定義されたF=0.6に設定されています。 XAGUSD,D1におけるユニフォーミティファクターの2つのインジケーター XAGUSD,H1におけるユニフォーミティファクターの2つのインジケーター XAGUSD,M1におけるユニフォーミティファクターの2つのインジケーター

2025.04.07
MetaTrader 5向けのPan PrizMAインジケーター - レバレッジなしで使える新しい手法
MetaTrader5
MetaTrader 5向けのPan PrizMAインジケーター - レバレッジなしで使える新しい手法

こんにちは、トレーダーの皆さん!今日は、MetaTrader 5向けの新しいインジケーター「Pan PrizMA」についてお話ししたいと思います。このインジケーターは、4次多項式による補間を基にしたスライディングラインを作成します。 この構築されたラインは、サイン波を使って外挿され、そのline_poweraxialはほぼ一定で、傾斜のあるpower_line= 3(グラフを視覚化するために再描画されます)となります。 構築された軸シノイドから、各バーの一つの値が削除され、外挿された値のラインが構築されます。このラインは再描画されません。 外部変数について: line_power - 外挿ラインの次数; leverage - 結果となるラインの排除値。最初のスライディングラインから後方にシフトされます; multiplier - 倍数。ゼロの場合は軸から値が削除され、1の場合はシノイドから、マイナス1の場合は軸を通じてミラーシノイドポイントから削除されます。任意の値を取ることができます。 line4_SHIFT - 外挿された値から得られるラインのシフト; interval - 平均的な倍数を増加させる。 このインジケーターの詳細な改良については、こちらのリンクをチェックしてみてください:差分の計算と例。

2025.04.04
PSARジグザグ(ノンラグ) - MetaTrader 5用インジケーターの魅力
MetaTrader5
PSARジグザグ(ノンラグ) - MetaTrader 5用インジケーターの魅力

PSARジグザグとは?このインジケーターは、皆さんがよく知っている従来のジグザグとは異なります。従来のジグザグは、主に過去の市場のスイングを強調し、次のスイングを確認するために必要なバー数だけ遅延します。価格の動きに基づいて機能しますが、リアルタイムのシグナル検出を目的としたラグがあり、リペイントするタイプのインジケーターです。トレンドフォローのインジケーターでは、ジグザグの描画はあまり使われず、歴史的なピボットポイントを分析して将来の価格動向を予測するためにより一般的に使用されます。ノンラグのジグザグしかし、このジグザグはまったく別物です。現在のバーまでラグがない、ダイナミックでトレンドベースのジグザグです。SARトレンドに基づいており、これはラグなしのトレンドフォローアルゴリズムです。過去にはPSARに基づくトレンドフォローのジグザグも開発されましたが、遅延があり、無効なレッグを生成していました。ノンラグのトレンドフォローアルゴリズムに基づくラグのあるジグザグがなぜ必要なのか、私には理解できませんでした。だからこそ、ラグなしのジグザグ描画が必要だと思い、これを作成しました。レッグの有効性を保つためにバックステップを使用してレッグの有効性を保っています。高値を探しているときは、バックステップ入力で定義された過去のバー数から最高値を見つけ、低値を探すときは同様に最低値を探します。これにより、セグメントの終わりが高値や低値、あるいは最近のサポートやレジスタンスでスイングすることがあります。PSARはレンジ相場で苦戦することが知られており、これがその短所です。しかし、それ以外ではかなり優れたトレンドフォローインジケーターです。このジグザグ構造は、コードの中で最も関連性の高い部分です。クリーンで効率的、保守性も考慮して設計されています。私の実験と作業が評価されることを願っています。新しいバージョンv1: スイングはキャンドルの高値または低値、またはバックステップで見つけたサポートとレジスタンスにリンクします。v2: スイングポイントでキャンドルの高値と低値に厳密にレッグを接続します(できる限り)。v3: ジグザグの究極のコントロールを提供するために前進ステップロジックを含みます。

2025.04.01
レンジマーケット検出ツール - MetaTrader 5向けインジケーター
MetaTrader5
レンジマーケット検出ツール - MetaTrader 5向けインジケーター

皆さん、こんにちは!今日は、レンジマーケットを見つけるためのインジケーターについてお話ししたいと思います。このインジケーターは、動的なアンカーポイントを使用して標準オブジェクトでレンジ市場期間を強調表示するためのものです。特徴として、ラグなしでの検出が可能で、ポイントしきい値に基づいてレンジを決定するモードと、ATR(平均的な真の範囲)と乗数を使って動的にレンジを決定するモードの2つがあります。デフォルトでは、ATRがこの目的に適していると思われているため、これを使用しています。 レンジ内のろうそく足が異なる色で表示されるように、元のチャートとは別に擬似チャートが作成されます。レンジを決定するための論理は非常にシンプルで、ATRの期間と乗数を定義できるカスタマイズ可能な入力があります。これによって、あなた自身にとってのマーケットレンジを定義することができます。 ただし、レンジマーケットの意味は人それぞれ異なることがあります。長期トレーダーは多くの市場活動を無視することを好むかもしれませんが、スキャルパーは小さなレンジを認識することを好むかもしれません。あなたにとっての理想的なレンジを見つけるために、このインジケーターをぜひ活用してください!

2025.03.31
MetaTrader 5用のスーパートレンドインジケーターの使い方
MetaTrader5
MetaTrader 5用のスーパートレンドインジケーターの使い方

スーパートレンドインジケーターは、平均真実範囲(ATR)を基に市場のトレンドを特定するためのツールです。MITライセンスの下、無料でオープンソースとして利用できます。 基本公式 上バンド = 基準価格 + (マルチプライヤー × ATR) 下バンド = 基準価格 - (マルチプライヤー × ATR) 上昇トレンド時: スーパートレンド = 下バンド(緑) 下降トレンド時: スーパートレンド = 上バンド(赤) 利用方法 緑のラインは上昇トレンドを示し、買いのチャンスを示唆します。 赤のラインは下降トレンドを示し、売りのチャンスを示唆します。 トレンドフォロー戦略や反転の特定に使用できます。 トレーリングストップのメカニズムとしても効果的です。 インストール方法 ファイルをMetaTrader 5のインジケーターフォルダにコピーします(通常はTerminal_Directory\MQL5\Indicators\にあります)。 MetaTrader 5を再起動するか、ナビゲーターパネルを更新します。 インジケーターを任意のチャートにドラッグします。 パラメータ ATRPeriod: ATR計算用の期間(デフォルト: 22) Multiplier: 感度を調整するためのATRマルチプライヤー(デフォルト: 3.0) SourcePrice: 計算に使用する価格タイプ TakeWicksIntoAccount: 計算に価格のウィックを含めるかどうか

2025.03.15
T3移動平均線 - MetaTrader 5用のインジケーター
MetaTrader5
T3移動平均線 - MetaTrader 5用のインジケーター

T3インジケーターは、Tim Tillsonによって開発された先進的な移動平均で、ラグを減少させながら市場のノイズをフィルタリングする滑らかな曲線を維持します。従来の移動平均とは異なり、T3は複数の指数移動平均(EMA)を組み合わせることで、真の価格変動に対する優れた反応性を実現しています。 計算方法 T3は、体積要因に基づいた重み付けシステムを使用して、6つの指数移動平均を連鎖的に計算することで求められます。具体的な計算式は次の通りです: まず、6つの連続したEMAを計算し、各EMAは前のEMAの出力を入力として使用します。 T3の公式は、体積要因から得られた係数でこれらのEMAを組み合わせます: T3 = c1*EMA6 + c2*EMA5 + c3*EMA4 + c4*EMA3 ここで、 c1 = -factor³ c2 = 3×factor² + 3×factor³ c3 = -6×factor² - 3×factor - 3×factor³ c4 = 1 + 3×factor + factor³ + 3×factor² 入力パラメータ T3_Length: EMAの期間(デフォルト:12) T3_Factor: 滑らかさと反応性を制御する体積要因(デフォルト:0.7) 高い値(1に近い)では、より滑らかなラインが生成され、ラグが増加します。 低い値(0に近い)では、より反応性の高いラインが生成され、ラグが減少します。 使用方法 T3インジケーターは以下の目的で使用できます: トレンドの特定(T3ラインの方向) トレーディングシグナル(価格がT3ラインをクロスする際) サポートとレジスタンスレベル 短期的な市場ノイズのフィルタリング インストール方法 ファイルをMetaTrader 5のインジケーターフォルダに置き、任意のチャートに添付します。取引戦略と時間枠に応じて入力パラメータを調整してください。

2025.03.11
フィボナッチ・ジグザグ:MetaTrader 5向けインジケーターの設定ガイド
MetaTrader5
フィボナッチ・ジグザグ:MetaTrader 5向けインジケーターの設定ガイド

セットアップ 必要なもの: 1つのジグザグプロット 高値と安値のためのデータバッファ2つ 入力パラメータ インジケーターが再計算されるたびにリセットされるシステム変数のセット 次に、コードの基本部分を見てみましょう: #property indicator_buffers 2 #property indicator_plots 1 input double retracement=23.6; // リトレースメントの割合 input double minSizeInAtrUnits=0.0; // ATR単位での波の最小サイズ input int rollingAtrPeriod=14; // ローリングATR期間 input color Color=clrDodgerBlue; // 波の色 input int Width=3; // 波の幅 input ENUM_LINE_STYLE Style=STYLE_SOLID; // 波のスタイル //--- アップウェーブとダウンウェーブの配列 double upWaves[], dwWaves[]; upWaves配列は高値を、dwWaves配列は安値を格納します。 システム変数について: 最後の波のタイプ、開始位置、終了位置、開始と終了からのバーの距離を把握する必要があります。 さらに、局所的な高値と低値の変数、各ポイントからのバーの距離も必要です。 //--- ジグザグの追跡 int wave_type=0; // 波のタイプ [0] なし [1] 上昇 [2] 下降 double wave_start_price=0.0; // 波の開始価格 double wave_end_price=0.0; // 波の終了価格 int wave_start_distance=0; // 開始価格からのバーの距離 int wave_end_distance=0; // 終了価格からのバーの距離 //--- 高値の追跡 double high_mem=0.0; int distance_from_high=0; //--- 低値の追跡 double low_mem=0.0; int distance_from_low=0; //--- ローリングATR double rollingAtr=0.0; int rollingAtrs=0; これでローリングATRの単位と計算された数値が準備できました。 次に、システムリセット関数を作成します: void resetSystem() { ArrayFill(upWaves, 0, ArraySize(upWaves), 0.0); ArrayFill(dwWaves, 0, ArraySize(dwWaves), 0.0); wave_type=0; wavestart_price=0.0; wavend_price=0.0; wavestart_distance=0; wavend_distance=0; high_mem=0.0; low_mem=0.0; distance_from_high=0; distance_from_low=0; rollingAtr=0.0; rollingAtrs=0; } 標準的な処理で、配列をゼロで埋め、システム変数をリセットします。 OnInitでは、バッファを設定し、プロットを作成し、初めてリセットを呼び出します: SetIndexBuffer(0, upWaves, INDICATOR_DATA); SetIndexBuffer(1, dwWaves, INDICATOR_DATA); PlotIndexSetDouble(0, PLOT_EMPTY_VALUE, 0.0); PlotIndexSetInteger(0, PLOT_DRAW_TYPE, DRAW_ZIGZAG); PlotIndexSetInteger(0, PLOT_LINE_COLOR, 0, Color); PlotIndexSetInteger(0, PLOT_LINE_WIDTH, Width); PlotIndexSetInteger(0, PLOT_LINE_STYLE, Style); resetSystem(); では、計算に進みましょう。 最初に処理するのはローリングATRです。このATR期間を超えるバーが集まるまで、他のことは何もしません。 ローリングATRを管理する部分は次の通りです: 期間を超えるまで、見つかったバーの範囲を合計に追加し続ける 期間に到達したら、最初の割り算(平均)を行う その後、ローリングATRから古い部分をクリップし、新しい部分を追加します //--- ATRを管理する rollingAtrs++; if(rollingAtrs > rollingAtrPeriod) { double new_portion = ((high[i] - low[i]) / _Point) / ((double)rollingAtrPeriod); //--- 古い部分を削除し、新しい部分を追加 rollingAtr = (rollingAtr) - (rollingAtr / ((double)rollingAtrPeriod)) + new_portion; } else if(rollingAtrs high_mem && low[i] >= low_mem) { double new_wave_size_in_atr_units = ((high[i] - low_mem) / _Point) / rollingAtr; //--- 新しい波のサイズが有効であれば if(new_wave_size_in_atr_units >= minSizeInAtrUnits) { //--- 新しいアップウェーブを開始 wave_type = 1; wave_start_price = low_mem; wave_start_distance = distance_from_low; wave_end_price = high[i]; wave_end_distance = 0; dwWaves[i - wave_start_distance] = low_mem; upWaves[i] = high[i]; high_mem = high[i]; distance_from_high = 0; low_mem = low[i]; distance_from_low = 0; } } //--- 安値を下回り、高値は超えない場合 else if(low[i] < low_mem && high[i] = minSizeInAtrUnits) { //--- 新しいダウンウェーブを開始 wave_type = -1; wave_start_price = high_mem; wave_start_distance = distance_from_high; wave_end_price = low[i]; wave_end_distance = 0; upWaves[i - wave_start_distance] = high_mem; dwWaves[i] = low[i]; high_mem = high[i]; distance_from_high = 0; low_mem = low[i]; distance_from_low = 0; } } //--- 両方を超えた場合 else if(low[i] < low_mem && high[i] > high_mem) { high_mem = high[i]; low_mem = low[i]; distance_from_high = 0; distance_from_low = 0; } } 素晴らしい!最後の部分です。 アップウェーブの場合: 新しい高値が作成されると、前の高値から新しい高値の位置にジグザグを移動します。この際、バーの距離を保持しているので可能です。また、安値と安値からの距離を更新します。これにより、ピークからの最安値をキャッチし、その後に十分にリトレースするか確認します。 新しい安値が作成された場合、または新しい安値が設定された場合、ピークから安値までの距離を計算し、波のサイズで割ります。そして、入力パラメータのスケールに合わせるために100を掛けます。もし波のサイズが100ポイント、リトレースメントが24ポイントであれば、24/100=0.24、次に×100=24%となります。新しい「仮想的な」波が以前のものをリトレースする際もATR単位に対して有効であれば新しいダウンウェーブを開始し、局所的な高値と安値を設定し、バーの距離を設定します。 関連するコードは以下の通りです: //--- アップウェーブがある場合 if(wave_type == 1) { //--- 波が上に拡大した場合 if(high[i] > wave_end_price) { //--- 配列位置から前の終了価格を削除(0.0=空) upWaves[i - wave_end_distance] = 0.0; //--- 新しい位置に配置 upWaves[i] = high[i]; wave_end_price = high[i]; wave_end_distance = 0; high_mem = high[i]; distance_from_high = 0; low_mem = low[i]; distance_from_low = 0; } //--- リトレースメントを確認 if(low[i] < low_mem || distance_from_low == 0) { low_mem = low[i]; distance_from_low = 0; double size_of_wave = (wave_end_price - wave_start_price) / _Point; double size_of_retracement = (wave_end_price - low_mem) / _Point; if(size_of_wave > 0.0) { double retraced = (size_of_retracement / size_of_wave) * 100.0; double new_wave_size_in_atr_units = ((wave_end_price - low_mem) / _Point) / rollingAtr; //--- 新しい波のサイズが有効であれば if(new_wave_size_in_atr_units >= minSizeInAtrUnits) { //--- リトレースメントが重要であれば、新しいダウンウェーブを開始 if(retraced >= retracement) { wave_type = -1; wave_start_price = high[i - distance_from_high]; wave_start_distance = distance_from_high; wave_end_price = low[i]; wave_end_distance = 0; upWaves[i - wave_start_distance] = high_mem; dwWaves[i] = low[i]; high_mem = high[i]; distance_from_high = 0; low_mem = low[i]; distance_from_low = 0; } } } } } ダウンウェーブの場合も同様の処理を行います。 これで、リトレースメントジグザグが完成しました! こちらが23.6%のリトレースメントとATR単位での最小波サイズ0.0のジグザグです: そして、こちらがATR単位での最小波サイズ3の同じジグザグです: これで、素晴らしいトレーディングを楽しんでください!

2025.03.03
最初 前へ 3 4 5 6 7 8 9 10 11 12 13 次へ 最後