이 전략은 EMA 트렌드 및 Chaikin Money Flow (CMF) 지표와 결합하여 전날의 높은 및 낮은 수준의 가격 브레이크를 모니터링하여 거래 기회를 식별합니다. 여러 기술적 지표 검증을 통해 거래 정확성을 향상시키기 위해 시간 및 일일 시간 프레임 모두에서 200 기간 EMA를 사용합니다.
핵심 논리는 다음의 핵심 요소들을 포함합니다.
특정 거래 규칙: 롱 엔트리: 전날의 최고치보다 가격 폭등 + EMA보다 폐쇄 + 긍정적인 CMF 단기 진입: 전날의 하위치보다 가격 폭등 + EMA 이하의 폐쇄 + 음 CMF 출구: 롱의 EMA 아래를 넘고 쇼트의 EMA 위를 넘는다.
위험 관리 제안:
이 전략은 여러 가지 기술 지표와 다중 타임프레임 분석을 결합한 완전한 거래 시스템이다. 전략은 내일 높은-저한 브레이크오웃, 이동 평균 트렌드 및 화폐 흐름의 포괄적인 분석을 통해 거래 기회를 찾는다. 특정 위험이 존재하지만 전략은 적절한 위험 통제와 지속적인 최적화를 통해 좋은 실용적 가치를 지니고 있다. 트레이더는 라이브 구현 전에 철저한 백테스팅과 매개 변수 최적화를 수행하는 것이 좋습니다.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title='The security Daily HIGH/LOW strategy', overlay=true, initial_capital=10000, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1) // General Inputs len = input.int(24, minval=1, title='Length MA', group='Optimization parameters') src = input.source(close, title='Source MA', group='Optimization parameters') out = ta.ema(src, len) length = input.int(20, minval=1, title='CMF Length', group='Optimization parameters') ad = close == high and close == low or high == low ? 0 : (2 * close - low - high) / (high - low) * volume mf = math.sum(ad, length) / math.sum(volume, length) // Function to get daily high and low f_secureSecurity(_symbol, _res, _src) => request.security(_symbol, _res, _src[1], lookahead=barmerge.lookahead_on) pricehigh = f_secureSecurity(syminfo.tickerid, 'D', high) pricelow = f_secureSecurity(syminfo.tickerid, 'D', low) // Plotting previous daily high and low plot(pricehigh, title='Previous Daily High', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0)) plot(pricelow, title='Previous Daily Low', style=plot.style_linebr, linewidth=2, color=color.new(color.white, 0)) // Entry Conditions short = ta.crossunder(low, pricelow) and close < out and mf < 0 long = ta.crossover(high, pricehigh) and close > out and mf > 0 if short and barstate.isconfirmed strategy.entry('short', strategy.short, stop=pricelow[1]) strategy.close('short', when=close > out) if long and barstate.isconfirmed strategy.entry('long', strategy.long, stop=pricehigh[1]) strategy.close('long', when=close < out) // 200 EMA on 1-hour timeframe ema_200 = ta.ema(close, 200) ema_200_1h = request.security(syminfo.tickerid, "60", ta.ema(close, 200)) plot(ema_200_1h, color=color.purple, title="200 EMA (1H)") plot(ema_200, color=color.white, title="200 EMA")