2가지 요소 조합 역전 거래 전략


생성 날짜: 2023-12-27 17:22:31 마지막으로 수정됨: 2023-12-27 17:22:31
복사: 0 클릭수: 573
avatar of ChaoZhang ChaoZhang
1
집중하다
1621
수행원

2가지 요소 조합 역전 거래 전략

개요

이 전략은 우선 가격 역전 신호를 사용하여 거래를 하고, 그 다음 트렌드 필터 지표와 결합하여 필터링을 수행하여 이중 인자 드라이브를 구현한다. 이 중 가격 역전 부분은 123 역전 거래 시스템을 사용하고, 트렌드 필터 부분은 추출 트렌드 거래 시스템을 사용한다.

전략 원칙

가격 역전 부분에는 123 역전 시스템이 사용된다. 이 시스템은 울프 센의 “나는 어떻게 선물 시장에서 3배의 돈을 벌 수 있는가”의 183페이지에서 유래했다. 거래 신호의 발생에는 다음과 같은 조건이 있다:

  1. 1일 전 종점 가격이 2일 전 종점 가격보다 낮다
  2. 현재 종료 가격은 전날 종료 가격보다 높습니다.
  3. 9일 느린 K선 50도 이하

위 조건이 충족되면 구매 신호가 발생하고, 반대로

  1. 1일 전 종점 가격이 2일 전 종점 가격보다 높습니다.
  2. 현재 종결 가격은 전날 종결 가격보다 낮습니다.
  3. 9일 고속 K선 50호선

위의 조건이 충족되면 판매 신호가 발생한다.

이 부분의 역전 거래 시스템은 가격이 단기 반전으로 변하는 것을 포착하기 위한 것이다.

트렌드 필터 부분은 추출 트렌드 시스템을 사용한다. ETT 시스템은 성과 파동과 평행선 조합을 통해 트렌드 방향을 판단한다. 이 전략에서, 그것의 주요 역할은 가격 역전 신호를 검증하고, 명확한 트렌드가 없을 때 역전 동작을 피하는 것이다.

이 전략은 두 개의 하위 전략의 거래 신호를 결합하여 결국 쌍인자 주도의 역거래를 구현한다.

우위 분석

쌍방향 포메이션 역전 거래 전략은 자 전략의 조합을 통해 각자의 장점을 포괄합니다. 주로 다음과 같이 나타납니다:

  1. 123 역전 전략은 가격의 단기 역전 oppurtunities를 잡을 수 있습니다
  2. ETT 전략은 명확하지 않은 트렌드 시나리오를 효과적으로 필터링하여 반전 거래의 위험을 피할 수 있습니다.
  3. 이중인자 구동은 신호 품질을 향상시킵니다.

따라서, 이 전략은 유효하지 않은 반전 신호를 효과적으로 필터링하고, 트렌드 판단이 옳다는 전제하에 반전 작업을 수행하여 거래 시스템의 전반적인 성능을 향상시킬 수 있다.

위험 분석

이중 요소 조합 역전 거래 전략에는 다음과 같은 몇 가지 위험 요소가 있습니다.

  1. 반전 후 가격이 원래의 트렌드를 계속 실행할 위험이 있다. 예를 들어, 컴파일러의 파라미터가 잘못 설정되어 반전 신호가 너무 자주 발생하여 트렌드 Oppurtunities를 놓치게 된다.
  2. ETT 전략 판단 오류에 의한 위험. ETT 전략 자체도 판단 오류를 발생시켜 역전 거래 손실을 초래한다.
  3. 이중인자 드라이브 자체의 위험. 두 가지 거래 신호의 동시에 잘못된 판단의 확률은 단일 신호의 오류 판단의 확률보다 낮습니다. 그러나 동시에 잘못된 판단이 여전히 존재할 확률은 손실을 확대합니다.

위와 같은 위험을 줄이기 위해, 컴파일러 변수를 조정하고, 역전 전략과 ETT 전략을 최적화하여 판단을 더 정확하게 만들 수 있으며, 역전 거래의 중지 범위를 적절히 완화 할 수 있습니다.

최적화 방향

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

  1. 역전시스템의 변수를 최적화하여 더 나은 변수 조합을 찾습니다.
  2. ETT 시스템 파라미터를 최적화하여 트렌드 판단의 정확도를 향상시킵니다.
  3. 다른 가격 반전 전략을 시도하고 ETT를 조합합니다.
  4. 포지션 크기를 제어하는 메커니즘을 추가
  5. 더 많은 요소가 동기를 부여합니다.

전략적 사고와 주요 거래 신호 논리를 유지하면서, 파라미터와 조합을 통해 최적화하면 더 나은 피드백 결과를 얻을 수 있습니다.

요약하다

쌍인자 조합 역전 거래 전략은 가격 역전 신호와 트렌드 필터링 신호의 유기적 결합을 통해 다인자 판단에 기반한 거래 시스템을 구현한다. 단일 역전 신호에 비해 이 전략은 단기 가격 역전을 포착하는 것을 보장하는 기초에 더 잘 활용할 수 있으며, 명확하지 않은 트렌드 시나리오의 가짜 신호를 피하여 신호 품질을 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/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
// Extracting The Trend
// The related article is copyrighted material from Stocks & Commodities Mar 2010
//
// 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


ETT(Length,Delta,Trigger) =>
    pos = 0
    xBandpassFilter = 0.0
    xPrice = hl2
    beta = cos(3.1415 * (360 / Length) / 180)
    gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180)
    alpha = gamma - sqrt(gamma * gamma - 1)
    xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2])
    xMean = sma(xBandpassFilter, 2 * Length)
    pos :=iff(xMean > Trigger, 1,
	       iff(xMean < Trigger, -1, nz(pos[1], 0)))     
    pos

strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthETT = input(20, minval=1)
Delta = input(0.5)
Trigger = input(0)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posETT = ETT(LengthETT,Delta,Trigger)
pos = iff(posReversal123 == 1 and posETT == 1 , 1,
	   iff(posReversal123 == -1 and posETT == -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 )