
DPD-RSI-BB量化戦略は,DPD,RSI,ブリン帯の3つの指標を同時に組み合わせた株式取引戦略である.この戦略は,DPDが傾向を判断し,RSIが超買い超売りを判断し,ブリン帯がサポートプレッシャーレベルを判断して入場を行う.
この戦略は以下の部分から構成されています.
二重EMA平均を用いてDEMA平均線を構成し,価格とDEMAの差値比をトレンド判断指標として計算し,差値比が値設定より低いときは看板信号として使用する.
ある周期内のRSI値を計算し,RSIが上限を設定すると超買区と判断し,RSIが下限を設定すると超売区と判断する.
ある周期の中軌道,上軌道,下軌道を計算し,上軌道に近い価格が下向き信号として,下軌道に近い価格が看板信号として.
DPDの差が値下げより低く,RSIが超売区下限より低く,価格がブリン帯より上線に上がると,看板信号が生じます. RSIが超買区上限より高く,DPDの差が値下げより高く,価格がブリン帯より上線に上がると,下向き信号が生じます.
この戦略の利点は以下の通りです.
複数の指標を総合的に判断し,単一の指標から生じる誤信号を避ける.
RSIの指標を使って,超買いと超売りを判断し,先行的にストップ・ロスト・ストップポイントを設定します.
DPD指数は価格の動向を判断し,ブリン帯はサポートプレッシャーレベルを判断する.
異なるパラメータの柔軟な設定により,異なる株式に最適化できます.
この戦略にはいくつかのリスクがあります.
複数の指標の組み合わせ判断は,戦略を複雑にし,パラメータ設定を困難にする.
DPD,RSIなどの指標には一定の遅延があり,最適な入場時間を逃す可能性があります.
異なる周期と株の特性に対応するためにパラメータを最適化する必要があります.
改善の方法は以下の通りです.
指数パラメータを調整し,入場・退場点を最適化する.
損失防止の仕組みを増やし,単一損失を厳しく管理する.
異なる株と周期パラメータをテストし,戦略の効果を評価する.
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")