Estratégia de negociação a curto prazo baseada na tendência seguinte

Autora:ChaoZhang, Data: 2023-09-27 16:56:34
Tags:

Resumo

Esta estratégia identifica tendências fortes e um momento favorável para negociações de curto prazo com controle de perdas.

Estratégia lógica

  1. Cálculo de médias móveis simples de vários períodos

    • Estabelecimento de SMAs de 9 dias, 50 dias e 100 dias

    • A SMA curta cruzando a SMA longa indica a direção da tendência

  2. Avaliação dos níveis de sobrecompra/supervenda utilizando o RSI

    • O RSI tem 14 períodos.

    • RSI acima de 70 é sobrecomprado, abaixo de 30 é sobrevendido

  3. Entrar em negociações quando o preço quebra a SMA de 9 dias

    • Ir longo quando o preço quebra acima da SMA de 9 dias

    • Ir para curto quando o preço quebra abaixo da SMA de 9 dias

  4. Estabelecimento de stop loss/take profit com base nas divergências do RSI

    • Divergência do RSI para o stop loss

    • Tome lucro quando o RSI atingir níveis pré-estabelecidos

Análise das vantagens

  • Captura tendências de curto prazo, adequadas para negociação de alta frequência

  • As combinações de SMA filtram os sinais de tendência, evitando maus negócios

  • RSI ajuda a determinar o momento, controlar eficazmente os riscos

  • Previsão de prejuízo

  • A combinação de indicadores melhora a estabilidade

Análise de riscos

  • Julgamentos imprecisos da tendência a curto prazo causam perseguição

  • Os falsos sinais de RSI aumentam as perdas

  • Configurações inadequadas de stop loss/take profit reduzem o lucro ou aumentam as perdas

  • A alta frequência de negociação aumenta os custos e o deslizamento

  • Parâmetros ineficazes e estratégia de impacto anormal dos mercados

  • Otimizar parâmetros, stop loss rigoroso, gerenciar custos

Orientações de otimização

  • Teste diferentes combinações de SMA para melhorar o julgamento da tendência

  • Considere indicadores adicionais como o STOCH para verificar os sinais do RSI

  • Empregar aprendizado de máquina para determinar breakouts válidos

  • Ajustar parâmetros para diferentes produtos e sessões

  • Otimizar a lógica stop loss/take profit para trailing dinâmico

  • Explorar mecanismos de ajuste de parâmetros automáticos

Conclusão

Esta estratégia combina SMA e RSI para uma abordagem de negociação de curto prazo conservadora. Parâmetros de ajuste fino, validação de sinais, controle de riscos tornam-na mais robusta e adaptável. Há espaço para melhoria explorando mais combinações de SMA, adicionando modelos de aprendizado de máquina, etc. A otimização contínua levará a uma maior maturidade.


/*backtest
start: 2023-08-27 00:00:00
end: 2023-09-26 00:00:00
period: 3h
basePeriod: 15m
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/
// © Coinrule

//@version=4
strategy(shorttitle='Maximized Scalping On Trend',title='Maximized Scalping On Trend (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => true      // create function "within window of time"

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


//Trend situation
Bullish= cross(close, movingaverage_fast)

Momentum = movingaverage_mid > movingaverage_slow

// RSI inputs and calculations
lengthRSI = 14
RSI = rsi(close, lengthRSI)

//Entry
strategy.entry(id="long", long = true, when = Bullish and Momentum and RSI > 50)

//Exit

TP = input(70)
SL =input(30)
longTakeProfit  = RSI > TP
longStopPrice = RSI < SL

strategy.close("long", when = longStopPrice or longTakeProfit and window())

plot(movingaverage_fast, color=color.black, linewidth=2 )
plot(movingaverage_mid, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=2)


Mais.