Estratégia quantitativa de curto prazo da nuvem Ichimoku


Data de criação: 2023-12-21 11:13:15 última modificação: 2023-12-21 11:13:15
cópia: 1 Cliques: 1010
1
focar em
1623
Seguidores

Estratégia quantitativa de curto prazo da nuvem Ichimoku

Visão geral

O Ichimoku Cloud Quant Scalping Strategy é uma estratégia de quantificação de curto-circuito que combina um gráfico de equilíbrio de primeira vista e um índice de direção médio. A estratégia usa o indicador da nuvem Ichimoku para determinar a direção da tendência, em conjunto com o indicador ADX para filtrar o mercado não-trend, para operar em curto-circuito em condições de tendência.

Princípio da estratégia

A estratégia consiste em duas partes principais:

  1. Índice da Nuvem Ichimoku para determinar a direção da tendência

    • Linha de conversão: a linha média dos últimos 7 ciclos
    • Base Line: média dos 26 últimos ciclos
    • Leading Span A: ponto médio entre a linha de conversão e a linha de base
    • Leading Span B: média dos últimos 52 ciclos

Quando o preço está acima da nuvem, é uma tendência de várias direções, e abaixo é uma tendência de ar livre. A estratégia julga a reversão da tendência com a ruptura da Linha de Conversão.

  1. Filtragem do índice ADX para mercados fora de tendência

ADX maior que 20 indica a tendência, quando a estratégia produz um sinal de negociação. Menos de 20 indica a liquidação, quando a estratégia não é negociada.

Regras de negociação:

  • Entrada múltipla: Preço supera a linha de conversão e o ADX é maior que 20
  • Entradas em branco: Preço quebra abaixo da linha de conversão e ADX maior que 20
  • Stop Loss: 150 pontos
  • - 200 pontos.

Análise de vantagens

A estratégia tem as seguintes vantagens:

  1. O indicador da nuvem de Ichimoku pode determinar com precisão a direção da tendência e os pontos de inflexão, em conjunto com o indicador ADX, para filtrar o mercado de correção de tendências e evitar falsas rupturas.

  2. Controle de retração. O Stop Loss é definido em 150 pontos, para efetivamente controlar a perda individual.

  3. A taxa de perdas e perdas é alta. O ponto de parada é de 200 pontos, o ponto de parada é de 150, a taxa de perdas é de até 1,33, fácil de ganhar.

  4. A frequência de negociação é moderada.

Análise de Riscos

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

  1. Risco de falha no julgamento de tendências. O indicador da nuvem de Ichimoku pode gerar um sinal de erro quando a tendência se desvia para o fracasso. O ciclo de parâmetros pode ser apropriadamente prolongado para otimização.

  2. O stop-loss é corrido pelo risco de ser ultrapassado. O stop-loss de corrida rápida pode ser ultrapassado. O stop-loss móvel pode ser configurado ou o alcance do stop-loss pode ser aumentado.

  3. Risco de negociação no dia e antes do dia. A estratégia padrão é apenas para negociação no dia, e o julgamento de negociação no dia e antes do dia pode ser invalidado. Pode ser configurado para negociação de 24 horas ou criar uma estratégia de negociação separadamente após o dia antes do dia.

Direção de otimização

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

  1. Otimização de parâmetros de indicadores da nuvem Ichimoku. Pode testar diferentes parâmetros de linha de conversão, linha de referência e linha de reserva para encontrar a melhor combinação de parâmetros.

  2. Parâmetros de ADX e otimização de thresholds. Pode testar os parâmetros de período e os thresholds de filtro do ADX para encontrar os parâmetros ótimos.

  3. Otimização de stop loss. Pode ser determinado o ponto de parada ideal com base no histórico de dados.

  4. A estratégia de stop-loss móvel. Configure o stop-loss flutuante para melhor acompanhar a tendência de lucro.

  5. Indicadores auxiliares para o julgamento de tendências. Adicionar indicadores auxiliares para o julgamento de tendências, como MACD, KD, aumenta a precisão do sinal.

  6. Optimização de adaptabilidade. Para variedades com grandes diferenças, os parâmetros da estratégia de negociação são definidos separadamente.

Resumir

A estratégia de curto-circuito de quantificação da nuvem Ichimoku integra os benefícios do indicador da nuvem Ichimoku e do indicador ADX, para determinar com precisão o ponto de reversão da tendência e eliminar efetivamente o mercado de liquidação, evitando falsos sinais. A estratégia tem uma alta taxa de perda e retração controlada, adequada para operações de curto-circuito de seguimento de tendências.

