RSI インディケーターに基づいた二重過剰購入/過剰売却戦略

作者: リン・ハーンチャオチャン, 日付: 2023-09-13 16:58:55
タグ:

この戦略は,RSI インディケーターに基づく二重超買/超売戦略と呼ばれる.より信頼性の高い取引信号のために,RSI インディケーターとストック RSI インディケーターの両方を使用し,超買と超売条件を決定します.

RSI指標は,価格の過買い/過売りレベルを反映する.RSI値が70を超えると過買い状態を示し,30を下回ると過売り状態を示します.RSI指標は,RSIが過買いまたは過売りゾーンに入っているかどうかを示します.

取引の論理は

RSIがユーザーによって定義された過買い線を超えると,ショートトレードを検討するための過買い条件が示されます.

RSIがユーザーによって定義された過売線を下回ると,ロング取引を検討するための過売条件を表示します.

一方,ストックRSIは,対応するエントリーシグナルを確認するために,過剰購入または過剰販売のシグナルを示さなければなりません.

この二重条件は より曖昧な信号をフィルタリングし 偽の突破を避けるために組み合わせます

この戦略の利点は,RSIの様々な派生指標を使用して,より正確なオーバーバイト/オーバーセール範囲判断を行うことである.しかし,最適化オーバーフィッティングリスクも注意すべきである.ストップロスは不可欠である.

概要すると,指標の組み合わせは慎重にバランスする必要があります.合理的な使用は結果を改善しますが,過度に最適化するリスクも伴います.トレーダーは依然として柔軟な判断が必要です.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-12 00:00:00
period: 4d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("test1","t1",overlay=true, default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=200, currency=currency.USD)
//user input
k_param = input(title = "k length", type = input.integer, defval = 14)
d_param = input(title = "d length", type = input.integer, defval = 3)
rsi_param = input(title = "RSI", type = input.integer, defval = 5)
upper = input(title = "over brought", type = input.integer, defval = 80)
lower = input(title = "over sold", type = input.integer, defval = 20)

//calculation
rsi = rsi(close,rsi_param)
stochastic = 100*(rsi - lowest(rsi,k_param))/(highest(rsi,k_param)-lowest(rsi,k_param))
SMA = sma(stochastic,d_param)

//DRAW
plot(upper,color = color.blue,linewidth = 2, title ="超买")
plot(lower,color = color.blue,linewidth = 2, title ="超卖")
plot(rsi,color = rsi>upper ?color.red:rsi<lower? color.green:color.black, linewidth=2,title ="ris超买超卖")
plot(stochastic,color = color.purple,title="震荡指数")
plot(SMA, color = color.orange,title="移动平均")

//trading
shortposition = crossover(rsi,upper)
longposition = crossunder(rsi,lower)
strategy.entry("卖",false,when =(shortposition))
strategy.entry("买",true,when = (longposition))
strategy.exit("止盈",profit = close*0.013/syminfo.mintick)

もっと