더블 리버설 아비트라지 전략을 기반으로


생성 날짜: 2024-02-06 09:58:04 마지막으로 수정됨: 2024-02-06 09:58:04
복사: 2 클릭수: 689
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 리버설 아비트라지 전략을 기반으로

개요

이중 반전 중개 전략은 쌍 반전 지표를 결합한 중개 알고리즘이다. 그것은 123 반전 시스템과 Gann Swingline Oscillation 지표의 두 개의 하위 전략을 통합하여, 두 가지 하위 전략이 동시에 신호를 내면 거래 신호를 발생시키고, 중개 작업을 수행한다.

전략 원칙

이 전략은 다음의 두 가지 세부 전략으로 구성됩니다.

  1. 123 반전 시스템: 그것은 울프 센의 책 How I Triple Profits in the Futures Market에서 유래했다. 183 페이지. 그것의 거래 규칙은 다음과 같다: 종결 가격이 전날 종결 가격보다 높고 전날 2일 종결 가격보다 낮을 때, 느린 K선 아래 50을 할 때; 종결 가격이 전날 종결 가격보다 낮고 전날 2일 종결 가격보다 높을 때, 빠른 K선 위 50을 할 때 공백을 한다.

  2. Gann Swingline Oscillation Indicator: 이것은 W.D. Gann의 보물 책에서 Robert Krausz의 발견에서 유래했다. 그것은 일정 기간 동안의 최고 가격과 최저 가격의 하락을 계산하여 시장의 흔들림 방향을 판단한다.

이 배열 전략의 거래 논리는 다음과 같다: 두 자 전략의 신호 방향이 일치할 때 실제 거래 신호가 발생한다. 다중 신호는 두 자 전략이 동시에 다중 신호를 발송할 때; 공백 신호는 두 자 전략이 동시에 공백 신호를 발송할 때이다.

우위 분석

이 전략의 가장 큰 장점은 두 가지 하위 전략의 신호를 통합하여 가짜 신호를 효과적으로 필터링하여 거래 신호의 정확도를 향상시키는 것입니다. 두 가지 하위 전략은 각각 장점이 있습니다. 123 역전 시스템은 갑작스러운 역전 상황을 포착 할 수 있으며, 칸 스윙 라인 오시컬레이션 지표는 트렌드 반전의 성숙기를 판단 할 수 있습니다. 둘을 결합하면 거래 신호를 더 신뢰할 수 있으며, 전략의 안정성을 향상시킬 수 있습니다.

위험 분석

이 전략의 주요 위험은 두 가지 하위 전략에서 발신되는 거래 신호 방향이 일치하지 않는 확률이 높기 때문에 거래 신호가 적은 문제가 있습니다. 또한, 하위 전략 자체에는 약간의 가짜 신호 위험이 있습니다. 이 두 가지 요소가 결합되면 전략 거래 횟수가 부족하여 시장 기회를 충분히 잡지 못할 수 있습니다.

위험을 줄이기 위해, 서브 전략의 매개 변수를 조정하여 거래 빈도를 적절히 높일 수 있습니다. 또는 다른 지표와 결합하여 판단을 보조하고, 가짜 신호를 필터링 할 수 있습니다. 두 서브 전략 사이에 큰 신호 편차가있을 때, 신뢰할 수있는 한 쪽만을 따르는 것도 고려할 수 있습니다.

최적화 방향

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

  1. 이 부분의 본문은 “자세한 거래”입니다.
  2. 다른 기술적인 지표들을 추가하여 신호의 질을 높여라.
  3. 다양한 품종에 따라 순환 최적화 하위 전략의 무게;
  4. 단독 손실을 통제하기 위해 손해 방지 장치에 가입하십시오.

요약하다

이중 반전 중개 전략은 두 가지 다른 유형의 반전 전략을 통합하여 강력한 거래 신호를 형성한다. 그것은 효과적으로 잡음을 제거하고 신호 품질을 향상시킬 수 있으며 시장의 반전 기회를 포착하는 데 적합하다. 그러나 하위 전략은 불일치 신호를 발산하는 확률이 높으며 거래 빈도 부족의 문제를 초래할 수 있다. 또한, 조합 전략 자체의 파라미터 설정은 복잡하며, 최대한의 효과를 내기 위해 충분한 테스트 및 최적화가 필요합니다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 04/11/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
// The Gann Swing Oscillator has been adapted from Robert Krausz's book, 
// "A W.D. Gann Treasure Discovered". The Gann Swing Oscillator helps 
// define market swings. 
//
// 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

    
GannSO(Length) =>
    pos = 0.0
    xGSO = 0.0
    xHH = highest(Length)
    xLL = lowest(Length)
    xGSO:= iff(xHH[2] > xHH[1] and xHH[0] > xHH[1], 1,
             iff(xLL[2] < xLL[1] and xLL[0] < xLL[1], -1, nz(xGSO[1],0)))
    pos := iff(xGSO > 0, 1,
    	     iff(xGSO < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Gann Swing Oscillator", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthGSO = input(5, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posGannSO = GannSO(LengthGSO)
pos = iff(posReversal123 == 1 and posGannSO == 1 , 1,
	   iff(posReversal123 == -1 and posGannSO == -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 )