Código-fonte da estratégia
/*backtest
start: 2023-12-13 00:00:00
end: 2023-12-20 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title='[STRATEGY][RS]Spot/Binary Scalper V0', shorttitle='IC', overlay=true, initial_capital=100000, currency=currency.USD)
//  ||  Adapted from:
//  ||      http://www.binaryoptionsedge.com/topic/1414-ta-spot-scalping-it-works-damn-good/?hl=singh

//  ||  Ichimoku cloud:
conversionPeriods = input(title='Conversion Periods:',  defval=7, minval=1),
basePeriods = 26//input(title='Base Periods',  defval=26, minval=1)
laggingSpan2Periods = 52//input(title='Lagging Span:',  defval=52, minval=1),
displacement = 26//input(title='Displacement:',  defval=26, minval=1)

f_donchian(_len) => avg(lowest(_len), highest(_len))

f_ichimoku_cloud(_conversion_periods, _base_periods, _lagging_span)=>
    _conversion_line = f_donchian(_conversion_periods)
    _base_line = f_donchian(_base_periods)
    _lead_line1 = avg(_conversion_line, _base_line)
    _lead_line2 = f_donchian(_lagging_span)
    [_conversion_line, _base_line, _lead_line1, _lead_line2]

[conversionLine, baseLine, leadLine1, leadLine2] = f_ichimoku_cloud(conversionPeriods, basePeriods, laggingSpan2Periods)

//ps0 = plot(title='A', series=leadLine1, color=green, linewidth=2)
//ps1 = plot(title='B', series=leadLine2, color=red, linewidth=2)
//fill(title='AB', plot1=ps0, plot2=ps1, color=blue, transp=80)
//plot(title='Base', series=baseLine, color=blue, linewidth=1, offset=displacement)
plot(title='Conversion', series=conversionLine, color=blue, linewidth=1)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  ADX
len = input(title="Length",  defval=14)
th = input(title="threshold",  defval=20)

TrueRange = max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
DirectionalMovementPlus = high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
DirectionalMovementMinus = nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0


SmoothedTrueRange = nz(SmoothedTrueRange[1]) - (nz(SmoothedTrueRange[1])/len) + TrueRange
SmoothedDirectionalMovementPlus = nz(SmoothedDirectionalMovementPlus[1]) - (nz(SmoothedDirectionalMovementPlus[1])/len) + DirectionalMovementPlus
SmoothedDirectionalMovementMinus = nz(SmoothedDirectionalMovementMinus[1]) - (nz(SmoothedDirectionalMovementMinus[1])/len) + DirectionalMovementMinus

DIPlus = SmoothedDirectionalMovementPlus / SmoothedTrueRange * 100
DIMinus = SmoothedDirectionalMovementMinus / SmoothedTrueRange * 100
DX = abs(DIPlus-DIMinus) / (DIPlus+DIMinus)*100
ADX = sma(DX, len)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  Trade session:
USE_TRADESESSION = input(title='Use Trading Session?', type=bool, defval=true)
trade_session = input(title='Trade Session:', defval='0400-1500', confirm=false)
istradingsession = not USE_TRADESESSION ? false : not na(time('1', trade_session))
bgcolor(istradingsession?gray:na)
//  ||----------------------------------------------------------------------------------------------------------------------------------------------||
//  ||  Strategy:
trade_size = input(title='Trade Size:',  defval=1)
stop_loss_in_ticks = input(title='Stop Loss in ticks:',  defval=150)
take_profit_in_ticks = input(title='Take Profit in ticks:',  defval=200)

buy_icloud_signal = open < conversionLine and close > conversionLine
buy_adx_signal = DIPlus > 20
buy_signal = istradingsession and buy_icloud_signal and buy_adx_signal

sel_icloud_signal = open > conversionLine and close < conversionLine
sel_adx_signal = DIMinus > 20
sel_signal = istradingsession and sel_icloud_signal and sel_adx_signal


strategy.order('buy', long=true, qty=trade_size, comment='buy', when=buy_signal)
strategy.order('sel', long=false, qty=trade_size, comment='sel', when=sel_signal)

strategy.exit('exit buy', from_entry='buy', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)
strategy.exit('exit sel', from_entry='sel', profit=take_profit_in_ticks, loss=stop_loss_in_ticks)