
A estratégia baseia-se em um ponto de parada de alto e baixo preço, para cortar rapidamente a tendência e controlar rigorosamente o risco. Abrir uma posição múltipla quando os preços aumentam em sequência e abrir uma posição vazia quando caem em sequência.
inputA função define o período de referência do preço máximo e mínimohiLeneloLenNão, não, não.ta.highest(high, hiLen)[1]Calcule o preço máximo até a linha K anteriorhiHighsUsar.ta.lowest(low, loLen)[1]Calcule o preço mínimo até a linha KloLows。loLowsA posição de parada do cartão vazio éhiHighsNão se deve desenhar quando não se está em posse, para que seja fácil de ver.higherCloseslowerClosesisFlatisFlatehigherClosesO que é que isso quer dizer?isFlatelowerClosesQuando abrir o cartão.loLowsO preço de suspensão de perdas para a posição em aberto éhiHighs。Resumindo, a estratégia usa o máximo e o mínimo dos últimos tempos para definir um stop loss móvel, para cortar rapidamente a tendência forte e limitar rigorosamente os perdas, capturando de forma eficiente os ganhos da tendência.
A estratégia de parada de perda mais baixa é baseada na configuração de parada dinâmica do próprio preço, captura de forma eficiente as tendências fortes e controla rigorosamente o risco. Os seus benefícios são simples e eficazes, de corte rápido, de parada rigorosa e de forte adaptabilidade. Mas o fraco desempenho em mercados turbulentos, finais de tendências e situações extremas, configuração de parâmetros também precisa de atenção.
/*backtest
start: 2023-03-02 00:00:00
end: 2024-03-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Highest high/lowest low stop", overlay=true)
// STEP 1:
// Make inputs for length of highest high and lowest low
hiLen = input.int(20, title="Highest High Lookback", minval=2)
loLen = input.int(20, title="Lowest Low Lookback", minval=2)
// STEP 2:
// Calculate recent extreme high and low
hiHighs = ta.highest(high, hiLen)[1]
loLows = ta.lowest(low, loLen)[1]
// Plot stop values for visual confirmation
plot(strategy.position_size > 0 ? loLows : na,
style=plot.style_circles, color=color.green, linewidth=3,
title="Lowest Low Stop")
plot(strategy.position_size < 0 ? hiHighs : na,
style=plot.style_circles, color=color.red, linewidth=3,
title="Highest High Stop")
// Trading conditions for this example strategy
higherCloses = close > close[1] and
close[1] > close[2] and
close[2] > close[3]
lowerCloses = close < close[1] and
close[1] < close[2] and
close[2] < close[3]
isFlat = strategy.position_size == 0
// Submit entry orders
if isFlat and higherCloses
strategy.entry("EL", strategy.long)
if isFlat and lowerCloses
strategy.entry("ES", strategy.short)
// STEP 3:
// Submit stops based on highest high and lowest low
if strategy.position_size > 0
strategy.exit("XL HH", stop=loLows)
if strategy.position_size < 0
strategy.exit("XS LL", stop=hiHighs)