RSI オシレーター カメ トレーディング 短期戦略

作者: リン・ハーンチャオチャン, 日付: 2023-11-14 15:59:25
タグ:

img

概要

これは,亀の取引規則に基づくRSI指標を使用する短期取引戦略である.これは,RSI指標とウィリアムズアライガター指標を組み合わせ,RSIが過剰購入または過剰販売ゾーンに入ると反トレンド取引を行う.これは比較的保守的な短期取引戦略である.

戦略の論理

この戦略は主に以下の原則に基づいています.

  1. カメ取引のルールを用いて,比較的保守的な取引アプローチを採用して,明らかな逆転がある場合にのみ市場に参入します.

  2. RSIインジケーターを使用して,過買い/過売状態を判断します.RSI線が過買いゾーン (デフォルト60以上) または過売ゾーン (デフォルト40以下) に入ると,市場は逆転点にあることを示し,反トレンド取引を行います.

  3. ウィリアムズアライガター指標を組み合わせて市場傾向を決定する.アライガターが3つの線 (Lips, Teeth, Jaw) をダウントレンドに並べたときにのみショート; 3つの線がアップトレンドに並べたときにのみロング.

  4. RSIのRSIを使用して,RSIインジケーターそのものの過買い/過売り状態を判断し,ダブルフィルター効果を生む.RSI線が過買い/過売りゾーンに入り,RSIのRSIも過買い/過売りゾーンに入り,取引信号が起動する時のみ.

  5. ストップ・ロスを設定し,利益ラインを取ります. 価格が逆転し,利益を取ったり,損失を止めたりすると,利益を得たり,ストップ・ロスを取るためにポジションを閉じます.

利点分析

この戦略には以下の利点があります.

  1. 市場が変動する際には 厳しいルールを適用し 明らかに逆転が起きるときにしか市場に入れないことが 大きなリスクを回避できます

  2. RSIインジケーターを使用して市場の逆転点を決定すると,インジケーターはシンプルで明確で操作が簡単です. RSIの設定のRSIはウィップソウを避け,ダブルフィルターは信号の信頼性を向上させます.

  3. トレンド方向を決定するためにアライガター指標を組み合わせると,トレンドに反する取引を避ける.アライガターは効率を高めるための追加のフィルターとして機能します.

  4. ストップ・ロスを設定し 利益のロックを設定し リスクを制御します

  5. パラメータを最適化しやすい.RSI パラメータとエントリー/アウトグイト 基準は,戦略を最適化するために異なる市場に調整できます.

リスク分析

この戦略にはいくつかのリスクもあります:

  1. RSIインジケーターから誤った信号が出る可能性もあります.RSIは誤った過剰購入/過剰売却信号を与える可能性があります.アライガターを組み合わせると誤った信号が減少します.

  2. ストップ・ロスは幅が大きすぎると損失が増加する可能性があります.ストップ・ロスは,取引損失を減らすために適切に狭めなければなりません.

  3. 逆転は,RSIの過買い/過売りゾーンでは正確に起こらない可能性があります.市場体制の変化は逆転点を移動させ,パラメータを相応に調整する必要があります.

  4. 取引が少なく,取引が行われない時期がある場合,入場基準は緩和され,取引の数を増やすことができます.

  5. 長期にわたる市場傾向は,短期間の取引を困難にする可能性があります.保持期間を適時に調整し,取引期間を延長または短縮する必要があります.

オプティマイゼーションの方向性

戦略は以下の側面で最適化できます.

  1. RSIのパラメータを最適化し 超買い/超売ゾーンを調整し 異なる市場に対応します

  2. トレンドの方向性を決定する精度を向上させるため アリガターのパラメータを調整します

  3. ストップ・ロストを最適化し 利益設定を設定して 引き下げを最大限に抑え より多くの利益を得ます

  4. KDJ,MACDなどの他の指標と組み合わせることで信号の精度が向上します

  5. 自動ストップ損失を追加し,トラッキングストップ損失を 単一のトレード損失を よりよく制御します.

  6. リスクを管理するために,異なる市場条件下でポジションのサイズを最適化します.

  7. トレードセッションを最適化し 傾向が明らかになる時に取引する

概要

概要すると,これは比較的堅牢な短期取引戦略である.保守的な亀取引アプローチを採用し,逆転点を決定するために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 
/////////////////////////////////////////////////////////////////////////////////



もっと