Estratégia de salto de preço de média móvel dupla

Autora:ChaoZhang, Data: 2023-11-21 14:28:35
Tags:

img

Resumo

Esta estratégia utiliza o indicador RSI para determinar as condições de sobrecompra e sobrevenda, combinado com um sistema de julgamento da tendência construído com linhas médias móveis rápidas, médias e lentas, para identificar oportunidades de abrir posições longas ou curtas quando os preços estão a saltar.

Princípio da estratégia

  1. Utilize o indicador RSI para determinar as condições de sobrecompra e sobrevenda

    • O parâmetro RSI é definido em 14 períodos
    • A linha de sobrevenda está em 30, a linha de sobrecompra está em 70
  2. Utilize três linhas SMA de períodos diferentes para determinar a tendência

    • A linha rápida é a SMA de 9 períodos, representando a tendência de curto prazo
    • A linha média é a SMA de 50 períodos, representando a tendência de médio prazo.
    • A linha lenta é a SMA de 200 períodos, representando uma tendência de longo prazo.
  3. Quando a linha rápida cruza acima da linha média, e o indicador RSI mostra sobrevenda, vá longo

  4. Quando a linha rápida cruza abaixo da linha média e o indicador RSI mostra sobrecompra, vá curto

  5. O valor da perda de paragem é fixado em 4% do preço de entrada

  6. A captação de lucro é feita em lotes, primeiro tirar lucro de 20%, depois tirar 15% como o preço continua a subir, saindo de posições gradualmente

Análise das vantagens

  1. Usando três linhas SMA de períodos diferentes pode julgar mudanças de tendência em diferentes prazos
  2. A utilização do indicador RSI evita a abertura de posições fora das zonas de sobrecompra/supervenda
  3. Aumento do lucro por lote do período de detenção e do lucro médio da estratégia

Análise de riscos

  1. Probabilidade de sinais errados das três linhas médias móveis
  2. Risco de lucro por lote incompleto na execução
  3. Necessidade de escolher instrumentos adequados com alta flutuação de preços

Orientações de otimização

  1. Pode testar a modificação dos parâmetros das médias móveis e do RSI para otimizar a entrada e a saída
  2. Pode adicionar outros indicadores para filtrar padrões de velas etc para melhorar a precisão
  3. Pode rastrear dinamicamente o stop loss para controlar ainda mais o risco

Resumo

Esta estratégia combina indicadores de média móvel e o indicador de sobrecompra/supervenda RSI. Ao capturar mudanças na tendência de preços ao julgar oportunidades de negociação, pertence a uma estratégia de rastreamento de tendências comumente usada.


/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-20 00:00:00
period: 1m
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/
// © syfuslokust

//@version=4
strategy(shorttitle='CoinruleCombinedCryptoStrat',title='CoinruleCombinedCryptoStrat', overlay=true)


// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)
//Normal
oversold = input(30)
overbought =  input(70)
//ALGO
//oversold= input(26)
//overbought= input(80)

//sell pct
SellPct = input(20)
ExitPct = input(15)

//MA inputs and calculations
movingaverage_signal = sma(close, input(9))
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_mid= sma(close, input(100))

//Look Back
inp_lkb = input(12, title='Lookback Long Period')
inp_lkb_2 = input(2, title='Lookback Short Period')
 
perc_change(lkb) =>
    overall_change = ((close[0] - close[lkb]) / close[lkb]) * 100

//Entry 

//MA
bullish = crossover(movingaverage_signal, movingaverage_fast)
//Execute buy
strategy.entry(id="long", long = true, when = (RSI < oversold and movingaverage_fast < movingaverage_mid))

//when = crossover(close, movingaverage_signal) and movingaverage_signal < movingaverage_slow and RSI < oversold)

//Exit

//RSI
Stop_loss= ((input (4))/100)
longStopPrice  = strategy.position_avg_price * (1 - Stop_loss)
//MA
bearish = crossunder(movingaverage_signal, movingaverage_fast)
//Execute sell
strategy.close("long", qty_percent = SellPct, when = RSI > overbought and movingaverage_fast > movingaverage_mid)
//when = (crossunder(low, movingaverage_signal) and movingaverage_fast > movingaverage_slow and RSI > overbought) or (movingaverage_signal < movingaverage_fast and crossunder(low, movingaverage_fast)) or (low < longStopPrice))


//PLOT
plot(movingaverage_signal, color=color.black, linewidth=2, title="signal")
plot(movingaverage_fast, color=color.orange, linewidth=2, title="fast")
plot(movingaverage_slow, color=color.purple, linewidth=2, title="slow")
plot(movingaverage_mid, color=color.blue, linewidth=2, title="mid")

Mais.