리소스 로딩... 로딩...

이중 이동 평균 반전 및 삼중 하위 플래시 컴보 거래 전략

저자:차오장, 날짜: 2023-10-26 16:26:24
태그:

img

전반적인 설명

이 거래 전략은 콤보 응용을 위해 이동 평균 반전 및 트리플 바닥 플래시 기술 지표의 장점을 완전히 활용합니다. 트렌드를 추적하면서 반전 기회를 포착하고 일부 잘못된 브레이크 아웃 신호를 필터링하여 거래 시스템의 승률을 효과적으로 향상시킬 수 있습니다.

전략 원칙

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

  1. 2일 이동 평균과 20일 이동 평균의 조합입니다. 2일 이동 평균이 20일 이동 평균에서 벗어날 때 구매 및 판매 신호가 생성됩니다.

  2. 트리플 바닥 플래시 패턴. 이 패턴의 출현은 단기적 역전 신호입니다. 형성 조건은: 중간 날의 최저가 전날과 다음 날보다 낮고 다음 날의 폐쇄 가격은 전날의 최고보다 높습니다.

2일과 20일 이동 평균이 동시에 반전 신호를 표시하고, 세 배 아래 플래시 패턴 신호의 방향과 일치하면 구매 또는 판매 조치를 취합니다.

코드에서, 2일 및 20일 이동 평균은 먼저 계산됩니다. 2일 이동 평균이 20일 이동 평균을 상향 또는 하향으로 돌파하면 구매/판매 신호가 생성됩니다.

세 개의 아래 플래시 패턴이 감지되면 패턴 방향 신호는 1 또는 -1로 설정됩니다. 전날의 패턴 신호를 읽고 현재 이동 평균 신호와 결합하여 최종 입력 신호를 생성합니다.

따라서 이동 평균과 패턴의 조합으로 필터링을 통해 일부 잘못된 신호를 필터링하여 거래 전략을 더 신뢰할 수 있습니다.

장점

  1. 여러 가지 기술 지표의 조합은 서로를 보완하고 확인하고 신호 신뢰성을 향상시킬 수 있습니다.

  2. 이동 평균 반전은 트렌드의 반전 지점을 적시에 포착하고 반전을 활용 할 수 있습니다. 세 배 아래 플래시는 반전 형성을 추가로 확인할 수 있습니다.

  3. 20일 이동 평균은 중장기 트렌드를 추적하고, 2일 이동 평균은 단기 조정 후의 입점점을 포착합니다. 여러 시간 프레임의 조합으로 트렌드를 완전히 파악 할 수 있습니다.

  4. 전략은 매개 변수에 민감하지 않으며 구현 및 최적화하기가 쉽습니다.

위험성

  1. 반전 패턴은 잘못된 판단에 취약하고 신뢰성을 판단하기 위해 경험이 필요합니다.

  2. 반전 신호는 지연될 수 있어 패턴 특징을 관찰하고 적절한 위치 조정이 필요합니다.

  3. 다양한 거래 품종에 대한 테스트와 최적화가 필요하며 일부 매개 변수를 조정해야 할 수도 있습니다.

  4. 손실 통제는 중요한 반전 지점을 놓치지 않도록 손실 중지 메커니즘을 도입해야합니다.

최적화

  1. 다양한 이동 평균 조합을 테스트하여 가장 좋은 매개 변수를 선택하십시오.

  2. 부피, 볼린저 밴드 등과 같은 다른 보조 지표를 도입하여 여러 지표를 확인합니다.

  3. 스톱 로스 모듈을 추가하여 드라운드와 리스크를 제어합니다.

  4. 조기나 늦은 문제를 피하기 위해 출입 시기를 최적화하십시오.

  5. 특정 품종에 대한 매개 변수 최적화를 수행하여 적응력을 향상시킵니다.

요약

이 전략은 두 가지의 효과적인 조합을 달성하기 위해 이동 평균 반전과 단기 패턴의 장점을 최대한 활용하여 거래 시스템의 안정성과 승률을 향상시킬 수 있습니다. 그러나 위험 통제, 매개 변수 테스트 및 최적화는 다른 품종의 특성에 적응해야합니다. 전반적으로 전략은 간단하고 명확한 구조를 가지고 있으며 구현하기가 쉽고 실용적인 트렌드 반전 거래 전략입니다.


/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 25/12/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov 
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// This startegy based on 3-day pattern reversal described in "Are Three-Bar 
// Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in 
// January,2000 issue of Stocks&Commodities magazine.
// That pattern conforms to the following rules:
// - It uses daily prices, not intraday or weekly prices;
// - The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
// - The last day must have a close above the prior day's high, with no ties allowed;
// - Each day must have a nonzero trading range. 
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length ) =>
    pos = 0.0
    xPrice = close
    xXA = ema(xPrice, Length)
    nHH = max(high, high[1])
    nLL = min(low, low[1])
    nXS = iff((nLL > xXA)or(nHH < xXA), nLL, nHH)
    pos := iff(nXS > close[1] , -1, iff(nXS < close[1] , 1, nz(pos[1], 0))) 
	pos

BarR()=>
    pos = 0.0
    pos :=	iff(open[2] > close[2] and high[1] < high[2] and low[1] < low[2] and low[0] > low[1] and high[0] > high[1], 1,
    	     iff(open[2] < close[2] and high[1] > high[2] and low[1] > low[2] and high[0] < high[1] and low[0] < low[1], -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo 2/20 EMA & 3 Day Pattern", shorttitle="Combo", overlay = true)
var I1  = "●═════ 2/20 EMA ═════●"
Length = input(14, minval=1, group = I1)
//var I2  = "●═════ 3-Bar-Reversal-Pattern ═════●"
var misc  = "●═════ MISC ═════●"
reverse = input(false, title="Trade reverse", group = misc)
var timePeriodHeader  = "●═════ Time Start ═════●"
d = input(1, title="From Day", minval=1, maxval=31, group=timePeriodHeader)
m = input(1, title="From Month", minval=1, maxval=12, group=timePeriodHeader)
y = input(2005, title="From Year", minval=0, group=timePeriodHeader)

StartTrade = true
prePos3Bar = BarR()

posEMA20 = EMA20(Length)
pos3BarR = security(syminfo.tickerid, "D", prePos3Bar[1], barmerge.gaps_off, barmerge.lookahead_on)
pos = iff(posEMA20 == 1 and pos3BarR == 1 and StartTrade , 1,
	   iff(posEMA20 == -1 and pos3BarR == -1 and StartTrade, -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 )

더 많은