Estratégia de caçador de fundo

Autora:ChaoZhang, Data: 2024-02-06 09:26:54
Tags:

img

Resumo

A estratégia Bottom Hunter é uma estratégia de negociação de curto prazo para criptomoedas.

Princípio da estratégia

Esta estratégia combina múltiplos indicadores técnicos para identificar o fundo. Especificamente, usa o indicador MACD para julgar os sinais de reversão do fundo, o indicador RSI para determinar o status de sobrevenda e as Bandas de Bollinger para determinar se o preço está abaixo do trilho inferior. Um sinal de compra é gerado quando todas as condições são atendidas.

Em primeiro lugar, a estratégia usa a divergência MACD para julgar o fundo. A chamada divergência significa que o preço faz uma nova baixa enquanto o indicador MACD não faz uma nova baixa. Esta situação representa um enfraquecimento do volume de negociação e geralmente pressagia uma reversão iminente da tendência.

Em segundo lugar, a estratégia exige que o indicador RSI esteja abaixo de 31,1.

Por último, a estratégia exige que o preço de fechamento esteja abaixo do trilho médio das Bandas de Bollinger, o que indica que o preço caiu abaixo do intervalo normal, proporcionando assim uma melhor oportunidade de compra.

Quando todas as condições acima são satisfeitas ao mesmo tempo, a estratégia gera um sinal de compra e estabelece uma posição.

Análise das vantagens

A estratégia Bottom Hunter tem as seguintes vantagens:

  1. A utilização de múltiplos indicadores para determinar o fundo garante a precisão da identificação do fundo
  2. Utilizando a divergência MACD para julgar sinais de reversão é uma técnica de negociação experiente
  3. Julgar tanto o excesso de vendas como as anomalias evita o risco de falhas
  4. Controle de posições conservador, construção de posições apenas em pontos-chave, evita negociações excessivas

Análise de riscos

Esta estratégia tem também alguns riscos:

  1. O mercado pode cair ainda mais sem um stop loss oportuno
  2. A combinação de várias condições para julgar o fundo pode perder o fundo em alguns cenários
  3. A determinação manual de parâmetros como limiares do RSI pode afetar o desempenho da estratégia

Em resposta aos riscos acima, o rastreamento em tempo real da perda de parada, o ajuste das faixas de parâmetros, etc., podem ser utilizados para otimização.

Orientações de otimização

A estratégia pode ser otimizada nas seguintes direcções:

  1. Aumentar o mecanismo de stop loss adaptativo para ajustar de forma flexível a posição de stop loss com base na volatilidade do mercado
  2. Teste e otimize os critérios para determinação de sinais de compra para identificar parâmetros ideais
  3. Aumentar os algoritmos de aprendizagem de máquina para identificar automaticamente parâmetros e regras de negociação
  4. Adicionar um módulo de avaliação da tendência para evitar a entrada em mercados de consolidação durante os mercados de tendência
  5. Incorporar indicadores adicionais, como a variação de volume, para melhorar a identificação do fundo

Resumo

A estratégia de Bottom Hunter compra em principais fundos para alcançar retornos excessivos. A razão para determinar o fundo é robusta, ao mesmo tempo em que combina várias condições de filtro para evitar falsos sinais. Com ajuste adequado dos parâmetros e controle de stop loss, esta estratégia pode ter um bom desempenho na negociação de criptomoedas de curto prazo.


/*backtest
start: 2023-01-30 00:00:00
end: 2024-02-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("MACD Divergence Strategy", shorttitle="Strategy: MACD Dive", overlay=true)

// MACD设置
fastLength = input.int(12, "Fast Length")
slowLength = input.int(26, "Slow Length")
signalSmoothing = input.int(9, "Signal Smoothing")

[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)

// 计算99日EMA均线
ema99 = ta.ema(close, 99)

// 计算RSI
rsiLength = input.int(14, title="RSI Length")
rsi = ta.rsi(close, rsiLength)

// 计算布林带中轨
length = input.int(20, "BB Length")
src = input(close, "Source")
mult = input.float(2.0, "BB StdDev")
basis = ta.sma(src, length)

// 买入筛选条件
priceLow = ta.lowest(low[1], 60)
macdLow = ta.lowest(macdLine[1], 60)
divergence = low < priceLow and macdLine > macdLow

allHighsBelowEma99 = true
for i = 0 to 14
    if high[i] > ema99
        allHighsBelowEma99 := false

rsiBelow = rsi < 31.1
priceDifference = (high - low) / low * 100

buySignal1 = divergence and allHighsBelowEma99 and rsiBelow
buySignal2 = high < ema99 and priceDifference >= 3 and close < open and high < basis 
buySignal3 = buySignal1 or buySignal2

// 定义一个变量来存储买入时的价格
var float buyPrice = na

// 买入逻辑
if buySignal3
    buyPrice := close // 存储买入时的价格
    strategy.entry("Buy", strategy.long)

// 止盈和止损条件
longTakeProfit = buyPrice * 1.1 // 止盈设为买入价格的1.2倍
longStopLoss = buyPrice * 0.98// 止损设为买入价格的0.99倍

// 应用止盈和止损
strategy.exit("Exit", "Buy", limit=longTakeProfit, stop=longStopLoss)
// 绘制买入信号
plotshape(series=buySignal3, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)


Mais.