複数期間の反転ポイントの特定と自動取引戦略

MAGIC-9/13 DRP CROSSOVER CONSECUTIVE PATTERNS STOP-LOSS TAKE-PROFIT
作成日: 2025-06-13 13:58:08 最終変更日: 2025-06-13 13:58:08
コピー: 0 クリック数: 258
2
フォロー
319
フォロワー

複数期間の反転ポイントの特定と自動取引戦略 複数期間の反転ポイントの特定と自動取引戦略

概要

多周期逆転点識別と自動取引戦略は,Magic-9/13パターンと方向逆転点 (DRP) 識別に基づく量化取引システムである.この戦略は,価格の連続パターンと動量の変化点を識別することで,市場の逆転信号を捕捉し,自動的に取引を実行する.戦略の中心は,伝統的な技術分析の理念と近代的な量化方法を組み合わせることで,連続価格行動の分析によって,潜在的な市場転換点を特定し,価格逆転の初期に市場に参入することにある.システムは,リスクを制御し,利益をロックする自動ストップとストップ機能を統合し,同時に,視覚的な指標 (ラベルやの色変化など) を介して直感的な取引信号の表示を提供します.

戦略原則

この戦略の核心となる原理は,2つの主要な技術指標であるMagic-9/13パターンと方向転換点 (DRP) に基づいている.

  1. マジック-913 モデルの認識:

    • システムで9サイクル連続で価格行動を監視し,価格パターンの一致性を探す
    • 高点モード ((high_9)):価格が前4サイクルで9回連続で閉店価格より高く,第10回を満たさないときに形成される
    • 低点パターン ((low_9)):価格が前4サイクルで9回連続で閉店価格を下回ったが,10回目を満たさないとき形成される
  2. 方向転換点 (DRP) 計算:

    • 指定された長さ (length_input) の価格と回帰長さ (lookback_length) 以前の価格の関係を分析することによって
    • アップカウントを計算する ((up_count):現在の価格が遡及期価格より高い回数
    • ダウンカウントを計算する:現在の価格が逆転期価格より低い回数
    • down_count が設定された長さと同じであるとき,上方反転点としてマークします.
    • up_count が設定された長さに等しいとき,下降の逆転点としてマークします.
  3. 取引シグナル生成:

    • 買取信号:low_9モードが検出され,方向転換点がマイナス値またはゼロ値から上方を通過するときに誘発される
    • 売出信号: high_9 モードが検知され,方向転換点が正値またはゼロ値から下を横切るときに発火する
  4. リスク管理機構:

    • 自動ストップ:開設価格の反対方向に10ポイントのストップを設定する
    • オートストップ: 取引開始価格の反対方向に10点のストップを設定する
  5. 補助関数:

    • get_first_non_na_value:非NA値を取得する関数
    • count_consecutive_occurrences:連続条件の発生回数を計算する
    • check_condition_occurrence:条件が与えられた周期で発生しているかどうかをチェックする
    • filter_occurrences: 回帰周期に基づくフィルターの出現回数

戦略的優位性

  1. 市場逆転の早期発見:Magic-9/13モードと方向逆転ポイントの組み合わせにより,市場逆転の初期段階で信号を捕捉し,より良い入場タイミングを提供することができる.

  2. 複数の認証メカニズム: 策略要求は,2つの独立した条件を同時に満たす ((マジックモードと方向逆転点の横断),偽信号の可能性を減らす,取引品質を向上させる。

  3. 自動化されたリスク管理: 統合されたストップ・ロスとストップ・ストップ機能により,手動の介入なしに,単一の取引のリスクを制御し,感情的な取引決定を防止します.

  4. ビジュアル取引シグナル: タグとタググラフの色変化により,取引信号を直視的に表示し,取引者が潜在的な取引機会を迅速に識別できるようにする.

  5. パラメータの可変性: 戦略は,長さと回帰長さの2つの重要なパラメータの調整オプションを提供し,トレーダーは異なる市場環境と取引品種に応じて最適化することができます.

  6. データ処理の安定性: NA値を処理するメカニズムを含み,様々なデータ条件下での戦略の安定性を強化する.

  7. 周期的適応性: 戦略は,異なる時間周期のグラフに適用され,分グラフから日線グラフまで使用でき,取引時間枠の柔軟な選択を提供します.

戦略リスク

  1. パラメータ感度策略の性能は長さと回帰長さのパラメータの設定に大きく依存し,異なる市場環境では異なるパラメータの組み合わせが必要となり,間違ったパラメータの設定は過剰取引や取引機会を逃す可能性があります. 解決方法: 完全な歴史回帰を行い,異なる市場条件のためにパラメータの最適化マトリックスを作成します.

  2. 市場変動のリスク: 高い波動性のある市場では,ストップポイントを10点に固定して設定することは過小であり,頻繁にトリガーされる可能性があります. 低波動性のある市場では,この設定は過大である可能性があります. 解決策: ストップポイントを市場変動率 (ATRなど) に基づいて動的値として設定します. 固定ポイント数ではなく.

  3. トレンド市場のパフォーマンス策略は,主に反転点の設計を目的としており,強いトレンドの市場では頻繁に誤信号が生じることがあります. 解決策:トレンドフィルターを追加し,市場が強いトレンドの状態でないことを確認したときにのみ取引信号を触発します.

  4. スライドポイントと流動性のリスク: 流動性の低い市場では,実行価格が信号価格と有意な差がある可能性があります. 解決策:流動性のフィルタリング条件を増やすか,または注文を実行する際に滑点要因を考慮する.

  5. オーバーフィットするリスク策略は複数の条件とパラメータを使用し,歴史データに過度適合するリスクがある. 解決策: 策略の安定性を検証するために,サンプル外テストと前向きテストを使用する.

  6. 連続信号の蓄積: 特定の市場条件下では,同じ方向の複数の信号が連続して生成され,過剰なポジションを引き起こす可能性があります. 解決策: 信号フィルタリング機構を実装し,短時間内に同じ方向の信号の実行回数を制限します.

  7. 固定ストップストップ損失制限固定ポイントのストップ・ストップは,すべての市場環境には適さない可能性があり,利益のある取引を早期に終了させたり,遅すぎるストップを引き起こす可能性があります. 解決策:市場の変動に基づくダイナミックなストップ・ストップ・メカニズムを実装するか,ストップ・ストラックの追跡戦略を採用します.

戦略最適化の方向性

  1. 動態参数調整:

    • 市場変動に基づいてlength_inputとlookback_lengthのパラメータを自動的に調整するメカニズムを実現
    • 原則: 変動率の異なる環境には,異なる感受性のパラメータが必要であり,動的調整により,戦略の適応性が向上する
    • 実施方法:最新のN周期のATR値に基づいて設計パラメータの調整公式
  2. トレンドフィルターを追加:

    • トレンド識別指標 (移動平均,ADXなど) を統合し,トレンドの方向に一致している場合にのみ取引を行う.
    • 原則:反転策は,傾向が顕著な市場では通常,より悪い結果を示し,トレンドフィルタリングは誤った信号を減らす
    • 実施方法:トレンドの方向を参考に長期移動平均を追加し,価格が平均線上にある場合にのみ多額の取引を行い,平均線下にある場合にのみ空白
  3. ストップロスとテイクプロフィットのメカニズムを最適化する:

    • 固定点数設定を波動率に基づく動的ストップスロープに置き換える
    • 原則: 市場の変動率は時期によって大きく変化し,固定ポイントはすべての市場状況に適応できない
    • 実施方法:ATRの倍数を使用してストップ・ストップポイントを設定する.例えば,1.5倍ATRをストップとして,3倍ATRをストップとして設定する.
  4. 取引量フィルターを増やす:

    • 取引量要因を考慮し,取引量確認のみで信号を実行する
    • 原則:取引量は価格変動の有効性の重要な確認要因であり,偽の突破を減らす
    • 実施方法:信号発生時の取引量が,前Nサイクル間の平均取引量より高かったかどうかをチェックする
  5. タイムフィルター:

    • 特定の時間帯 (市場が開いた時,閉じた時,重要な経済データが出る前後など) に取引を避ける
    • 原則: 変動の異常や方向性が不明で,取引リスクが高い時期がある
    • 実施方法:時間条件の判断を増やし,高リスクの時期に新しい信号の生成を禁止する
  6. ポジション管理機能を追加:

    • 市場変動と口座のリスクレベルに基づいてポジションのサイズを動的に調整する
    • 原則: 固定ポジションは,異なるリスク環境に適応できない. 動的ポジションは,予想される収益を維持しながら,リスクをコントロールできます.
    • 実施方法:最大撤回率に基づくポジション計算式を設計
  7. 信号の強度評価を実現する:

    • 各取引シグナルに強度スコアを割り当て,値を超えるシグナルのみを実行
    • 原則:条件を満たすすべての信号の質は同じではない.評価機構は高品質の信号をフィルターすることができる
    • 実施方法:価格と平均線からの距離,マジックモデルの明晰度,逆転点の強度などの要因に基づく総合的なスコア
  8. 関連市場の確認:

    • 関連市場や指数データを追加確認条件として導入する
    • 原則: 関連市場の一致性確認により,信号の信頼性が向上する
    • 実施方法:主要指数または関連市場の同様の逆転の兆候を確認する

要約する

多周期逆転点識別と自動取引戦略は,技術指標の組み合わせに基づく定量取引システムであり,Magic-9/13パターンの識別と方向逆転点分析を組み合わせて,市場の潜在的逆転機会を捕捉する.この戦略の核心的な優点は,その複数の確認機構と統合されたリスク管理機能であり,市場逆転の初期に比較的信頼できる取引信号を提供し,同時に自動化ストップ・ロスを使用してリスクを制御する.

しかし,この戦略は,パラメータの感受性,市場環境の適応性,固定ストップなどの限界にも直面しています. ダイナミックパラメータの調整,トレンドフィルターの追加,ストップストップの仕組みの最適化,取引量の確認の追加などの最適化措置を実施することにより,戦略の適応性とパフォーマンス安定性を大幅に向上させることができます.

この戦略は,トレーダーにとって,市場逆転点を体系的に捕捉するための枠組みを提供します.しかし,個人リスクの好みと市場の理解と組み合わせた合理的なパラメータの調整と最適化が必要です.実際の適用の過程で,最初に模擬環境で充分にテストして,異なる市場環境下での戦略のパフォーマンスの特性を理解し,その後,徐々に実際の取引に適用することをお勧めします.

ストラテジーソースコード
/*backtest
start: 2025-06-05 00:00:00
end: 2025-06-05 15:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy('L3 Magic-9/13 Strategy', overlay=true, max_bars_back=4000, max_labels_count=500)

// 输入参数
length_input = input.int(title='Length', defval=9, minval=1)
lookback_length = input.int(title='Lookback Length', defval=4, minval=1)

// 获取第一个非 NA 值的函数
get_first_non_na_value(values, length) =>
    result = float(na)
    if length >= 1
        for i = 0 to length - 1
            if na(result) or not na(values[i])
                result := values[i]
    result

// 计算连续条件出现次数的函数
count_consecutive_occurrences(condition, length) =>
    count = 0
    for i = 1 to length
        if condition[i - 1]
            count += 1
    count

// 检查条件是否在给定周期内出现的函数
check_condition_occurrence(condition, length) =>
    occurrence = count_consecutive_occurrences(condition, length) != 0 ? 1 : 0
    occurrence

// 基于回溯周期过滤出现次数的函数
filter_occurrences(condition, lookback_period) =>
    output = 0.0
    temp = 0
    for i = lookback_period to 0
        if temp > 0
            output := 0.0
            temp := temp[1] - 1
        else
            if not condition[i]
                output := 0.0
            else
                output := 1.0
                temp := lookback_period + 1
    output_bool = output == 1 ? true : false
    output_bool

// Magic-9/13 逻辑
high_9 = count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close > get_first_non_na_value(close, 4), 10) == 9
low_9 = count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 9) == 9 and count_consecutive_occurrences(close < get_first_non_na_value(close, 4), 10) == 9

// 计算方向反转点
up_count = 0
down_count = 0
for i = 0 to length_input - 1
    up_count += (nz(close[i]) > nz(close[i + lookback_length]) ? 1 : 0)
    down_count += (nz(close[i]) < nz(close[i + lookback_length]) ? 1 : 0)

directional_reversal_point = down_count == length_input ? 1 : up_count == length_input ? -1 : 0

// 定义交易信号
buy_signal = check_condition_occurrence(low_9, 2) and ta.crossover(directional_reversal_point, 0)
sell_signal = check_condition_occurrence(high_9, 2) and ta.crossunder(directional_reversal_point, 0)

// 执行交易
if (buy_signal)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Take Profit", "Buy", limit=close + 10 * syminfo.pointvalue, stop=close - 10 * syminfo.pointvalue)

if (sell_signal)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Take Profit", "Sell", limit=close - 10 * syminfo.pointvalue, stop=close + 10 * syminfo.pointvalue)

// 绘制标签
labels = buy_signal ? label.new(bar_index, low, 'B', color=color.new(color.red, 40), textcolor=color.white, style=label.style_label_up, yloc=yloc.price, size=size.small) : sell_signal ? label.new(bar_index, high, 'S', color=color.new(color.lime, 40), textcolor=color.white, style=label.style_label_down, yloc=yloc.price, size=size.small) : na

// 绘制蜡烛图颜色
signal = directional_reversal_point > 0 or up_count > down_count ? 1 : directional_reversal_point < 0 or down_count > up_count ? -1 : 0
drp_color = signal > 0 ? color.green : signal < 0 ? color.red : color.black
barcolor(drp_color)