価格逆転RSIコンボ戦略

作者: リン・ハーンチャオチャン, 日付: 2023年12月22日 11:53:11
タグ:

img

概要

この戦略は,価格逆転戦略と相対強度指標 (RSI) を組み合わせて,トレンド判断と過剰購入過売検知の有機的な組み合わせを達成する.価格逆転部分は価格逆転信号が発生したかどうかを判断し,RSI部分は市場が過剰購入または過剰販売かどうかを判断するために使用されます.この2つの信号の組み合わせは,誤った信号を効果的にフィルタリングし,信号品質を改善することができます.

戦略原則

価格逆転部分では,価格逆転を判断するために123パターンを使用します.特に,閉値が2日連続で前の閉値よりも低く,9日ストカスティックインジケーター下チャネルラインが50を超えると,購入信号が生成されます.閉値が2日連続で前の閉値よりも高く,9日ストカスティックオシレーターの上チャネルラインが50を下回ると,販売信号が生成されます.

RSIの部分は,相対強度指数が70以上または30以下であるかどうかに基づいて市場が過買いまたは過売れているかどうかを判断する.70を超えるRSIは過買い信号であり,30以下のRSIは過売れた信号である.

最後に,論理的なAND操作は,価格逆転信号とRSI信号で行われます.つまり,両方が購入または販売信号である場合にのみ,実際の取引信号が市場に参入するために生成されます.これは単一の指標からの偽信号を効果的にフィルタリングし,信号品質を改善します.

利点分析

  1. 判断するための複数の指標の組み合わせにより 誤った信号を効果的にフィルタリングできます

    この戦略は,価格パターン指標と過剰購入過剰販売指標を同時に使用する.この2つのシグナルが市場に参入する前に同じ方向にする必要があります.これは,1つの指標が生成する偽信号を最大限にフィルタリングし,各エントリー信号の信頼性を確保することができます.

  2. 逆転がメインで,トレンドが補助的な取引方法.

    価格逆転部分では,主に123パターンを使用して逆転状況を判断します.これは典型的な逆転取引方法です.同時に,RSIインジケーターはトレンドを判断し,補助的な確認として機能することもできます.逆転ベースのトレンドとトレンド支援の組み合わせは,トレンド衝突を回避しながら逆転機会を把握することができます.

  3. シンプルなパラメータ設定で 簡単なライブ取引が可能になります

    この戦略は,適度に多くのパラメータを持つ2つの一般的な指標のみを使用しています.これは,ライブ取引の難易度が低く,ライブ取引のマスターが容易で,戦略の全体構造をシンプルで明確にする.これはライブトレーダーにとって非常に重要です.

リスク分析

  1. 逆転失敗のリスク

    価格逆転取引に固有の失敗の可能性があり,完全に回避することはできません.価格が123信号を形成し,その後再び逆転すると,取引が失敗します.

  2. 取引頻度が過度に高いリスク

    戦略そのものの基準は比較的緩いので,簡単により多くの取引信号を生成します.制御しなければ,過剰な高回転,取引コストの増加,心理的圧力につながります.

  3. RSI パラメータの設定が不正です.

    RSIインジケーターのオーバーバイト/オーバーセールゾーンが 30-70 にデフォルトされます.これらは経験的パラメータです.実際の市場が一致しない場合,正しい信号が見逃され,または間違った信号が発行されることがあります.

リスク軽減

  1. 単一の損失を制御するために,ポジションサイズを適切に調整する.

  2. 取引頻度を減らすためにフィルタリング条件を増やす.例えば,移動平均判断を追加します.

  3. 異なる市場をテストし,合理的な値を設定するために RSI パラメータ範囲を動的に調整します.

戦略の最適化

  1. 移動平均指標の判断を加える

    既存の基準で,移動平均判断規則を追加して,小範囲のノイズを一部フィルタリングします.

  2. RSI パラメータ設定を最適化

    過去のデータをバックテストして,RSIの過剰購入値と過剰販売値の最適なパラメータ組み合わせをテストし,決定する.

  3. ポジション終了として利益損失比を評価する.

    既存のストップ損失方法に加えて,利益を固定するために,利益目標対ストップ損失関係離脱メカニズムを追加することができます.

概要

この戦略は,価格逆転判断とRSI指標判断の二重確認を使用して,逆転ベースのトレンド支援の取引アイデアを実装する.同時に,パラメータ設定は,ライブ取引のためにシンプルで理解しやすい.最適化を通じて,シグナルキャプチャ品質を維持しながら取引頻度を減らすためにより多くのフィルタリング条件を追加することができます.この戦略の全体的なパフォーマンスは良好であり,実践的な使用に価値があります.


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/08/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The RSI is a very popular indicator that follows price activity. 
// It calculates an average of the positive net changes, and an average 
// of the negative net changes in the most recent bars, and it determines 
// the ratio between these averages. The result is expressed as a number 
// between 0 and 100. Commonly it is said that if the RSI has a low value, 
// for example 30 or under, the symbol is oversold. And if the RSI has a 
// high value, 70 for example, the symbol is overbought. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


mRSI(Length,Oversold,Overbought) =>
    pos = 0.0
    xRSI = rsi(close, Length)
    pos:=iff(xRSI > Overbought, 1,
	       iff(xRSI < Oversold, -1, nz(pos[1], 0)))   
    pos

strategy(title="Combo Backtest 123 Reversal & RSI", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- RSI ----")
LengthRSI = input(12, minval=1)
Oversold = input(30, minval=1)
Overbought = input(70, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posmRSI = mRSI(LengthRSI,Oversold,Overbought)
pos = iff(posReversal123 == 1 and posmRSI == 1 , 1,
	   iff(posReversal123 == -1 and posmRSI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

もっと