더블 리버설 전략을 기반으로


생성 날짜: 2024-02-26 12:07:32 마지막으로 수정됨: 2024-02-26 12:07:32
복사: 0 클릭수: 611
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 리버설 전략을 기반으로

개요

이중 반전 전략은 123 반전과 3 일 반전 형태를 결합한 양적 전략으로 거래 신호 품질을 높이고 위험을 줄이기 위해 사용된다. 이 전략은 K선 형태 지표와 결합된 차등 가격 지표를 사용하여 두 가지 지표가 동시에 신호를 발산할 때 거래하여 신호 정확도를 높인다.

전략 원칙

이중 반전 전략은 두 가지 다른 유형의 거래 전략을 결합합니다. 첫 번째 전략은 123 반전 전략입니다. 이 전략은 격차 지표를 사용하여 2 일 연속으로 종전 가격 반전을 수행하고, 임의의 지표가 하락을 유발할 때 신호를 냅니다. 다른 전략은 3 일 반전 형태 전략입니다. 이 전략은 3 일 k 라인을 관찰하고, 중간에 가장 낮은 가격과 마지막 날 종전 가격이 전날의 최고 가격보다 높을 때 신호를 냅니다.

구체적으로, 123 역전 전략은 9일 무작위 지표를 사용하여 과매매 현상을 판단한다. 가격이 2일 연속으로 하락하고, 무작위 지표가 50보다 낮으면 구매 신호로; 2일 연속으로 상승하고, 무작위 지표가 50보다 높으면 판매 신호로 한다. 3일 역전 형태 전략은 가격이 3일 동안 높은 다음 낮은 다음 높은 패턴이 나타나는지 검출한다. 이것은 단기간의 과매가 역전된 신호를 보여준다.

이중 역전 전략은 두 가지 전략이 동시에 신호를 발산하도록 요구합니다. 이것은 가짜 신호의 비율을 크게 줄여서 시스템이 높은 확률 기회에서만 거래하도록합니다.

우위 분석

단일 전략에 비해 이중 역전 전략은 다음과 같은 장점이 있다.

  1. 신호의 질을 높여서 가짜 신호를 줄여라
  2. 이중 지표 검증으로 철회 확률이 낮습니다.
  3. 단기 및 중장기 역전 기회를 최대한 활용하라
  4. 이해하기 쉽고 실행하기 쉽습니다.

위험과 해결

이중 반전 전략의 주요 위험은 일부 기회를 놓치는 것이다. 신호에 대한 요구 사항이 까다롭기 때문에 일부 단일 지표 거래 기회가 놓치게 될 것이다. 파라미터를 조정하여 지표 중 하나에 대한 조건을 완화하고 부분적으로 거래 빈도를 증가시킴으로써 해결할 수 있다.

또 다른 위험은 어떤 극단적인 상황에서는 이중 지표가 동시에 실패할 가능성이 높다는 것입니다. 이러한 상황에 대해, 손해 제도를 증가시킬 수 있으며, 지분을 신속하게 청산하여 손실을 줄일 수 있습니다. 또는 역사적으로 실패한 극단적인 상황 특성에 따라 거래 신호를 취소하여 입장을 피하십시오.

최적화 제안

이중 역전 전략은 다음의 몇 가지 측면에서 계속 개선될 수 있습니다.

  1. 과매매에 대한 판단의 정확성을 높이기 위해 무작위 지표 변수를 조정합니다.
  2. 다양한 종류의 거래에서 효과를 테스트하고 최적의 대상을 찾습니다.
  3. 기계 학습 모델 보조 판단을 증가시키고 신호 정확도를 향상시킵니다.
  4. 거래량 변화, 일간 변동 등과 같은 시장의 통계적 특성과 결합하여 포지션을 개시하는 최적의 시점을 찾아내는 방법

요약하다

이중 반전 전략은 반전 거래 사상과 k선 형태 분석을 성공적으로 결합했다. 그것은 가격의 단기 중기 반전의 본질적인 법칙을 충분히 탐구하고 반전이 제공하는 기회를 효과적으로 포착했다. 단순한 추세를 따르는 방법과 비교하여 이 전략은 위험을 통제하고 수익을 얻는 사이의 균형을 찾았다. 지속적인 최적화와 혁신을 통해 투자 가치는 지속적으로 검증 될 것이라고 믿는다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 17/04/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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.
//
// Secon strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// 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

BarReversalPattern() =>
    pos = 0.0
    pos := iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
	         iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Strategies 123 Reversal and 3-Bar-Reversal-Pattern", shorttitle="Combo Backtest", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
pos3BarReversalPattern = BarReversalPattern()
pos = iff(posReversal123 == 1 and pos3BarReversalPattern == 1 , 1,
	   iff(posReversal123 == -1 and pos3BarReversalPattern == -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 ? red: possig == 1 ? green : blue )