크로스오버 마스터 - 역전 브레이크아웃 전략은 이동 평균을 기반으로 한 간단하면서도 실용적인 거래 전략이다. 빠른 이동 평균과 느린 이동 평균의 크로스오버를 구매 및 판매 신호로 사용합니다. 빠른 MA가 느린 MA를 넘을 때 구매 신호가 생성됩니다. 빠른 MA가 느린 MA를 넘을 때 판매 신호가 생성됩니다. 이 전략은 중간 변동성 시장에 적합합니다.
이 전략은 단기 빠른 MA와 장기 느린 MA를 두 개의 이동 평균을 사용합니다. 빠른 MA 기간은 12, 느린 MA 기간은 26. 전략은 먼저 가격 입력으로 ENDPOINT의 2 일 간 간단한 이동 평균을 계산하고, 빠른 MA와 느린 MA를 계산합니다. 빠른 MA가 느린 MA를 넘으면 구매 신호가 발동됩니다. 빠른 MA가 느린 MA를 넘으면 판매 신호가 발동됩니다.
특히, 전략은 시장 추세를 결정하기 위해 빠른 MA와 느린 MA의 값을 비교합니다. 빠른 MA가 느린 MA보다 크면 시장은 상승 추세 (Bullish) 로 간주됩니다. 빠른 MA가 느린 MA보다 작을 때 시장은 하락 추세 (Bearish) 로 간주됩니다. 전략은 시장 반전 중에 신호를 생성하기 위해 가격 동력과 결합됩니다.
구매 신호의 논리는 다음과 같습니다. 시장이 하향 트렌드에서 상승 트렌드로 전환하면 즉 빠른 MA가 느린 MA를 넘어서고 가격이 빠른 MA를 넘으면 구매 신호가 생성됩니다.
판매 신호의 논리는 다음과 같습니다. 시장이 상승 추세에서 하락 추세로 전환하면 즉 빠른 MA가 느린 MA보다 낮아지고 가격이 빠른 MA보다 낮을 때 판매 신호가 생성됩니다.
이 디자인을 통해 전략은 역행 기회를 적시에 포착할 수 있습니다.
이 전략의 장점은 다음과 같습니다.
전략 논리는 간단하고 명확하고 이해하기 쉽고 실행하기 쉽습니다.
이동 평균 기법은 성숙하고 신뢰할 수 있으며 널리 사용됩니다.
이중 MA 디자인은 시장 소음을 효과적으로 필터링하고 트렌드를 식별 할 수 있습니다.
가격 동력을 결합하면 거래의 타이밍 정확도가 향상됩니다.
시장에 따라 매개 변수에 대한 큰 최적화 공간.
스톱 로스는 리스크 통제에 추가될 수 있습니다.
적당한 거래 빈도, 과잉 거래를 피합니다.
볼링거 밴드, RSI와 같은 다른 지표와 결합하여 향상시킬 수 있습니다.
전략 성과를 검증할 수 있는 충분한 백테스팅 데이터
이 전략의 위험은 다음과 같습니다.
듀얼 MA 전략은 잘못된 신호, 트렌드 누락 또는 불필요한 트레이드를 생성할 수 있습니다.
MA는 지연효과가 있고, 빠른 반전을 놓칠 수 있습니다.
부적절한 매개 변수 설정으로 인해 거래 빈도가 너무 높거나 낮습니다.
이 전략은 중장기 거래에 더 적합합니다.
급격한 시장 충격에 적응할 수 없습니다.
특정 기간 동안 손실의 가능성
매개 변수는 다른 제품마다 조정되어야 합니다.
범위에 한정된 시장에서는 덜 효과적입니다.
위험은 다음과 같이 감소 할 수 있습니다.
시장 조건에 따라 매개 변수를 최적화합니다.
다른 지표와 함께 필터를 추가합니다.
손실을 통제하기 위해 스톱 로스를 구현합니다.
위치 크기를 적절히 조정합니다.
제품별로 매개 변수 테스트 및 최적화
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
현재 시장에 더 잘 맞게 MA 기간을 최적화하십시오.
EMA, WMA 등과 같은 다양한 유형의 MAs를 테스트합니다.
트렌드를 확인하기 위해 부피 지표를 추가합니다.
MACD, RSI와 같은 다른 지표를 결합하여
트레일링 스톱 로스 같은 스톱 로스 기술을 추가합니다.
위치 크기를 최적화하는 방법, 예를 들어 고정 분수, 동적 등
시간 및 제품별로 테스트 매개 변수 최적화
자동 매개 변수 조정 및 신호 검증을 위한 기계 학습을 도입합니다.
더 복잡한 차트 패턴을 감지하기 위해 딥러닝을 적용하세요.
매개 변수 없는 전략 설계 개념을 탐구합니다.
지속적인 최적화는 전략의 적응력을 향상시키고 다양한 시장 조건에서 일관된 결과를 얻을 수 있습니다.
요약하자면, 크로스오버 마스터 - 역전 브레이크아웃 전략은 명확한 논리와 실용적 가치를 가지고 있습니다. 이동 평균의 트렌드 추적 능력을 활용하고 신호 품질을 개선하기 위해 가격 동력을 결합합니다. 매개 변수 및 위험 통제를 개선할 여지가 있습니다. 전반적으로, 간단한 지표에 기반한 브레이크아웃 전략의 좋은 예를 제공하며 양자 전략 학습에 유용한 사례 연구로 사용될 수 있습니다. 지속적인 향상으로 적응 가능한 효과적인 전략으로 발전할 가능성이 있습니다.
/*backtest start: 2022-10-13 00:00:00 end: 2023-10-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("CDC Action Zone V.2 strategy", overlay=true) // Credit Script base from CDC Action Zone V.2 by piriya33 // CDC ActionZone V2 29 Sep 2016 // CDC ActionZone is based on a simple 2MA and is most suitable for use with medium volatility market // 11 Nov 2016 : Ported to Trading View with minor UI enhancement src = input(title="Data Array",defval=ohlc4) prd1=input(title="Short MA period",defval=12) prd2=input(title="Long MA period",defval=26) AP = ema(src,2) Fast = ema(AP,prd1) Slow = ema(AP,prd2) // === INPUT BACKTEST RANGE === FromYear = input(defval = 2019, title = "From Year", minval = 2009) FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) ToYear = input(defval = 9999, title = "To Year", minval = 2009) ToMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) ToDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) // === FUNCTION EXAMPLE === start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window window() => time >= start and time <= finish ? true : false // create function "within window of time" Bullish = Fast>Slow Bearish = Fast<Slow Green = Bullish and AP>Fast Red = Bearish and AP<Fast Yellow = Bullish and AP<Fast Blue = Bearish and AP>Fast //Long Signal Buy = Green and Green[1]==0 Sell = Red and Red[1]==0 //Short Signal Short = Red and Red[1]==0 Cover = Red[1] and Red==0 //Plot l1=plot(Fast,"Fast", linewidth=1,color=red) l2=plot(Slow,"Slow", linewidth=2,color=blue) bcolor = Green ? lime : Red ? red : Yellow ? yellow : Blue ? blue : white barcolor(color=bcolor) fill(l1,l2,bcolor) strategy.entry("Buy",true,when=window() and Buy) strategy.close_all(when=window() and Sell)