Estratégia de negociação de curto prazo do Bitcoin com base no Índice de Força Verdadeira


Data de criação: 2023-10-07 15:12:08 última modificação: 2023-10-07 15:12:08
cópia: 0 Cliques: 782
1
focar em
1617
Seguidores

Visão geral

A estratégia permite a negociação de curto prazo em Bitcoin através da computação do True Strength Index (TSI) do Bitcoin para identificar tendências de mercado e, em combinação com a filtragem do RSI, para fazer mais oportunidades de curto prazo. A estratégia é adequada para investidores que procedem a negociação programada do mercado de Bitcoin de acordo com as circunstâncias.

Princípio da estratégia

A estratégia baseia-se principalmente no indicador de força e fraqueza reais (TSI). O TSI mede a magnitude e a direção do valor absoluto da mudança de preço através da taxa de variação de preço de dupla suavização, para identificar a força absoluta de alta e baixa de preços. O método de cálculo específico é o seguinte:

  1. Calcular a taxa de variação do preço Pc
  2. Duplo suavização do PC, usando o EMA de longo prazo e o EMA de curto prazo, respectivamente, gerando um PC duplo suavizado
  3. Duplo suavização do valor absoluto PC, gerando double_smoothed_abs_pc
  4. O valor TSI é double_smoothed_pc dividido por double_smoothed_abs_pc multiplicado por 100

A estratégia também combina o indicador RSI com o filtro do sinal de negociação do TSI, que só produz um sinal múltiplo quando o valor do RSI é maior que 50 e um sinal de vazio quando o valor do RSI é menor que 50, filtrando parte do falso sinal.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O indicador TSI é capaz de identificar a força e a direção absolutas das mudanças de preço, sendo mais sensível à captura de tendências.
  2. A dupla EMA suaviza a taxa de variação de preços, efetivamente elimina o ruído das mudanças de preços e não é sensível a eventos inesperados.
  3. Em combinação com a filtragem do indicador RSI, pode-se evitar ainda mais erros de negociação causados pelo ruído.
  4. O método de negociação em linha curta permite capturar oportunidades de curto prazo no mercado.
  5. Os parâmetros de otimização da estratégia são amplos e podem ser otimizados por meio de ajustes em parâmetros como o ciclo EMA.

Análise de Riscos

A estratégia também apresenta os seguintes riscos:

  1. Como um indicador de tendências, o TSI tem problemas de atraso e pode perder o ponto de reversão de preços.
  2. Os filtros RSI são muito rígidos e podem perder algumas oportunidades de negociação.
  3. O filtro de dupla EMA também pode filtrar alguns sinais de negociação válidos.
  4. As transações em linha curta têm uma maior frequência de transações, exigindo custos de transação mais elevados e riscos de deslizamento.

Pode-se reduzir o efeito de onda e o problema de atraso por meio de uma flexibilização apropriada das condições de filtragem do RSI, reduzindo o ciclo EMA, etc. Ao mesmo tempo, otimize a estratégia de parada de perdas e controle rigoroso do risco de uma única transação.

Direção de otimização

A estratégia pode ser melhorada em vários aspectos:

  1. Optimizar os parâmetros do TSI e do RSI para encontrar a melhor combinação de parâmetros. Pode ajustar o ciclo de EMA mais longo, os parâmetros do RSI, etc.

  2. Adicionar outros indicadores combinados, formando modelos multifatores. Por exemplo, pode ser adicionado MA, KD e outros indicadores, aproveitando ao máximo as vantagens de cada indicador.

  3. Otimizar as condições de entrada, evitar a colisão de vários mercados. A direção pode ser julgada de acordo com a tendência do grande ciclo.

  4. Optimizar estratégias de stop loss, como stop loss móvel, stop loss de tempo e stop loss de ruptura.

  5. Otimizar as condições de saída, evitando a perda prematura ou tardia. Pode ser combinado com o indicador de taxa de flutuação para determinar quando sair do campo.

  6. Optimização da variedade de transação e do tempo de transação, concentração na variedade e no tempo de transação mais eficazes.

Resumir

Esta estratégia identifica a tendência de curto prazo do bitcoin através de indicadores reais de força e fraqueza, e é auxiliada por sinais de filtragem do indicador RSI, para efetivamente executar negociações programadas de bitcoin. A estratégia possui vantagens de identificar tendências sensíveis e eliminar o ruído, mas também possui alguns problemas de atraso e risco de negociação.

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


// strategy("True Strength Indicator BTCUSD 15p", shorttitle="TSI BTCUSD 15p",initial_capital=1000, commission_value=0.15, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)

//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe",  defval="15" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)
price = request.security(syminfo.tickerid,resCustom,close)


double_smooth(src, long, short) =>
    fist_smooth = ta.ema(src, long)
    ta.ema(fist_smooth, short)
pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2=ta.ema(tsi_value, signal)
plot(tsi_value, color=color.lime,linewidth=2)
plot(tsi2, color=color.red,linewidth=2)




rsiserie = ta.rsi(price,7)
cciserie = ta.cci(price,14)
stochserie = ta.stoch(price,14,3,3)

plot(rsiserie,color=color.purple)



hline(30, title="Zero")
hline(50, title="Zero",linestyle=hline.style_solid, linewidth=2)
hline(70, title="Zero")

buy = ta.crossover(tsi_value, tsi2) //and rsiserie[1]<25 //and cciserie<-100 and stochserie<20
sell = ta.crossunder(tsi_value, tsi2) //and rsiserie[1]>85 //and cciserie>100 and stochserie>80


alertcondition(buy, title='TSI system', message='Buy signal at!' )
alertcondition(sell, title='TSI system', message='Sell signal at!' )

strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell ) 

greentsi =tsi_value
redtsi = tsi2

bgcolor( greentsi>redtsi and rsiserie > 50 ? color.lime : na, transp=90)
bgcolor( greentsi<redtsi and rsiserie < 50 ? color.red : na, transp=90)

yellow1= redtsi > greentsi and rsiserie > 50 
yellow2 = redtsi < greentsi and rsiserie < 50 
bgcolor( yellow1 ? yellow : na, transp=80)
bgcolor( yellow2  ? yellow : na, transp=50)

bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
bgcolor( yellow2  and yellow2[2] ? yellow : na, transp=70)

bgcolor( rsiserie > 70 ? color.lime : na, transp=60)
bgcolor( rsiserie < 30  ? color.red : na, transp=60)