
A estratégia baseia-se no modelo de seleção de ações de Mark Menevigne, combinado com o indicador de média móvel para determinar a tendência do preço das ações, permitindo comprar e parar automaticamente. A estratégia determina principalmente se as ações estão em uma tendência ascendente e se romperam a média móvel crítica, gerando assim um sinal de compra.
A estratégia julga principalmente as seguintes condições, gerando um sinal de compra quando as condições são simultaneamente satisfeitas:
Quando as condições acima são preenchidas, a estratégia determina que o preço da ação está em fase ascendente, gerando um sinal de compra.
Além disso, a estratégia simultaneamente estabelece uma linha de stop-loss, quando o preço da ação retrocede 5% ou sobe 10% a partir do ponto mais alto.
A estratégia, em geral, segue a lógica do comércio de tendências, gerando um sinal de compra com base na confirmação de uma tendência ascendente do preço das ações. Ao mesmo tempo, configura um mecanismo de controle de risco de perda. Ao otimizar os parâmetros detalhados, a estabilidade e a lucratividade da estratégia podem ser melhoradas.
/*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)