
ウィリアムズ%R強制転覆策とATRトレンドフィルターは,市場における重要な転換点を特定するために設計された量化取引システムである.この策の核心は,ウィリアムズ%R振動指数の超買区 (−1) と超売り区 (−7) のシグナルを利用し,平均真波幅 (−7) のトレンドフィルターと組み合わせて取引信号の質を向上させる.この組み合わせは,短期間の取引 (−30分以下) に特に適している.特に,通貨ペアの取引は,市場の極端で強制転覆操作を行うことにより,多空ポジションの自動切替を実現する.
この戦略は,ウィリアムズ%RとATRの2つの重要な技術指標に基づいています.
ウィリアムズ%R指標の適用:
ATR トレンドフィルター:
フォースリッピングロジック:
プログラミングの核心となるのはta.crossoverそしてta.crossunder機能検出指標は,ATRの方向を追加の確認条件として使用しながら,重要なレベルを通過する.システムは,100%の資金比率の全ポジション操作に設計されており,停止と停止の設定はなく,逆転信号を完全に頼りにしてポジションを退出する.
信号は明確で客観的だ:
双指標の同定:
強制転覆メカニズムの効率性:
短期的な波動市場に適している:
資金の利用効率が高く:
リスクの抑制の欠如:
信号の遅延:
過剰取引のリスク:
パラメータ感度:
ATRのフィルター不足:
ストップ・アンド・ストップメカニズムを増やす:
トレンドフィルタリングの強化:
最適化パラメータの自己適応機構:
信号確認メカニズムを追加:
ポジション管理の最適化:
ウィリアムズ%Rの強制逆転戦略とATRのトレンドフィルターは,市場極値領域の逆転機会を捕捉することに焦点を当てた巧妙に設計された量化取引システムである.この戦略は,ウィリアムズ%Rの超買超売判断とATRのトレンド確認を組み合わせて,効率的な取引機構を作り,特に短時間周期の振動的な市場の取引に適しています.
この戦略は概念的に簡潔で直接的に実行されるが,その内蔵されたリスク管理機構の欠如は明らかな欠陥である.実用的な応用では,トレーダーに適切なストップ・ロスの戦略を追加し,異なる市場環境に対応するためにトレンドフィルタリングシステムとパラメータ設定を最適化することを考慮することを強く推奨する.
この戦略の真の価値は,市場の極端な状況への感受性と自動化されたポジション転転機構にあるため,ショートライントレーダーのツールボックスに強力な武器になります. この基本的な戦略は,提案された最適化の方向によって,市場転換点を捕捉するだけでなく,リスクを効果的に管理し,さまざまな市場条件に適応するより包括的でより堅固な取引システムへとさらに発展することができます.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-08-18 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_OKX","currency":"BTC_USDT","balance":5000}]
*/
//@version=5
strategy("Williams %R Forced Flip Strategy (-79/-21) + ATR(5) Trend Filter [No SL/TP]", overlay=true, pyramiding=0, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
// Inputs
len = input.int(60, "Williams %R Length", minval=1)
buyLvl = input.float(-79.0, "Buy Level", minval=-100, maxval=0, step=0.1)
sellLvl= input.float(-21.0, "Sell Level", minval=-100, maxval=0, step=0.1)
atrLen = input.int(5, "ATR Length", minval=1)
// Indicators
wr = ta.wpr(len) // Williams %R (-100..0)
atr = ta.atr(atrLen) // ATR(5)
atrUp = atr > atr[1] // rising ATR
atrDown = atr < atr[1] // falling ATR
// Entry signals
longSignal = ta.crossover(wr, buyLvl) and atrUp // cross above -79 + ATR rising
shortSignal = ta.crossunder(wr, sellLvl) and atrDown // cross below -21 + ATR falling
// --- Forced Flip Logic ---
// If long signal → close shorts and go long
if (longSignal)
strategy.close("Short")
strategy.entry("Long", strategy.long)
// If short signal → close longs and go short
if (shortSignal)
strategy.close("Long")
strategy.entry("Short", strategy.short)
// --- Plots ---
// Williams %R
plot(wr, title="Williams %R", color=color.blue)
hline(buyLvl, "Buy Trigger (-79)", color=color.green)
hline(sellLvl, "Sell Trigger (-21)", color=color.red)
hline(-50, "Midline (-50)", color=color.orange)
// ATR + slope markers
plot(atr, title="ATR(5)", color=color.purple)
plotchar(atrUp, title="ATR Rising", char="▲", location=location.bottom, color=color.green, size=size.tiny)
plotchar(atrDown, title="ATR Falling", char="▼", location=location.bottom, color=color.red, size=size.tiny)