이동 평균 봉투 전략 역전


생성 날짜: 2023-10-20 16:05:43 마지막으로 수정됨: 2023-10-20 16:05:43
복사: 0 클릭수: 766
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동 평균 봉투 전략 역전

개요

반전평균선포망 전략은 반전 거래와 평평선포망의 두 가지 주요 기술 지표를 종합적으로 활용하는 정량 거래 전략이다. 그것은 반전 전략이 시장 반전 기회를 포착하고 평평선포망이 트렌드 방향을 판단하는 장점을 통합하여 안정적인 수익을 달성한다.

전략 원칙

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

첫 번째 부분은 123 역전 전략이다. 그것의 거래 신호는 무작위 지표인 KDJ에서 나온다. 구체적인 논리는 다음과 같다. 종전 가격이 2일 연속으로 전일 종전 가격보다 낮아지고, 9일 무작위 슬로라인이 50보다 낮으면, 구매 신호를 발생시킨다. 종전 가격이 2일 연속으로 전일 종전 가격보다 높고, 9일 무작위 슬로라인이 50보다 높으면, 판매 신호를 발생시킨다.

두 번째 부분은 평평선과 평평선 아래의 두 개의 포괄적 인 라인을 사용하여 트렌드를 결정합니다. 구체적인 논리는: 상반기 가격보다 상반기 가격이 높으면 구매 신호를 생성하고, 상반기 가격이 하반기 가격보다 낮으면 판매 신호를 생성합니다.

이 전략은 상술한 두 가지 거래 신호를 종합적으로 활용하여, 123 반전과 평선 포괄망이 동시에 구매 신호를 발신할 때만 전략은 더 많은 포지션을 열고, 둘 다 동시에 판매 신호를 발신할 때만 전략은 빈 포지션을 열는다. 이렇게 하면 일부 비효율 신호를 필터링하여 거래 빈도를 낮추는 동시에 수익률을 높일 수 있다.

우위 분석

  • 역전과 트렌드를 결합하여 수익률을 높이는 방법

123 역전 전략은 중요한 지지 저항 근처의 역전 기회를 포착하는 데 능숙하다. 평선 포괄 네트워크 전략은 트렌드 방향을 정확하게 판단한다. 둘을 결합하여 사용하면 높은 확률의 위치에서 역전을 포착할 수 있다.

  • 이중 필터링으로 거래 빈도가 낮아집니다.

전략은 두 지표가 동시에 신호를 발산할 때만 포지션을 열립니다. 이것은 단일 지표에 의해 발생하는 과도한 무효 신호의 간섭을 피하여 거래 빈도를 낮추고 거래 비용을 줄이는 데 도움이됩니다.

  • parametrizable parameters는 정책에 대한 유연성을 제공합니다.

전략의 지표 파라미터는 모두 조정할 수 있으며, 사용자는 시장 상황과 개인 취향에 따라 적절한 파라미터 조합을 선택하여 전략을 더 적응시킬 수 있습니다.

  • 일방적인 거래가 운영을 간소화합니다.

이 전략은 오직 다단계 또는 공수 일방 거래만 하고 역대출을 하지 않는다. 이것은 전략의 동작 논리를 단순화하고, durations의 위험을 낮춘다.

위험 분석

  • 반전 거래는 트렌드를 잡기 힘들다.

이 전략은 주로 반전 거래로 수익을 얻습니다. 장기적인 단방향 추세가 나타나면 전략은 연속적인 손실을 초래할 수 있습니다.

  • 매개 변수 최적화 문제

정책에는 여러 가지 조정 가능한 매개 변수가 포함되어 있으며, 이는 매개 변수 최적화에 약간의 어려움을 초래합니다. 잘못된 매개 변수 조합은 정책의 성능에 영향을 줄 수 있습니다.

  • 고위치 교환이 거래 위험을 증가시킵니다.

전략은 자주 포지션을 변경할 수 있도록 설계되어 있으며, 작은 수익을 얻을 수 있지만, 너무 자주 거래하는 것은 거래 비용과 예상치 못한 위험을 증가시킬 수 있습니다.

  • 최대 인출을 제한할 수 없습니다.

전략은 스톱로스 포인트를 설정하지 않고 최대 회수량을 효과적으로 제어할 수 없습니다. 주요 블랙 스 사건이 발생하면 전략은 큰 손실을 입을 수 있습니다.

최적화 방향

  • 더 많은 손실을 막는 전략

최대 인출을 제한하기 위해 모바일 스톱 또는 추적 스톱을 설정할 수 있다. 시장이 비정상적인 변화를 겪을 때, 적시에 스톱을 하면 자금을 보호할 수 있다.

  • 최적화 변수 모음

회수 및 시뮬레이션 거래 최적화 매개 변수를 통해 최적의 매개 변수 조합을 결정하여 전략의 안정성을 향상시킵니다. 또한 동적 매개 변수 최적화 메커니즘을 설계하여 전략을 더 적응시킬 수 있습니다.

  • 다른 지표와 함께 필터링 신호

MACD, 브린 띠 등과 같은 지표를 추가하여 거래 신호를 검증하면 신호 품질을 더욱 향상시키고 무효 거래를 줄일 수 있습니다.

  • 거래 빈도가 낮아집니다.

적당히 느슨한 반전 조건과 평균선 변수를 조정하여 포지션 전환 빈도를 낮추는 것은 거래 비용과 우연한 위험을 줄이는 데 도움이됩니다.

요약하다

반전평균계통통계통전략은 역전 거래와 트렌드 추적의 장점을 통합하여 위험을 통제하는 전제하에 안정적인 초과 수익을 달성한다. 이 전략은 더 이상 최적화하여 파라미터 포지션을 더 과학적으로 합리화하여 더 뛰어난 거래 성과를 얻을 수 있다. 그것은 여러 가지 거래 신호를 결합한 효과적인 전략 아이디어를 제공하며, 트렌드 상황과 전체 시장에 적합하며, 거래자가 학습하고 사용하는 것이 가치가 있다.

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

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/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
// Moving Average Envelopes are percentage-based envelopes set above and 
// below a moving average. The moving average, which forms the base for 
// this indicator, can be a simple or exponential moving average. Each 
// envelope is then set the same percentage above or below the moving average. 
// This creates parallel bands that follow price action. With a moving average 
// as the base, Moving Average Envelopes can be used as a trend following indicator. 
// However, this indicator is not limited to just trend following. The envelopes 
// can also be used to identify overbought and oversold levels when the trend is 
// relatively flat. 
//
// 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


MAE(Length,PercentShift) =>
    pos = 0.0
    xSMA = sma(close, Length)
    xHighBand = xSMA + (xSMA * PercentShift / 100)
    xLowBand = xSMA - (xSMA * PercentShift / 100)
    pos := iff(close > xHighBand, 1,
             iff(close <xLowBand, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Moving Average Envelopes", 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, "---- MA Envelope ----")
LengthMA = input(18, minval=1)
PercentShift = input(0.2, minval = 0.01, step = 0.01)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posMAE = MAE(LengthMA,PercentShift)
pos = iff(posReversal123 == 1 and posMAE == 1 , 1,
	   iff(posReversal123 == -1 and posMAE == -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 )