
多周期逆転点識別と自動取引戦略は,Magic-9/13パターンと方向逆転点 (DRP) 識別に基づく量化取引システムである.この戦略は,価格の連続パターンと動量の変化点を識別することで,市場の逆転信号を捕捉し,自動的に取引を実行する.戦略の中心は,伝統的な技術分析の理念と近代的な量化方法を組み合わせることで,連続価格行動の分析によって,潜在的な市場転換点を特定し,価格逆転の初期に市場に参入することにある.システムは,リスクを制御し,利益をロックする自動ストップとストップ機能を統合し,同時に,視覚的な指標 (ラベルやの色変化など) を介して直感的な取引信号の表示を提供します.
この戦略の核心となる原理は,2つの主要な技術指標であるMagic-9/13パターンと方向転換点 (DRP) に基づいている.
マジック-9⁄13 モデルの認識:
方向転換点 (DRP) 計算:
取引シグナル生成:
リスク管理機構:
補助関数:
市場逆転の早期発見:Magic-9/13モードと方向逆転ポイントの組み合わせにより,市場逆転の初期段階で信号を捕捉し,より良い入場タイミングを提供することができる.
複数の認証メカニズム: 策略要求は,2つの独立した条件を同時に満たす ((マジックモードと方向逆転点の横断),偽信号の可能性を減らす,取引品質を向上させる。
自動化されたリスク管理: 統合されたストップ・ロスとストップ・ストップ機能により,手動の介入なしに,単一の取引のリスクを制御し,感情的な取引決定を防止します.
ビジュアル取引シグナル: タグとタググラフの色変化により,取引信号を直視的に表示し,取引者が潜在的な取引機会を迅速に識別できるようにする.
パラメータの可変性: 戦略は,長さと回帰長さの2つの重要なパラメータの調整オプションを提供し,トレーダーは異なる市場環境と取引品種に応じて最適化することができます.
データ処理の安定性: NA値を処理するメカニズムを含み,様々なデータ条件下での戦略の安定性を強化する.
周期的適応性: 戦略は,異なる時間周期のグラフに適用され,分グラフから日線グラフまで使用でき,取引時間枠の柔軟な選択を提供します.
パラメータ感度策略の性能は長さと回帰長さのパラメータの設定に大きく依存し,異なる市場環境では異なるパラメータの組み合わせが必要となり,間違ったパラメータの設定は過剰取引や取引機会を逃す可能性があります. 解決方法: 完全な歴史回帰を行い,異なる市場条件のためにパラメータの最適化マトリックスを作成します.
市場変動のリスク: 高い波動性のある市場では,ストップポイントを10点に固定して設定することは過小であり,頻繁にトリガーされる可能性があります. 低波動性のある市場では,この設定は過大である可能性があります. 解決策: ストップポイントを市場変動率 (ATRなど) に基づいて動的値として設定します. 固定ポイント数ではなく.
トレンド市場のパフォーマンス策略は,主に反転点の設計を目的としており,強いトレンドの市場では頻繁に誤信号が生じることがあります. 解決策:トレンドフィルターを追加し,市場が強いトレンドの状態でないことを確認したときにのみ取引信号を触発します.
スライドポイントと流動性のリスク: 流動性の低い市場では,実行価格が信号価格と有意な差がある可能性があります. 解決策:流動性のフィルタリング条件を増やすか,または注文を実行する際に滑点要因を考慮する.
オーバーフィットするリスク策略は複数の条件とパラメータを使用し,歴史データに過度適合するリスクがある. 解決策: 策略の安定性を検証するために,サンプル外テストと前向きテストを使用する.
連続信号の蓄積: 特定の市場条件下では,同じ方向の複数の信号が連続して生成され,過剰なポジションを引き起こす可能性があります. 解決策: 信号フィルタリング機構を実装し,短時間内に同じ方向の信号の実行回数を制限します.
固定ストップストップ損失制限固定ポイントのストップ・ストップは,すべての市場環境には適さない可能性があり,利益のある取引を早期に終了させたり,遅すぎるストップを引き起こす可能性があります. 解決策:市場の変動に基づくダイナミックなストップ・ストップ・メカニズムを実装するか,ストップ・ストラックの追跡戦略を採用します.
動態参数調整:
トレンドフィルターを追加:
ストップロスとテイクプロフィットのメカニズムを最適化する:
取引量フィルターを増やす:
タイムフィルター:
ポジション管理機能を追加:
信号の強度評価を実現する:
関連市場の確認:
多周期逆転点識別と自動取引戦略は,技術指標の組み合わせに基づく定量取引システムであり,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)