이중 크로스 이동 평균 역전 전략

저자:차오장, 날짜: 2023-11-21 11:28:27
태그:

img이 글은 제가 여러분들의 요청에 따라 작성하려고 시도한 글입니다.

전반적인 설명

이 전략은 123 반전 패턴 전략과 곰 힘 지표 전략을 결합합니다. 거래 신호는 둘 다 같은 방향으로 구매 또는 판매 신호를 할 때 생성됩니다. 그것은 브레이크아웃 반전 거래 전략에 속합니다.

전략 논리

이 전략은 두 부분으로 구성됩니다.

  1. 123 회전 패턴 전략

    두 일 연속 하락 후 폐쇄 가격이 상승하고 낮은 스톡 지표가 낮은 수준에서 복귀 할 때 구매 신호를 생성합니다. 두 일 연속 상승 후 폐쇄 가격이 무너지고 높은 스톡 지표가 높은 수준에서 복귀 할 때 판매 신호를 생성합니다.

  2. 베어 파워 인디케이터 전략

    베어 파워 지표는 상승세와 하락세 세력의 비교를 반영합니다. 설정된 판매 라인 이상에서 판매 신호를 생성하고 설정된 구매 라인 아래에서 구매 신호를 생성합니다.

신호를 결합할 때, 두 개의 신호가 같은 방향으로 신호를 내면 실제 거래 신호가 생성됩니다.

장점

  1. 반전 신호와 지표 필터를 결합하면 잘못된 파열을 피하고 신호 품질을 향상시킵니다.

  2. 여러 시간 프레임에 적용되며, 다른 시장 환경에 적응하는 데 유연합니다.

  3. 구성 전략은 단독으로 또는 모듈 디자인과 함께 사용할 수 있습니다.

위험성

  1. 반전 신호는 큰 후퇴 깊이를 직면 할 수 있습니다.

  2. 베어 파워 지표 매개 변수는 반복적인 테스트와 최적화가 필요합니다.

  3. 다중 요인 통합 전략은 복잡한 매개 변수 조정을 가지고 있으며 테스트를 위해 많은 양의 역사적 데이터를 필요로합니다.

최적화 방향

  1. 더 많은 데이터 소스를 결합 퀀트 모듈로 연결하여 더 긴 시간 범위와 더 풍부한 데이터 세트를 얻습니다.

  2. 기계 학습 방법을 적용하여 자동으로 매개 변수 조합을 검색하고 평가합니다.

  3. 단일 거래 손실을 통제하기 위해 스톱 로스 메커니즘을 추가합니다.

결론

이 전략은 반전 기술 분석과 양적 지표를 결합하여 이중 확인을 통해 신호 품질을 향상시킵니다. 높은 모듈성과 확장성을 가지고 있습니다. 첨단 기술로 추가 최적화는 더 정교한 시장 환경에 적응 할 수 있습니다.


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 29/05/2019
// This is combo strategies for get 
// a cumulative signal. Result signal will return 1 if two strategies 
// is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
//
// 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
//  Bear Power Indicator
//  To get more information please see "Bull And Bear Balance Indicator" 
//  by Vadim Gimelfarb. 
//
// 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

BearPower(SellLevel, BuyLevel) =>
    value =  iff (close < open ,  
              iff (close[1] > open ,  max(close - open, high - low), high - low), 
               iff (close > open, 
                 iff(close[1] > open, max(close[1] - low, high - close), max(open - low, high - close)), 
                  iff(high - close > close - low, 
                   iff (close[1] > open, max(close[1] - open, high - low), high - low), 
                     iff (high - close < close - low, 
                      iff(close > open, max(close - low, high - close),open - low), 
                       iff (close > open, max(close[1] - open, high - close),
                         iff(close[1] < open, max(open - low, high - close), high - low))))))
    pos = 0.0
    pos := iff(value > SellLevel, -1,
	   iff(value <= BuyLevel, 1, nz(pos[1], 0))) 

    pos

strategy(title="Combo Backtest 123 Reversal & Bear Power", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
SellLevel = input(30)
BuyLevel = input(3)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posBearPower = BearPower(SellLevel, BuyLevel)
pos = iff(posReversal123 == 1 and posBearPower == 1 , 1,
	   iff(posReversal123 == -1 and posBearPower == -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 ? red: possig == 1 ? green : blue ) 

더 많은