DPD-RSI-BB 定量戦略

作者: リン・ハーンチャオチャン, 日付: 2023-11-22 16:17:52
タグ:

img

概要

DPD-RSI-BB定量戦略は,株式取引のための3つの指標 - DPD,RSI,ボリンジャーバンドを組み合わせます.傾向を決定するためにDPD,過剰購入および過剰販売レベルを判断するためにRSI,市場への参入のためのサポートおよびレジスタンスレベルを特定するためにボリンジャーバンドを使用します.

戦略の論理

戦略は以下の主要要素で構成されています.

  1. 傾向を決定するためのDPD指標

    DEMA線は,EMA平均値の2倍を用いて作成され,傾向決定指標としてDEMAに対する価格差分パーセントを計算する.低差分は上昇シグナルとして使用される.

  2. RSI インディケーター

    RSIは,特定の期間におけるRSI値を計算します.上限を超えるRSIは過買いゾーンとして判断され,下限以下のRSIは過売りゾーンとして判断されます.

  3. サポートとレジスタンスを識別するボリンジャー帯

    中間帯,上部帯,下部帯を一定期間で計算する.上部帯に近づく価格は下落見通しを示し,下部帯に近づく価格は上昇見通しを示します.

  4. 総合的な判断

    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")
    
    
    

もっと