分岐戦略を確認する


作成日: 2024-01-15 15:19:56 最終変更日: 2024-01-15 15:19:56
コピー: 1 クリック数: 407
1
フォロー
1234
フォロワー

分岐戦略を確認する

概要

確認散布戦略は,RSI指標とAwesome Oscillator指標の二重散布信号を使用して,より信頼性の高い入場時間を決定します.価格が新しい高または新しい低を形成し,RSIとAO指標が逆の高点または低点を形成すると,散布信号を発信します.この戦略は,2つの指標を同時に散布するように要求し,それによって部分的な偽信号をフィルターして,入場効果を向上します.

戦略原則

この戦略は,価格の上昇とRSIとAOの指標値の間の散乱に基づいて売り買い点を判断する.具体的判断方法は以下の通りである.

多毛散乱:価格が最近の新低値を形成し,RSIとAOが最近の新高値を形成します.つまり,価格が下がり,RSIとAOが上昇し,多毛散乱信号を形成します.

空頭散乱:価格が最近の新高を形成し,RSIとAOが最近の新低を形成し,価格が上昇し,RSIとAOが低下し,空頭散乱信号を形成する.

策略は,2つの指標が同時に散乱条件を満たすように要求し,単一の指標の假散乱によってもたらされる誤信号を避ける.散乱信号が成立すると,ブリン带下軌または上軌の近くでストップダストを設定し,具体的なストップダストは下軌の上または上軌の下にある.

優位分析

この戦略の利点は以下の通りです.

  1. 双指数フィルタリングは信号の信頼性を高め,単一指数の偽発散信号を回避する.

  2. 価格の変動を判断する指標の分散特性を利用し,取り戻しの可能性は低い.

  3. 散発信号は持続性があり,利益の余地がある.

  4. 重要なサポートやレジスタンス近くでストップを設定し,個々の大きな損失の可能性を減らす.

リスク分析

この戦略にはいくつかのリスクがあります.

  1. ダブルフィルタリング条件が同時に成立する時間が短くなり,一部の取引機会を逃す可能性があります.

  2. 散布は100%確実な信号ではないので,個別の場合,損失が発生する可能性があります.

  3. ブリン帯のパラメータ設定が不適切である場合,止損が過度に緩やかまたは過度に狭くなります.

最適化の方向

この戦略は以下の点で最適化できます.

  1. 散散判断の周期パラメータを調整し,散散信号のパラメータを最適化する.

  2. トレーリングストップやダイナミックストップなど,さまざまなストップをテストする.

  3. 取引量などの他の指標のフィルターを追加し,信号の信頼性をさらに高めます.

  4. トレンド,支持抵抗などの要素を総合的に考慮して,散射信号の質を識別する.

要約する

分散策の確認は,RSIとAOの二重散乱信号によって市場に出るタイミングを判断し,二重フィルタリング機構は,偽信号を効果的に削減し,利益の確率を向上させる.戦略は,リスクを管理するために重要な位置にストップロスを設定し,より良いリスク収益特性を有する.パラメータの最適化,信号フィルタリングの増加などの手段によって,戦略の安定性と取引効果をさらに向上させることができる.

ストラテジーソースコード
/*backtest
start: 2023-12-15 00:00:00
end: 2024-01-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Confirmed Divergence Strategy", overlay=true)
source = close
length = input(30, minval=1)
mult = input(2.0, minval=0.001, maxval=50)
// SETTING UP VARIABLES //

src = close

// RSI //
rsiprd = input(title="RSI period",defval=14)
rv = rsi(src,rsiprd)
ob = input(title="Overbought Level",  defval=70)
os = input(title="Oversold Level",  defval=30)
lengthAO1=input(title="Awesome Short MA", defval=5, minval=1) //5 periods
lengthAO2=input(title="Awesome Long MA", defval=34, minval=1) //34 periods


//Awesome//

AO = sma((high+low)/2, lengthAO1) - sma((high+low)/2, lengthAO2)

// look back periods //
x = input(title = "short lookback period",defval=5)
z = input(title = "long lookback period",defval=25)


// END SETUP //

////////////////////////
// BULLISH DIVERGENCE //
////////////////////////

// define lower low in price //

srcLL = src > lowest(src,x) and  lowest(src,x)<lowest(src,z)[x]

// define higher low in rsi //

rsiHL = rv>lowest(rv,x) and lowest(rv,x) > lowest(rv,z)[x] and lowest(rv,z)<os

// define higher low in AO //


aoHL = AO > lowest(AO,x) and lowest(AO,x) > lowest(AO,z)[x] and lowest(AO, x) < 0



BullishDiv = srcLL and rsiHL and aoHL


////////////////////////
// BEARISH DIVERGENCE //
////////////////////////

// define higher high in price //

srcHH = src < highest(src,x) and  highest(src,x)>highest(src,z)[x]

// define lower high in RSI //

rsiLH = rv<highest(rv,x) and highest(rv,x) < highest(rv,z)[x] and highest(rv,z)>ob

// define lower high in AO //
aoLH = AO<highest(AO,x) and highest(AO,x) < highest(AO,z)[x] and highest(AO, x) > 0

BearishDiv = srcHH and rsiLH and aoLH


basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev



if (BullishDiv)
    strategy.entry("DivLE", strategy.long, stop=lower, oca_name="BullishDiv",comment="DivLE")
else
    strategy.cancel(id="DivLE")
    
if (crossover(close, lower))
    strategy.close("DivSE")
    
if (crossunder(close, upper))
    strategy.close("DivLE")

if (BearishDiv)
    strategy.entry("DivSE", strategy.short, stop=upper, oca_name="BearishDiv",comment="DivSE")
else
    strategy.cancel(id="DivSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)