DPD-RSI-BB定量戦略


作成日: 2023-11-22 16:17:52 最終変更日: 2023-11-22 16:18:14
コピー: 0 クリック数: 667
1
フォロー
1617
フォロワー

DPD-RSI-BB定量戦略

概要

DPD-RSI-BB量化戦略は,DPD,RSI,ブリン帯の3つの指標を同時に組み合わせた株式取引戦略である.この戦略は,DPDが傾向を判断し,RSIが超買い超売りを判断し,ブリン帯がサポートプレッシャーレベルを判断して入場を行う.

戦略原則

この戦略は以下の部分から構成されています.

  1. DPD指標の判断トレンド

二重EMA平均を用いてDEMA平均線を構成し,価格とDEMAの差値比をトレンド判断指標として計算し,差値比が値設定より低いときは看板信号として使用する.

  1. RSIは過剰買いと過剰売れを判断する

ある周期内のRSI値を計算し,RSIが上限を設定すると超買区と判断し,RSIが下限を設定すると超売区と判断する.

  1. ブリンが判断力で圧力をかけている

ある周期の中軌道,上軌道,下軌道を計算し,上軌道に近い価格が下向き信号として,下軌道に近い価格が看板信号として.

  1. 総合的な判断

DPDの差が値下げより低く,RSIが超売区下限より低く,価格がブリン帯より上線に上がると,看板信号が生じます. RSIが超買区上限より高く,DPDの差が値下げより高く,価格がブリン帯より上線に上がると,下向き信号が生じます.

優位分析

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

  1. 複数の指標を総合的に判断し,単一の指標から生じる誤信号を避ける.

  2. RSIの指標を使って,超買いと超売りを判断し,先行的にストップ・ロスト・ストップポイントを設定します.

  3. DPD指数は価格の動向を判断し,ブリン帯はサポートプレッシャーレベルを判断する.

  4. 異なるパラメータの柔軟な設定により,異なる株式に最適化できます.

リスクと最適化

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

  1. 複数の指標の組み合わせ判断は,戦略を複雑にし,パラメータ設定を困難にする.

  2. DPD,RSIなどの指標には一定の遅延があり,最適な入場時間を逃す可能性があります.

  3. 異なる周期と株の特性に対応するためにパラメータを最適化する必要があります.

改善の方法は以下の通りです.

  1. 指数パラメータを調整し,入場・退場点を最適化する.

  2. 損失防止の仕組みを増やし,単一損失を厳しく管理する.

  3. 異なる株と周期パラメータをテストし,戦略の効果を評価する.

要約する

DPD-RSI-BB戦略は,複数の指標を統合して判断し,単一の指標が生み出す偽信号を回避する.パラメータ最適化により,より強力な株式取引戦略となる.しかし,この戦略は,複雑さが高いため,市場リスクを完全に回避することが困難である可能性もあるため,慎重に使用する必要があります.

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

//@version= 2
strategy("DPD+RSI+BB ",overlay=true)
price=close




//############### DPD  #################


buyper =input(-1,step=0.1)
sellper=input(0,step=0.1)
demalen = input(50,title="Dema Length")
e1= ema(close,demalen)
e2=ema(e1,demalen)
demaprice  =   2 * e1 - e2
demadifper =  ((price-demaprice)/price)*100


//############## DPD #####################

//############# RSI ####################


lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 60 )

vrsi = rsi(price, lengthrsi)

//########## RSI #######################

//############### BB #################

lengthbb = input(50, minval=1)
multlow = input(1.5, minval=0.001, maxval=50,step=0.1)
multup = input(1.5,minval=0.001,maxval=50,step=0.1)

basisup = sma(close, lengthbb)
basislow = sma(close, lengthbb)

devup = multup * stdev(close, lengthbb)

devlow = multlow*stdev(close,lengthbb)

upperbb = basisup + devup
lowerbb = basislow - devlow

p1 = plot(upperbb, color=blue)
p2 = plot(lowerbb, color=blue)
fill(p1, p2)



//########### BB ###################




yearfrom = input(2018)
yearuntil =input(2039)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  (demadifper<buyper) and crossover(vrsi,overSold) and  (price < upperbb) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if (   price>upperbb and vrsi>overBought and demadifper>sellper   and  year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 

    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND",  comment="SELL")
else
    strategy.cancel(id="SELL")