Эта стратегия использует шаблон выбора акций Марка Минервини и показатели скользящей средней для определения ценовых тенденций для автоматического входа и стоп-лосса. В основном она оценивает, находятся ли цены на акции в восходящем тренде и прошли ли они через ключевые скользящие средние для генерации сигналов покупки. В то же время стратегия устанавливает линию стоп-лосса для активного прекращения потерь при падении цен.
Стратегия в основном оценивает следующие условия и генерирует сигнал покупки, когда они выполняются одновременно:
Когда вышеперечисленные условия выполнены, стратегия оценивает, что цена акций находится в восходящей тенденции и генерирует сигнал покупки.
Кроме того, стратегия также устанавливает линию стоп-лосса. Когда цена акций падает на 5% от своего пика или повышается на 10%, она прекращает потерю или получает прибыль.
Стратегия в целом следует идее трендовой торговли, генерируя сигналы покупки, когда подтверждается восходящий тренд цен на акции. В то же время, для контроля рисков установлен механизм стоп-лосса. Оптимизируя различные детальные параметры, можно еще больше улучшить стабильность и рентабельность стратегии. Однако ни одна стратегия не может полностью избежать рыночных рисков, поэтому инвесторы должны относиться к ней осторожно.
/*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)