
この戦略は,複数の指標の確認と階層評価システムに基づくショートライン取引戦略である.これは,のサイズ,取引量の変化,およびRSI指標を分析することによって取引信号の強さを評価し,信号をA,B,Cの3つのレベルに分け,A級の信号は最も強く,C級の信号は最も弱い.この戦略は,自動で止まりや止損点を設定するリスク管理機能を統合し,グラフタグと取引リマインダー機能を提供し,トレーダーが取引信号をリアルタイムで追跡できるようにします.
この戦略の核心となる原則は,以下のいくつかの重要な要素の組み合わせに基づいています.
傾向を判断する: 200 EMAを主要なトレンド判断ツールとして使用する. 200 EMAの上の価格で多額の機会を探し,200 EMAの下の空調の機会を探し.
均線交差信号戦略は20周期のEMAとSMAを使用し,この2つの均線が交差すると初始信号が生成されます. 多信号はEMA上を通過するSMAを必要とし,空白信号はEMA下を通過するSMAを必要とします.
RSIが確認した: 9サイクルRSI指標を使用し,多時はRSIが50より大きいことを要求し,空時はRSIが50より小さいことを要求する.
体サイズ評価: 戦略分析 体サイズと過去20の平均体積を比較し,現在の価格動向を判断する.
取引量確認: 現在の取引量が前期より大きいことを要求し,十分な市場参加を確保する.
信号の階層システム:
リスク管理: 入場価格のパーセントとして設定される調整可能な止まり (デフォルト0.5%) と止損 (デフォルト0.3%) のレベルが含まれています.
戦略は,これらの複数の確認条件によって,十分な市場動力とトレンド確認がある場合にのみ取引を進めるようにし,偽信号を減らす.
階層評価システム: 最大の優位性は,独自のシグナルランキングシステムで,トレーダーが自分のリスクの好みに応じて,最も強い信号のみを取引する (レベルA) またはより多くの取引機会を含む (レベルBとC) を選択することができます.
複数の認証メカニズム:技術指標 ((RSI,平均線),価格行動 ((体サイズ) と市場参加度 ((取引量) の複数確認を組み合わせて,偽信号の確率を効果的に低減する.
内部リスク管理: 自動ストップ・ストップ・ロスの設定により,各取引のリスクが制御され,単一の取引で過大な損失を防ぐことができます.
視覚フィードバックシステム: 取引シグナルが誘発されたときに自動的にグラフにタグを付け,取引方向と信号の強さを明確に表示し,トレーダーが迅速に識別できるようにする.
警告機能:TradingViewのアラートシステムに統合され,ポップアップウィンドウ,電子メール,または携帯電話の通知でトレーダーに警告することができます.
市場の状況に適応する: シグナル級別と多指標による確認により,戦略は異なる波動的環境下で比較的安定したパフォーマンスを維持することができる.
カスタマイズ可能: RSIの長さ,平均周期,ストップ・ストップ・ロスの比率,取引するシグナルの等級を含む複数の重要なパラメータのカスタマイズオプションが提供され,個人好みや市場条件に応じて戦略を調整できます.
トレンドフォローとモテンション: 戦略は,トレンドフォロー ((平均線) と動力の確認 ((RSI,のサイズ) を効果的に組み合わせて,より完全な取引システムを形成しています.
過剰な過濾複数の確認メカニズムにより,有効な取引機会が逃れ,特にA級の信号のみを取引すると,取引頻度が大幅に低下する可能性があります.
パラメータ感度: 戦略は複数の技術指標とパラメータを使用し,これらのパラメータの微妙な変化は大きな性能の違いを引き起こす可能性があります.例えば,RSI長さ,平均線周期,体サイズの判断基準は,異なる市場条件に応じて調整する必要があるかもしれません.
固定パーセンテージのストップダスト: 戦略は固定パーセントのストップ・ロスを用いるが,これはすべての市場条件に適さないかもしれない. 高い変動の環境では,固定ストップ・ロスのレベルが過小であり,低変動の環境では,過大であるかもしれない.
市場騒音の影響1分間の時間枠では,市場騒音が大きくなり,特に横軸や波動性が低い時期に,より多くの偽信号を引き起こす可能性があります.
流動性のリスク: 非取引時間や流動性の低い時期には,取引信号の質が低下し,滑り場リスクが増加する可能性があります.
継続的な損失のリスク: 配分システムを使用しても,市場の突然の変化で連続的な損失が発生することがあり,適切な資金管理戦略が配合される必要があります.
トレンド逆のリスク: 戦略は,短期平均線交差とRSIの確認に基づいているが,強烈な反動状況で誤ったシグナルが生じることがあります.
これらのリスクを緩和する方法は,より長い時間枠のフィルタリング条件を使用し,ストップ・ストロップ・ロスのレベルを動的に調整し,特定の市場時間 (例えば,波動が大きいまたは流動性が充足している期間) で取引し,定期的にパラメータを回測し,最適化し,各取引のリスクを厳格に制御するなどです.
atr = ta.atr(14)
longSL = close - atr * slMultiplier
longTP = close + atr * tpMultiplier
timeFilter = (hour >= 14 and hour < 16) or (hour >= 9 and hour < 11)
higherTimeframeTrend = request.security(syminfo.ticker, "15", close > ta.ema(close, 200))
longCondition = longBase and higherTimeframeTrend
consecutiveLongSignals = longBase and longBase[1]
adaptiveLength = math.round(ta.atr(14) / ta.atr(14)[20] * baseLength)
adaptiveRsi = ta.rsi(close, math.max(2, adaptiveLength))
if setupGrade == "A"
tpMultiplier = 2.0
else if setupGrade == "B"
tpMultiplier = 1.5
else
tpMultiplier = 1.0
volatilityFilter = ta.atr(14) > ta.sma(ta.atr(14), 20) * 0.8
if (strategy.position_size > 0 and close > entryPrice * (1 + partialTpPerc/100))
strategy.exit("Partial", "Long", qty_percent=50)
これらの最適化方向は,戦略の異なる市場条件への適応性,信号の質の向上,リスクのより良い管理の問題に対処し,戦略のコアロギーを保持します.
このUS30多層トレンド確認とリスク管理戦略は,複数の技術指標,トレンド確認と動態分析を組み合わせたショートライン取引システムである.この戦略の特徴は,取引信号の質を評価する階層評価システム (レベルA,B,C) を使用することであり,トレーダーは自分のリスク好みに応じて信号の質を選択することができます.この戦略は,均線交差,RSI確認,体サイズ,取引量変化などの多次元分析により,信号の信頼性を高めています.
リスク管理機能の内蔵と明確な視覚的フィードバックにより,比較的完全な取引システムになります.しかし,短期的な時間枠で動作する際には,市場騒音,パラメータ感受性,固定ストップローズの柔軟性などの課題に直面することがあります.ダイナミックなリスク管理,マルチタイムフレーム分析,市場条件のフィルタリングなどの最適化方向を統合することにより,コア優位性を維持しながら,異なる市場環境下での適応性と安定性をさらに向上させる可能性があります.
明確なルールとリスク管理可能なショートライン取引戦略を好むトレーダーにとって,このシステムは良い出発点を提供し,さらなる反省と最適化により,個人の取引スタイルとターゲット市場の特徴に応じてカスタマイズされ,個別化された取引システムに発展することができます.
/*backtest
start: 2025-02-01 00:00:00
end: 2025-03-31 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("US30 1-min Strategy with TP/SL, Grades, Alerts", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Inputs ===
rsiLength = input.int(9, title="RSI Length")
maLength = input.int(20, title="MA Length (SMA & EMA)")
ema200Length = input.int(200, title="200 EMA Length")
tpPerc = input.float(0.5, title="Take Profit %", step=0.1)
slPerc = input.float(0.3, title="Stop Loss %", step=0.1)
// Grade filters
allowA = input.bool(true, title="Trade A-Grade Setups")
allowB = input.bool(true, title="Trade B-Grade Setups")
allowC = input.bool(false, title="Trade C-Grade Setups")
// === Indicators ===
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, maLength)
ema = ta.ema(close, maLength)
ema200 = ta.ema(close, ema200Length)
volumeRising = volume > volume[1]
// === Candle Size Helpers ===
avgBody = ta.sma(math.abs(close - open), 20)
candleBody = math.abs(close - open)
candleLarge = candleBody > avgBody
candleVeryLarge = candleBody > avgBody * 2
// === Setup Grade Conditions ===
gradeA = candleVeryLarge and volumeRising and rsi > 55 or rsi < 45
gradeB = candleLarge and volumeRising
gradeC = candleLarge
// === Setup Conditions ===
// --- Long ---
longBase = close > ema200 and ta.crossover(ema, sma) and rsi > 50 and close > ema and close > sma
// --- Short ---
shortBase = close < ema200 and ta.crossunder(ema, sma) and rsi < 50 and close < ema and close < sma
// === Determine Grade ===
setupGrade = ""
isTrade = false
if longBase
if gradeA and allowA
setupGrade := "A"
isTrade := true
else if gradeB and allowB
setupGrade := "B"
isTrade := true
else if gradeC and allowC
setupGrade := "C"
isTrade := true
if shortBase
if gradeA and allowA
setupGrade := "A"
isTrade := true
else if gradeB and allowB
setupGrade := "B"
isTrade := true
else if gradeC and allowC
setupGrade := "C"
isTrade := true
// === Entry & TP/SL ===
longTP = close * (1 + tpPerc / 100)
longSL = close * (1 - slPerc / 100)
shortTP = close * (1 - tpPerc / 100)
shortSL = close * (1 + slPerc / 100)
// Entry
if longBase and isTrade and (setupGrade == "A" or setupGrade == "B" or setupGrade == "C")
strategy.entry("Long " + setupGrade, strategy.long)
strategy.exit("TP/SL", "Long " + setupGrade, limit=longTP, stop=longSL)
label.new(bar_index, high, "Long " + setupGrade, style=label.style_label_up, color=color.green, textcolor=color.white)
alert("LONG " + setupGrade + " setup triggered!", alert.freq_once_per_bar)
if shortBase and isTrade and (setupGrade == "A" or setupGrade == "B" or setupGrade == "C")
strategy.entry("Short " + setupGrade, strategy.short)
strategy.exit("TP/SL", "Short " + setupGrade, limit=shortTP, stop=shortSL)
label.new(bar_index, low, "Short " + setupGrade, style=label.style_label_down, color=color.red, textcolor=color.white)
alert("SHORT " + setupGrade + " setup triggered!", alert.freq_once_per_bar)
// === Plotting MAs ===
plot(ema, title="20 EMA", color=color.red)
plot(sma, title="20 SMA", color=color.blue)
plot(ema200, title="200 EMA", color=color.green)