
この戦略は,RSI指標を利用してショートライン取引を行う戦略である.これは,RSI指標とウィリアムズ魚指標を組み合わせて,RSI指標がオーバーバイまたはオーバーセール領域に入るときに逆転取引を行う,より保守的なショートライン取引戦略に属している.
この戦略は以下の原則に基づいています.
海取引法を用いて,市場が明らかに逆転した時にのみ入場し,より保守的な取引方法を採用する.
RSI指標を用いて市場の超買超売現象を判断する. RSI指標線が超買区 ((デフォルト60分界線以上) または超売り区 ((デフォルト40分界線以下) に入るときは,市場が逆転する臨界点にあることを示し,このとき反転取引が行われる.
ウィリアムズ魚指数と組み合わせて市場動向を判断する.魚指数で3つの均線 (赤唇線,白歯線,青線) が下行列された場合にのみ空きを考慮する.魚指数で3つの均線が上行列された場合にのみ多めに考慮する.
RSI指数のRSIを使用して,RSI指数の自己の超買超売現象を判断し,二重フィルタリング効果を形成する. RSI指数の線が超買超売領域に入るときのみ,同時にRSI指数のRSIも超買超売領域に入るときのみ,取引シグナルを発信する.
ストップラインとストップストップラインを設定する. 価格が逆転してストップラインまたはストップストップラインに達すると,平仓をストップストップまたはストップストップする.
この戦略の利点は以下の通りです.
市場が明らかに逆転した時にのみ入場する,堅実な海取引戦略を採用することで,市場の揺れが波及するときに方向性をなくする大きなリスクを回避できます.
RSIのRSI設定は,whipsawを回避し,ダブルフィルタリングは信号の信頼性を向上させる.
魚指標と組み合わせてトレンドの方向を判断し,逆転取引を避ける。魚指標は補助条件としてフィルタリング効果を加える。
ストップ・ストップ・ストラスト戦略を設定し,利益を固定し,リスクを制御します.
パラメータを簡単に最適化する. RSIのパラメータと出場条件は,異なる市場に応じて調整し,最適化戦略を行うことができる.
この戦略にはいくつかのリスクがあります.
RSI指標が偽信号を発する確率はあります。RSI指標は誤った超買い超売り信号を発する可能性があります。魚指標と組み合わせれば偽信号を発する確率は低くなります。
ストップポイントを過度に設定すると,損失が拡大する可能性があります. ストップポイントを適切に縮小して,単一の損失を減らすべきです.
逆転は必ずしもRSI超買い超売りゾーンで起こらない。市場の構造の変化が逆転点の変化を引き起こす可能性があり,適当にパラメータを調整する。
取引回数が少ない場合,長期間の取引なしの状況があります. 取引回数を増加させるために適切な条件を緩和することができます.
市場は長期にわたって上昇または下落し,ショートライン取引を困らせることがあります.適時,ポジション保持周期を調整し,取引周期を延長または短縮してください.
この戦略は以下の方向から最適化できます.
RSIのパラメータを最適化し,超買区と超売区の区間を調整し,異なる市場に対応する.
魚指標のパラメータを調整し,トレンドの方向を判断する精度を最適化します.
ストップ・ストップ・損失の設定を最適化して,最大限の撤回制御を実現し,より多くの利益をロックします.
KDJ,MACDなどの他の指標と組み合わせて信号の正確性を向上させる.
自動ストップ機能とストップトラッキング機能が追加され,単発損失を制御できます.
ポジション管理の最適化,異なる市場条件に応じてポジションのサイズを調整し,リスクを制御する.
トレンドがより顕著な時間帯で取引を行う.
この戦略は,全体として,より安定したショートライン取引戦略である.これは,より保守的な海取引戦略を採用し,同時にRSI指標を使用して反転点を判断し,そして魚指標でトレンド方向を判断することで,高リスク取引を効果的に回避し,安定した利益をロックすることができます.パラメータ設定,ストップ・ストップ・ストラスト戦略,その他の指標を組み合わせる手段を最適化することによって,この戦略の効果を継続的に向上させることができます.全体的に言えば,この戦略は,反転取引の市場感に興味を持ち,安定した利益を追求する投資家に適しています.
/*backtest
start: 2023-11-06 00:00:00
end: 2023-11-07 20:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee
//@version=4
strategy(title="RSI of Ultimate Oscillator [SHORT Selling] Strategy", shorttitle="RSIofUO" , overlay=false, pyramiding=1, default_qty_type=strategy.percent_of_equity, default_qty_value=20, initial_capital=10000, currency=currency.USD) //default_qty_value=10, default_qty_type=strategy.fixed,
//Ultimate Oscillator logic copied from TradingView builtin indicator
/////////////////////////////////////////////////////////////////////////////////
length1 = input(5, minval=1), length2 = input(10, minval=1), length3 = input(15, minval=1)
rsiUOLength = input(5, title="RSI UO length", minval=1)
sellLine = input (60, title="Sell at RSIofUO")
coverLine = input (75, title="Cover at RSIofUO")
riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(3,title="Stop Loss",minval=1)
showUO=input(false, "show Ultimate Oscialltor")
average(bp, tr_, length) => sum(bp, length) / sum(tr_, length)
high_ = max(high, close[1])
low_ = min(low, close[1])
bp = close - low_
tr_ = high_ - low_
avg7 = average(bp, tr_, length1)
avg14 = average(bp, tr_, length2)
avg28 = average(bp, tr_, length3)
out = 100 * (4*avg7 + 2*avg14 + avg28)/7
//Ultimate Oscillator
/////////////////////////////////////////////////////////////////////////////////
//Willimas Alligator copied from TradingView built in Indicator
/////////////////////////////////////////////////////////////////////////////////
smma(src, length) =>
smma = 0.0
smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
smma
//moving averages logic copied from Willimas Alligator -- builtin indicator in TradingView
sma1=smma(hl2,10)
sma2=smma(hl2,20)
sma3=smma(hl2,50)
//Willimas Alligator
/////////////////////////////////////////////////////////////////////////////////
//drawings
/////////////////////////////////////////////////////////////////////////////////
hline(sellLine, title="Middle Line 60 [Short Here]", color=color.red , linestyle=hline.style_solid)
obLevelPlot = hline(75, title="Overbought", color=color.blue , linestyle=hline.style_dashed)
osLevelPlot = hline(25, title="Oversold", color=color.blue, linestyle=hline.style_dashed)
fill(obLevelPlot, osLevelPlot, title="Background", color=color.blue, transp=90)
rsiUO = rsi(out,rsiUOLength)
ultPlot=plot(showUO==true? out : na, color=color.green, title="Oscillator")
plot(rsiUO, title = "rsiUO" , color=color.purple)
//drawings
/////////////////////////////////////////////////////////////////////////////////
//Strategy Logic
/////////////////////////////////////////////////////////////////////////////////
//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity * riskCapital / 100 ) / (close*stopLoss/100)
//check if cash is sufficient to buy qty1 , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1
strategy.entry(id="SERSIofUO", long=false, qty=qty1, when = sma1<=sma2 and sma2 < sma3 and close<sma2 and crossunder(rsiUO,sellLine) )
//strategy.entry(id="SERSiofUO", long=false, when = sma1< sma2 and crossunder(rsiUO,60) )
barcolor(abs(strategy.position_size)>=1 ? color.purple : na )
bgcolor(abs(strategy.position_size)>=1 ? color.purple : na , transp=70)
//partial exit
strategy.close(id="SERSIofUO", comment="PExit", qty=strategy.position_size/3, when=abs(strategy.position_size)>=1 and close< strategy.position_avg_price and crossover(rsiUO,30) )
strategy.close(id="SERSIofUO", comment="CloseAll", when=abs(strategy.position_size)>=1 and crossover(rsiUO,coverLine) )
//Strategy Logic
/////////////////////////////////////////////////////////////////////////////////