이것은 모멘텀 브레이크오웃과 평균 반전을 기반으로 한 단기 거래 전략입니다. 단기 트렌드를 잡기 위해 브레이크오웃 모멘텀과 방향 기회를 식별하기 위해 이동 평균, 촛불 패턴, 볼륨 및 변동성 등 여러 지표를 통합합니다.
3일 EMA를 참조 이동 평균 라인으로 사용하십시오. 닫기 가격이 이 라인을 넘으면 시장의 하락 추세를 나타냅니다 (Cond01).
오픈 가격은 전날의 OHLC 가격 (오프닝, 하위, 하위 및 클로즈 가격의 평균) 보다 높습니다. 이것은 오픈에 대한 강한 구매 관심을 나타냅니다. 이는 상승 신호입니다 (Cond02).
부피는 전날의 부피보다 낮습니다. 이것은 방향 파업 (Cond03) 을 선호하는 충분한 추진력을 보여줍니다.
닫기 가격은 전날의 가격 범위에서 벗어납니다. 이것은 파업 신호입니다 (Cond04).
위의 4가지 조건이 모두 충족되면, 길게 가세요 (Entry)
출구 규칙: 출구 이후 바가 10을 초과하거나 최대 수익이 5을 달성하면 포지션을 닫습니다 (출구).
이 전략은 단기 트렌드를 포착하기 위해 시장의 브레이크오웃 방향을 결정하기 위해 여러 지표를 결합합니다. 그러나 각 조건은 단기 트렌드를 결정하는 데 약한 능력으로 1-3 바에만 보입니다.
여러 가지 지표를 이용하면 잘못된 유출을 필터링하고 유효한 유출을 식별할 수 있습니다.
불충분한 추진력은 방향적인 파기와 트렌드 발화로 인해 더 명확한 방향적인 기회를 잡을 수 있습니다.
높은 거래 빈도는 빠른 작은 이익을 잠금하기 위해 단기 거래에 적합합니다.
합리적인 스톱 로즈와 수익 취득은 단일 거래 손실과 위험 통제를 가능하게 합니다.
여러 개의 동시에 열리는 거래는 과도한 거래의 위험을 야기합니다.
정적 매개 변수 설정이 너무 딱딱할 수도 있습니다. 적응적인 매개 변수를 도입할 수 있습니다.
실패한 브레이크업의 확률이 존재하며, 이는 거래 손실로 이어질 수 있습니다.
주요 추세에 대한 포괄적 인 이해 없이 단기 정보에만 집중하십시오.
손익분기 지점은 너무 좁아서 20~30바로 확대할 수 있습니다.
주요 트렌드에 반대되는 거래를 피하기 위해 트렌드 결정을 포함합니다. 주요 트렌드 방향으로 거래를 수행하기 위해 장기 이동 평균을 추가 할 수 있습니다.
매개 변수 설정을 최적화. EMA 기간, 브레이크아웃 매개 변수는 다른 시장 조건에 맞게 테스트하고 최적화 할 수 있습니다. 적응 매개 변수는 자동 조정에도 사용할 수 있습니다.
조건을 개선합니다. A/D, 볼링거 대역 폭, RSI와 같은 다른 보조 지표가 추가되어 브레이크의 유효성을 확인하고 잘못된 브레이크를 줄일 수 있습니다.
광범위한 백테스트, 극단적인 시장 조건에서 성능을 검사합니다. 거대한 상승과 하락, 불안정한 시장 등에서 전략 성과를 조사하기 위해 역사적 데이터에 대한 테스트
스톱 손실 메커니즘을 최적화하십시오. 더 유연한 스톱 손실을 만들기 위해 후속 스톱 손실, 퍼센트 스톱 손실, 적응 스톱 손실 등을 고려하십시오.
이 전략은 EMA, 부피, 변동성 및 기타 지표를 통합하여 단기 기회를 동력으로 식별합니다. 그것은 빈번한 수익과 빠른 이익을 잠금하기 위한 민첩한 운영을 가진 전형적인 단기 브레이크아웃 전략입니다. 그러나 주요 트렌드를 포괄적으로 이해하지 않고 최근 정보에 너무 집중합니다. 우리는 트렌드 요인을 통합하여 최적화 할 수 있습니다. 매개 변수 최적화, 브레이크아웃 유효성 향상, 전략을 더 견고하고 적응력있게 만들기 위해 극단적인 조건을 테스트합니다.
/*backtest start: 2023-10-01 00:00:00 end: 2023-10-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Free Strategy #01 (ES / SPY)", overlay=true) // Inputs Quantity = input(1, minval=1, title="Quantity") EmaPeriod = input(3, minval=1, title="EMA Period") MaxProfitCloses = input(5, minval=1, title="Max Profit Close") MaxBars = input(10, minval=1, title="Max Total Bars") // Misc Variables src = close BarsSinceEntry = 0 MaxProfitCount = 0 Ema = ema(close, EmaPeriod) OHLC = (open + high + low + close) / 4.0 // Conditions Cond00 = strategy.position_size == 0 Cond01 = close < Ema Cond02 = open > OHLC Cond03 = volume <= volume[1] Cond04 = (close < min(open[1], close[1]) or close > max(open[1], close[1])) // Update Exit Variables BarsSinceEntry := Cond00 ? 0 : nz(BarsSinceEntry[1]) + 1 MaxProfitCount := Cond00 ? 0 : (close > strategy.position_avg_price and BarsSinceEntry > 1) ? nz(MaxProfitCount[1]) + 1 : nz(MaxProfitCount[1]) // Entries strategy.entry(id="L1", long=true, qty=Quantity, when=(Cond00 and Cond01 and Cond02 and Cond03 and Cond04)) // Exits strategy.close("L1", (BarsSinceEntry - 1 >= MaxBars or MaxProfitCount >= MaxProfitCloses))