더블 기회 역전 양적 전략


생성 날짜: 2023-11-14 13:42:47 마지막으로 수정됨: 2023-11-14 13:42:47
복사: 0 클릭수: 676
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

더블 기회 역전 양적 전략

개요

이중 기회 역전량화 전략은 123 역전과 스토카스틱 RSI의 두 가지 전략 아이디어를 통합적으로 사용하는 조합 전략이다. 이 전략은 우선 가격이 123 역전 형태를 나타냈는지 판단하고, 다음에는 스토카스틱 RSI 지표와 결합하여 역전 신호를 다시 확인하고, 둘 다 동시에 신호를 발송할 때만 상장 또는 공백을 열 수 있다. 이러한 이중 확인 메커니즘은 잘못된 신호를 효과적으로 필터링하여 전략의 안정성을 향상시킬 수 있다.

전략 원칙

이 전략은 두 부분으로 구성되어 있습니다.

  1. 123 회전

이 부분은 123 형식을 사용하여 가격 반전을 판단합니다. 구체적인 논리는 다음과 같습니다:

  • 만약 종결 가격이 어제의 종결 가격보다 낮고, 현재 종결 가격이 어제의 종결 가격보다 높고, 9일 슬로우 스토캐스틱이 50보다 낮다면, 더 많이 한다.

  • 마감 가격이 어제의 마감 가격보다 높고 현재 마감 가격이 어제의 마감 가격보다 낮으며 9일 패스트 스토캐스틱이 50보다 높다면, 마감

가격 반전의 초기 신호를 발견할 수 있습니다.

  1. Stochastic RSI

이 부분은 RSI를 Stochastic 지표로 다시 분석하여 역으로 확인합니다.

  • RSI를 계산해봅시다

  • RSI에 Stochastic 분석을 적용하고, 길이 14, K값을 얻는다

  • K값의 3일 SMA D값을 계산합니다.

  • K값이 80 이상이면 , K값이 20 이하이면

두 가지 전략이 동시에 신호를 발산할 때만 포지션을 열 수 있습니다.

우위 분석

이 전략의 가장 큰 장점은 이중 확인의 사고방식을 채택하여 잘못된 신호를 효과적으로 필터링하여 안정성을 향상시킬 수 있다는 것입니다. 구체적인 장점은 다음과 같습니다:

  1. 123 역전으로 가격 역전 동향을 더 빨리 알 수 있습니다.

  2. Stochastic RSI는 반전 확인을 제공하여 반전을 놓치지 않도록합니다.

  3. 이 두가지가 합쳐지면 승률을 높이고, 잘못된 통보를 줄일 수 있습니다.

  4. 매개 변수 조합 최적화를 사용하여 다른 시장에 맞는 매개 변수를 조정할 수 있습니다.

  5. 프로그램화 구현은 간단하고 명확하며, 실 디스크에 적용하기 쉽습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 역전 실패 위험. 시장이 가짜 역전으로 인해 손실이 발생할 수 있습니다.

  2. 매개 변수 최적화 위험. 부적절한 매개 변수 조합은 전략 효과가 떨어질 수 있다.

  3. 과잉 최적화 위험. 과거의 데이터에 대해 과잉 최적화 파라미터를 사용하여 미래의 효과를 복제 할 수 없습니다.

  4. 거래 빈도가 너무 높은 위험. 이중 신호는 거래 빈도를 증가시킬 수 있으며, 이는 슬라이드 비용의 상승으로 이어질 수 있다.

  5. 코드 구현 위험. 코드 오류가 있을 경우, 하드 디스크 효과 이상으로 이어질 수 있다.

대응방법:

  1. 포지션 규모를 적절히 조정하여 단기 손실을 통제하십시오.

  2. 워크-포워드 방식을 사용하여 파라미터를 최적화한다.

  3. 이 부분의 본문은 “자연의 가치”입니다.

  4. 포지션 개설 조건을 적절히 조정하여 거래 빈도를 낮추십시오.

  5. 코드가 제대로 작동하는지 확인하기 위해 꼼꼼하게 테스트합니다.

최적화 방향

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

  1. 최적화 매개 변수. 스토카스틱과 같은 매개 변수를 조정하여 특정 시장에 최적화 할 수 있습니다.

  2. 포지션 개시 조건을 최적화한다. 다른 요소 판단을 추가할 수 있고, 충동 반전을 방지한다.

  3. 손해 중지 메커니즘 최적화. 이동 손해 중지, 시간 손해 중지 등의 방법을 설정할 수 있다.

  4. 거래 빈도를 낮출 수 있다. 거래 필터링 조건을 높여 거래 빈도를 낮출 수 있다.

  5. 포지션 관리를 추가한다. 시장 상황에 따라 포지션 크기를 조정한다.

  6. 수수료 요인을 고려하십시오. 실제 수수료에 따라 전략 파라미터를 조정하십시오.

요약하다

이중 기회 역전량화 전략은 전반적으로 안정적이고 실용적인 단선 역전략이다. 그것은 동시에 반전 포착의 민감성과 이중 필터의 안정성을 갖는다. 매개 변수 최적화 및 적절한 수정으로 이 전략은 양적화 전략 시스템의 효과적인 구성 요소가 될 수 있다. 그러나 우리는 또한 과도한 최적화 및 잘못된 보고의 위험을 예방하고 매개 변수 안정성을 유지하며 실명에서 신중하게 검증한다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 03/08/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
// This strategy used to calculate the Stochastic RSI
//
// 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


SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand) =>
    pos = 0.0
    Source = close
    rsi1 = rsi(Source, lengthRSI)
    k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
    d = sma(k, smoothD)
    d_cross_80 = cross(d,TopBand) 
    pos := iff(k > TopBand, 1,
              iff(k < LowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Stochastic RSI", 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, "---- Stochastic RSI ----")
TopBand = input(80, step=0.01)
LowBand = input(20, step=0.01)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSRSI = SRSI(lengthRSI,lengthStoch,smoothK,smoothD, TopBand,LowBand)
pos = iff(posReversal123 == 1 and posSRSI == 1 , 1,
	   iff(posReversal123 == -1 and posSRSI == -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 )