ダウ理論のトレンドについて

EAつくーる
みやまん
2025/09/24 06:19
26

ダウ理論にあるトレンド判定の、高値安値の切り上がり2回ずつ(安値→高値→安値→高値)で買いトレンド、同様に切り下がりで売りトレンド判定、の設定方法はどのようになるのでしょうか。

コメント

GogoJungle
2025/09/24 16:32

いつもお世話になっております。

上記を完全に“順序つき”で判定するのはEAつくーる単体の仕様では難しいのですが(複数の状態を逐次記憶する機能がないため)、実運用に近い形で「直近スイングの高値・安値が、それ以前のスイングよりも切り上がっている(または切り下がっている)」というロジックに近似すれば実装できます。以下にEAつくーるだけで組める具体例と、厳密判定が必要な場合の回避策を示します。


近似ロジック(EAつくーるのみで実現)

「一定期間の高値・安値」を使い、非重複の2区間で直近と一つ前のスイングを比較します。
例として、1スイング=20本(計算期間:20)と仮定します。

  • 直近スイング(区間A)=「計算期間:20、計算位置:1」
  • ひとつ前のスイング(区間B)=「計算期間:20、計算位置:21」
    ※「計算位置」は区間の終了位置です。1は1本前確定足まで、21は21本前までを指し、区間が重ならないようにしています。
    ※未確定足を避けるため「計算位置:0」ではなく「計算位置:1」以上にします。

上昇トレンド判定(買い用フィルター)

  • 条件の狙い:

    • 直近の安値(区間Aの最安値)が、ひとつ前の安値(区間Bの最安値)より高い
    • 直近の高値(区間Aの最高値)が、ひとつ前の高値(区間Bの最高値)より高い
一定期間の高値・安値(計算期間:20, モード:安値, 計算位置:1) >
一定期間の高値・安値(計算期間:20, モード:安値, 計算位置:21)
AND
一定期間の高値・安値(計算期間:20, モード:高値, 計算位置:1) >
一定期間の高値・安値(計算期間:20, モード:高値, 計算位置:21)
↓
買いエントリー(または「買い条件を満たした」として他のエントリー条件とANDで併用)

下降トレンド判定(売り用フィルター)

  • 条件の狙い:

    • 直近の安値が低い(=切り下がり)
    • 直近の高値が低い(=切り下がり)
一定期間の高値・安値(計算期間:20, モード:安値, 計算位置:1) <
一定期間の高値・安値(計算期間:20, モード:安値, 計算位置:21)
AND
一定期間の高値・安値(計算期間:20, モード:高値, 計算位置:1) <
一定期間の高値・安値(計算期間:20, モード:高値, 計算位置:21)
↓
売りエントリー(または「売り条件を満たした」として他のエントリー条件とANDで併用)
実装時のポイント
  • 「計算期間:20」は一例です。ご使用の時間足で1スイングを適切に捉える長さに調整してください。短すぎるとノイズ、長すぎると鈍化します。
  • 「計算位置」は1(直近確定区間)と21(ひとつ前の確定区間)にしています。A:1〜20本前、B:21〜40本前のイメージです。
  • この近似は「安値→高値→安値→高値」という出来事の順序までは厳密に追跡しませんが、「直近スイングが一つ前より切り上がっている/切り下がっている」というダウ理論の核を運用上は十分に反映できます。

よくあるつまずき(こうなっていませんか?)

  • 「計算位置:0(現在の足を含む)」で組んでしまい、未確定足に引きずられる
    → 上記例のように計算位置は1以上にするのが安全です。
  • 区間が重なっており、同じ高値・安値が両方の比較に混入してしまう
    → 「計算位置:1」と「計算位置:期間+1」のように非重複にしてください。
  • 環境によりスイングが長短にブレ、期間20では捉えにくい
    → ボラが高いときは期間を延長、低いときは短縮を検討します。ATR等で期間を変えることはEAつくーるの標準機能では難しいため、相場に合わせ固定値を見直すのが現実的です。

参考:トレンド判定をフィルターにし、具体的なエントリー条件とANDする例

例えば「上昇トレンド中に終値がEMA25を上抜け」で買い、としたい場合:

(トレンド判定)
一定期間の高値・安値(計算期間:20, モード:安値, 計算位置:1) >
一定期間の高値・安値(計算期間:20, モード:安値, 計算位置:21)
AND
一定期間の高値・安値(計算期間:20, モード:高値, 計算位置:1) >
一定期間の高値・安値(計算期間:20, モード:高値, 計算位置:21)

AND

(エントリー条件)
ローソク足(適用価格:終値, 計算位置:0本前) >
移動平均線(計算期間:25, 移動平均線種類:EMA, 適用価格:終値, 計算位置:0本前)
↓
買いエントリー

売り側は条件の不等号を逆にしてください。


厳密な「安値→高値→安値→高値(順序)」まで判定したい場合

残念ながら、EAつくーるの取引条件だけで“イベントの順序”を段階的に記憶して評価するのは難しいです。回避策としては以下のいずれかが実用的です。

  1. カスタムインジケーターを作り、安値→高値→安値→高値の順序が成立した時に1(上昇)/ -1(下降)/ 0(無)などの状態を返す

    • 取引条件で

      カスタムインジケーター(インジケーター名:DowState, 計算項目:0, 計算位置:0本前) = 数値(値:1)
      

      のように比較すれば、EAつくーる側は単純な比較だけで済みます。

    • インジ名(拡張子なし)とパラメータは「カスタムインジケーター」の欄で指定します。Indicators直下に配置してください。

  2. 外部MQLでEA/インジを補足

    • スイング確定検出(Fractalsやジグザグ等)→状態遷移で順序を判定→数値出力、という流れが素直です。
    • MT5用にコンパイルする場合は、事前に ファイル → データフォルダを開く → MQL5 → Include → TkoolTkool.mqh があるかをご確認ください。無い場合はWeb版EAつくーるの「MT5 EA作成」横の「Includeファイル」からダウンロードして配置します。

仕上げのヒント(運用面)

  • 時間足を固定して最適な「計算期間」を探す(例:H1なら20〜40、M15なら40〜80など)
  • フィルター(トレンド判定)とトリガー(エントリー条件)を分離し、ORで誤約定を増やさないようにする
  • スプレッド急拡大時の誤作動を避けるため「オプション → 最大スプレッド制限」を併用するのも有効です。

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。