
Trata-se de uma estratégia de negociação de stop loss que combina vários indicadores técnicos. Usando principalmente os indicadores Supertrend, Stochastic, 200 Day Moving Average e ATR Stop Stop para identificar sinais de negociação e definir o ponto de parada.
Quando a linha Stochastic K descende da zona de super-compra, a Supertrend indica uma tendência para cima, o preço quebra a média móvel de 200 dias; quando a linha Stochastic K sobe da zona de super-venda, a Supertrend indica uma tendência para baixo, o preço cai abaixo da média móvel de 200 dias.
Especificamente, quando o valor do Stochastic K passa de 80 é considerado um sinal de compra; quando o valor do Stochastic K passa de 20, é considerado um sinal de venda. O indicador de Supertrend determina a direção da tendência de preços. O indicador de Supertrend indica que o preço está em uma tendência de alta quando o indicador de Supertrend indica que o preço está em uma tendência de baixa quando o indicador de Supertrend indica que o preço está em uma tendência de queda.
Fazer vários sinais de ação: Linha Stochastic K descendo da zona de super-compra (<80); Supertrend indicando para cima; Preço acima da média móvel de 200 dias;
Condições de desencadeamento do sinal de vazio: Linha Stochastic K ascendendo da zona de superalimento (<20), Supertrend indicando para baixo, preço abaixo da média móvel de 200 dias.
Após a entrada, configure o stop ATR para acompanhar o risco de controle de flutuação de preços. O stop multiplo é o preço mínimo menos o fator de multiplicação do valor ATR; o stop livre é o preço máximo mais o fator de multiplicação do valor ATR.
Esta estratégia, combinada com vários indicadores para determinar a direção da tendência e o momento de entrada, pode filtrar efetivamente os falsos sinais. Ao mesmo tempo, o uso do ATR para rastrear o stop loss dinâmico pode controlar o risco de acordo com a flutuação do mercado e maximizar a economia de capital.
Esta estratégia pode capturar melhor os pontos de inflexão em comparação com estratégias de seguimento de tendências, como a média móvel simples. Esta estratégia ATR pode ser mais flexível em comparação com o método de stop-loss único. Portanto, esta estratégia tem uma melhor relação de risco-benefício em geral.
Esta estratégia depende principalmente de indicadores de julgamento, se o indicador emitir um sinal errado, pode resultar em perdas devido ao reverso de operação. Além disso, em situações de choque, o stop loss pode ser freqüentemente acionado, trazendo perdas.
Além disso, o stop ATR, embora possa ajustar o ponto de parada de acordo com a oscilação, não pode evitar completamente a probabilidade de o stop ser batido. Se o preço for elevado, o stop pode ser acionado diretamente.
A estratégia pode ser otimizada em várias dimensões:
Ajustar os parâmetros do indicador para otimizar a precisão dos sinais de compra e venda. Por exemplo, um indicador estocástico pode testar diferentes parâmetros, ou ajustar o período ATR e os parâmetros de multiplicação do indicador Supertrend.
Teste a eficácia de outros métodos de parada. Por exemplo, pode-se tentar um algoritmo de parada inteligente auto-adaptável que é mais flexível do que a parada ATR, ou considerar que a parada siga um ponto de parada móvel.
Aumentar as condições de filtragem para uma entrada mais confiável. Por exemplo, pode-se adicionar filtros como o indicador de energia do volume de transação, evitando a entrada errônea com base no indicador quando a capacidade de quantidade é insuficiente.
Optimizar estratégias de gestão de fundos, como, por exemplo, ajustes dinâmicos de posições.
A estratégia Stochastic Supertrend traz um conjunto de estratégias de negociação de stop loss que usam vários indicadores para determinar a direção da tendência e o controle do risco com o seguimento inteligente do ATR. Esta estratégia pode filtrar efetivamente o ruído de cada entrada, com uma melhor relação risco-recompensa. Podemos otimizar continuamente esta estratégia para adaptá-la a um ambiente de mercado mais complexo, ajustando os parâmetros, modificando a forma de parar e adicionando condições de filtragem.
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-24 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/
// © araamas
//@version=5
strategy("stoch supertrd atr 200ma", overlay=true, process_orders_on_close=true)
var B = 0
if strategy.position_size > 0 //to figure out how many bars away did buy order happen
B += 1
if strategy.position_size == 0
B := 0
atrPeriod = input(10, "ATR Length")
factor = input.float(3.0, "Factor", step = 0.01)
[supertrend, direction] = ta.supertrend(factor, atrPeriod)
bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)
ema = ta.ema(close, 200)
plot(ema, title="200 ema", color=color.yellow)
b = input.int(defval=14, title="length k%")
d = input.int(defval=3, title="smoothing k%")
s = input.int(defval=3, title="smoothing d%")
smooth_k = ta.sma(ta.stoch(close, high, low, b), d)
smooth_d = ta.sma(smooth_k, s)
////////////////////////////////////////////////////////////////////////////////
length = input.int(title="Length", defval=12, minval=1)
smoothing = input.string(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])
m = input(1.5, "Multiplier")
src1 = input(high)
src2 = input(low)
pline = input(true, "Show Price Lines")
col1 = input(color.blue, "ATR Text Color")
col2 = input(color.teal, "Low Text Color",inline ="1")
col3 = input(color.red, "High Text Color",inline ="2")
collong = input(color.teal, "Low Line Color",inline ="1")
colshort = input(color.red, "High Line Color",inline ="2")
ma_function(source, length) =>
if smoothing == "RMA"
ta.rma(source, length)
else
if smoothing == "SMA"
ta.sma(source, length)
else
if smoothing == "EMA"
ta.ema(source, length)
else
ta.wma(source, length)
a = ma_function(ta.tr(true), length) * m
x = ma_function(ta.tr(true), length) * m + src1
x2 = src2 - ma_function(ta.tr(true), length) * m
p1 = plot(x, title = "ATR Short Stop Loss", color=color.blue)
p2 = plot(x2, title = "ATR Long Stop Loss", color= color.blue)
///////////////////////////////////////////////////////////////////////////////////////////////
shortCondition = high < ema and direction == 1 and smooth_k > 80
if (shortCondition) and strategy.position_size == 0
strategy.entry("sell", strategy.short)
longCondition = low > ema and direction == -1 and smooth_k < 20
if (longCondition) and strategy.position_size == 0
strategy.entry("buy", strategy.long)
g = (strategy.opentrades.entry_price(0)-x2) * 2
k = (x - strategy.opentrades.entry_price(0)) * 2
if strategy.position_size > 0
strategy.exit(id="buy exit", from_entry="buy",limit=strategy.opentrades.entry_price(0) + g, stop=x2)
if strategy.position_size < 0
strategy.exit(id="sell exit", from_entry="sell",limit=strategy.opentrades.entry_price(0) - k, stop=x)
//plot(strategy.opentrades.entry_price(0) - k, color=color.yellow)
//plot(strategy.opentrades.entry_price(0) + g, color=color.red)