
RSI指数と平均線交差戦略は,相対的に強い指標 ((RSI) と移動平均を組み合わせた量的な取引戦略である.この戦略は,RSI指数を使用して,証券の価値の超買い超売り状況を判断し,RSIと平均線の黄金の交差点と死叉信号を組み合わせて,看板または看板ポジションを決定する.
RSI指標の値を計算する. RSI指標は,期間中の上昇と低下を基に,平均閉店の上昇と平均閉店の低下を比較して,証券が過買または過売であるかどうかを判断する.
RSI指標の移動平均MAを計算する.指数移動平均EMAまたは単純移動平均SMAを使用する.
RSIの上側が移動平均を突破すると,金色のクロス信号が生じ,多めにします.RSIの下側が移動平均を突破すると,デッドフォーク信号が生じ,空っぽになります.
RSIが超買線より高いときは,証券を超買とし,空白する.RSIが超売線より低いときは,証券を超売とし,多額にする.
指標と平均線の交差信号を組み合わせて,単一の指標に頼らないようにし,意思決定の正確性を向上させる.
RSIの指標を使って,超買超売のタイミングを判断し,超買超売のラインを設定し,ポジションとストップのタイミングを決定します.
指数と平均線を交差して多額の空調を行うことで,市場の転換点をタイムリーに捉えることができる.
RSIは波動的な状況で誤信号を発する傾向があります.
RSIの超買超売の判断は調整可能で,不適切な設定は過度に緩やかまたは厳格に導きます.
均線システムは,短期的な異常波動に過度に敏感であり,ストップダメージに閉じ込められる可能性がある.
RSIパラメータを調整し,最適な長さのパラメータを探します.
移動平均のパラメータを最適化して,最適な平均線周期を探します.
異なる超買超売ラインのパラメータをテストし,ポジション構築の機会を最適化します.
他の指標のフィルター信号と組み合わせて,誤った取引を避ける.
RSI指数と平均線交差戦略は,RSI判断を活用し,オーバーバイオーバーセールと移動平均線交差信号を組み合わせて,市場のホットスポットを効果的に判断し,重要なポイントで反転の機会を捕捉します.パラメータの最適化と信号のフィルタリングにより,戦略のパフォーマンスを改善し,取引リスクを減らすことができます.この戦略は,中短線トレーダーに適しており,優れた余剰利益を提供することができます.
/*backtest
start: 2022-12-14 00:00:00
end: 2023-12-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//dfurrer45
strategy(title="Relative Strength Index", shorttitle="RSI", overlay=true)
src = close, len = input(13, minval=1, title="Length"), maLen = input(9, minval=1, title="MA Lenght"), exponential = input(false, title="Exponential")
// === BACKTEST RANGE ===
FromMonth = input(defval = 10, title = "From Month", minval = 1)
FromDay = input(defval = 3, title = "From Day", minval = 1)
FromYear = input(defval = 2017, title = "From Year", minval = 2014)
ToMonth = input(defval = 1, title = "To Month", minval = 1)
ToDay = input(defval = 1, title = "To Day", minval = 1)
ToYear = input(defval = 9999, title = "To Year", minval = 2014)
// === BACKTEST END ===
backtestdaterange = (time > timestamp(FromYear, FromMonth, FromDay, 00, 00))
rsioverbought = input(90, minval=1, title="RSI % start overbought")
rsioversold = input(10, minval=1, title="RSI % start oversold")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
ma = exponential ? ema(rsi, maLen) : sma(rsi, maLen)
rsimacrossup = cross(rsi,ma) and rsi > ma
rsimacrossdown = cross(rsi,ma) and rsi < ma
plotchar(rsimacrossup, char='⇧', location = location.belowbar, color = green, text = "", textcolor = green, size=size.small)
plotchar(rsimacrossdown, char='⇩', location = location.abovebar, color = red, text = "", textcolor = red, size=size.small)
plotchar(rsi > rsioverbought, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
plotchar(rsi < rsioversold, char='x', location = location.belowbar, color = aqua, text = "", textcolor = red, size=size.small)
closetrade = rsimacrossup or rsimacrossdown
strategy.close_all(closetrade)
strategy.close_all((rsi > rsioverbought) or (rsi < rsioversold))
strategy.entry("Short Overbought",strategy.short, when=(rsi > rsioverbought) and backtestdaterange)
strategy.entry("Buy Overbought",strategy.long, when=(rsi < rsioversold) and backtestdaterange)
strategy.entry("Long Cross", strategy.long, when=rsimacrossup and backtestdaterange)
strategy.entry("Short Cross", strategy.short, when=rsimacrossdown and backtestdaterange)