이중 반전 거래 전략

저자:차오장, 날짜: 2023-11-01 16:49:36
태그:

img

전반적인 설명

이중 반전 거래 전략은 트렌드 반전이 발생했을 때 거래 기회를 효율적으로 포착하기 위해 123 반전N 연속 바 다운 하위 전략을 결합합니다. 이 전략은 중장기 거래에 더 적합합니다.

전략 논리

123 반전

123 역전 하위 전략은 다음과 같은 원칙에 기초합니다.

앞날 두 날의 종료 가격이 역전되는 경우 (예: 이전 종료가 전날의 종료보다 높으면, 현재 종료가 이전 종료보다 낮습니다) 그리고 9일 빠른 스토카스틱이 50보다 낮을 때 긴 경로로 이동합니다.

지난 두 일간의 종료 가격이 역전되는 경우 (예: 이전 종료가 전날 종료보다 낮다면, 현재 종료가 이전 종료보다 높을 경우) 및 9일 빠른 스토카스틱이 50보다 높을 때 짧은 경로로 이동합니다.

이 하위 전략은 스토카스틱 지표와 결합한 이전 두 개의 종료 가격의 역을 판단하여 트렌드 반전을 식별합니다.

N 연속 바 아래로

N 개의 연속적인 아래로 내려가는 하위 전략은 다음과 같은 원칙에 기초합니다.

최근 N 바를 세어 닫기 가격이 연속 하락 움직임을 보이는지 확인합니다. 네, 짧은 신호가 생성됩니다.

이 하위 전략은 연속적인 하향 가격 움직임에 의해 트렌드 반전을 식별합니다.

신호 조합

이중 반전 거래 전략은 두 부전략을 결합하여 동시에 긴 신호나 짧은 신호가 발동될 때만 실제 포지션을 취합니다.

이것은 일부 잘못된 신호를 필터링하고 거래 신호를 더 신뢰할 수 있도록 도와줍니다. 역전 및 연속 하향 신호의 조합은 또한 트렌드 역전 시기를 더 정확하게 식별 할 수 있습니다.

이점 분석

이중 반전 거래 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 여러 하위 전략을 결합하면 잘못된 신호를 효과적으로 필터링하고 신호의 신뢰성을 향상시킵니다.

  2. 123 반전 전략은 단기 트렌드 반전 지점을 정확하게 식별 할 수 있습니다. N 바 연속 하락 전략은 중장기 반전을보고 있습니다. 둘은 서로를 보완하고 중장기 수준에서 단기 기회를 포착합니다.

  3. 주식 차트에서 나오는 기술적 지표를 이용하면 전략이 다양한 제품에 대한 매개 변수를 조정할 수 있도록 유연합니다.

  4. 전략 논리는 간단하고 이해하기 쉽고 추적 할 수 있으며 초보자도 배울 수 있습니다.

  5. 하위 전략의 사용자 정의 가능한 매개 변수는 다양한 제품에 대한 최적화를 허용하여 적응력을 향상시킵니다.

위험 분석

또한 이중 역전 거래 전략과 관련된 몇 가지 위험이 있습니다.

  1. 반전 신호는 때때로 잘못된 신호를 줄일 수 있습니다. 결합 된 신호가 잘못된 신호를 줄이기는 하지만 위험을 완전히 제거 할 수 없습니다. 중지 사용을 권장합니다.

  2. 하위 전략은 간단한 지표를 사용하며 복잡한 시장 상황에 잘 적응하지 않을 수 있습니다. 적응력을 향상시키기 위해 더 많은 기술적 지표 또는 기계 학습이 도입 될 수 있습니다.

  3. 하위 전략 매개 변수는 다른 제품에 최적화되어야합니다. 그렇지 않으면 과잉 적합 문제가 발생할 수 있습니다.

  4. 반전 전략은 중장기적으로 더 적합합니다. 단기적으로 중단 될 위험이 있습니다. 적절한 포지션 보유 기간이 조정되어야합니다.

  5. 변동 신호는 한 트렌드의 범위 제한된 수정이 발생할 수 있습니다. 주요 트렌드와 일관성을 보장하기 위해 전체 트렌드가 확인되어야합니다.

최적화 방향

이중 반전 거래 전략은 다음 측면에서 최적화 될 수 있습니다:

  1. 더 많은 기술적 인 지표를 도입하고 복잡한 시장 상황에 적응력을 향상시키기 위해 다중 요인 모델을 구축하십시오. 예를 들어 이동 평균, 볼링거 밴드 등을 결합하십시오.

  2. 기계 학습 모델을 추가하여 다차원 기능을 활용하고 신호 정확도를 향상시킵니다. 예를 들어 무작위 숲이나 신경 네트워크를 도입하십시오.

  3. 적응력을 향상시키기 위해 훈련을 통해 다른 제품에 대한 매개 변수를 최적화합니다. 유전 알고리즘은 최적의 매개 변수 조합을 검색하는 데 사용할 수 있습니다.

  4. 단일 거래 위험을 제어하기 위해 스톱 로스 전략을 포함합니다. 스톱 로스 레벨은 데이터에 의해 최적화 될 수도 있습니다.

  5. 시장 조건과 하위 전략 신호에 기초한 역동적 위치 크기 메커니즘을 개발하여 위험을 줄이십시오.

  6. 트렌드 필터링 모듈을 도입하여 전체 트렌드와 신호 모순을 피합니다. 간단한 이동 평균을 사용하여 트렌드를 결정할 수 있습니다.

결론

이중 역전 거래 전략은 123 역전 및 N 연속 바 다운 하위 전략을 결합하여 트렌드 역전을 효율적으로 포착합니다. 중장기 보유에 더 적합하며 트렌드 역전 중에 신뢰할 수있는 거래 기회를 제공하기 위해 잘못된 신호를 필터링 할 수 있습니다. 그러나 더 복잡한 시장 환경에 적응하기 위해 더 많은 기술적 지표와 최적화, 스톱 로스 및 포지션 사이징과 함께 위험을 낮추기 위해 더 많은 기술적 지표와 최적화를 도입하여 해결해야 할 몇 가지 제한 사항도 있습니다. 전반적으로, 트렌드 역전 거래에 간단하고 직접적인 접근 방식을 제공하며 양적 거래 전략을 이해하고 배우는 초보자에게 좋은 학습 자료로 사용됩니다. 더 많은 최적화 기술로 인해 매우 실용적인 양적 거래 전략이 될 수 있습니다.


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-28 03:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 24/03/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
// Evaluates for n number of consecutive lower closes. Returns a value 
// of 1 when the condition is true or 0 when false.
//
// 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


NBD(nLength) =>
    pos = 0.0
    nCounter = 0
    nCounter :=  iff(close[1] <= open[1], nz(nCounter[1],0)+1,
                   iff(close[1] > open[1], 0, nCounter))
    C2 = iff(nCounter >= nLength, 1, 0)
    posprice = 0.0
    posprice := iff(C2== 1, close, nz(posprice[1], 0)) 
    pos := iff(posprice > 0, -1, 0)
    pos

strategy(title="Combo Backtest 123 Reversal & N Bars Down", 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, "---- N Bars Down ----")
nLength = input(4, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posNBD = NBD(nLength)
pos = iff(posReversal123 == 1 and posNBD == 1 , 1,
	   iff(posReversal123 == -1 and posNBD == -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 )

더 많은