これは,亀の取引規則に基づくRSI指標を使用する短期取引戦略である.これは,RSI指標とウィリアムズアライガター指標を組み合わせ,RSIが過剰購入または過剰販売ゾーンに入ると反トレンド取引を行う.これは比較的保守的な短期取引戦略である.
この戦略は主に以下の原則に基づいています.
カメ取引のルールを用いて,比較的保守的な取引アプローチを採用して,明らかな逆転がある場合にのみ市場に参入します.
RSIインジケーターを使用して,過買い/過売状態を判断します.RSI線が過買いゾーン (デフォルト60以上) または過売ゾーン (デフォルト40以下) に入ると,市場は逆転点にあることを示し,反トレンド取引を行います.
ウィリアムズアライガター指標を組み合わせて市場傾向を決定する.アライガターが3つの線 (Lips, Teeth, Jaw) をダウントレンドに並べたときにのみショート; 3つの線がアップトレンドに並べたときにのみロング.
RSIのRSIを使用して,RSIインジケーターそのものの過買い/過売り状態を判断し,ダブルフィルター効果を生む.RSI線が過買い/過売りゾーンに入り,RSIのRSIも過買い/過売りゾーンに入り,取引信号が起動する時のみ.
ストップ・ロスを設定し,利益ラインを取ります. 価格が逆転し,利益を取ったり,損失を止めたりすると,利益を得たり,ストップ・ロスを取るためにポジションを閉じます.
この戦略には以下の利点があります.
市場が変動する際には 厳しいルールを適用し 明らかに逆転が起きるときにしか市場に入れないことが 大きなリスクを回避できます
RSIインジケーターを使用して市場の逆転点を決定すると,インジケーターはシンプルで明確で操作が簡単です. RSIの設定のRSIはウィップソウを避け,ダブルフィルターは信号の信頼性を向上させます.
トレンド方向を決定するためにアライガター指標を組み合わせると,トレンドに反する取引を避ける.アライガターは効率を高めるための追加のフィルターとして機能します.
ストップ・ロスを設定し 利益のロックを設定し リスクを制御します
パラメータを最適化しやすい.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 /////////////////////////////////////////////////////////////////////////////////