
この戦略は,Relative Strength Index (RSI) の指標に基づいて設計され,RSIの指標によって超買い超売り状況を判断し,トレンド追跡を実現する. RSIが超売りラインを下回ったときに多出し,RSIが超買いラインを超えたときに空売りし,トレンドの主要なトレンドを追跡して利益を得る.
この策略は,RSI指標を使用して市場の超買い超売り状況を判断する. RSI指標は,一定の期間中の上昇と低下に基づいて計算され,RSIが30を下回ると超売りとみなされ,RSIが70を超えると超買いとみなされる.
具体的には,この戦略は,RSI計算パラメータ length=14,OverBought=70,OverSold=30を定義します. そして,閉じる価格に基づいてRSI値vrsiを計算します.vrsiがOverBuyラインより高いかOverSellラインより低いかを判断します.
この方法で,この戦略は,市場の主要なトレンドを捉え,超売点で購入し,超売点で販売し,トレンド追跡を実現します.
リスク対策:
この戦略は以下の点で最適化できます.
異なるRSI計算周期長,異なる超買超売り値をテストして,誤信号を減らすために最適なパラメータを見つけることができます.
平均線,MACDなどの指標がトレンドの方向を判断するために加えられ,トレンドの逆転点で誤った信号を生じないようにする.
ATRなどの指標に基づいて動的ストップポイントを設定し,ストップを市場の波動に近いものにすることができます.
RSIシグナルに基づいて,入場シグナルとして入場シグナルとして特定の価格レベルを突破したり,取引量を拡大したりなどの他の条件を追加して,入場精度を向上させることができます.
この戦略は,RSI指標によって超買い超売り状況を判断し,トレンドの捉えを実現する.従来の追跡ストップ・ロスの戦略と比較して,指標を使用して市場のタイミングを判断する利点がある.しかし,RSI指標は,トレンドの逆転点を判断できない,これはこの戦略の最適化が必要な方向である.パラメータの最適化,トレンドの判断,ダイナミックストップ・ロスの増加などの手段によって,戦略の安定性と収益性をさらに向上させることができる.
/*backtest
start: 2023-10-01 00:00:00
end: 2023-10-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("RSI Etoro Strategy", overlay=true, max_bars_back=2000)
// To use:
// Capital = capital * leverage
// Slippage Ticks: 3, 5 ? (Mainly for spread)
// etoroStopTicks: Set it accordingly to the stock (to corresponds to etoro default of 50 % for exemple...)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 12, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 1995)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 1995)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
length = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
etoroStopTicks = input( 120 )
// 120 because it is approximatively the number of ticks for default SL of 50% at x5 leverage for copper (no fee)...
price = close
vrsi = rsi(price, length)
if (not na(vrsi))
if (crossover(vrsi, overSold))
strategy.entry("RsiLE", strategy.long, comment="RsiLE", when = window())
if (crossunder(vrsi, overBought))
strategy.entry("RsiSE", strategy.short, comment="RsiSE", when = window())
strategy.exit("exit SE", "RsiSE", loss=etoroStopTicks, when = window())
strategy.exit("exit LE", "RsiLE", loss=etoroStopTicks, when = window())
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)