
この戦略は,時間周期の突破に基づいた量的な取引システムで,15分と2分の2つの時間周期の協同関係を利用して取引信号を決定する.これは,2分間のK線の収束価格が,前回の15分間のK線の完全な高点または低点を突破したかどうかを観察することによって,入場のタイミングを判断し,正確なリスク制御機構を設定し,リスクと利益の比率を1:3で確保し,各リスクユニットごとに3倍の利益を得ることができる.戦略は,本質的に,短期間の価格突破後の動きの継続を捕捉し,平均勝利率は約30%ですが,良好なリスクと利益の比率の設計のおかげで,全体的な期待される利益を達成することができます.
この戦略の核心原則は,多周期分析によって価格突破シグナルを識別することである.具体的実現プロセスは以下の通りである.
まず 戦略的な使用request.securityこの関数は,15分周期の最高値,最低値,時間情報を取得します.
新しい15分K線が検出された場合 (現在の時間と前の15分周期の時間を比較することによって),戦略は,前の15分K線の完成した高点と低点を突破基準として保存する.
複数の条件を行う場合,戦略は,現在の2分Kラインの閉店価格が,前の15分Kラインの完全な高点を突破したかどうかを判断する.条件を満たすと,入場価格は2分Kラインの閉店価格で,止損は前の15分Kラインの低点に設定され,利益目標は入場価格加えてリスク価値の3倍として設定される (リスク価値=入場価格-止損価格).
空白条件では,現在の2分K線の閉店価格が15分K線の低点を破ったかどうかを判断する.条件を満たすと,入場価格は2分K線の閉店価格で,ストップロスは15分K線の高点に設定され,利益目標は入場価格の3倍のリスク値を減らして設定されます.
このデザインは,突破取引の概念を利用し,同時に多周期分析の優位性を併用し,重要な価格レベルを決定するためにより大きな時間周期 (<15分) を使用し,より小さな時間周期 (分) を使用し,入場タイミングを最適化し,滑点を減らす,実行精度を向上させる.
明確なリスク管理戦略は,正確なリスク/利益の比率を設計し,取引ごとに潜在的利益が潜在的損失の3倍であることを保証し,勝利率は30%程度であっても,積極的な期待利益を得ることができます.
多周期協同: 15分と2分の2つの時間周期を組み合わせることで,戦略はより大きな時間周期の重要な価格レベルを捉えることができ,より小さな時間周期を利用して入場点を最適化して取引の精度を向上させることができます.
自動実行: 戦略は完全に自動化され,明瞭な入場・出場条件が使用され,感情的な干渉と主観的な判断が減った.
資金管理統合: 戦略は,口座権益比率方式でポジションを管理して ((default_qty_value=10),リスクが口座規模に比例して増加または減少することを確保する.
適応性が高い: 簡潔で明快なコード構造で,拡張や変更が容易で,さまざまな市場や製品に適用できます.
低勝利率のリスク戦略の平均勝利率は約30%で,これはほとんどの取引がわずかな損失をもたらすことを意味します. いくつかのトレーダーにとって,連続した損失取引は心理的ストレスと戦略を早期に放棄する可能性があります.
偽信号を突破する: 価格が突破した後に予想方向に継続的に動かない可能性があり,頻繁にストップ・レスの引き出しを引き起こします.特に横盤整理または高波動市場では,偽の突破はより一般的です.
スリッページリスク: 市場が急速に動いているとき,実際の実行価格が戦略計画価格と異なる可能性があり,リスク/利益の比率の正確な実現に影響を与える.
過剰取引のリスク: 戦略は,短い周期 ((2分) の取引実行に基づいているため,過剰取引が起こり,取引コストが増加する可能性があります.
市場環境への依存この戦略は,傾向が顕著な市場ではうまく機能し,区間振動の市場ではうまく機能しない可能性があります.
解決策は
トレンドフィルターを追加: 突破取引を行う前に,トレンド確認指標 (移動平均,MACDなど) を導入し,大トレンドと一致するときにのみ入場することで,戦略の勝利率を大幅に向上させることができます.
ダイナミックなリスク/利益比: 現行の戦略は,固定1:3のリスク/利益比率を使用し,市場の波動的な動向に応じて調整することを考えることができます.例えば,波動性の高い市場では,より保守的な目標を採用します.
タイムフィルター: 市場が開いた時,閉まった時,または特に波動が低い時に取引を避けるための時間フィルター条件を追加します.
部分停止装置: 区切り利益の機能を実現し,価格が特定の目標に達すると,部分的なポジションをクリアし,残りのポジションがトレンドを追跡し,全体的な収益性を向上させる.
適応パラメータ: 固定パラメータ (例えば15分周期) を,市場条件に基づいて自動的に調整される動的パラメータに変更し,戦略を異なる市場環境により良く適応させる.
取引量確認: 取引量分析を加え,価格突破が十分な取引量に伴っていることを確認します.これは通常,突破信号の信頼性を向上させます.
これらの最適化方向は,戦略の勝率と安定性を向上させ,その核心優位性を保持しながら,明確なリスク管理と多周期的な協同性を目指しています.より多くの市場要因の考慮を導入することにより,偽信号を減らすことができ,各取引の成功確率を高めることができます.
“15分突破マルチサイクル協調戦略 リスク・利益比率最適化モデルに基づく”は,構造が明確で,論理が厳格な量化取引システムで,異なる時間周期の価格情報を組み合わせて,突破後の動力の機会を捕捉する.戦略の勝利率は低い (約30%),しかし,精密に設計された1:3のリスク・利益比率機構によって,正の期待された収益を達成した.
戦略の核心的な優位性は,厳格なリスク管理,明瞭な出場入場規則,多周期協同分析方法にある.主なリスクは,偽突破信号と低勝利率による心理的ストレスからくる.将来の最適化の方向は,信号の質を向上させ,偽突破取引を減らすことに重点を置くべきであり,トレンドフィルタリングと動態パラメータ調整機能を追加することを考慮する.
中短期の取引機会を追求する量化トレーダーにとって,これは考慮すべき基本的な戦略の枠組みであり,個人のリスクの好みと取引目標に応じてさらにカスタマイズして最適化することができます.
/*backtest
start: 2025-03-23 00:00:00
end: 2025-03-24 21:00:00
period: 15m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("15-min Breakout via 2-min Candle (R:R=1:3)",
overlay=true,
initial_capital=100000,
default_qty_type=strategy.percent_of_equity,
default_qty_value=10)
//-----------------------------------------------------
// 1) Retrieve 15-min high/low & time via request.security
//-----------------------------------------------------
fifteenHigh = request.security(syminfo.tickerid, "15", high)
fifteenLow = request.security(syminfo.tickerid, "15", low)
time15 = request.security(syminfo.tickerid, "15", time)
//-----------------------------------------------------
// 2) Store the most recent closed 15-min bar's high/low
//-----------------------------------------------------
// We use a var variable (stored over time) and update it
// whenever a NEW 15-min bar is detected.
var float last15High = na
var float last15Low = na
// A new 15-min bar (in the "15" series) is indicated when time15 changes.
bool new15bar = time15 != time15[1]
// Update high/low when a new 15-min bar starts
if new15bar
// [1] = previous closed 15-min bar value
last15High := fifteenHigh[1]
last15Low := fifteenLow[1]
//-----------------------------------------------------
// 3) Long position: 2-min close > most recent closed 15-min high
//-----------------------------------------------------
bool longCondition = not na(last15High) and close > last15High
if longCondition
// Entry is 2-min close
float stopPrice = last15Low
float risk = close - stopPrice
float takeProfit = close + 3 * risk
strategy.entry("Long Breakout", strategy.long)
strategy.exit("Long Exit (SL/TP)", "Long Breakout", stop=stopPrice, limit=takeProfit)
//-----------------------------------------------------
// 4) Short position: 2-min close < most recent closed 15-min low
//-----------------------------------------------------
bool shortCondition = not na(last15Low) and close < last15Low
if shortCondition
float stopPrice = last15High
float risk = stopPrice - close
float takeProfit = close - 3 * risk
strategy.entry("Short Breakout", strategy.short)
strategy.exit("Short Exit (SL/TP)", "Short Breakout", stop=stopPrice, limit=takeProfit)