A estratégia combina o K-valor do indicador aleatório do indicador de momentum e o ATR do indicador de volatilidade, ajustando dinamicamente a linha de parada e a linha de entrada do K-valor de acordo com o valor do ATR, realizando a idéia de ajustar automaticamente a linha de parada e a linha de entrada de acordo com a volatilidade do mercado.
Calcula-se o K-valor de comprimento de len (sma ((stoch ((close, high, low, len), smoothK), representando o K-valor do indicador aleatório ≠
Calcule o valor de ATR para o comprimento de lénatr ((len) ∈
Plot de linha de parada ((rsi ((atr, len) + lowLine, …, title = “low line”) e plot de linha de entrada ((rsi ((atr, len) com base no valor do ATR*-1+100-lowLine, …, title = “up line”)。
Determine quando os valores de K atravessam a linha de entrada (crossover) e a linha de parada (crossunder), gerando sinais de compra e venda.
Cores de fundo de compras e vendas.
Quando os sinais acima são satisfeitos, faça uma operação de compra e venda e defina um stop loss.
A estratégia ajusta dinamicamente as linhas de stop e entrada de acordo com a volatilidade do ATR do mercado e pode se adaptar automaticamente ao risco de stop de acordo com a volatilidade do mercado.
Quando o mercado está muito flutuante, o intervalo entre a linha de parada e a linha de entrada é maior para evitar que a parada seja sacudida.
Quando o mercado está em silêncio, a distância entre a linha de parada e a linha de entrada é reduzida, permitindo uma parada atempada.
O K-valor do indicador de dinâmica é usado para determinar entradas e saídas. O K-valor pode reagir à velocidade da mudança de preço e pode capturar pontos de inflexão.
A combinação de um indicador de volume dinâmico e um indicador de taxa de flutuação permite capturar tendências e ajustar automaticamente o risco de acordo com as flutuações.
Os valores de K são propensos a falsas rupturas, que podem desencadear sinais de negociação desnecessários. O parâmetro de K pode ser ajustado de forma apropriada para suavizar a linha de K.
O parâmetro ATR len é muito grande, o intervalo entre a linha de parada e a linha de entrada é muito grande e o risco pode ser muito alto. A estabilidade de diferentes parâmetros de len pode ser testada.
O simples acompanhamento do stop loss não permite determinar se a posição de stop loss é razoável e não permite controlar o risco de stop loss único. Pode-se considerar o risco de stop loss único em combinação com o algoritmo de stop loss esperado.
Os sinais de estratégia são frequentes e as taxas de transação são altas. O parâmetro de entrada lowLine pode ser ajustado adequadamente para controlar a frequência de transação.
Teste para ajustar o parâmetro de K-valor para smoothK e encontrar a combinação de parâmetros ótima para smoothK.
Teste os diferentes valores do parâmetro ATR len para determinar o parâmetro ATR apropriado.
Optimizar o parâmetro de entrada lowLine para encontrar o parâmetro ideal para controlar a frequência de negociação.
Considere a combinação de outros indicadores para filtrar os sinais de entrada e evitar falsas brechas, como o indicador de volume de transação, o indicador de KDJ, etc.
Considere otimizar a forma de parar os prejuízos, melhorando a forma de parar os prejuízos esperados e controlando o risco de parar os prejuízos.
A estratégia baseada no K-valor do indicador de dinâmica e no ATR do indicador de volatilidade, que permite ajustar dinamicamente a linha de parada e a linha de entrada, pode capturar a tendência e ajustar automaticamente o risco de acordo com a flutuação, é uma estratégia muito inovadora e prática. Otimização adicional por meio de otimização de parâmetros, melhoria do método de parada, etc., pode tornar a estratégia mais estável e confiável, com uma excelente perspectiva de desenvolvimento.
/*backtest
start: 2023-09-08 00:00:00
end: 2023-10-08 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Stoch + ATR", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type = strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input(34, minval=1, title="Length for Main Stochastic & ATR")
smoothK = input(2, minval=1, title="SmoothK for Main Stochastic")
lowLine = input(10, minval=-50, maxval=50, title="Multiplier for up/low lines")
//Stoch formula
k = sma(stoch(close, high, low, len), smoothK)
plot(k, color=aqua, title = "Stoch")
//len=input
atr=atr(len)
plot(rsi(atr, len)+lowLine , color=red,linewidth=2, title = "low line")
plot(rsi(atr, len)*-1+100-lowLine, color=lime,linewidth=2, title = "up line")
aboveLine = crossunder(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine = crossover(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0
aboveLine2 = crossover(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine2 = crossunder(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0
skip=(aboveLine2==1 or belowLine2==1) and (aboveLine==1 or belowLine==1)? 1 : 0
//BackGroound Color Plots
plotchar(belowLine==1 and skip==0, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine==1 and skip==0, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)
plotchar(belowLine2==1 and skip==0, title="Close Signal", char='C', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine2==1 and skip==0, title="Close Signal", char='C', location=location.top, color=white, transp=0, offset=0)
bgcolor(aboveLine==1 ? red : na, transp=30, title = "sell signal")
bgcolor(belowLine==1 ? lime : na, transp=30, title = "buy signal")
bgcolor(aboveLine2==1 ? lime : na, transp=80, title = "close short")
bgcolor(belowLine2==1 ? red : na, transp=80, title = "close long")
bgcolor(skip==1 ? black : na, transp=0, title = "skip signal")
//strategy
longCondition = belowLine==1
shortCondition = aboveLine==1
strategy.entry("BUY", strategy.long, when = longCondition)
strategy.entry("SELL", strategy.short, when = shortCondition)
strategy.cancel_all(when = skip==1)