이 전략은 가격 역전 전략과 상대 강도 지표 (RSI) 지표를 결합하여 트렌드 판단과 과잉 구매 과잉 판매 검출의 유기적인 조합을 달성합니다. 가격 역전 부분은 가격 역전 신호가 발생했는지 판단하고 RSI 부분은 시장이 과잉 구매 또는 과잉 판매인지 결정하는 데 사용됩니다. 두 신호의 조합은 잘못된 신호를 효과적으로 필터링하고 신호 품질을 향상시킬 수 있습니다.
가격 반전 부분은 가격 반전을 판단하기 위해 123 패턴을 사용합니다. 구체적으로, 종료 가격이 2 일 연속으로 이전 종료 가격보다 낮고, 9 일 스토카스틱 지표 하단 채널 라인이 50보다 높을 때 구매 신호가 생성됩니다. 종료 가격이 2 일 연속으로 이전 종료 가격보다 높고, 9 일 스토카스틱 오시레이터 상단 채널 라인이 50보다 낮을 때 판매 신호가 생성됩니다.
RSI 부분은 상대적 강도 지수가 70보다 높거나 30보다 낮는지에 따라 시장이 과소매 또는 과소매인지 판단합니다. 70 이상의 RSI는 과소매 신호이며 30 이하의 RSI는 과소매 신호입니다.
마지막으로, 논리적인
판단하기 위한 여러 지표의 조합은 잘못된 신호를 효과적으로 필터링할 수 있습니다.
이 전략은 가격 패턴 지표와 과잉 구매 과잉 판매 지표를 동시에 사용합니다. 두 신호는 시장에 진입하기 전에 같은 방향으로 있어야합니다. 이것은 단일 지표가 생성 할 수있는 잘못된 신호를 최대한 필터링하고 각 입시 신호의 신뢰성을 보장 할 수 있습니다.
거래 방법은 역전과 트렌드를 기본으로 하고 부가적인 방식으로 합니다.
가격 반전 부분은 주로 123 패턴을 사용하여 반전 상황을 판단합니다. 이것은 전형적인 반전 거래 방법입니다. 동시에 RSI 지표는 트렌드를 판단하고 보조 확인 역할을 할 수 있습니다. 반전 기반 및 트렌드 지원의 조합은 트렌드 충돌을 피하면서 반전 기회를 포착 할 수 있습니다.
간단한 매개 변수 설정으로 실시간 거래가 쉬워집니다.
이 전략은 평준한 수의 매개 변수와 함께 두 가지 일반적인 지표만을 사용합니다. 이것은 실시간 거래에 낮은 어려움으로 전략의 전체 구조를 간단하고 명확하게 만듭니다. 이것은 라이브 거래자에게 매우 중요합니다.
역전 실패 위험
가격 반전 거래에는 완전히 피할 수없는 실패 가능성이 있습니다. 가격이 123 신호를 형성하지만 다시 반전되면 거래가 실패하게됩니다.
거래 빈도가 지나치게 높을 위험
전략 자체의 표준은 상대적으로 느슨하여 더 많은 거래 신호를 쉽게 생성합니다. 통제되지 않으면 과도하게 높은 운영 빈도, 거래 비용 및 심리적 압력 증가로 이어집니다.
잘못된 RSI 매개 변수 설정
RSI 지표의 과잉 구매/ 과잉 판매 영역은 30-70로 기본 설정됩니다. 이것들은 경험적 매개 변수입니다. 실제 시장이 일치하지 않으면 올바른 신호가 놓칠 수 있거나 잘못된 신호가 발급 될 수 있습니다.
단일 손실을 통제하기 위해 포지션 크기를 적절히 조정합니다.
거래 빈도를 줄이기 위해 필터링 조건을 높여주십시오. 예를 들어, 이동 평균 판단을 추가하십시오.
다른 시장을 테스트하고 합리적인 값을 설정하기 위해 RSI 매개 변수 범위를 동적으로 조정합니다.
이동 평균 지표 판단을 추가
기존의 기준에 따라 이동 평균 판단 규칙을 추가하여 소규모 소음을 어느 정도 필터링합니다.
RSI 파라미터 설정을 최적화
과거 데이터의 백테스팅을 통해, 과잉 구매 및 과잉 판매의 RSI 값의 최적의 매개 변수 조합을 테스트하고 결정합니다.
이윤/손실 비율은 지점 출구로 평가
기존의 스톱 로스 방법 외에도, 수익을 고정하기 위해 수익 목표 대 스톱 로스 관계 출구 메커니즘을 추가할 수 있습니다.
이 전략은 환전 기반 및 트렌드 지원의 거래 아이디어를 구현하기 위해 가격 반전 판단과 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 )