Estratégia de stop-profit e stop-loss do canal Ketner


Data de criação: 2023-09-15 14:41:46 última modificação: 2023-09-15 14:41:46
cópia: 0 Cliques: 801
1
focar em
1617
Seguidores

Visão geral da estratégia

A estratégia de stop-loss do canal de Kertner é uma estratégia quantitativa para otimizar as decisões de negociação com base no método de análise do canal de Kertner, juntando regras de stop-loss. A estratégia monitora a relação entre o preço e o declínio do canal, entrando na direção de fazer mais curto-circuito quando a ruptura ocorre e atingindo o equilíbrio de riscos e ganhos de acordo com o ponto de stop-loss ideal.

Princípio da estratégia

  1. Calcule os eixos médio, superior e inferior do túnel de Kertner.

  2. Quando o preço toca a linha de cima, considere a possibilidade de fazer mais oportunidades; quando toca a linha de baixo, considere a possibilidade de fazer menos oportunidades.

  3. A entrada é maior quando o preço sobe; a entrada é menor quando o preço desce.

  4. Configure um ponto de parada para aumentar a entrada em uma determinada proporção e um ponto de parada para diminuir a entrada em uma determinada proporção.

A vantagem da estratégia é a introdução de regras de stop-loss, para parar em tempo hábil quando os perdas são excessivas em corridas positivas; para parar em tempo hábil antes do final da onda. Ao mesmo tempo, também fornece sinais de reentrada e participação sustentável em negociações de tendência.

Os parâmetros podem ser otimizados para diferentes variedades para alcançar o melhor equilíbrio de risco e ganho.

Vantagens estratégicas

  • O canal de Kettner julga a direção da tendência

  • Stop loss para otimizar a receita

  • A entrada e a saída são suaves, evitando falsas brechas.

  • A estratégia é flexível e os parâmetros ajustáveis

  • Pode ser usado em combinação com outros indicadores

Alerta de risco

  • A necessidade de aumentar adequadamente o Stop Loss Ratio

  • Ainda há um risco de perda

  • O canal pode ser destruído e causar prejuízos.

  • Pequenas perdas de parada podem causar frequentes paradas

Resumir

A estratégia de stop-loss do canal de Kertner é otimizada para a negociação de canais tradicionais, controlando o risco de negociação ao mesmo tempo em que segue a tendência. O bom efeito da estratégia pode ser obtido com o feedback repetido e o ajuste de parâmetros.

Código-fonte da estratégia
/*backtest
start: 2023-08-15 00:00:00
end: 2023-08-23 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Optimized Keltner Channels Strategy for BTC", overlay=true)
length = input(9, minval=1)
mult = input(1.0, "Multiplier")
src = input(close, title="Source")
exp = input(true, "Use Exponential MA")
BandsStyle = input("Average True Range", options = ["Average True Range", "True Range", "Range"], title="Bands Style")
atrlength = input(18, "ATR Length")
sl = input(defval=22, minval=0, title="Stop Loss (%)")
tp = input(defval=21, minval=0, title="Take Profit (%)")

esma(source, length)=>
	s = sma(source, length)
	e = ema(source, length)
	exp ? e : s
ma = esma(src, length)
rangema = BandsStyle == "True Range" ? rma(tr(true), length) : BandsStyle == "Average True Range" ? atr(atrlength) : rma(high - low, length)
upper = ma + rangema * mult
lower = ma - rangema * mult
c = color.blue
u = plot(upper, color=color.green, title="Upper")
plot(ma, color=#0094FF, title="Basis")
l = plot(lower, color=color.red, title="Lower")
fill(u, l, color=#0094FF, transp=95, title="Background")
crossUpper = crossover(src, upper)
crossLower = crossunder(src, lower)
bprice = 0.0
bprice := crossUpper ? close+syminfo.mintick : nz(bprice[1])
sprice = 0.0
sprice := crossLower ? close-syminfo.mintick : nz(sprice[1])
crossBcond = false
crossBcond := crossUpper ? true
     : na(crossBcond[1]) ? false : crossBcond[1]
crossScond = false
crossScond := crossLower ? true
     : na(crossScond[1]) ? false : crossScond[1]
cancelBcond = crossBcond and (src < ma or high >= bprice )
cancelScond = crossScond and (src > ma or low <= sprice )
if (cancelBcond)
	strategy.cancel("KltChLE")
if (crossUpper)
	strategy.entry("KltChLE", strategy.long, stop=bprice, comment="Long")
if (cancelScond)
	strategy.cancel("KltChSE")
if (crossLower)
	strategy.entry("KltChSE", strategy.short, stop=sprice, comment="Short")

strategy.exit("long exit", "KltChLE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick)
strategy.exit("Short exit", "KltChSE", profit = close * tp * 0.01 / syminfo.mintick, loss = close * sl * 0.01 / syminfo.mintick)

plot(bprice, color=color.green)
plot(sprice, color=color.red)