Esta estratégia baseia-se no indicador de flutuação KPL, um sistema de negociação mecânica de acompanhamento de tendências simples. Faça mais quando o preço fechar ultrapassar os 20 dias de alta e faça um curto-circuito quando o fechamento cair abaixo dos 20 dias de baixa, para capturar a flutuação do preço da linha média e longa.
Especificamente, a estratégia primeiro calcula os preços mais altos e mais baixos dos últimos 20 dias, para construir um campo de choque. Quando o preço de encerramento quebra o máximo de 20 dias a partir da parte inferior, faça uma entrada extra; Quando a parte superior cai a partir do mínimo de 20 dias, faça uma entrada de baixa.
Pode-se gerenciar o risco através da adaptação da observação do ciclo de ruptura, da introdução de julgamentos de tendências e da otimização da estratégia de parada de perdas.
Esta estratégia é baseada em KPL indicadores de flutuação para acompanhamento de tendências. A vantagem é simples e fácil de operar, com parada de perdas; A desvantagem é a existência de atraso e potencial de ganhos limitados. Pode ser melhorada através de parâmetros de otimização, combinação de estratégias, etc.
/*backtest
start: 2022-09-20 00:00:00
end: 2023-09-20 00:00:00
period: 2d
basePeriod: 1d
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/
// © ceyhun
//@version=4
strategy("KPL Swing Strategy", overlay=true)
no = input(20)
res = highest(high, no)
sup = lowest(low, no)
avd = iff(close > res[1], 1, iff(close < sup[1], -1, 0))
avn = valuewhen(avd != 0, avd, 1)
tsl = iff(avn == 1, sup, res)
sl = iff(close > tsl, highest(lowest(low, no / 2), no / 2), lowest(highest(high, no / 2), no / 2))
plot(tsl, color=#0000FF,title="KPL Swing")
plot(sl, color=color.white,title="Stoploss")
bgcolor(abs(close - tsl[1]) > close ? color.white : close < tsl ? color.red : color.green, 90, offset=0)
if crossover(close, tsl)
strategy.entry("Long", strategy.long, comment="Long")
if crossunder(close,tsl)
strategy.entry("Short", strategy.short, comment="Short")