この戦略は,Williams %Rクロスオーバー信号を利用し,移動平均フィルターを追加し,柔軟な短期取引システムを作成します. 過剰購入と過剰販売状況を明確に把握できます. MAフィルターはより高い安定性のために市場の騒音を避けます.
ウィリアムズ %Rと200期間の単純な移動平均 (MA) を計算する.
%R が -50 値を超えて,閉じる値が MA 値を超えるとロングに.
%R が -50 値を下回る
ロングの場合, Close Reach の場合は,Profit (エントリー価格+Profit Pips) または Stop Loss (エントリー価格 - Stop Loss Pips) のレベルを設定します.
ショートの場合,近値で利益を得る (エントリー価格 - 利益ピップ) またはストップ損失レベル (エントリー価格 + ストップ損失ピップ) のとき,クローズポジションです.
この戦略は,Williams %Rの過剰購入/過剰売却性質を活用し,より信頼性の高いシグナルのためにMAトレンドフィルターを組み合わせます.ストップ・ロスト/テイク・プロフィートロジックはシンプルで明確です.全体的には,完全な短期システムです.
ウィリアムズ %R は,明瞭な信号で過剰購入/過剰販売レベルを効果的に識別します.
MAフィルタは 傾向バイアスを加え ショットソーを避けます
柔軟性のために設定可能なパラメータ
ストップ・ロスはほとんどの利益に 鍵をかけます
シンプルで明確な論理で 簡単に理解し実行できます 短期取引に適しています
柔軟性のある複数の製品に適用できます
ウィリアムズ%Rは遅延効果があり,いくつかの機会を逃す可能性があります.
MAフィルターも遅延がある
厳格な買い過ぎ/売り過ぎの規則は,いくつかの傾向を見逃す可能性があります.
ストップ・ロスは ストップ・ロスは ストップ・ロスは
ストップ・ロスは幅が大きすぎると利益が制限される.
パラメーターは異なる市場環境に合わせて調整する必要があります
パラメータを最適化して 勝率を上げる
MACD,KDJなどの他のフィルターを追加します.
試すことができます.
トレンドバイアスを加え トレンド方向で取引するだけです
ダイナミックストップ,チェンデリア出口などストップ・ロスの戦略を最適化します
固定分数,マルティンゲールなど
マシン学習を利用して パラメータを最適化します
この戦略は,Williams %Rオーバー買い/オーバーセールシグナルとMAトレンドフィルタをシンプルな短期システムに組み合わせます.明確なエントリーシグナルとストップ損失/利益のロジックがあります.より堅牢なパラメータチューニング,インジケーター選択,ストップ損失管理などによりさらなる改善が可能です. 実行し拡大しやすいため,この戦略は短期トレーダーに適しています.
/*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")