
A estratégia de tracking stop loss baseia-se na estratégia de tracking stop loss, que permite controlar o risco de forma mais eficiente e aumentar a taxa de retorno geral.
A estratégia usa primeiro o indicador Alpha para determinar a tendência do preço. Quando o indicador Alpha sobe, é um sinal de otimismo, quando o indicador Alpha cai, é um sinal de otimismo. A estratégia gera sinais de compra e venda com base no indicador Alpha.
Ao mesmo tempo, a estratégia ativa o mecanismo de tracking stop loss. O tracking stop loss é o 10% do preço de fechamento padrão do dia. Quando se detém uma posição multihead, se o preço cair acima do valor de stop loss, o stop loss é retirado; Quando se detém uma posição headless, se o preço subir acima do valor de stop loss, o stop loss é retirado.
A tendência alfa tem uma forte capacidade de determinar a tendência dos preços e é mais eficaz do que indicadores como a média móvel comum.
Ativando o mecanismo de tracking stop loss, você pode efetivamente controlar perdas individuais e reduzir o risco.
A estratégia tem uma forte capacidade de controle de risco, que permite minimizar os prejuízos, mesmo em situações adversas.
A estratégia tem menos referências, é altamente eficiente em termos de computação e é adequada para transações de alta frequência.
Esta estratégia produz mais sinais de negociação desnecessários quando se ajusta de forma horizontal, o que aumenta os custos de negociação e a perda de deslizamento.
Ativar o rastreamento de stop loss requer uma proporção de stop loss razoável, uma proporção muito grande ou pequena não é favorável à rentabilidade da estratégia.
Quando os preços dos títulos flutuam muito, a probabilidade de um stop loss ser acionado é maior, aumentando o risco de uma armadilha.
A otimização do parâmetro de stop loss requer uma análise abrangente de vários fatores, como características do parâmetro, frequência de negociação, e não apenas a busca de maximizar os lucros.
O risco acima pode ser mitigado por meio de ajustes nos parâmetros do indicador Alpha, configuração de stop loss DYNAMIC e redução do ciclo de negociação.
É possível testar diferentes parâmetros indicadores para encontrar uma combinação mais adequada de parâmetros indicadores alfa.
Tente definir um stop loss baseado no ATR dinâmico, para que ele possa se adaptar melhor às flutuações do mercado.
Pode ser combinado com outros indicadores de filtragem de sinais, como MACD, KD, etc., para filtrar alguns sinais falsos.
A inteligência da seleção de parâmetros pode ser aumentada com o uso de técnicas como aprendizado de máquina, que podem otimizar automaticamente os parâmetros com base nos resultados do disco real e do feedback.
A estratégia de parada de perda de seguimento de tendência alfa combina o julgamento de tendência com o controle de risco, permitindo identificar efetivamente as tendências de preços e bloquear os lucros para reduzir o risco. Em comparação com a estratégia de seguimento de tendência simples, a estratégia pode obter maiores ganhos estáveis.
/*backtest
start: 2023-10-27 00:00:00
end: 2023-11-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// author © KivancOzbilgic
// developer © KivancOzbilgic
//@version=5
strategy("AlphaTrend Strategy", shorttitle='ATst', overlay=true, format=format.price, precision=2, margin_long=100, margin_short=100)
coeff = input.float(1, 'Multiplier', step=0.1)
AP = input(14, 'Common Period')
ATR = ta.sma(ta.tr, AP)
src = input(close)
showsignalsk = input(title='Show Signals?', defval=false)
novolumedata = input(title='Change calculation (no volume data)?', defval=false)
upT = low - ATR * coeff
downT = high + ATR * coeff
AlphaTrend = 0.0
AlphaTrend := (novolumedata ? ta.rsi(src, AP) >= 50 : ta.mfi(hlc3, AP) >= 50) ? upT < nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : upT : downT > nz(AlphaTrend[1]) ? nz(AlphaTrend[1]) : downT
color1 = AlphaTrend > AlphaTrend[1] ? #00E60F : AlphaTrend < AlphaTrend[1] ? #80000B : AlphaTrend[1] > AlphaTrend[3] ? #00E60F : #80000B
k1 = plot(AlphaTrend, color=color.new(#0022FC, 0), linewidth=3)
k2 = plot(AlphaTrend[2], color=color.new(#FC0400, 0), linewidth=3)
fill(k1, k2, color=color1)
buySignalk = ta.crossover(AlphaTrend, AlphaTrend[2])
sellSignalk = ta.crossunder(AlphaTrend, AlphaTrend[2])
K1 = ta.barssince(buySignalk)
K2 = ta.barssince(sellSignalk)
O1 = ta.barssince(buySignalk[1])
O2 = ta.barssince(sellSignalk[1])
plotshape(buySignalk and showsignalsk and O1 > K2 ? AlphaTrend[2] * 0.9999 : na, title='BUY', text='BUY', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(#0022FC, 0), textcolor=color.new(color.white, 0))
plotshape(sellSignalk and showsignalsk and O2 > K1 ? AlphaTrend[2] * 1.0001 : na, title='SELL', text='SELL', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.maroon, 0), textcolor=color.new(color.white, 0))
// //ENTER SOME SETUP TRADES FOR TSL EXAMPLE
// longCondition = ta.crossover(ta.sma(close, 10), ta.sma(close, 20))
// if longCondition
// strategy.entry('My Long Entry Id', strategy.long)
// shortCondition = ta.crossunder(ta.sma(close, 10), ta.sma(close, 20))
// if shortCondition
// strategy.entry('My Short Entry Id', strategy.short)
longCondition = buySignalk
if (longCondition)
strategy.entry("Long", strategy.long)
shortCondition = sellSignalk
if (shortCondition)
strategy.entry("Short", strategy.short)
enableTrailing = input.bool(title='Enable Trailing Stop (%)',defval = true)
//TRAILING STOP CODE
trailStop = input.float(title='Trailing (%)', minval=0.0, step=0.1, defval=10) * 0.01
longStopPrice = 0.0
shortStopPrice = 0.0
longStopPrice := if strategy.position_size > 0
stopValue = close * (1 - trailStop)
math.max(stopValue, longStopPrice[1])
else
0
shortStopPrice := if strategy.position_size < 0
stopValue = close * (1 + trailStop)
math.min(stopValue, shortStopPrice[1])
else
999999
//PLOT TSL LINES
plot(series=strategy.position_size > 0 ? longStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Long Trail Stop', offset=1, title='Long Trail Stop')
plot(series=strategy.position_size < 0 ? shortStopPrice : na, color=color.new(color.red, 0), style=plot.style_linebr, linewidth=1, title='Short Trail Stop', offset=1, title='Short Trail Stop')
if enableTrailing
//EXIT TRADE @ TSL
if strategy.position_size > 0
strategy.exit(id='Close Long', stop=longStopPrice)
if strategy.position_size < 0
strategy.exit(id='Close Short', stop=shortStopPrice)