이 전략은 EMA, VWAP, 및 볼륨에 기반한 거래 전략이다. 주요 아이디어는 폐쇄 가격이 VWAP 및 EMA를 통과하고 거래량이 특정 거래 시간 내에 이전 촛불의 부피보다 커지면 시그널을 생성하는 것입니다. 또한 정식 손실을 중지하고 수익을 취하며 특정 시간 내에 포지션을 닫는 조건을 설정합니다.
이 전략은 가격 추세, 시장 공정 가치 및 거래량을 포괄적으로 고려하여 특정 거래 시간 내에 거래합니다. 스톱 손실, 수익 취득 및 제한된 거래 시간이 설정되어 있지만, 실제 응용에서 변동성 시장 및 미끄러짐과 같은 위험에 여전히주의를 기울여야합니다. 미래에 더 많은 필터링 조건, 최적화 매개 변수 및 위치 관리 등을 추가하여 전략의 견고성과 수익성을 향상시킬 수 있습니다.
/*backtest start: 2024-04-27 00:00:00 end: 2024-04-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true) // Inputs emaLength = input.int(21, title="EMA Length") vwapSource = input.source(defval=hlc3, title='VWAP Source') stopLossPoints = input.float(100, title="Stop Loss (points)") targetPoints = input.float(200, title="Target (points)") session = input("0950-1430", title='Only take entry during') exit = input(defval='1515-1525', title='Exit Trade') tradein = not na(time(timeframe.period, session)) exit_time = not na(time(timeframe.period, exit)) // Calculate indicators ema = ta.ema(close, emaLength) vwapValue = ta.vwap(vwapSource) // Entry Conditions longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein // Exit Conditions longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time // Plotting plot(vwapValue, color=color.blue, title="VWAP") plot(ema, color=color.green, title="EMA") // Strategy if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) if longExitCondition strategy.close('Long', immediately=true) if shortExitCondition strategy.close("Short", immediately=true)