mcpField
M
mql5-indicator-patterns

mql5-indicator-patterns

github.com/terrylica開発2505 回インストール今日更新
リポジトリ

mql5-indicator-patterns について

mql5-indicator-patterns は、MetaTrader 5 向けの MQL5 カスタムインジケーターを作成・デバッグするスキルです。表示設定、バッファ管理、再計算のパターンを扱い、よくある描画問題の回避に役立ちます。

主な機能

  1. 01小さな値に合わせた表示スケール設定
  2. 02表示・非表示バッファの構成
  3. 03新しいバーの検出と再計算管理
  4. 04ウォームアップ範囲と描画位置の計算
  5. 05表示や更新に関する問題の診断

活用シーン

  1. 01カスタム MQL5 インジケーターの作成
  2. 02空白やずれのある描画の修正
  3. 03再計算時のローリングウィンドウのずれ防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/terrylica/cc-skills --skill mql5-indicator-patterns

インストール後、Claude Code で/mql5-indicator-patternsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
buffer-patterns.md
complete-template.md
debugging.md
display-scale.md
evolution-log.md
recalculation.md

詳細

MQL5 ビジュアルインジケーターパターン

適切な表示、バッファ管理、リアルタイム更新を備えたカスタム MQL5 インジケーターを作成するための、実戦で検証済みのパターンです。

自己進化するスキル:このスキルは使用することで改善されます。手順に誤りがある、パラメーターがずれている、または回避策が必要になった場合は、後回しにせず、すぐにこのファイルを修正してください。実際に再現できる問題がある場合にのみ更新してください。

このスキルを使用する場面

次のような場合に、このスキルを使用してください。

  • MetaTrader 5 用のカスタム MQL5 インジケーターを作成するとき
  • インジケーターの表示やバッファの問題をデバッグするとき
  • 適切なウォームアップ処理を伴う OnCalculate を設定するとき
  • 新しいバーを検出するパターンを実装するとき

クイックリファレンス

基本パターン

表示スケール(小さい値が 1.0 未満の場合):

IndicatorSetDouble(INDICATOR_MINIMUM, 0.0);
IndicatorSetDouble(INDICATOR_MAXIMUM, 0.1);

バッファ設定(表示用+非表示):

SetIndexBuffer(0, BufVisible, INDICATOR_DATA);        // Visible
SetIndexBuffer(1, BufHidden, INDICATOR_CALCULATIONS); // Hidden

新しいバーの検出(ずれを防止):

static int last_processed_bar = -1;
bool is_new_bar = (i > last_processed_bar);

ウォームアップ計算:

int StartCalcPosition = underlying_warmup + own_warmup;
PlotIndexSetInteger(0, PLOT_DRAW_BEGIN, StartCalcPosition);

よくある落とし穴

何も表示されない:明示的にスケールを設定してください(「表示スケール」リファレンスを参照)

ローリングウィンドウのずれ:非表示バッファと新しいバーの検出を使用してください(「再計算」リファレンスを参照)

プロットの位置ずれ:正しい PLOT_DRAW_BEGIN を計算してください(「完全なテンプレート」リファレンスを参照)

前方インデックス配列:常に ArraySetAsSeries(buffer, false) を設定してください


主なパターン

本番環境向けの MQL5 インジケーターでは:

  1. 小さい値(範囲が 1.0 未満)には明示的なスケールを設定する
  2. 再計算の追跡には非表示バッファを使用する
  3. 新しいバーの検出によってローリングウィンドウのずれを防ぐ
  4. 静的変数で状態を効率よく維持する
  5. 適切なウォームアップ計算で位置ずれを防ぐ
  6. コードを分かりやすくするために前方インデックスを使用する

これらのパターンにより、実際の MT5 開発で発生する最も一般的なインジケーター開発の問題を解決できます。


トラブルシューティング

問題原因解決策
インジケーターウィンドウに何も表示されない小さい値に対するスケールが未設定INDICATOR_MINIMUM/MAXIMUM を明示的に設定する
値が時間とともにずれていくローリングウィンドウがリセットされていない非表示バッファと新しいバーの検出を使用する
プロット開始位置のずれPLOT_DRAW_BEGIN が誤っているunderlying_warmup + own_warmup を計算する
配列インデックスが逆になるシリーズモードが有効になっているArraySetAsSeries(buffer, false) を呼び出す
バッファ値が正しくないINDICATOR_DATA 型が誤っている非表示バッファには INDICATOR_CALCULATIONS を使用する
バッファに関するコンパイルエラーバッファ数が一致していない#property indicator_buffers と SetIndexBuffer の値を一致させる
インジケーターが更新されないOnCalculate の戻り値が誤っている計算が成功したことを示すため、rates_total を返す
パフォーマンスの問題すべてのバーを再計算しているprev_calculated 以降のみ再計算する

リファレンスドキュメント

詳しい情報については、以下を参照してください。

実行後の振り返り

このスキルの実行後、終了する前に次の点を確認してください。

  1. コマンドは成功しましたか? — 失敗した場合は、失敗の原因となった手順またはエラーテーブルを修正してください。
  2. パラメーターや出力に変更はありましたか? — 基盤となるツールのインターフェースに変更があった場合は、使用例とパラメーターテーブルを更新して、実際の内容と一致させてください。
  3. 回避策が必要でしたか? — 別のフラグや追加手順などの工夫が必要だった場合は、次回同じ回避策を使わなくて済むように、この SKILL.md を更新してください。

問題が実際に再現できる場合にのみ更新してください。推測に基づく更新はしないでください。

コメント