
Este artículo presenta una estrategia de inversión de ruptura de la línea corta basada en el indicador 5EMA. La estrategia utiliza principalmente el indicador 5EMA para determinar la tendencia de los precios y realizar una inversión de ruptura de los precios cuando se rompe el EMA.
La estrategia es una estrategia de cuantificación de línea corta, utilizada principalmente para el comercio de alta frecuencia. La estrategia juzgará las señales de tijeras y tijeras al mismo tiempo, y se puede negociar en dos direcciones. Se genera una señal de negociación cuando el precio rompe el indicador 5EMA y se entra en una posición de venta o ventaja según la dirección de la ruptura.
La ventaja de la estrategia consiste en capturar las oportunidades de reversión de precios en la línea corta y entrar rápidamente en el campo. El riesgo proviene principalmente de las pérdidas causadas por la falsa ruptura. Se puede reducir el riesgo de pérdidas mediante la optimización de los parámetros.
Utiliza el indicador de EMA de 5 ciclos para determinar la tendencia a corto plazo de los precios
Determina si el precio ha roto el indicador EMA
Cuando el precio sube hacia abajo y rompe la EMA, genera una señal de venta
Cuando el precio rompe el EMA de abajo hacia arriba, genera una señal de compra
Establezca puntos de parada y parada para limitar las pérdidas individuales
Debido a que el indicador EMA es capaz de juzgar con eficacia las tendencias a corto plazo, puede capturar rápidamente las oportunidades de negociación cuando los precios se invierten claramente. Los parámetros de 5EMA son más flexibles, reaccionan rápidamente al mercado y son adecuados para el comercio de alta frecuencia.
En general, esta estrategia es una estrategia de brecha de línea corta muy práctica. El uso del indicador EMA para determinar la reversión de precios es muy simple y efectivo, y es una herramienta importante para la cuantificación de la negociación. Se recomienda aumentar considerablemente la probabilidad de victoria de la estrategia mediante la optimización de los parámetros y la configuración de control de viento.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © samscripter
//@version=5
strategy("5 ema strategy",overlay = true,process_orders_on_close = true)
// Choose trade direction
t_dir = input.string("Both", title="Trade Direction",options=["Long", "Short", "Both"],group = 'Trade Direction Set')
long_side = t_dir == "Long" or t_dir == "Both"
short_side = t_dir == "Short" or t_dir == "Both"
// number of trade
mx_num =input.int(4,title = 'number Of trade',group = 'Maximum Number Of Trade')
var hi =0.0
var lo =0.0
var group_ma1="Ema Set"
//Ema 1
on_ma=input.bool(true,"Enable EMa 1 Plot On/Off" ,group =group_ma1)
ma_len= input.int(5, minval=1, title="Ema Length",group =group_ma1)
ma_src = input.source(close, title="Ema Source" ,group = group_ma1)
ma_out = ta.ema(ma_src, ma_len)
// buy and sell ema condition
plot(on_ma?ma_out:na, color=color.white, title="MA")
if close>ma_out and open>ma_out and low>ma_out and high>ma_out
lo:=low
if close<ma_out and open<ma_out and low<ma_out and high<ma_out
hi:=high
// condition when price is crossunder lo take sell and when price crossoing hi take buy
var buyp_sl =float(na)
var sellp_sl =float(na)
//count number trade since day stra
var count_buysell=0
if close>hi[1]
if strategy.position_size==0 and count_buysell<mx_num and long_side
strategy.entry('El',strategy.long,comment = 'Long')
count_buysell:=count_buysell+1
buyp_sl:=math.min(low,low[1])
hi:=na
if close<lo[1]
if strategy.position_size==0 and count_buysell<mx_num and short_side
strategy.entry('Es',strategy.short,comment = 'short')
count_buysell:=count_buysell+1
sellp_sl:=math.max(high,high[1])
lo:=na
//take profit multiply
tpnew = input.float(title="take profit", step=0.1, defval=1.5, group='Tp/SL')
//stop loss previous candle high and previous candle low
buy_sl = ta.valuewhen(strategy.position_size != 0 and strategy.position_size[1] == 0,buyp_sl , 0)
sell_sl= ta.valuewhen(strategy.position_size != 0 and strategy.position_size[1] == 0,sellp_sl, 0)
//take profit
takeProfit_buy = strategy.position_avg_price - ((buy_sl - strategy.position_avg_price) *tpnew)
takeProfit_sell = strategy.position_avg_price - ((sell_sl - strategy.position_avg_price) *tpnew)
// Submit exit orders
if strategy.position_size > 0
strategy.exit(id='XL', stop=buy_sl,limit=takeProfit_buy,comment_loss = 'Long Sl',comment_profit = 'Long Tp')
if strategy.position_size < 0
strategy.exit(id='XS', stop=sell_sl,limit=takeProfit_sell,comment_loss = 'Short Sl',comment_profit = 'Short Tp')
//plot data
plot(series=strategy.position_size < 0 ?sell_sl : na, style=plot.style_circles, color=color.red, linewidth=2, title="St red Stop")
plot(series=strategy.position_size > 0 ?buy_sl : na, style=plot.style_circles, color=color.green, linewidth=2, title="St green Stop")
// plot take profit
plot(series=strategy.position_size < 0 ? takeProfit_sell : na, style=plot.style_circles, color=color.orange, linewidth=2, title="take profit sell")
plot(series=strategy.position_size > 0 ? takeProfit_buy: na, style=plot.style_circles, color=color.blue, linewidth=2, title="take profit buy")
if ta.change(time('D'))
count_buysell:=0