더블 리버설 트레일링 전략


생성 날짜: 2023-11-22 17:42:23 마지막으로 수정됨: 2023-11-22 17:42:23
복사: 0 클릭수: 563
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 리버설 트레일링 전략

개요

이중 반전 추적 전략은 123 반전과 핵심 반전 하락의 두 가지 하위 전략을 결합하여 보다 정확한 거래 신호 포착을 가능하게 한다. 이 중 123 반전 전략은 상쇄 가격과 전날의 대비를 관찰하여 스토흐 지표와 결합하여 잠재적인 반전을 판단한다. 핵심 반전 하락 전략은 하락 추세에서 새로운 하락을 관찰하여 반전 신호를 판단한다. 두 가지 전략 신호의 결합은 거래 결정을 보다 정확하고 신뢰할 수 있게 한다.

전략 원칙

이 전략은 두 개의 하위 전략으로 구성된다. 첫 번째 하위 전략인 123 역전 전략은 다음과 같은 판단 논리를 가지고 있다.

  1. 만약 오늘과 어제의 종식 가격이 전날보다 높고, 빠른 스토흐 지표가 느린 스토흐 지표보다 낮고, 빠른 선이 50보다 낮다면, 더 많이 한다.

  2. 만약 오늘과 어제의 종결 가격이 전날보다 낮고, 빠른 스토흐 지표가 느린 스토흐 지표보다 높고, 빠른 라인이 50보다 높다면, 공백한다.

두 번째 하위 전략은 핵심 반전 하락 전략입니다. 그 판단 논리는 간단합니다.

하향 추세에서, 새로운 하락점이 나타난다면, 공백을 다.

전체 전략의 거래 신호는, 두 가지 하위 전략의 신호가 동향될 때만 실제 거래 신호를 발산한다.

우위 분석

이 전략의 가장 큰 장점은 신호의 정확성이라는 것이다. 왜냐하면 이 전략은 두 개의 하위 전략의 신호 동향이 실제 주문하기 전에 필요하기 때문에, 일부 잡음 거래를 필터링 할 수 있어 전략의 안정성을 크게 향상시킨다.

또한, 이 전략은 여러 시간 차원의 정보를 동시에 결합하고, 이중 일선 비교와 스토흐 지표의 여러 일간의 정보를 포함하고, 판단 기반을 보다 포괄적이고 신뢰할 수 있게 한다.

원칙적으로, 이 전략은 반전 전략과 트렌드 전략의 특징을 동시에 충족시켜 현실에서 실제 적용에 적합하다.

위험 분석

이 전략의 가장 큰 위험은 이중 신호의 요구가 도표의 가능성을 높여준다는 것이다. 두 개의 하위 전략 신호가 일치하지 않을 때, 거래 기회를 놓치게 된다.

또한, 서브 전략 자체에도 문제가 있다. 123 역전 전략은 매개 변수에 대한 민감성이 높고, 신중한 테스트와 최적화를 필요로 한다. 핵심 역전 하락 전략은 충격 상황에 대한 효과가 좋지 않다.

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

최적화 방향

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

  1. 종별 특성에 더 잘 맞게 하위 정책 변수를 조정합니다.

  2. Volume, Volatility 등 보조적인 지표들을 도입하여 의사결정의 정확성을 높여주기 위한 것;

  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 )