二重移動平均追跡戦略に基づく


作成日: 2023-12-25 17:04:29 最終変更日: 2023-12-25 17:04:29
コピー: 0 クリック数: 533
1
フォロー
1621
フォロワー

二重移動平均追跡戦略に基づく

概要

双均線追跡戦略は,均線指標に基づく量化取引戦略である.この戦略は,主に移動平均の黄金交差と死交差を利用して,買入と売却の信号を発する.短期移動平均が,下からより長い周期の移動平均を穿越すると,黄金交差の信号が生じ,短期移動平均が,上からより長い周期の移動平均を穿越すると,死交差の信号が生じます.この戦略は,RSI指標とADX指標を組み合わせて,トレンドの方向と強さを決定し,トレンドが強くなるときに場を外します.

戦略原則

この戦略は主に以下の3つの技術指標に基づいています.

  1. 超トレンド:価格の主要なトレンド方向を判断する.Supertrend指標の方向が変化すると,価格トレンドの転換点として判断し,取引信号を発する.

  2. RSI指数 (Relative Strength Index): 超買超売を判断するための振動指数である.この戦略は,RSI指数が短期間の超買または超売を示しているときに取引信号を発する.

  3. ADX指数 ((Average Directional Indicator):トレンドの強さを判断するために使用される.この戦略は,トレンドの強さを判断するADXと組み合わせて,トレンドが強いときに入場を選択する.

Supertrend指標の方向が変化すると,価格トレンドが転じることを示す.同時に,RSI指標は,超買い超売現象を示し,短期需要供給関係が変化することを示す,価格が逆転する可能性がある.さらに,ADX指標は,トレンドの強さを示し,これはこの戦略の入場に機会を提供します.具体的には,Supertrend方向が変化すると,RSI指標は,超売りを示し,ADX>20になると,多信号を発信します.Supertrend方向が変化すると,RSI指標は,超買いを示し,平仓信号を発信します.

戦略的優位性

  1. 価格の動向の変化を効率的に追跡する双対線システムを使用し,Profitは動向から利益を得ます.

  2. 価格転換点での高殺低を避けるために,RSI指数と組み合わせて,超買いと超売りを判断します.

  3. ADX指標はトレンドの強さを判断し,この戦略は主にトレンドが強いときに実行され,大トレンドから利益を得る.

  4. 戦略パラメータは最適化され,比較テストで良好なパフォーマンスを示した.

リスクと解決

  1. 双均線戦略自体は価格変化に敏感であり,取引信号を多く生み出す可能性があります. 解決策は,適正に平均線パラメータを調整し,取引頻度を減らすことです.

  2. RSI指標とADX指標の両方が失効する可能性のある状況. 解決策は,パラメータ最適化を行い,指標計算周期を調整することです.

  3. この戦略は,適切なストップ戦略を選択する必要があります. 解決策は,合理的な移動ストップまたはワンストップを設定することです.

戦略最適化の方向性

  1. 取引頻度を最適化する.均線システムのパラメータを最適化し,取引頻度を調整する.

  2. 他の補助指標を導入することができる.例えば取引量指標を導入し,大単価市場に入場時に入場を選択する.

  3. 機械学習アルゴリズムと組み合わせてパラメータ最適化を行う.アルゴリズムを使用して最適なパラメータの組み合わせを予測する.

  4. ストップ・メカニズムを導入する. 単一損失を制御するために移動ストップまたは挂置ストップを設定する.

要約する

この戦略は,双均線追跡戦略であり,核心構想は,均線指標を追跡して価格トレンドを判断し,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)