Prism Candle Forge
- ライブラリ
- バージョン: 1.0
- アクティベーション: 5
Prism Candle Forge — MT4用ローソク足パターン認識エンジン
Prism Candle Forge は、ATR加重幾何解析を用いて20種類以上の酒田五法・ローソク足パターンを検出・検証するネイティブMQL4ライブラリです。パターンの識別、方向性の信頼度スコアリング、ローソク足形態分類、トレンドコンテキスト検証を、Expert Advisor、インジケーター、スクリプトから呼び出し可能な8つのエクスポート関数を通じて提供します。DLL不使用、外部依存性ゼロ、純粋なMQL4計算エンジンです。
コンパイル済みバイナリ (Prism_Candle_Forge.ex4) として配布されます。本ドキュメントは完全なAPIリファレンスです。
インストール手順
- MQL5 Market から Prism_Candle_Forge.ex4 をダウンロードします。
- ファイルを次のフォルダに配置します: MQL4/Libraries/
- 以下の #import ブロックを .mq4 ソースファイルに追加します。
- EAまたはインジケーターをコンパイルします。これで8つの関数すべてが利用可能になります。
インポート宣言(コピー&ペースト用)
#import "Prism_Candle_Forge.ex4" int PCF_DetectPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_name, double &confidence, int &direction); int PCF_ScanMultiPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_names[], double &confidences[], int &directions[], int max_patterns); double PCF_PatternStrength(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value); int PCF_CandleType(double open_price, double high_price, double low_price, double close_price, double atr_value); double PCF_BodyRatio(double open_price, double high_price, double low_price, double close_price); double PCF_WickBalance(double open_price, double high_price, double low_price, double close_price); int PCF_IsTrendConfirmed(const double &close[], int bar_index, int lookback_period, double min_slope_pips); int PCF_GetVersion(); #import
APIリファレンス
PCF_DetectPattern
指定したバーにおける最強のローソク足パターンを検出します。Hammer、Engulfing、Morning/Evening Star、Doji各種、Piercing Line、Dark Cloud Cover、Three White Soldiers、Three Black Crows、Harami、Tweezer、Marubozu、Hanging Man、Shooting Star を含む20以上のパターンに対応しています。
パラメータ:
- open[], high[], low[], close[]: チャートのOHLC価格配列。
- bar_index: 分析対象バーのインデックス。配列の有効範囲内である必要があります。
- atr_value: 適応型しきい値スケーリング用の現在のATR値。正の値である必要があります。
- pattern_name (by ref): 検出された最強パターンの名称を受け取る変数(例: "Bullish Engulfing")。
- confidence (by ref): パターンの信頼度スコア。0.0(低)〜 1.0(典型的な教科書パターン)。
- direction (by ref): +1(強気/買いシグナル)、-1(弱気/売りシグナル)。
戻り値: このバーで検出されたパターン数(検出なしの場合は0)。信頼度が最も高いパターンの情報が出力パラメータに設定されます。
PCF_ScanMultiPattern
単一のバーで検出可能なすべてのローソク足パターンをスキャンし、信頼度の降順で複数の結果を返します。
パラメータ:
- open[], high[], low[], close[]: OHLC価格配列。
- bar_index: 分析対象のバー。
- atr_value: 適応型しきい値用ATR値。
- pattern_names[] (by ref): パターン名を受け取る配列。内部で最大 max_patterns まで自動リサイズされます。
- confidences[] (by ref): 信頼度スコアを受け取る配列。
- directions[] (by ref): 方向性を受け取る配列 (+1/-1)。
- max_patterns: 返される結果の最大件数(例: 5)。
戻り値: 実際に検出されたパターン数(0 〜 max_patterns)。
PCF_PatternStrength
バーで検出されたすべてのパターンを統合し、総合的な方向性圧力スコアを算出します。
パラメータ:
- open[], high[], low[], close[]: OHLC配列。
- bar_index: 対象バーのインデックス。
- atr_value: スケーリング用ATR値。
戻り値: -100.0(極度の弱気)〜 +100.0(極度の強気)のスコア。0は中立を示します。
PCF_CandleType
ATRに対する実体とヒゲの比率に基づいて、単一のローソク足を8種類の形態タイプのいずれかに分類します。
パラメータ:
- open_price, high_price, low_price, close_price: 単一ローソク足のOHLC値。
- atr_value: 相対サイズ判定用ATR値。0以下の場合は絶対しきい値が使用されます。
戻り値: 1=Bull Marubozu, 2=Bear Marubozu, 3=Hammer, 4=Inverted Hammer, 5=Doji, 6=Spinning Top, 7=Standard Bull, 8=Standard Bear.
PCF_BodyRatio
ローソク足の実体対レンジ(高値-安値)比率を計算します。ローソク足の重要性のフィルタリングに役立ちます。
パラメータ:
- open_price, high_price, low_price, close_price: 単一ローソク足のOHLC。
戻り値: 0.0(実体なし / doji)〜 1.0(フル実体 / marubozu)の比率。レンジがゼロの場合は0.0を返します。
PCF_WickBalance
ローソク足のヒゲの方向性非対称度を測定します。
パラメータ:
- open_price, high_price, low_price, close_price: 単一ローソク足のOHLC。
戻り値: -1.0(下ヒゲのみ、強気反発)〜 +1.0(上ヒゲのみ、弱気反発)。0.0は対称なヒゲ。総ヒゲ長がゼロの場合は0.0を返します。
PCF_IsTrendConfirmed
ルックバック期間における線形回帰の傾きを用いてトレンド環境を検証します。支配的なトレンドに沿ったパターンのみを厳選するフィルターとして活用できます。
パラメータ:
- close[]: 終値配列。
- bar_index: ルックバック期間の開始バー。
- lookback_period: 評価するバー数。最小5。配列の境界内に制限されます。
- min_slope_pips: トレンドと判定するための最小絶対傾き(pips単位)。
戻り値: +1(上昇トレンド確認)、-1(下降トレンド確認)、0(レンジ・横ばい、またはデータ不足)。
PCF_GetVersion
ランタイム時の互換性チェック用として、ライブラリのバージョンを整数で返します。
戻り値: 100(バージョン 1.00 を表します)。
実践的な組み込み例
#property strict #import "Prism_Candle_Forge.ex4" int PCF_DetectPattern(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value, string &pattern_name, double &confidence, int &direction); double PCF_PatternStrength(const double &open[], const double &high[], const double &low[], const double &close[], int bar_index, double atr_value); int PCF_CandleType(double open_price, double high_price, double low_price, double close_price, double atr_value); int PCF_GetVersion(); #import void OnTick() { double o[], h[], l[], c[]; ArrayCopyRates(o, Symbol(), 0); int copied = CopyOpen(Symbol(), 0, 0, 100, o); CopyHigh(Symbol(), 0, 0, 100, h); CopyLow(Symbol(), 0, 0, 100, l); CopyClose(Symbol(), 0, 0, 100, c); double atr = iATR(Symbol(), 0, 14, 1); string pat_name; double conf; int dir; int count = PCF_DetectPattern(o, h, l, c, 1, atr, pat_name, conf, dir); if(count > 0) Print("Pattern: ", pat_name, " Confidence: ", conf, " Direction: ", dir); double strength = PCF_PatternStrength(o, h, l, c, 1, atr); Print("Aggregate Strength: ", strength); int candle = PCF_CandleType(o[1], h[1], l[1], c[1], atr); Print("Candle Type: ", candle); }
アーキテクチャ
全8関数はステートレス(stateless)で完全に独立しています。各呼び出しは渡されたOHLC配列に対して純粋な幾何学的・統計的解析を実行し、永続的な状態、チャートオブジェクト、タイマー、ネットワークアクセスは一切保持・使用しません。ATR相対しきい値により、パラメータを再調整することなく、すべての銘柄(為替、貴金属、株価指数、暗号資産)およびすべての時間枠で高精度なパターン検出を実現します。
互換性
- プラットフォーム: MetaTrader 4 専用
- ストラテジーテスター: 完全対応(バックテストおよび最適化)
- 外部依存性: なし(DLL完全不使用)
- チャートオブジェクトなし、タイマーなし、描画負荷ゼロ — 純粋な計算エンジン
- スレッドセーフ: 全関数がステートレス設計。複数チャートでの同時稼働も安全
