서프 라이더 전략

저자:차오장, 날짜: 2023-10-17 15:30:18
태그:

img

전반적인 설명

서프 라이더 전략 (Surf Rider strategy) 은 더 신뢰할 수 있는 거래 신호를 생성하기 위해 다른 트렌드 다음 전략을 통합하는 조합 전략이다. 123 역전 전략과 ECO 전략을 결합하여 트렌드 확인 후 더 정확한 거래 신호를 생산하는 것을 목표로 한다. 서프 라이더라는 이름은 서퍼에 대한 용어에서 유래하여 전략은 시장 변동성의 물결을 타고 더 넓은 시장에서 과도한 수익을 얻으려고 노력한다는 것을 의미한다.

전략 논리

서프 라이더 전략은 두 가지 다른 유형의 전략을 통합합니다. 역전 전략과 트렌드 다음 전략.

첫째, 123 리버설 전략은 리버설 전략이다. 촛불 정보를 사용하여 가격 리버설 신호를 식별한다. 어제의 종료가 전날의 종료보다 높고, 오늘의 종료가 어제보다 낮을 때, 9일 느린 K가 50보다 낮을 때 구매 신호를 생성한다. 어제의 종료가 전날의 종료보다 낮고, 오늘의 종료가 어제보다 높고, 9일 빠른 K가 50보다 높을 때 판매 신호를 생성한다.

둘째, ECO 전략은 추세를 따르는 전략이다. 이 전략은 가격 촛불의 크기와 방향을 사용하여 추진력을 계산하고 추세 방향을 결정한다. 0 이상의 ECO 지표는 상승 추세를 나타내고 0 이하는 하락 추세를 나타낸다.

서프 라이더 전략은 두 전략의 신호를 결합합니다. 두 전략이 동일한 방향으로 신호를 생성 할 때만 지위를 입력합니다. 예를 들어 ECO가 상승 추세를 보이고 123 역전 전략이 구매 신호를 제공합니다. 이것은 단일 전략에서 잘못된 판단으로 인해 거래를 잃는 것을 피합니다.

이점 분석

단일 전략에 비해 서프 라이더 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 역전 및 트렌드 전략을 결합하면 그들의 강점을 보완하고 약점을 피하여 거래 신호를 더 신뢰할 수 있습니다. ECO는 트렌드 변화가 일어나기 전에 반전이 발생하여 트렌드 중간에 조기 반전을 피합니다.

  2. 123 역전 전략은 과도한 구매 및 과도한 판매 영역을 식별하기 위해 스토카스틱 지표를 사용하지만, ECO 전략은 가격 동력 방향을 판단합니다. 두 전략은 상호 보완되며 잘못된 판단 가능성을 줄입니다.

  3. 이중 전략 필터는 두 전략이 같은 방향에 동의할 때만 포지션을 개설할 수 있습니다. 이는 거래 위험을 크게 줄여줍니다.

  4. 유연한 매개 변수 조정 공간은 다른 시장에 대한 매개 변수를 최적화하여 더 많은 시장 환경에 적응 할 수 있습니다.

  5. 내일 반전과 중장기 트렌드를 결합한 다중 시간 프레임 접근 방식은 더 많은 거래 기회를 포착 할 수 있습니다.

위험 분석

개별 전략 위험을 줄이기 위해 여러 전략을 사용함에도 불구하고 서프 라이더 전략은 여전히 거래에서 다음과 같은 위험을 포함합니다.

  1. 123 반전 전략은 범위 제한 시장에서 약하며, 연속적인 손실을 초래하는 반전 신호를 생성할 수 있습니다.

  2. ECO 전략은 유동성 낮은 환경에서 저효율이므로 거기서 피해야 합니다.

  3. 이중 전략 필터는 단일 전략이 개별적으로 캡처하는 일부 수익 신호를 놓칠 수 있습니다.

  4. 잘못된 매개 변수 설정으로 인해 전략이 잘못된 신호를 생성 할 수 있습니다. 매개 변수는 다른 시장에 맞게 조정해야합니다.

  5. 전략은 블랙 스완 사건과 같은 몇몇 예외적인 시장 조건에 적응하지 못할 수도 있습니다.

최적화 방향

서프 라이더 전략을 최적화 할 수있는 더 많은 공간이 있습니다:

  1. 손해가 스톱 로스 수준에 도달하면 자동으로 지점 종료에 스톱 로스 전략을 추가하는 것을 고려하십시오.

  2. 다른 이동 평균 매개 변수를 테스트하여 보다 안정적인 매개 변수 조합을 찾습니다.

  3. 기계 학습 기반의 적응적 매개 변수 최적화를 시도해 보세요.

  4. 신호의 정확성을 더욱 향상시키기 위해 더 많은 보조 전략을 추가합니다.

  5. 다른 시장 환경에서 안정성을 테스트하고 그에 따라 매개 변수를 조정합니다.

  6. 보다 엄격한 전략 최적화를 위해 자동화된 백테스팅 및 실행 시스템을 개발합니다.

결론

결론적으로, 이중 확인을 위한 역전 및 트렌드 다음 전략을 결합함으로써, 서프 라이더 전략은 트렌드 변화를 포착하는 동시에 신호 정확성을 향상시키고, 더 넓은 시장에서 초과 수익을 허용한다. 일부 위험에도 불구하고, 지속적인 최적화는 더 많은 시장 환경에 전략을 적응시킬 수 있다. 전략은 유연하고 위험 조절이 가능하며, 안정적인 장기 수익을 추구하는 투자자에게 적합하다.


/*backtest
start: 2023-09-16 00:00:00
end: 2023-10-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 16/04/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
// We call this one the ECO for short, but it will be listed on the indicator list 
// at W. Blau’s Ergodic Candlestick Oscillator. The ECO is a momentum indicator. 
// It is based on candlestick bars, and takes into account the size and direction 
// of the candlestick "body". We have found it to be a very good momentum indicator, 
// and especially smooth, because it is unaffected by gaps in price, unlike many other 
// momentum indicators.
// We like to use this indicator as an additional trend confirmation tool, or as an 
// alternate trend definition tool, in place of a weekly indicator. The simplest way 
// of using the indicator is simply to define the trend based on which side of the "0" 
// line the indicator is located on. If the indicator is above "0", then the trend is up. 
// If the indicator is below "0" then the trend is down. You can add an additional 
// qualifier by noting the "slope" of the indicator, and the crossing points of the slow 
// and fast lines. Some like to use the slope alone to define trend direction. If the 
// lines are sloping upward, the trend is up. Alternately, if the lines are sloping 
// downward, the trend is down. In this view, the point where the lines "cross" is the 
// point where the trend changes.
// When the ECO is below the "0" line, the trend is down, and we are qualified only to 
// sell on new short signals from the Hi-Lo Activator. In other words, when the ECO is 
// above 0, we are not allowed to take short signals, and when the ECO is below 0, we 
// are not allowed to take long signals. 
//
// 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

ECO(r,s) =>
    pos = 0
    xCO = close - open
    xHL = high - low
    xEMA = ema(ema(xCO, r), s)
    xvEMA = ema(ema(xHL, r), s)
    nRes = 100 * (xEMA / xvEMA)
    pos := iff(nRes > 0, 1,
	         iff(nRes <= 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & ECO Strategy", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
r = input(32, minval=1)
s = input(12, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posECO = ECO(r,s)
pos = iff(posReversal123 == 1 and posECO == 1 , 1,
	   iff(posReversal123 == -1 and posECO == -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 )

더 많은