Estratégia de compra/venda multiindicador


Data de criação: 2023-10-18 11:36:38 última modificação: 2023-10-18 11:36:38
cópia: 3 Cliques: 649
1
focar em
1617
Seguidores

Estratégia de compra/venda multiindicador

Visão geral

Esta estratégia combina o indicador de linha média, o indicador de sobrevenda e venda e o indicador de volatilidade para comprar baixo em caso de rebote de sobrevenda e vender alto em caso de retorno de sobrevenda, permitindo o acompanhamento de tendências.

Princípio da estratégia

Quando o RSI e o Stoch estão simultaneamente na zona de oversold e o oscilador AO mostra um sinal de reversão, uma posição é estabelecida. Especificamente, quando o RSI e o Stoch estão ambos em baixa (abaixo de 30 e 20), o AO faz mais quando correção de negativo; quando o RSI e o Stoch estão ambos em alta (acima de 70 e 80), e o AO faz zero quando correção de negativo. A parada e a parada são definidas de acordo com os valores do indicador ATR, permitindo ajustar a posição de parada de perda de acordo com as flutuações do mercado.

A estratégia baseia-se em quatro indicadores:

  • O oscilador AO: reflete a dinâmica das mudanças de preço e pode ser usado para determinar a reversão da tendência.
  • O RSI é um indicador relativamente fraco: reflete sobrecompra e sobrevenda. Baixo 30 é uma zona de sobrevenda.
  • StochStochastic: reflete uma zona de sobrecompra e uma zona de sobrevenda. Menos de 20 é uma zona de sobrevenda.
  • ATR média real amplitude: reflete a amplitude de flutuação de preços recentes.

Quando o AO aparece um sinal de reversão e o RSI e o Stoch estão simultaneamente na área de oversold, indicando que o preço pode ser reversível, o que pode intervir na criação de posições. O indicador ATR é usado para definir o preço de parada de perda, ajustando a amplitude de parada de perda de acordo com a volatilidade do mercado, para evitar ser coberto.

Vantagens estratégicas

  • Utilize vários indicadores para confirmar sinais e evitar transações erradas causadas por um único indicador.
  • O controle de perdas individuais pode ser efetivo se a parada de perda for definida de acordo com a volatilidade do mercado.
  • A lógica da estratégia de negociação é simples, clara e fácil de entender.
  • A intervenção em casos de sobrecompra e sobrevenda pode ser usada para capturar oportunidades de reversão em tempo útil.

Riscos e soluções

  • Os indicadores AO são propensos a falsos sinais e precisam ser usados em combinação com os indicadores RSI e Stoch para evitar erros de negociação.
  • Os parâmetros fixos podem não se adaptar às mudanças do mercado, e os parâmetros precisam ser otimizados.
  • O ponto de paragem é muito próximo e pode ser freqüentemente parado. O alcance de paragem pode ser adequadamente relaxado ou a estratégia de saída pode ser usada.
  • Paradas fixas, que podem levar a partidas antecipadas ou inlineCallbacks. Paradas móveis ou partidas de partidas podem ser usadas.

Para minimizar esses riscos, é possível otimizar as seguintes áreas:

  1. Optimizar os parâmetros para que sejam mais adaptáveis a diferentes períodos e variedades de mercado.
  2. Melhorias nos mecanismos de suspensão de prejuízos, como suspensão móvel, separação de partidas e outros.
  3. Otimizar as condições de admissão para evitar sinais errados por um único indicador.
  4. Optimizar o modo de suspensão, como suspensão móvel ou suspensão em fases de acordo com a tendência.

Direção de otimização da estratégia

A estratégia pode ser melhorada em alguns aspectos:

  1. A configuração de parâmetros de otimização pode ser encontrada através de métodos como busca de otimização.

  2. Adição de condições de filtragem. Confirmação de indicadores adicionais pode ser adicionada ao ingresso para evitar falsos sinais.

  3. Otimização do mecanismo de parada de prejuízos. Pode-se usar a parada móvel, o loteamento de saída, etc., para controlar o risco.

  4. Optimizar o stop-loss. Pode ser usado o stop-loss móvel, o stop-loss de segmentação de acordo com a tendência, etc., para bloquear mais lucros.

  5. Aumentar o freio automático. Por exemplo, o freio é interrompido quando se aproxima de um intervalo inteiro importante, evitando a recaída.

  6. Optimizar o gerenciamento de fundos. Por exemplo, ajustar o tamanho da posição de acordo com as mudanças de risco e controlar a perda máxima.

  7. Optimizar o teste para uma variedade/ciclo específico. Os parâmetros e os métodos de parada de perda devem ser otimizados para diferentes variedades e ciclos.

  8. Aumentar o tratamento de eventos de emergência, como evitar a negociação quando há notícias importantes ou parar rapidamente.

Resumir

Esta estratégia utiliza um sistema de equilíbrio, um sistema de venda e venda excessivos e um sistema de volatilidade, com uma forte capacidade de acompanhamento de tendências. Mas também há alguns problemas de configuração de parâmetros fixos, imperfeitos mecanismos de parada de perdas e outros. Podemos fazer otimização de vários aspectos, como configuração de parâmetros de otimização, melhoria do mecanismo de parada de perdas, aumento das condições de flutuação, etc. Para tornar a estratégia mais estável e confiável.

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

//@version=4

strategy("Buy&Sell Strategy depends on AO+Stoch+RSI+ATR by SerdarYILMAZ", shorttitle="Buy&Sell Strategy")
// Created by Serdar YILMAZ
// This strategy is just for training, its purpose is just learning code in pine script.
// Don't make buy or sell decision with this strategy.
// Bu strateji sadece pine script'te kodlamanın nasıl yapildigini ogrenmek icindir.
// Bu stratejiye dayanarak, kesinlikle al-sat islemleri yapmayin.

//AO

fast=input(title="Fast Length",type=input.integer,defval=5)
slow=input(title="Slow length",type=input.integer,defval=34)

awesome=(sma(hl2,fast)-sma(hl2,slow))*1000

plot(awesome, style=plot.style_histogram, color=(awesome>awesome[1]?color.green:color.red))

//Stoch

K=input(title="K",type=input.integer,defval=14)
D=input(title="D",type=input.integer,defval=3)
smooth=input(title="smooth",type=input.integer,defval=3)

k=sma(stoch(close,high,low,K),D)
d=sma(k,smooth)

hline(80)
hline(20)

plot(k,color=color.blue)

//RSI

rsisource=input(title="rsi source",type=input.source,defval=close)
rsilength=input(title="rsi length",type=input.integer,defval=10)

rsi=rsi(rsisource,rsilength)

hline(70,color=color.orange)
hline(30,color=color.orange)

plot(rsi,color=color.orange)

//ATR

atrlen=input(title="ATR Length", type=input.integer,defval=14)

atrvalue=rma(tr,atrlen)

plot(atrvalue*1000,color=color.green)

LongCondition=k<20 and rsi<30 and awesome>awesome[1]
ShortCondition=k>80 and rsi>70 and awesome<awesome[1]
if (LongCondition)
    stoploss=low-atrvalue
    takeprofit=close+atrvalue
    strategy.entry("Long Position", strategy.long)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)
    
if (ShortCondition)
    stoploss=high+atrvalue
    takeprofit=close-atrvalue
    strategy.entry("Short Position",strategy.short)
    strategy.exit("TP/SL",stop=stoploss,limit=takeprofit)