
Esta estratégia utiliza uma combinação de duas linhas de equilíbrio, um indicador de força relativa (RSI) e um indicador de linha de paralisação (PSAR) para determinar o ponto de reversão do preço, fazendo operações de compra e venda quando a reversão ocorre e é uma estratégia de negociação reversa.
A estratégia baseia-se nos seguintes indicadores técnicos para determinar os pontos de reversão:
Dual equilíbrio: Calcule a média móvel rápida (MA rápida) e a média móvel lenta (MA lenta). Quando a linha rápida atravessa a linha lenta, julgue-se um mercado de muitos pontos, faça mais; quando a linha rápida atravessa a linha lenta, julgue-se um mercado de vazio, faça vazio.
O indicador RSI: O RSI julga a situação de sobrecompra e sobrevenda, calculando o aumento e a queda do fechamento médio em um período de tempo. O RSI maior que 70 é a zona de sobrecompra e menor que 30 é a zona de sobrevenda.
Indicador PSAR: A linha paralela do indicador SAR determina a direção da tendência. Abaixo do ponto SAR está o mercado de ativos e acima o mercado de ativos.
Indicador ADX: O ADX determina a intensidade da tendência através do cálculo da intensidade direcional da mudança de preço. Um valor maior que 20 indica a tendência e menor que 20 indica a liquidação.
A lógica dos sinais de compra e venda baseados nos indicadores acima é a seguinte:
Sinais de compra: a linha rápida atravessa a linha lenta, o RSI é menor que 30 (zona de superalimento), o ponto SAR está acima do preço, o ADX é maior que 20 e emite um sinal de compra.
Sinais de venda: a linha rápida atravessa a linha lenta, o RSI é maior que 70 (zona de supera compra), o ponto SAR está abaixo do preço, o ADX é maior que 20 e emite sinais de venda.
Quando ocorrem sinais de compra e venda, estabeleça posições excessivas e vazias com 10% de posições, respectivamente. Quando o sinal de reversão falhar, pare a posição em equilíbrio.
Usando duas linhas de equilíbrio para determinar a direção da grande tendência, além de adicionar indicadores como RSI e SAR para eliminar sinais errôneos, é possível determinar com maior precisão o ponto de reversão.
Utilize vários conjuntos de indicadores para evitar sinais errados de um único indicador técnico.
O setor de Stop Loss pode controlar os riscos de forma eficaz.
A estratégia é simples, clara e fácil de implementar.
A estratégia tem uma abordagem para a volatilidade do mercado e pode ser aplicada em diferentes situações.
Quando a dupla linha de equilíbrio gera um sinal de cabeceira, a situação pode ocorrer com falhas, que precisam ser julgadas em combinação com outros indicadores. O ciclo de linha de equilíbrio pode ser estendido de forma apropriada, ou adicionar o indicador de faixa de Bryn para julgar a veracidade da ruptura.
O indicador RSI pode gerar um sinal de erro devido à configuração inadequada dos parâmetros. Os parâmetros do RSI devem ser ajustados adequadamente, ao mesmo tempo em que outros indicadores são adicionados para confirmar o sinal RSI.
Quando o ADX é inferior a 20, deve-se suspender a negociação para evitar a inversão de mercado sem direção. Ou reduzir adequadamente o parâmetro de ciclo do ADX.
O Stop Loss do SetStringry é muito pequeno e pode causar perdas desnecessárias. O Stop Loss deve ser razoavelmente ajustado de acordo com a volatilidade do mercado.
A frequência de negociação pode ser excessiva, podendo ser adequadamente ajustado o ciclo de dupla linha média para reduzir a frequência de negociação.
Teste combinações de linhas médias de diferentes períodos de comprimento para encontrar o melhor parâmetro.
Testar diferentes configurações de parâmetros do RSI para otimizar o julgamento de overbought e oversold.
Tente adicionar outros indicadores, como a banda Brin, KDJ, etc., para enriquecer a lógica de julgamento dos sinais de compra e venda.
De acordo com as diferentes variedades e condições do mercado, o mecanismo de parada de perdas dinâmico é configurado.
Adição de estratégias de gerenciamento de posições para que os lucros acompanhem melhor as tendências.
Teste diferentes parâmetros ADX para encontrar o valor que melhor determina a força da tendência.
Adição de um módulo de parada automática para que a estratégia possa parar automaticamente.
Esta estratégia de julgar a grande direção através de dupla equilíbrio, em combinação com RSI, SAR e outros indicadores para filtragem de sinal de reversão, após a configuração de parâmetros de otimização, pode efetivamente julgar o ponto de reversão de preços, para capturar a tendência antes e depois de reversão. Em ativos reais, deve-se ter atenção ao controle de risco, ao estabelecimento razoável de condições de parada e ao contínuo otimização de parâmetros, para tornar a estratégia mais estável e mais lucrativa.
/*backtest
start: 2023-10-10 00:00:00
end: 2023-11-09 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
//Based on Senpai BO 3
strategy(title="Senpai_Strat_3", shorttitle="Senpai_Strat_3", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
src = close
//psar
start = input(0.02)
increment = input(0.02)
maximum = input(0.2)
psar = sar(start, increment, maximum)
//ADX Init
adxlen = input(30, title="ADX Smoothing")
dilen = input(30, title="DI Length")
dirmov(len) =>
up = change(high)
down = -change(low)
truerange = rma(tr, len)
plus = fixnan(100 * rma(up > down and up > 0 ? up : 0, len) / truerange)
minus = fixnan(100 * rma(down > up and down > 0 ? down : 0, len) / truerange)
[plus, minus]
adx(dilen, adxlen) =>
[plus, minus] = dirmov(dilen)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
[adx, plus, minus]
[sig, up, down] = adx(dilen, adxlen)
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.5, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up1 = rma(max(change(src), 0), 14)
down1 = rma(-min(change(src), 0), 14)
rsi = down1 == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up1 / down1))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.05
bbi = bbr - nz(bbr[1])
//////////////////// Algo
//if (rsi>50 and n1>n2)
//strategy.exit("Close", "Short")
// strategy.entry("Long", strategy.long)
//if (rsi<50 and n2>n1)
//strategy.exit("Close", "Long")
// strategy.entry("Short", strategy.short)
//col = ma30 > ma50 > ma200 and rsi <=53?lime: ma50 < ma200 and rsi >= 60?red : silver
//short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close = 100%
//long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close = 100%
short1 = sig<18.5 and high>=upper and rsi>=70 and psar<close
long1 = sig<18.5 and low<=lower and rsi<=30 and psar>close
//Entry
long = long1[1] == 0 and long1 == 1
short = short1[1] == 0 and short1 == 1
longclose = long[3] == 1
shortclose = short[3] == 1
strategy.entry("short", strategy.short,qty = 10, when=short)
strategy.entry("long", strategy.long,qty=10, when=long)
strategy.close("long",when=longclose)
strategy.close("short",when=shortclose)
/////////////////////
///PLOT
plot(long,"long",color=green,linewidth=1)
plot(short,"short",color=red,linewidth=1)
plot(longclose,"close",color=blue,linewidth=1)
plot(shortclose,"close",color=orange,linewidth=1)
//plot(short,"short",color=red,linewidth=1)
//
//strategy.exit(id="long",qty = 100000,when=longclose)
//strategy.exit(id="short",qty = 100000,when=shortclose)
//strategy.exit(id="Stop", profit = 20, loss = 100)