この戦略は,ウィリアムズ指数交差信号を使用し,移動平均とフィルタリングを組み合わせ,より柔軟なショートラインの取引戦略を実現する.この戦略は,より明確なオーバーバイオーバーセルの状況を捕捉することができる.移動平均のフィルタリングは,市場の揺れの影響を受けないようにし,より高い安定性を有する.
ウィリアム指数 ((%R) を計算し,200周期の単純移動平均を計算する.
ウィリアム指数が上向きに50線を突破して設定値に達し,閉盤価格が移動平均より高くなったら,さらに行います.
ウィリアム指数が下方50線を下回って設定値に達し,閉盘価格が移動平均より低いとき,空白する.
利回りした後に,閉盘価格がストップポイント (入場価格加減ストップポイント) またはストップポイント (入場価格減減ストップポイント) に達したときに平仓する.
空白後,入札価格が止境点 (入札価格減止境点数) または止損点 (入札価格加止止境点数) に到達した場合,平仓する.
この戦略は,ウィリアムズ指数の超買超売特性を充分利用し,移動平均のトレンド判断と組み合わせて,取引信号をより明確で信頼性のあるものにします. ストップ・ストップ・ロスの戦略は,より明確で簡潔で,全体としてより完全なショートライン戦略システムです.
ウィリアム指数は,超買いと超売りを効果的に識別し,信号はより明確である.
移動平均のフィルタリングは,トレンドの判断を高め,震動の影響を受けないようにします.
指数パラメータとフィルターはカスタマイズでき,柔軟に調整できます.
トレンドトラッキングのストップ・ロスは,利益のほとんどをロックすることができます.
戦略信号の規則は,簡潔でわかりやすく,理解しやすい実装で,ショートライン取引に適しています.
多種に適応し,柔軟で通用する.
ウィリアムズ指数には落とし穴があり,機会を逃しているかもしれない.
移動平均はフィルターとして後退している.
厳格な超買超売判断は,トレンドの機会を逃しているかもしれない.
価格の変動により,小規模なストップダメージが発生する可能性があります.
損失を抑えすぎると利益も制限される.
異なる市場環境に対応するためにパラメータを調整する必要があります.
戦略の成功率を向上させるための指標パラメータを最適化します.
MACD,KDJなどの他の指標をフィルタリングします.
指数移動平均のような移動平均の種類を試してみてください.
トレンド判断を高め,トレンドの方向のみで取引する.
ダイナミックストップ,スケールストップなどのストップストップ戦略を最適化します.
ポジション管理を追加してみてください.
機械学習を使って,よりよいパラメータの組み合わせを探します.
この戦略は,ウィリアムズ指数の超買超売判断と移動平均のトレンドフィルタを統合して,簡単な実用的なショートライン戦略を形成する.それは明確な取引信号とストップ・ロスのルールを有する.パラメータ最適化,指標最適化,ストップ・ロスの管理などの改善によって,戦略をより安定して実用的にすることができる.この戦略は,簡単に実装され,拡張され,ショートライントレーダーに最適である.
/*backtest
start: 2023-08-19 00:00:00
end: 2023-09-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Williams %R Cross Strategy with MA Filter", overlay=true)
// User Inputs
wrLength = input(14, title="Williams %R Length")
crossPips = input(10, title="Cross Threshold (Pips)")
takeProfitPips = input(30, title="Take Profit (Pips)")
stopLossPips = input(20, title="Stop Loss (Pips)")
// Calculate Williams %R
wrHigh = ta.highest(high, wrLength)
wrLow = ta.lowest(low, wrLength)
wr = (wrHigh - close) / (wrHigh - wrLow) * -100
// Calculate 200-period Simple Moving Average
ma200 = ta.sma(close, 200)
// Entry Conditions
enterLong = ta.crossover(wr, -50 - crossPips) and close > ma200
enterShort = ta.crossunder(wr, -50 + crossPips) and close < ma200
// Exit Conditions
exitLong = close >= (strategy.position_avg_price + (takeProfitPips / syminfo.mintick)) or close <= (strategy.position_avg_price - (stopLossPips / syminfo.mintick))
exitShort = close <= (strategy.position_avg_price - (takeProfitPips / syminfo.mintick)) or close >= (strategy.position_avg_price + (stopLossPips / syminfo.mintick))
// Order Management
if enterLong
strategy.entry("Long", strategy.long)
if enterShort
strategy.entry("Short", strategy.short)
if exitLong
strategy.close("Long")
if exitShort
strategy.close("Short")