이중 역동량 전략에 기반한

저자:차오장, 날짜: 2024-02-20 15:27:02
태그:

基于双重反转动量策略

개요

이중 역동량 전략은 가격 역전 신호와 변동률 역전 신호를 결합하여 트렌드 트레이딩을 구현한다. 그것은 123 형식을 기준으로 가격 역전점을 판단하고 도니치안 통로의 변동률을 사용하여 잘못된 신호를 필터링하는 데 도움이 된다. 이 전략은 중장선 보유에 적용되며, 이중 역전 필터링을 통해 시장 전환점을 효과적으로 포착하여 과도한 수익을 얻을 수 있다.

전략적 원칙

가격 역전 부분에서는 123 형식 판단을 사용한다. 이 형식 의미는 첫 두 K 라인의 가격이 역전 (상승 또는 하락) 으로 나타나고 세 번째 K 라인이 다시 역전 (상승 또는 하락) 으로 나타나기 때문에 123 형식이라고 불린다. 가격이 세 K 라인의 역전 현상이 나타나면 일반적으로 단기 트렌드가 전환될 것을 예고한다. 가격 역전의 신뢰성을 더욱 검증하기 위해, 이 전략은 또한 무작위 지표 판단을 사용하며, 무작위 지표가 또한 역전 (고속 라인이 다시 떨어지거나 빠르게 상승) 으로 나타나면만 신호 거래를 유발한다.

변동률 반전은 부분적으로 돈치안 통로의 변동률을 사용한다. 돈치안 통로는 주로 가격의 변동 범위를 반영한다. 가격 변동이 증가할 때 돈치안 통로의 폭도 확대되고, 가격 변동이 감소할 때 돈치안 통로의 폭도 좁아진다. 돈치안 통로의 변동률의 폭은 시장의 변동과 위험 수준을 효과적으로 측정한다. 이 전략은 돈치안 통로의 변동률의 반전을 사용하여 가짜 신호를 필터링하여 변동률과 가격이 동시에 반전될 때만 거래 신호를 발사하여 스 리턴 조작을 피한다.

종합적으로, 이 전략은 거래 신호의 신뢰성을 보장하고 위험을 통제하는 두 번째 역추진 검증으로 비교적 견고한 트렌드 전략이다.

전략적 장점

  • 이중 필터링 메커니즘, 거래 신호의 신뢰성을 보장하고 가짜 파장을 방지합니다.
  • 위험을 통제하고 손실 가능성을 줄입니다.
  • 중장선 지분을 보유하는 것이 좋습니다. 시장 소음을 피하고 적당한 수익을 얻습니다.
  • 파라미터 최적화 공간 크기를 최적 상태로 조정할 수 있습니다.
  • 독특한 스타일, 일반적인 기술 지표와 결합하여 사용 효과

전략적 위험

  • 파라미터에 의존하는 최적화, 파라미터의 부적절한 것은 전략 성능에 영향을 미칩니다.
  • 손해 방지 전략은 더 향상되어야하며 최대 회수 통제는 개선되어야합니다.
  • 트레이딩 빈도는 낮을 수 있으며, 높은 빈도의 알고리즘 트레이딩에 적응할 수 없습니다.
  • 적절한 품종과 기간을 선택해야 하며, 적용 범위는 제한적입니다.
  • 기계 학습과 같은 방법을 사용하여 최적의 매개 변수를 찾을 수 있습니다.

최적화 방향

  • 적응적 손해 방지 모듈을 추가하면 최대 회귀를 크게 줄일 수 있습니다.
  • 거래량 지표에 가입하여 높은 거래량 돌파를 보장합니다.
  • 최적의 안정성을 위해 매개 변수를 최적화
  • 다양한 품종과 시간 사이클을 시도하여 최적의 환경을 찾습니다.
  • 다른 지표나 전략의 조합으로 1+1>2의 공감대를 시도합니다.

요약

이중 역역량 전략은 가격 역전과 변동률 역전의 이중 검증으로 더 나은 위험 통제를 달성한다. 단일 지표에 비해 많은 잡음을 필터하고 안정성이 우수하다. 매개 변수 최적화, 손해 방지 모듈 강화, 양성 도입 등으로 신호 품질과 수익 안정성을 더욱 향상시킬 수 있다. 이 전략은 주식, 디지털 화폐 등 중장선 전략의 일부로 협력적으로 적합하며 다른 모듈과 합리적으로 결합하여 좋은 초과 수익을 얻을 수 있다.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 06/03/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 Donchian Channel was developed by Richard Donchian and it could be compared 
// to the Bollinger Bands. When it comes to volatility analysis, the Donchian Channel 
// Width was created in the same way as the Bollinger Bandwidth technical indicator was.
//
// As was mentioned above the Donchian Channel Width is used in technical analysis to measure 
// volatility. Volatility is one of the most important parameters in technical analysis. 
// A price trend is not just about a price change. It is also about volume traded during this 
// price change and volatility of a this price change. When a technical analyst focuses his/her 
// attention solely on price analysis by ignoring volume and volatility, he/she only sees a part 
// of a complete picture only. This could lead to a situation when a trader may miss something and 
// lose money. Lets take a look at a simple example how volatility may help a trader:
//
//    Most of the price based technical indicators are lagging indicators.
//    When price moves on low volatility, it takes time for a price trend to change its direction and 
// it could be ok to have some lag in an indicator.
//    When price moves on high volatility, a price trend changes its direction faster and stronger. 
// An indicator's lag acceptable under low volatility could be financially suicidal now - Buy/Sell signals could be generated when it is already too late.
//
// Another use of volatility - very popular one - it is to adapt a stop loss strategy to it:
//    Smaller stop-loss recommended in low volatility periods. If it is not done, a stop-loss could 
// be generated when it is too late.
//    Bigger stop-loss recommended in high volatility periods. If it is not done, a stop-loss could 
// be triggered too often and you may miss good trades.
//
// 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

DCW(length, smoothe) =>
    pos = 0.0
    xUpper = highest(high, length)
    xLower = lowest(low, length)
    xDonchianWidth = xUpper - xLower
    xSmoothed = sma(xDonchianWidth, smoothe)
    pos := iff(xDonchianWidth > xSmoothed, -1,
              iff(xDonchianWidth < xSmoothed, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Donchian Channel Width", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
LengthDCW = input(20, minval=1)
SmootheSCW = input(22, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posDCW = DCW(LengthDCW, SmootheSCW)
pos = iff(posReversal123 == 1 and posDCW == 1 , 1,
	   iff(posReversal123 == -1 and posDCW == -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 )

더 많은 내용