트렌드 역전과 10 오시레이터 두 가지 전략이 결합된 크로스 트렌드 역전

저자:차오장, 날짜: 2024-01-19 14:41:02
태그:

img

전반적인 설명

이 전략은 주로 두 가지 다른 유형의 전략의 신호를 결합하여 전략 신호를 중첩하고 신호 품질을 향상시킵니다. 첫 번째 유형의 전략은 크로스 트렌드 역전 전략이며 두 번째 유형의 신호는 3 10 오시레이터 전략입니다.

전략 1: 크로스 트렌드 역전 전략

이 전략은 책 How I Tripled My Money in the Futures Market의 183 페이지에서 유래되었다. 이 전략은 역전형 전략에 속한다. 구체적인 논리는 다음과 같다: 닫기 가격이 2일 연속으로 이전 닫기 가격보다 높고, 9일 느린 K 라인이 50보다 낮을 때, 긴; 닫기 가격이 2일 연속으로 이전 닫기 가격보다 낮고, 9일 빠른 K 라인이 50보다 높을 때, 짧은.

전략 2: 3-10 오시레이터 전략

이 전략은 3일 이동 평균과 10일 이동 평균의 차이를 사용하여 지표를 구성합니다. 구체적으로, 3일 기하급수적 이동 평균 빼기 10일 기하급수적 이동 평균입니다. 차이점은 빠른 라인입니다. 이 빠른 라인의 16일 간단한 이동 평균을 취하면 느린 라인을 제공합니다. 빠른 라인이 아래에서 위로 느린 라인을 뚫고 갈 때 길게; 빠른 라인이 위에서 아래로 느린 라인을 뚫고 갈 때 짧게.

전략 원칙

  • 먼저 트렌드 역전 전략의 트레이딩 신호 posReversal123를 계산합니다.
  • 그 다음 10 오시레이터 전략 중 3의 거래 신호 posD_3를 계산합니다.
  • 두 신호가 같은 방향으로 있을 때 (두중 멀티 또는 두중 단), 복합 신호를 출력한다.
  • 종합 신호 포스 (pos) 를 기반으로 특정 거래 방향과 가격을 결정합니다.
  • 서로 다른 색으로 K선을 그립니다.

이점 분석

이 복합 신호는 다음과 같은 장점을 가지고 있습니다.

  1. 가짜 신호를 필터링하고 신호 품질을 향상

    동시에 같은 방향으로 신호를 보내기 위해 두 가지 전략이 필요하기 때문에 하나의 전략에서 가짜 신호의 영향을 피할 수 있으며, 이로 인해 신호 신뢰성이 향상됩니다.

  2. 여러 거래 아이디어를 통합

    역전 전략과 트렌드 전략을 결합하면 두 가지 아이디어가 어느 정도 통합됩니다. 전략의 맹점을 줄이고 더 포괄적인 시장 관점을 얻습니다.

  3. 높은 유연성

    실제 필요에 따라 참여 전략의 조합은 다양한 유형의 전략을 결합함으로써 더 다양한 조합 전략을 만들기 위해 조정 될 수 있습니다.

위험 분석

  1. 모순된 가정

    이 전략의 기본 가정은 여러 전략이 서로 신호를 확인할 수 있다는 것입니다. 그러나 이론적으로는 모든 전략이 동시에 잘못된 신호를 줄 수도 있습니다.

  2. 불일치 신호

    두 가지 전략 신호가 일치하지 않을 때 어느 전략이 더 신뢰할 수 있는지 결정하는 것은 불가능하며 결정 위험이 있습니다.

  3. 매개 변수 불일치

    부적절한 매개 변수 설정으로 인해 일부 전략이 제대로 작동하지 않을 수 있으며, 결과적으로 전략 조합의 예상 효과를 달성하지 못합니다.

대책:

  1. 다수 투표를 위한 전략의 수를 늘려

  2. 개별 신호로부터 손실을 제어하기 위해 중지 손실 포인트를 설정

  3. 정상적인 전략 운영을 보장하기 위해 매개 변수를 최적화

최적화 방향

이 전략은 또한 다음과 같은 방향으로 최적화 될 수 있습니다.

  1. 더 많은 전략의 조합을 증가

    신호 품질을 더 향상시키기 위해 조합 전략을 형성하기 위해 더 많은 다른 유형의 전략을 추가합니다.

  2. 사전 필터링 조건

    시장 조건에 따라 시장 필터링과 같은 몇 가지 사전 조건이 설정될 수 있습니다. 부적절한 시장 조건에서 포지션을 개설하는 것을 피하기 위해서입니다.

  3. 전략 무게를 동적으로 조정합니다.

    조합의 다른 전략의 무게는 그들의 역사적 성과에 따라 동적으로 조정될 수 있으므로 더 나은 성과를 가진 전략이 더 큰 역할을 할 수 있습니다.

  4. 매개 변수 세부 사항을 최적화

    보다 체계적인 접근법을 사용하여 최적의 매개 변수를 얻기 위해 각 전략의 내부 매개 변수를 신중하게 테스트하고 최적화 할 수 있습니다.

요약

이 전략은 멀티 전략 오버레이 복합 전략에 속한다. 크로스 트렌드 역전 전략과 3-10 오스실레이션 전략이라는 두 가지 하위 전략을 통합한다. 거래 신호가 같은 방향으로 있을 때만 거래 명령을 생성하여 단일 전략에서 가짜 신호를 효과적으로 필터링하고 신호 품질을 향상시킬 수 있다. 단일 전략과 비교하면, 이 유형의 전략 조합은 신호 신뢰성 높고 더 강한 오류 내성을 갖는 등의 장점을 가지고 있다. 그러나 일관성 가정에 의한 위험도 주목해야 하며, 이를 통제하기 위한 적절한 조치를 취해야 한다. 일반적으로 이 멀티 전략 조합 프레임워크는 확장 잠재력이 크며, 더 많은 하위 전략을 추가하고, 매개 변수를 최적화하고 필터링 조건을 설정함으로써 심화될 수 있다.


/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-18 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/12/2019
// 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
// TradeStation does not allow the user to make a Multi Data Chart with 
// a Tick Bar Chart and any other type a chart. This indicator allows the 
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived 
// from subtracting a 10 day moving average from a 3 day moving average. 
// The second plot is an 16 day simple moving average of the 3-10 Oscillator. 
// The 16 period moving average is the slow line and the 3/10 oscillator is 
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book 
// "The Power of Oscillator/Cycle Combinations" 
//
// 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

D_Three(Length1, Length2, Length3) =>
    pos = 0.0
    xPrice =  security(syminfo.tickerid,"D", hl2)
    xfastMA = ema(xPrice, Length1)
    xslowMA = ema(xPrice, Length2)
    xMACD = xfastMA - xslowMA
    xSignal = sma(xMACD, Length3)
    pos := iff(xSignal > xMACD, -1,
    	     iff(xSignal < xMACD, 1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & D_Three Ten Osc", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posD_Three = D_Three(Length1, Length2, Length3)
pos = iff(posReversal123 == 1 and posD_Three == 1 , 1,
	   iff(posReversal123 == -1 and posD_Three == -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 )

더 많은