Esta estrategia utiliza la plantilla de selección de acciones de Mark Minervini y los indicadores de promedio móvil para determinar las tendencias de precios para la entrada automática y el stop-loss.
La estrategia evalúa principalmente las siguientes condiciones y genera una señal de compra cuando se cumplen al mismo tiempo:
Cuando se cumplen las condiciones anteriores, la estrategia juzga que el precio de la acción está en una tendencia al alza y genera una señal de compra.
Además, la estrategia también establece una línea de stop-loss. Cuando el precio de las acciones cae un 5% desde su pico o sube un 10%, se detendrá la pérdida o se obtendrá ganancia.
La estrategia en general sigue la idea del comercio de tendencia, generando señales de compra cuando se confirma la tendencia alcista de los precios de las acciones. Al mismo tiempo, se establece un mecanismo de stop-loss para controlar los riesgos. Al optimizar varios parámetros detallados, se puede mejorar aún más la estabilidad y la rentabilidad de la estrategia. Sin embargo, ninguna estrategia puede evitar completamente los riesgos del mercado, por lo que los inversores deben tratarla con precaución.
/*backtest start: 2022-12-13 00:00:00 end: 2023-12-19 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Pure Mark Minervini 10%TP 5%CL", pyramiding = 0, commission_type=strategy.commission.percent, commission_value=0.08, overlay=true) ma50 = sma(close,50) ma150 = sma(close,150) ma200 = sma(close,200) ma200_22 = ma200[22] high_loopback = input(260, "High Lookback Length") low_loopback = input(260, "Low Lookback Length") highest_price = highest(high, high_loopback) lowest_price = lowest(low, low_loopback) above52lo = ((close/lowest_price)-1)*100 below52hi = (1-(close/highest_price))*100 ep = strategy.position_avg_price trigger = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 var label maLabel = na if (trigger) yLocation = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ? yloc.abovebar : yloc.belowbar // labelStyle = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 ? // label.style_labeldown : // label.style_labelup buy = close>ma150 and close>ma200 and ma150>ma200 and ma200>ma200_22 and ma50>ma150 and ma50>ma200 and close>ma50 and above52lo>=25 and below52hi<=25 and close>0.3 sell = close>ep*1.1 or close<ep*0.95 strategy.entry("TF", strategy.long, when = buy) strategy.close("TF", when = sell)