
リバースエンジニアリングRSI戦略は,RSI指標をベースにした取引戦略である.この戦略は,RSI指標の計算プロセスを模倣して,価格を逆行推論し,取引信号を生成する.
この戦略の核心となる考えは,
RSI指標のK値,ExpPer周期,AUCの上昇順序とADCの低下順序を計算する.
RSIのパラメータ設定により,ADC,AUCの序列値などを逆算してnValが得られる.
nVal を価格に加えると,nRes を逆に求めます.
nResと現在のクローズ価格を比較して,長ポジションと短ポジションのシグナルを生成する.
具体的には,策略は,まず,K値,ExpPer周期,AUCの上昇順序,ADCの低下順序を含むRSI内のいくつかの重要なパラメータを計算します. K値は平滑因子であり,ExpPerはRSIパラメータの設定の2倍減1です.
これらのパラメータに基づいて,策略は価格を逆推論する.まず,nValという重要な変数を計算し,それは ((WildPer - 1) になる.*(ADC_ Value / (100 - Value) - AUC) ┃ この公式は,RSIの計算過程を逆転推論する。
次に,nValを現在のクローズ価格に足し,逆転工程の価格nResが得られます. 最後に,nResが現在のクローズ価格より高い場合,ショートポジションシグナルが生じ,nResが現在のクローズ価格より低い場合,ロングポジションシグナルが生じます.
この戦略の利点は以下の通りです.
RSI指標の計算プロセスを利用して逆推論を行います.アイデアは新鮮で,一定の革新性があります.
市場とは逆の取引シグナルを生成する価格の逆エンジニアリングは,空白効果を実現し,戦略の適用範囲を広げます.
RSIは,パラメータ設定が合理的で,信頼性が高く,リスクが低い成熟した,よく使用される取引指標である.
戦略は明快でわかりやすく,パラメータは少なく,実行が簡単で,量化取引の要求に適しています.
この戦略にはいくつかのリスクがあります.
逆転工程価格はRSIのみに基づいて計算され,RSIが誤った信号を発した場合は,戦略信号も失効する.
逆転信号は市場全体の動きと合致しない可能性があり,大市場の状況に注目する必要がある.
RSIパラメータの設定は経験が必要で,不適切な場合は,過度に頻繁な取引や誤ったシグナルを発出する可能性があります.
リバースオペレーションは空白のリスクが高いため,厳格な資金管理が必要で,ポジション破綻を防ぎます.
RSIのパラメータを最適化して,他の指標と組み合わせて,厳格な資金管理によってリスクを制御することができます.
この戦略は以下の点で最適化できます.
RSIのパラメータ,WildPerとValueを最適化して,市場状況に適した状態にします.
利潤を固定し,損失を減らすため,ストップ・ロスの策を導入する.
MACDなどの他の指標と組み合わせて最適化され,信号がより正確かつ信頼性が高くなります.
取引の誤りを避けるために,開設条件のフィルタリングを追加しました.
資金管理戦略を最適化し,単一取引の資金量を厳格に管理し,許容範囲を超えた損失を防止する.
逆エンジニアリングRSI戦略は,RSI指標の計算プロセスを逆推し,市場とは逆の取引信号を生成する.この戦略の考え方は独特で,ある程度の革新性があり,空白を実現し,戦略の適用範囲を拡大することができる.しかし,適切な最適化とリスク管理を必要とする逆操作のリスクもあります.全体的に,この戦略は,量化取引のための新しい考えとツールを提供します.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 25/10/2017
// The related article is copyrighted material from
// Stocks & Commodities.
//
// You can change long to short in the Input Settings
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
strategy(title="Reverse Engineering RSI, by Giorgos Siligardos", overlay = true)
Value = input(50, minval=1)
WildPer = input(14,minval=1)
reverse = input(false, title="Trade reverse")
ExpPer = 2 * WildPer - 1
K = 2 / (ExpPer + 1)
AUC = iff(close > close[1], K * (close - close[1]) + (1 - K) * nz(AUC[1], 1), (1-K) * nz(AUC[1], 1))
ADC = iff(close > close[1], (1-K) * nz(ADC[1], 1), K * (close[1] - close) + (1 - K) * nz(ADC[1], 1))
nVal = (WildPer - 1) * (ADC * Value / (100 - Value) - AUC)
nRes = iff(nVal >= 0, close + nVal, close + nVal * (100 - Value) / Value)
pos = iff(nRes > close, -1,
iff(nRes < close, 1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(nRes, color=blue, title="Reverse Engineering RSI")