これは,RSI指標を使用して振動する市場を特定し,市場の振動中にトレンド逆転の機会を捕捉する取引戦略である.この戦略は,価格が高速RSI指標によって振動ゾーンに入ったかどうかを判断し,キャンドルスタックボディと高速RSI信号と組み合わせてエントリータイミングを決定する.
この戦略は主に以下の原則を基に機能する.
この戦略は,価格が30〜70の既定振動範囲に入っているかどうかを判断するために二期RSIを使用する.また,取引信号を生成する前にキャンドルボディがMAの1/4または1/2を突破することを要求する.このような二重条件チェックによって,偽信号は効果的にフィルタリングされ,実際の振動が起こる場合にのみ市場に参入することを保証することができる.
この戦略は以下のような重要な利点を示しています.
また,注意すべきリスクもいくつかあります.
リスク管理のために,パラメータの組み合わせを調整し,ライブ取引の検証とストップロスのメカニズムが推奨されます.
さらに最適化できる余地があります.
マルチインジケーター統合,適応パラメータ調整, アルゴ取引などの技術によって 戦略の安定性と収益性は 次のレベルに上がることができます
急速振動するRSIトレーディング戦略は,急速振動するRSIとダブルフィルターメカニズムを通じて価格振動を特定し,エントリータイミングを決定する.これは徹底的な研究と適用に値する効果的な戦略である.実際は,リスクを監視し,戦略の有効性をさらに高めるために多次元最適化が必要である.
/*backtest start: 2023-01-07 00:00:00 end: 2024-01-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's FRSI Strategy v1.22", shorttitle = "FRSI str 1.22", overlay = true ) //Settings uprsiperiod = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI UP Period") dnrsiperiod = input(9, defval = 9, minval = 2, maxval = 50, title = "RSI DN Period") limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit") rsisrc = input(close, defval = close, title = "RSI Price") rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars") sps = 0 fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Fast RSI fastup = rma(max(change(rsisrc), 0), uprsiperiod) fastdown = rma(-min(change(rsisrc), 0), dnrsiperiod) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Limits bar = close > open ? 1 : close < open ? -1 : 0 uplimit = 100 - limit dnlimit = limit //RSI Bars ur = fastrsi > uplimit dr = fastrsi < dnlimit uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0 dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0 //Body body = abs(close - open) emabody = ema(body, 30) //Signals up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4 dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4 exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2 //Trading if up strategy.entry("Long", strategy.long) sps := 1 if exit strategy.close_all() sps := 0