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