
この戦略は,相対的に強い指数 ((RSI)) を利用して,市場が過買過売を判断し,価格が200日単一の移動平均 ((SMA)) の上にある傾向フィルター条件として組み合わせて,取引を決定する.この戦略は,三重のRSI指標を使って,開店条件を共同構築し,短期RSIが35未満で,連続して3つの周期が下降傾向にあるときのみ,第三の周期RSIが60未満で,現在の閉店価格が200日SMAの上にあるときのみ,多額の取引を行う.平仓条件はRSIを50を越える.
この戦略は,三重RSIによってポジション開設条件を構成し,長期平均線上での価格をトレンドフィルターとして組み合わせて,このように超売り反転状況を捕捉する.戦略の論理は単純で,実行しやすく,最適化できる.しかし,戦略には,信号遅れ,取引頻度が低い,一方的な動きのみを捕捉できるなどのリスクと不足も存在し,実用的なアプリケーションで継続的に调整と改善が必要である.ストップ・ローズ・ストップ・ポジション,管理,その他の指標と組み合わせた方法などの導入により,戦略の安定性と収益性をさらに向上させることができる.
/*backtest
start: 2023-05-15 00:00:00
end: 2024-05-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
//@author Honestcowboy
//
strategy("Triple RSI [Honestcowboy]" )
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> User Inputs <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
rsiLengthInput = input.int(5, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> VARIABLE CALCULATIONS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> CONDITIONALS <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
rule1 = rsi<35
rule2 = rsi<rsi[1] and rsi[1]<rsi[2] and rsi[2]<rsi[3]
rule3 = rsi[3]<60
rule4 = close>ta.sma(close, 200)
longCondition = rule1 and rule2 and rule3 and rule4
closeCondition = rsi>50
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> GRAPHICAL DISPLAY <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
hline(30, title="Long Condition Line")
hline(50, title="Exit Condition Line")
plot(rsi)
plotshape(longCondition ? rsi-3 : na, title="Long Condition", style=shape.triangleup, color=color.lime, location=location.absolute)
plotshape(closeCondition and rsi[1]<50? rsi+3 : na, title="Exit Condition", style=shape.triangledown, color=#e60000, location=location.absolute)
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
// ---------> AUTOMATION AND BACKTESTING <----------- >>
// $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ >>
if longCondition and strategy.position_size==0
strategy.entry("LONG", strategy.long)
if closeCondition
strategy.close("LONG")