
ダイナミック・サポート・レジスタンス・チャネル・ブレイク戦略は,重要なサポート・レジスタンス・レベルとブレイクシグナルを識別する強力な戦略である.この戦略は,これらの重要なレベルをグラフで可視化して,トレーダーに潜在的な取引機会を容易に発見できるようにする.
この戦略は,ユーザが定義した左と右の動的に計算されたサポートレジスタンス値をベースにしています. これは,変化する市場条件に適応する柔軟性を提供しています. 閉盘価格がこれらのサポートレジスタンス値を横切ると,取引量検証を組み合わせて,買入と売却のシグナルを生成します. さらに,この戦略は,定義されたサポートレジスタンス条件に基づいて多頭または空頭ポジションを自動的に実行する取引戦略を統合し,全体の取引プロセスをより流暢にします.
具体的には,戦略は,ta.pivotlowとta.pivothighの関数を使用して,動的なサポートとレジスタンス値を計算します. これらのサポートとレジスタンスラインは,赤と青でグラフに描かれています. 買い値がこれらの位を突破すると,突破位置にB形のマークを描きます. 同時に,戦略は,5日と10日の平均取引量の振動器を組み合わせて,取引量の急増を判断します. 取引量が十分に大きい場合にのみ,突破シグナルを誘発し,破裂警報を送信します. 最後に,戦略は,これらのサポートとレジスタンスと取引量の条件に基づいてLONG/SHORTの入場と出場戦略を統合します.
この戦略の利点は以下の通りです.
全体として,この戦略は,重要なサポート・レジスタンス・ブレイクポイントを完全に識別,可視化し,利用することで,トレーダーに最適な取引タイミングを選択し,取引の成功率を大幅に向上させました.
この戦略の潜在的リスクは以下の通りです.
突破失敗のリスク。突破点から偽突破が形成される可能性がある。これは不必要な損失を引き起こす可能性がある。より厳格な取引量と価格変動確認条件を設定することで緩和できる。
パラメータ最適化リスク。左と右などのパラメータが正しく設定されていない場合,計算されたサポート抵抗位は正確ではない可能性があります。異なる品種の取引特性に応じて適切な左と右を選択する必要があります。
過剰最適化のリスク。パラメータを過剰最適化すると,戦略が過度に適合する可能性がある。適切な反測と検証を行い,少量のデータで過剰最適化の策略を避けるべきである。
取引コストのリスク. 取引の頻度は手数料の高さにつながります. 利益因子を調整するか,他の方法で取引頻度を制御することを適切に考慮する必要があります.
この戦略は以下の方向から最適化できます.
単一損失をコントロールする ストップ・条件を追加します.
利益の因子を最適化して,最適の利益を探す.
異なるパラメータの組み合わせをテストして最適なパラメータを決定する.
左と右の設定を異なる品種に合わせて調整する.
価格の変動率などの他のフィルター条件を加えることで,突破の可能性をより正確に判断できます.
異なる取引量確認指標を試す.例えば,放量突破など.
異なる取引戦略や指標を組み合わせることで,より優れた統合を実現する.
ダイナミック・サポート・レジスタンス・チャネル・ブレイクストラテジーは,グラフ技術分析によるサポート・レジスタンス概念を利用し,取引量分析でブレイクストラテジーの重要性を確認し,市場の重要な転換点を効果的に発見することができる.この戦略は,簡潔で使いやすいインターフェースデザイン,指標図画とシグナル提示により,複雑な技術指標の内容が理解しやすくなり,技術的値が大幅に低下する.また,カスタマイズ可能で統合可能なパラメータ設定は,トレーダーの独自の戦略の実施と容易に組み合わせられる.上述の概要は,この戦略は,機能が包括的で実用性が強い量化取引戦略である.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Support and Resistance channel with Breaks p5", shorttitle="Support and Resistance channel with Breaks [cryptoonchain]", overlay=true, max_bars_back=1000)
// Input variables
toggleBreaks = input(true, title="Show Breaks")
leftBars = input(15, title="Left Bars")
rightBars = input(15, title="Right Bars")
volumeThresh = input(20, title="Volume Threshold")
// Calculate pivot levels
highUsePivot = fixnan(ta.pivothigh(leftBars, rightBars)[1])
lowUsePivot = fixnan(ta.pivotlow(leftBars, rightBars)[1])
// Plot resistance and support lines
r1 = plot(highUsePivot, color=color.new(na(highUsePivot) ? na : #FF0000, 0), linewidth=3, offset=-(rightBars + 1), title="Resistance")
s1 = plot(lowUsePivot, color=color.new(na(lowUsePivot) ? na : #233dee, 0), linewidth=3, offset=-(rightBars + 1), title="Support")
// Volume %
short = ta.ema(volume, 5)
long = ta.ema(volume, 10)
osc = 100 * (short - long) / long
// Plot shapes for breaks with volume
plotshape(toggleBreaks and ta.crossunder(close, lowUsePivot) and not (open - close < high - open) and osc > volumeThresh, title="Break", text='B', style=shape.labeldown, location=location.abovebar, color=color.red, textcolor=color.white, transp=0, size=size.tiny)
plotshape(toggleBreaks and ta.crossover(close, highUsePivot) and not (open - low > close - open) and osc > volumeThresh, title="Break", text='B', style=shape.labelup, location=location.belowbar, color=color.green, textcolor=color.white, transp=0, size=size.tiny)
// Alert conditions
alertcondition(ta.crossunder(close, lowUsePivot) and osc > volumeThresh, title="Support Broken", message="Support Broken")
alertcondition(ta.crossover(close, highUsePivot) and osc > volumeThresh, title="Resistance Broken", message="Resistance Broken")
// Strategy conditions with filter
longCondition = low > highUsePivot and osc > volumeThresh
shortCondition = high < lowUsePivot and osc > volumeThresh
// Strategy entries
strategy.entry("My Long Entry Id", strategy.long, when=longCondition)
strategy.entry("My Short Entry Id", strategy.short, when=shortCondition)