Estratégia quantitativa de negociação de Bitcoin combinando MACD, RSI e FIB


Data de criação: 2023-12-26 17:08:03 última modificação: 2023-12-26 17:08:03
cópia: 0 Cliques: 932
1
focar em
1623
Seguidores

Estratégia quantitativa de negociação de Bitcoin combinando MACD, RSI e FIB

Visão geral

Esta estratégia, denominada “Finch’s Gold Crossed” (“Finch’s Gold Crossed”), combina o MACD, um indicador tecnológico de média móvel, o RSI, um indicador relativamente forte, e a Teoria da Retracção/Expansão Fibonacci do Princípio da Linha de Divisão do Ouro, permitindo a negociação quantitativa de criptomoedas como o Bitcoin.

Princípio da estratégia

  1. Indicadores MACD para determinar pontos de venda e compra
  • EMA de 15 e 30 para a configuração de linha rápida e lenta MACD
  • A linha rápida é um ponto de compra, a linha lenta é um ponto de venda.
  1. Indicador RSI de filtragem de falsos sinais
  • Configurar o RSI para 50 ciclos
  • O indicador RSI pode ser usado para auxiliar na filtragem de alguns sinais falsos fornecidos pelo MACD
  1. A teoria de Fibonacci determina SUPPORT/RESISTANCE
  • Combinação de preços mais altos e mais baixos recentes (como 38 linhas K)
  • Calcule a retração e a expansão de Fibonacci de 0,5 na linha divisória do ouro
  • Pode ser usado para determinar pontos de suporte e resistência
  1. A linha média e o RSI julgam a sobrecompra e a sobrevenda
  • A média de 50 ciclos pode ser usada para determinar se estamos em um estado de sobrecompra ou sobrevenda.
  • O RSI também é um indicador de sobrecompra e sobrevenda.
  1. Mecanismo de contraabertura de posição
  • Oferecer aos usuários a opção de fazer o mesmo
  • Logística de vazio múltipla com flexibilidade de acordo com a escolha do usuário

Análise de vantagens

A maior vantagem desta estratégia é que pode ser operado em todos os climas, reduzindo significativamente os custos de operação. Além disso, a combinação de vários indicadores pode aumentar a taxa de vitória, o efeito é especialmente evidente no mercado de touros. As vantagens específicas são as seguintes:

  1. 7 vezes.*Quantificação automática de 24 horas, sem intervenção humana
  2. O MACD é um indicador preciso para determinar o momento de compra e venda.
  3. O RSI pode filtrar alguns sinais falsos
  4. A teoria de Fibonacci aumenta a base de decisão de negociação
  5. 50 mediana e RSI julgam sobre-compra e sobre-venda
  6. Adaptação a mudanças de mercado por meio de um mecanismo de retorno

Análise de Riscos

A estratégia também tem alguns riscos, principalmente devido à reversão do mercado em grandes volumes, quando o stop loss pode ser mais difícil de funcionar. Além disso, o tempo de posse excessivo também pode ter algum risco. Os principais pontos de risco são os seguintes:

  1. A distância entre o ponto de parada e o ponto de parada é muito pequena para que a situação possa ser protegida.
  2. Risco sistêmico de longo prazo

A solução é a seguinte:

  1. A distância de suspensão adequada para garantir que a suspensão funcione adequadamente
  2. Optimizar o ciclo de detenção das posições e reduzir o risco de prolongamento das mesmas

Direção de otimização

A estratégia pode ser melhorada em várias direções:

  1. Optimizar os parâmetros do indicador MACD para melhorar a precisão dos sinais de compra e venda
  2. Optimizar os parâmetros do indicador RSI e melhorar a utilidade do indicador
  3. Teste de teoria de Fibonacci com mais ciclos
  4. Adição de mais indicadores de filtragem para reduzir ainda mais a probabilidade de falsos sinais
  5. Combinando mais indicadores de grandes ciclos para avaliar as tendências do mercado

Resumir

Esta estratégia integra vários indicadores quantitativos para determinar o momento de compra e venda, que pode automatizar o mercado de criptomoedas em 24 horas. A otimização dos parâmetros de cada indicador e a adição de mais indicadores auxiliares, pode aumentar ainda mais o nível de lucratividade da estratégia. A estratégia pode economizar muito tempo de operação manual para os usuários, e vale a pena pesquisar e aplicar os comerciantes de quantificação.

