이 전략은 거래에 진입하고 종료하는 신호로 일일 시간 프레임에서 VWAP (Volume Weighted Average Price) 를 사용합니다. 클로즈 가격이 VWAP보다 높을 때, VWAP보다 낮으면 이전 촛불의 낮은 수준에서 스톱 손실을 설정하고 목표 가격이 입상 가격보다 3 포인트 높을 때 긴 엔트리를 유발합니다. 반대로, 클로즈 가격이 VWAP보다 낮을 때, VWAP보다 높으면 이전 촛불의 높은 수준에서 스톱 손실을 설정하고 목표 가격이 입상 가격보다 3 포인트 낮을 설정하여 짧은 엔트리를 유발합니다. 이 전략에는 출구 조건이 포함되어 있지 않으므로 반대 신호가 발생 할 때까지 거래가 열려 있습니다.
트렌드를 결정하고 동적 스톱 손실과 고정 포인트 수익을 활용하기 위해 크로스 타임프레임 VWAP 데이터를 사용하여 전략은 트렌딩 시장을 효과적으로 파악하고 마감 위험을 제어하고 적시에 수익을 확보 할 수 있습니다.
이 전략은 트렌드 결정 및 신호 트리거를 위해 크로스 타임프레임 VWAP 데이터를 활용하고 동시에 동적 스톱 손실과 고정 포인트 취득을 사용하여 위험을 제어하고 이익을 잠금합니다. 이것은 간단하고 효과적인 수치적 거래 전략입니다. 트렌드 필터링, 동적 취득, 포지션 사이즈링 및 거래 세션 선택의 최적화를 통해 전략의 견고성과 수익 잠재력을 더욱 향상시킬 수 있습니다. 그러나 실제로 전략을 적용할 때 더 나은 성능 전략을 달성하기 위해 시장 특성, 거래 비용 및 매개 변수 최적화에주의를 기울여야합니다.
/*backtest start: 2024-03-06 00:00:00 end: 2024-03-07 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Pine Script Tutorial Example Strategy 1', overlay=true, initial_capital=1000, default_qty_value=100, default_qty_type=strategy.percent_of_equity) // fastEMA = ta.ema(close, 24) // slowEMA = ta.ema(close, 200) // Higher Time Frame float sl = na float tgt = na posSize = 1 vwap_1d = request.security(syminfo.tickerid, "1D", ta.vwap(close)) // plot(vwap_1d) // To avoid differences on historical and realtime bars, you can use this technique, which only returns a value from the higher timeframe on the bar after it completes: // indexHighTF = barstate.isrealtime ? 1 : 0 // indexCurrTF = barstate.isrealtime ? 0 : 1 // nonRepaintingVWAP = request.security(syminfo.tickerid, "1D", close[indexHighTF])[indexCurrTF] // plot(nonRepaintingVWAP, "Non-repainting VWAP") enterLong = ta.crossover(close, vwap_1d) exitLong = ta.crossunder(close, vwap_1d) enterShort = ta.crossunder(close, vwap_1d) exitShort = ta.crossover(close, vwap_1d) if enterLong sl := low[1]>vwap_1d ?low[1]:vwap_1d tgt:=close+3 strategy.entry("EL", strategy.long, qty=posSize) strategy.exit('exitEL', 'EL', stop=sl, limit=tgt) if enterShort sl := high[1]<vwap_1d ?high[1]:vwap_1d tgt := close-3 strategy.entry("ES", strategy.short, qty=posSize) strategy.exit('exitES', 'ES', stop=sl, limit=tgt) // if exitLong // strategy.close("EL") // if exitShort // strategy.close("ES") // goLongCondition1 = ta.crossover(close, vwap_1d) // timePeriod = time >= timestamp(syminfo.timezone, 2021, 01, 01, 0, 0) // notInTrade = strategy.position_size <= 0 // if goLongCondition1 and timePeriod and notInTrade // stopLoss = low[1] // takeProfit = close+3 // strategy.entry('long', strategy.long) // strategy.exit('exit', 'long', stop=stopLoss, limit=takeProfit) plot(close, color=color.new(#00c510, 0)) plot(vwap_1d, color=color.new(#f05619, 0)) plot(sl, color=color.new(#fbff00, 0)) plot(tgt, color=color.new(#00e1ff, 0))