이중 반전 추적 전략

저자:차오장, 날짜: 2023-11-22 17:42:23
태그:

img

전반적인 설명

이중 역전 추적 전략은 더 정확한 거래 신호 캡처를 달성하기 위해 123 역전 및 키 역전 다운 하위 전략을 결합합니다. 123 역전 전략은 종료 가격과 전날 두 일간의 비교를 관찰하고 스톡 지표와 결합하여 잠재적 인 역전을 판단합니다. 키 역전 다운 전략은 하락 추세에서 새로운 최저치를 관찰하여 역전 신호를 판단합니다. 두 전략의 신호의 조합은 거래 결정을 더 정확하고 신뢰할 수 있습니다.

원칙

이 전략은 두 가지 하위 전략으로 구성됩니다. 첫 번째 하위 전략인 123 역전 전략은 다음과 같은 논리를 가지고 있습니다.

  1. 만약 오늘과 어제의 닫기 가격이 어제 전날보다 높고, 빠른 스톡 지표가 느린 스톡 지표보다 낮고, 빠른 라인이 50보다 낮다면, 긴 거래가 됩니다.

  2. 만약 오늘과 어제의 닫기 가격이 전날보다 낮고, 빠른 스톡 지표가 느린 스톡 지표보다 높고, 빠른 라인이 50보다 높다면, 짧은 지표로 이동하십시오.

두 번째 하위 전략, 키 역전 하위 전략은 매우 간단한 판단 논리를 가지고 있습니다.

하락 트렌드에서, 새로운 최저가 나타나면, 짧게 가십시오.

전체 전략의 실제 거래 신호는 두 부분 전략의 신호가 같은 방향으로 있을 때만 실제 거래 신호가 발산된다는 것입니다.

이점 분석

이 전략의 가장 큰 장점은 신호의 정확성과 신뢰성입니다. 실제로 명령을 내리기 전에 두 하위 전략의 신호가 같은 방향으로 있어야하기 때문에 소란스러운 거래가 필터링 될 수 있으며 이는 전략의 안정성을 크게 향상시킵니다.

또한 이 전략은 두 일간 라인 비교와 다일 주식 지표 정보를 포함한 다일 시간 프레임 정보를 결합하여 판단 근거를 더 포괄적이고 신뢰할 수 있습니다.

이 전략은 원칙적으로 역전 전략과 트렌드를 따르는 전략의 특징을 모두 만족시켜 현실에서의 실제 적용에 적합합니다.

위험 분석

이 전략의 가장 큰 위험은 이중 신호의 요구 또한 놓친 기회의 가능성을 증가한다는 것입니다. 두 부 전략의 신호가 일관성이 없을 때 거래 기회가 놓칠 것입니다.

또한, 하위 전략 자체에도 몇 가지 문제가 있습니다. 123 역전 전략은 매개 변수에 매우 민감하며 신중한 테스트와 최적화가 필요합니다. 키 역전 다운 전략은 다양한 시장에서 잘 작동하지 않습니다.

이러한 문제는 매개 변수를 조정하고 다른 보조 판단을 도입함으로써 해결할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 세부 전략의 매개 변수를 특정 제품의 특성에 더 잘 맞추기 위해 조정합니다.

  2. 결정 정확성을 향상시키기 위해 볼륨과 변동성 같은 보조 지표를 도입하십시오.

  3. 기계 학습 모델 판단을 강화하여 역사적 데이터를 사용하여 매개 변수를 자동으로 최적화합니다.

요약

이중 역전 추적 전략은 123 역전 및 키 역전 다운 하위 전략의 조합을 통해 역전 포획의 이중 보험을 달성합니다. 이 전략은 역전 및 트렌드-추천 전략의 장점을 현실에서 광범위한 응용 전망과 결합합니다. 매개 변수 및 모델 최적화를 통해이 전략의 효과를 더욱 향상시켜 역전 거래자에게 중요한 도구가 될 수 있습니다.


/*backtest
start: 2023-01-01 00:00:00
end: 2023-06-14 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 21/12/2020
// 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
// A key reversal is a one-day trading pattern that may signal the reversal of a trend. 
// Other frequently-used names for key reversal include "one-day reversal" and "reversal day."
// How Does a Key Reversal Work?
// Depending on which way the stock is trending, a key reversal day occurs when:
// In an uptrend -- prices hit a new high and then close near the previous day's lows.
// In a downtrend -- prices hit a new low, but close near the previous day's highs
//
// 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

KRD(nLength) =>
    pos = 0.0
    xHH = highest(high[1], nLength)
    C1 = iff(high > xHH and close < close[1], true, false)
    pos := iff(C1, -1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & Key Reversal Down", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
nLength = input(1, minval=1, title="Enter the number of bars over which to look for a new high in prices.")
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posKRD = KRD(nLength)
pos = iff(posReversal123 == 1 and posKRD == 1 , 1,
	   iff(posReversal123 == -1 and posKRD == -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 )

더 많은