Código-fonte da estratégia
/*backtest
start: 2023-12-18 00:00:00
end: 2023-12-25 00:00:00
period: 10m
basePeriod: 1m
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/
// © onurenginogutcu

//@version=4
strategy("STRATEGY R18-F-BTC", overlay=true, margin_long=100, margin_short=100)

///////////default girişler 1 saatlik btc grafiği için geçerli olmak üzere - stop loss'lar %2.5 - long'da %7.6 , short'ta %8.1

sym = input(title="Symbol", type=input.symbol, defval="BINANCE:BTCUSDT") /////////btc'yi indikatör olarak alıyoruz

lsl = input(title="Long Stop Loss (%)",
     minval=0.0, step=0.1, defval=2.5) * 0.01
     
ssl = input(title="Short Stop Loss (%)",
     minval=0.0, step=0.1, defval=2.5) * 0.01
     
longtp = input(title="Long Take Profit (%)",
     minval=0.0, step=0.1, defval=7.6) * 0.01
     
shorttp = input(title="Short Take Profit (%)",
     minval=0.0, step=0.1, defval=7.5) * 0.01
     
capperc = input(title="Capital Percentage to Invest (%)",
     minval=0.0, maxval=100, step=0.1, defval=90) * 0.01
     
choice = input(title="Reverse ?", type=input.bool, defval=false)

symClose = security(sym, "", close)
symHigh = security(sym, "", high)
symLow = security(sym, "", low)

i = ema (symClose , 15) - ema (symClose , 30) ///////// ema close 15 ve 30 inanılmaz iyi sonuç verdi (macd standartı 12 26)
r = ema (i , 9)

sapust = highest (i , 100) * 0.729 //////////0.729 altın oran oldu 09.01.2022
sapalt = lowest (i , 100) * 0.729  //////////0.729 altın oran oldu 09.01.2022

///////////highx = highest (close , 365) * 0.72 fibo belki dahiledilebilir
///////////lowx = lowest (close , 365) * 1.272 fibo belki dahil edilebilir
simRSI = rsi (symClose , 50 ) /////// RSI DAHİL EDİLDİ "50 MUMLUK RSI EN İYİ SONUCU VERİYOR"


//////////////fibonacci seviyesi eklenmesi amacı ile koyuldu fakat en iyi sonuç %50 seviyesinin altı ve üstü (low ve high 38 barlık) en iyi sonuç verdi
fibvar = 38
fibtop = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50)
fibbottom = lowest (symLow , fibvar) + ((highest (symHigh , fibvar) - lowest (symLow , fibvar)) * 0.50)

///////////////////////////////////////////////////////////// INDICATOR CONDITIONS

longCondition = crossover(i, r) and i < sapalt and symClose < sma (symClose , 50) and simRSI < sma (simRSI , 50) and symClose < fibbottom
shortCondition = crossunder(i, r) and i > sapust and symClose > sma (symClose , 50) and simRSI > sma (simRSI , 50)  and symClose > fibtop

////////////////////////////////////////////////////////////////

///////////////////////////////////////////STRATEGY ENTRIES AND STOP LOSSES /////stratejilerde kalan capital için strategy.equity kullan (bunun üzerinden işlem yap)


if (choice == false and longCondition)
    strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ,   when = strategy.position_size == 0)
   

if (choice == false and shortCondition)
    strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ,  when = strategy.position_size == 0)

if (choice == true and longCondition)
    strategy.entry("Short" , strategy.short , qty = capperc * strategy.equity / close ,  when = strategy.position_size == 0)

if (choice == true and shortCondition)
    strategy.entry("Long", strategy.long , qty = capperc * strategy.equity / close ,   when = strategy.position_size == 0)
    

if (strategy.position_size > 0)
    strategy.exit("Exit Long", "Long", stop=strategy.position_avg_price*(1 - lsl) , limit=strategy.position_avg_price*(1 + longtp))

if (strategy.position_size < 0)
    strategy.exit("Exit Short", "Short", stop=strategy.position_avg_price*(1 + ssl) , limit=strategy.position_avg_price*(1 - shorttp))


////////////////////////vertical colouring signals
bgcolor(color=longCondition ? color.new (color.green , 70) : na)
bgcolor(color=shortCondition ? color.new (color.red , 70) : na)