この戦略は"二重封筒トレンドフォロー戦略"と呼ばれる.Nadaraya-Watson (NW) の封筒とROC指標を使用して,トレンドフォローのトレンド方向を特定する.NW封筒が拡大し,ROCが正であるときに長い;NW封筒が収縮し,ROCが負であるときに短い.ストップ損失と収益条件もリスク管理のために設定されています.
二重封筒トレンドの戦略は,主にNW封筒とROCインジケーターを使用してエントリー信号を決定する.NW封筒は,価格の高低範囲を表示する非パラメトリックのスムーズ化技術である.ROCインジケーターは価格変化の速度と強さを識別する.
具体的には,この戦略はまずNW封筒の上限と下限を計算する.価格がNW上限とROC>0を突破すると,上昇傾向を示し,ロングに行く.価格がNW下限とROC<0を突破すると,下落傾向を示し,ショートに行く.
ロングまたはショートに入ると,ストップ・ロストとテイク・プロフィートポイントが設定される.ストップ・ロスはエントリー価格の下のピップで固定される.テイク・プロフィートはエントリー価格上のストップ・ロストピップの一定倍数である.これは,各取引のリスクを効果的に制御する.
概要すると,二重封筒トレンドフォロー戦略は,NW封筒とROC指標を組み合わせてトレンド方向を判断し,ストップロストとテイクプロフィートを利用してリスクを制御し,トレンドをトレード後に実現します.
二重封筒戦略の傾向は以下の利点があります.
傾向の方向性を決定するためにNW封筒を使用することで,価格傾向を効果的に特定し,誤った信号を減らすことができます.
ROC指標と組み合わせてトレンド強さを判断することで,様々な市場で間違った取引を避けることができます.
ストップ・ロスの設定と 利益の取得は リスクを制御し 損失が拡大する前に ストップ・アウトを可能にします また 利益の一部をロックします
戦略にはパラメータが少なく,理解し最適化するのが簡単です.
外国為替,暗号通貨,株式など あらゆる市場に適用できます
二重封筒戦略の傾向には,次のリスクもあります.
トレンドフォローする戦略は,トレンド逆転時に深刻な損失を受けやすい.パラメータを調整するか手動で介入する必要があります.
ストップ・ロスの幅が大きすぎると ストップ・ロスのピップが狭くなる
高波動性の市場では,ストップロスは侵入され,損失を制御することができません.リアルタイムまたはダイナミックストップロスを検討してください.
取引コストや滑り込みは考慮されません.これは高周波取引での損失を増やす可能性があります.
一般的には,パラメータの最適化,ストップ損失戦略の改善,適切な手動介入によってリスクを軽減できます.
戦略は以下の側面で最適化できます.
最適な組み合わせを見つけるために,ウィンドウ期間と帯域幅のような NW パラメータを最適化します.
誤った信号を減らすために ROC 窓のサイズを最適化します
トレンドとエントリー判断のためにKDJやMACDなどの他の指標を試してください.
機械学習モデルを組み込み ストップ・ロストをダイナミックに最適化し 利益を上げます
トレンドが逆転するときに積極的に退場するためにトレンド逆転信号を追加します.
スリップ,手数料,ストップ・ロスの失敗確率など 実践的な詳細を考慮して 戦略をリアル・トレードに近いものにします
パラメータの最適化や指標やアルゴリズムの導入は 戦略の安定性と収益性をさらに向上させることができます
概要すると,この戦略は"二重封筒トレンドフォロー戦略"と呼ばれる.トレンド方向とエントリを決定するためにNW封筒とROC指標を使用し,トレンド後のトレンドのためにストップ・ロスを設定し,利益を上げます.この戦略はシンプルで効果的です.トレンドをフォローし,リスクを制御し,さまざまな市場に適用できます.欠点はトレンド逆転中に深刻な損失と逆転を捉えるのが困難です.パラメータ最適化,アルゴリズム組み込み,手動介入により安定性を向上させることができます.全体としては,トレンドフォロー戦略が推奨されています.
/*backtest start: 2023-01-18 00:00:00 end: 2024-01-18 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Combined Strategy", overlay=true) // --- Nadaraya-Watson Envelope [LUX] --- length_NW = input.float(500, title='NW Window Size', maxval=500, minval=0) h_NW = input.float(8.0, title='NW Bandwidth') mult_NW = input.float(3.0, title='NW Multiplier') src_NW = input(close, title='NW Source') up_col_NW = input.color(#39ff14, title='NW Upper Color', inline='col') dn_col_NW = input.color(#ff1100, title='NW Lower Color', inline='col') disclaimer_NW = input(false, title='NW Hide Disclaimer') // --- Rate Of Change (ROC) --- length_ROC = input.int(9, title='ROC Window Size', minval=1) source_ROC = input(close, title='ROC Source') roc = 100 * (source_ROC - source_ROC[length_ROC]) / source_ROC[length_ROC] // --- Calcola Stop Loss e Take Profit in Pips --- pip_multiplier = input(0.0001, title="PIP Multiplier") // Moltiplicatore per convertire da pips a valore numerico stop_loss_pips = 4 take_profit_multiplier = 2.1 stop_loss_value = close - stop_loss_pips * pip_multiplier take_profit_value = close + stop_loss_pips * take_profit_multiplier * pip_multiplier // --- Conditions for Entry --- entry_condition_long = src_NW + mult_NW * mult_NW > 0 and roc > 0 and close > close[1] entry_condition_short = src_NW - mult_NW * mult_NW < 0 and roc < 0 and close < close[1] // --- Strategy Logic --- if (entry_condition_long) strategy.entry("Buy", strategy.long) if (entry_condition_short) strategy.entry("Sell", strategy.short) if (strategy.position_size > 0) strategy.exit("Stop Loss/Profit", from_entry="Buy", loss=stop_loss_value, profit=take_profit_value) if (strategy.position_size < 0) strategy.exit("Stop Loss/Profit", from_entry="Sell", loss=stop_loss_value, profit=take_profit_value) // --- Plotting --- plot(roc, color=#2962FF, title="ROC") hline(0, color=#787B86, title="Zero Line")