ダブル・ムービング・平均追跡戦略は,移動平均指標に基づく定量的な取引戦略である.この戦略は,主に移動平均値の黄金十字と死亡十字を利用し,買い売り信号を生成する.短期移動平均値が下から長期移動平均値を超えると,黄金十字信号が生成される.短期移動平均値が上から長期移動平均値を超えると,死亡十字信号が生成される.この戦略には,RSI指標とADX指標も組み込まれ,トレンドの方向性と強さを決定し,トレンドが強いときに入力する.
この戦略は主に3つの技術指標に基づいています.
スーパートレンド:価格の主なトレンド方向を判断するために使用されます. スーパートレンド指標の方向が変化すると,価格トレンドの転換点として判断され,取引信号が発行されます.
RSI インディケーター (Relative Strength Index): 過買い・過売り状態を判断するために使用される振動指標.この戦略は,RSI インディケーターが短期的に価格が過買い・過売りであることを示すときに取引信号を発信する.
ADX インディケーター (平均方向指標): トレンドの強さを判断するために使用される.この戦略は,トレンドの強さを判断するためにADXを組み込み,トレンドが強いときに入力することを選択する.
スーパートレンド指標の方向が変化すると,価格傾向が逆転したことを意味します.同時に,RSIインジケーターは過買い/過売り現象を示し,短期的な供給と需要関係に転換を示し,価格が逆転する可能性があります.また,ADXインジケーターはトレンド強さが大きいことを示します.これはこの戦略のエントリーする機会を提供します.特に,スーパートレンド方向が変化すると,RSIが過売りを示し,ADX>20がロング信号を発行します.スーパートレンド方向が変化し,RSIが過買いを示したとき,閉じる信号を発行します.
二重移動平均システムを使うと,価格動向の変化を効果的に追跡し,動向から利益を得ることができます.
RSIインジケーターを組み込み,過買い・過売りの判断は,価格逆転点で高値を追いかけるか低値を追いかけるのを避けます.
ADX指標はトレンドの強さを判断するので,この戦略は主にトレンドが強くなるときに作用し,主要なトレンドから利益を得ます.
戦略のパラメータは最適化され,良好なパフォーマンスを示すためにテストされました.
二重移動平均戦略自体は価格変動に非常に敏感であり,より多くの取引信号を生む可能性があります.解決策は,取引頻度を減らすために移動平均パラメータを適切に調整することです.
RSI と ADX 指標はどちらも失敗する可能性があります. 解決策はパラメータを最適化し,指標計算サイクルを調整することです.
この戦略には適切なストップ・ロスの戦略が必要です 解決策は合理的な動きや待機中のオーダーストップを設定することです
取引頻度を最適化します. 取引頻度を調整するために移動平均システムのパラメータを最適化してみてください.
追加的な補助指標を導入することもできます.例えば,取引量指標を導入し,大きな注文が来るときに入力します.
マシンラーニングアルゴリズムはパラメータ最適化のために組み合わせることができます.最適なパラメータ組み合わせを予測するためにアルゴリズムを使用します.
ストップ・ロスのメカニズムを導入する. 単一の損失を制御するために動きまたは待機中のオーダーのストップを設定する.
この戦略は,二重移動平均追跡戦略である. 基本的なアイデアは,価格動向を判断するために移動平均指標を追跡し,RSIおよびADX指標と組み合わせてエントリータイミングを選択することです. その利点は,傾向を追跡し,過剰購入/過剰販売現象に鋭くアクセスし,主要な傾向から利益を得ることができるということです. この戦略の主なリスクは,価格変動に対する高い敏感性から生じ,過剰に頻繁な取引を生む可能性があります. パラメータ最適化とストップ損失対策を通じて,この戦略はライブ取引でより良いパフォーマンスをするために効果的に調整できます.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supertrend Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=120, initial_capital=1000, margin_long=0.1) atrPeriod = input(10, "ATR Length") factor = input.float(3.0, "Factor", step=0.01) [_, direction] = ta.supertrend(factor, atrPeriod) adxlen = input(7, title="ADX Smoothing") dilen = input(7, title="DI Length") dirmov(len) => up = ta.change(high) down = -ta.change(low) plusDM = na(up) ? na : (up > down and up > 0 ? up : 0) minusDM = na(down) ? na : (down > up and down > 0 ? down : 0) truerange = ta.rma(ta.tr, len) plus = fixnan(100 * ta.rma(plusDM, len) / truerange) minus = fixnan(100 * ta.rma(minusDM, len) / truerange) [plus, minus] adx(dilen, adxlen) => [plus, minus] = dirmov(dilen) sum = plus + minus adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen) sig = adx(dilen, adxlen) if ta.change(direction) < 0 and ta.rsi(close, 21) < 66 and ta.rsi(close, 3) > 80 and ta.rsi(close, 28) > 49 and sig > 20 strategy.entry("My Long Entry Id", strategy.long) if ta.change(direction) > 0 strategy.close("My Long Entry Id") // Close long position //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)