Esta estratégia define pontos de stop-loss com base em máximos recentes e mínimos recentes para entrar rapidamente em tendências e controlar rigorosamente os riscos. Ele entra em posições longas quando os preços aumentam consecutivamente e posições curtas quando os preços caem consecutivamente. Ao manter posições, o nível de stop-loss para posições longas é o mais baixo dos poucos bares recentes, e o nível de stop-loss para posições curtas é o mais alto. Esta abordagem dinâmica de stop-loss pode capturar eficientemente as tendências enquanto limita rigorosamente as perdas.
input
função para definir os períodos de retrospecçãohiLen
eloLen
para os máximos mais altos e mínimos mais baixos, a inadimplência para 20.hiHighs
até à barra anterior usandota.highest(high, hiLen)[1]
, e a mais baixaloLows
Utilizaçãota.lowest(low, loLen)[1]
.loLows
para posições longas ehiHighs
Para facilitar a confirmação, não trace quando está em plano.higherCloses
: as últimas 3 barras têm fechamentos consecutivamente mais elevadoslowerCloses
: as últimas 3 barras têm fechamentos consecutivamente mais baixosisFlat
: nenhuma posição correnteisFlat
ehigherCloses
, entrar em curto quandoisFlat
elowerCloses
.loLows
; para posições curtas, parar emhiHighs
.Em resumo, esta estratégia utiliza máximos e mínimos recentes para estabelecer paradas, entrando rapidamente em tendências fortes e limitando rigorosamente as perdas, capturando assim de forma eficiente os lucros da tendência.
Esta estratégia de alto/baixo mais alto/baixo mais baixo define paradas dinâmicas com base nos próprios preços para capturar eficientemente tendências fortes e controlar rigorosamente os riscos. Suas vantagens são simplicidade, eficácia, entradas rápidas, paradas rigorosas e alta adaptabilidade. No entanto, ele apresenta um desempenho fraco em mercados agitados, finais de tendência e movimentos extremos, e requer atenção às configurações de parâmetros. Melhorias futuras podem adicionar confirmação de tendência e impulso, otimizar paradas e dimensionamento de posiçã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)