
この戦略は,相対的に強い指数 (RSI) とランダムな指数 (Stochastic RSI) の2つの指標を組み合わせて,デジタル通貨の買入と売却のシグナルを識別する.
戦略の主な構想は,まずRSI値を計算し,その後RSIに基づいてStochastic RSI指標,すなわちK値とD値を構築する.K値がD値を突破すると買い信号が生じ,K値を下回るとD値を突破すると売り信号が生じます.偽信号をフィルターするために,戦略は,変化率指数 ((RVI) とその平滑移動平均を導入して確認する.
RSI値は 14 の長さで計算されます.
RSIを基に14の長さで構築されたストーキャスティックRSI指標は,K値とD値 ((DはKの3期移動平均) を得ます).
計算長さは5のRVIとその信号線 ((すなわち,RVIの平滑移動平均) である.
KがDの上を通るとき,RVI >信号線で上1周期RVI <信号線であれば,買入信号が生じます.KがD下を通るとき,RVI <信号線で上1周期RVI >信号線であれば,売り出信号が生じます.
取引先の取引は,取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先の取引先である.
ストキャスティックRSIとRVIの二重確認と組み合わせると,偽信号を効果的にフィルターできます.
RVI指標は,短期間の超買いと超売りを反映し,極限点での開設を避ける.
ストキャスティックRSIは,KDJの金叉死叉形状を用い,買入・売却の位置を判断する.
この戦略は,FCT/BTCのようないくつかの仮想通貨の取引ペアで良い結果を出している.
ストップポイントの設定が不適切であれば, 監禁される可能性があります.
信号の発生頻度は高すぎると考えられ,取引費用は考慮すべき要因である.
KDJ指数とRVI指数は,偽信号を発生させ,不必要な損失を招く可能性があります.
戦略のパラメータは,異なる取引ペアに対して最適化され,普遍性は考慮される.
利潤をロックするために移動のストップを追加し,ストップロスを設定するためにATRを参照してください.
RVIパラメータとStochastic RSIパラメータを最適化して,信号をより明確にする.
取引量管理を強化し,単一の注文を過大にしないようにする.
フィルタリングメカニズムを追加し,高位開設を避ける. 変動率指標を導入して,現在の状態が揺れ動いているかどうかを判断することができる.
異なる仮想通貨のペアをテストし,最も適したものを探します.
この戦略は,まずRSI指標を使用してストキャスティックRSIを構築し,その後RVI指標と組み合わせて信号を確認し,短期間の超買い超売り現象を検出し,逆転点位でポジションを開きます. 利点は,偽信号をフィルターできる二重確認であり,欠点は,パラメータ過適合のリスクがある可能性があります. 全体的に,この戦略は,いくつかの取引ペアで良好な効果を上げ,さらに最適化することで,より安定した利益を得ることができます.
/*backtest
start: 2022-12-08 00:00:00
end: 2023-12-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="Stochastic RSI", shorttitle="Stoch RSI", overlay = true)
Per = input(5, title="Length", minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
K = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
D = sma(K, smoothD)
rvi = sum(swma(close-open), Per)/sum(swma(high-low),Per)
sig = swma(rvi)
//plot(rvi, color=green, title="RVI")
//plot(sig, color=red, title="Signal")
//plot(K, title="K")
//plot(D, title="D")
Dn = K <= D and K > 70 and rvi <= sig and rvi[1] >= sig[1]
Up= K >= D and K < 30 and rvi >= sig and rvi[1] <= sig[1]
ARROW = Up - Dn
plotarrow(ARROW, title="Down Arrow", colordown=red, transp=0, maxheight=10, minheight=10)
plotarrow(ARROW, title="Up Arrow", colorup=lime, transp=0, maxheight=10, minheight=10)
long = crossover(Up, Dn)
short = crossunder(Up, Dn)
last_long = long ? time : nz(last_long[1])
last_short = short ? time : nz(last_short[1])
long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)
//plot(long_signal, "BUY", color=green)
//plot(short_signal, "SELL", color=red)
strategy.entry("BUY", strategy.long, when=long_signal)
strategy.entry("SELL", strategy.short, when=short_signal)