
La estrategia es una estrategia de negociación basada en EMA, VWAP y volumen de transacción. La idea principal es que se genere una señal de apertura de posición en un determinado período de tiempo de negociación, cuando el precio de cierre de liquidación rompa el VWAP y el EMA, y el volumen de transacción es mayor que el volumen de transacción de la línea K anterior. Al mismo tiempo, se establecen paros y paradas de pérdida, así como condiciones para liquidar la posición en un período de tiempo específico.
La estrategia toma en cuenta la tendencia integral de los precios, el valor justo del mercado y el volumen de transacciones, y las transacciones se realizan en un período de tiempo específico. Aunque se establecen paros de pérdida y tiempos de negociación limitados, en la aplicación real se debe tener en cuenta los riesgos como los mercados de volatilidad y los puntos de deslizamiento. En el futuro, se puede mejorar la solidez y la rentabilidad de la estrategia mediante la adición de más condiciones de filtrado, la optimización de los parámetros y la gestión de la posición.
/*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)