Estratégia de média móvel de movimento relativo verdadeiro

Autora:ChaoZhang, Data: 2024-01-30 16:04:19
Tags:

img

Resumo

A estratégia TRMMA é uma estratégia de tendência que combina o índice de força relativa (RSI) e o índice de força verdadeira (TSI).

Princípios

A estratégia consiste nas seguintes partes principais:

  1. Cálculo da ETI Calcule o valor equilibrado exponencial da taxa de variação de preços através de equilíbrio exponencial duplo e divida-o pelo valor equilibrado exponencial da taxa absoluta de variação de preços para obter o indicador TSI. O longo prazo é de 25 dias, o curto prazo é de 5 dias e a linha de sinal é de 14 dias.

  2. Cálculo do RSI Indicador RSI com preço de fechamento como entrada e duração de 5 dias.

  3. Julgamento de sinalização Um sinal de compra é gerado quando o TSI cruza acima da sua linha de sinal e o RSI cruza acima de 50. Um sinal de venda é gerado quando o TSI cruza abaixo da sua linha de sinal e o RSI cruza abaixo de 50.

  4. Coloração do candelabro Coloque os candelabros com base nos sinais para ajudar no julgamento.

  5. Parâmetros da estratégia Definir parâmetros como relação de posição e capital.

Análise das vantagens

A estratégia combina os indicadores TSI e RSI para julgar efetivamente as tendências do mercado e situações de sobrecompra/supervenda, gerando assim sinais de negociação. Em comparação com o uso de TSI ou RSI sozinho, ela pode filtrar mais sinais falsos. Além disso, em comparação com os parâmetros padrão, esta estratégia adota uma configuração mais agressiva de parâmetros TSI e RSI para obter sinais de negociação mais antigos e de maior qualidade.

Análise de riscos

Os principais riscos desta estratégia incluem:

  1. O risco de otimização de parâmetros. Os parâmetros ideais da ETI e RSI podem diferir entre mercados, produtos e prazos. Os parâmetros precisam ser otimizados para situações específicas.

  2. Risco de reversão de tendência. A própria estratégia concentra-se nas tendências. Eventos repentinos que causam ajustes de curto prazo ou reversões de tendência de médio a longo prazo resultarão em maiores perdas para a estratégia.

  3. Risco de sinal frequente: em comparação com os parâmetros padrão, esta estratégia usa uma configuração de parâmetros mais agressiva, o que pode gerar sinais de negociação mais frequentes, trazendo custos de negociação mais altos e dificuldades de implementação.

Orientações de otimização

A estratégia pode ser otimizada nos seguintes aspectos:

  1. Filtrar ainda mais os sinais, combinando-os com médias móveis e outros indicadores para reduzir a frequência das negociações.

  2. Teste a combinação ideal de parâmetros da ETI e dos RSI em diferentes mercados e produtos para encontrar as melhores definições de parâmetros.

  3. Aumentar as estratégias de stop loss para controlar o risco de perda única.

  4. Otimizar a gestão das posições, aumentar as posições quando a tendência for mais forte e reduzir as posições quando a tendência se tornar fraca.

Conclusão

A estratégia TRMMA combina os indicadores TSI e RSI para determinar o tempo de entrada e saída, com forte capacidade de captura de tendência. Em comparação com o uso de TSI ou RSI sozinho, ele pode efetivamente filtrar sinais falsos. A estabilidade da estratégia pode ser melhorada através da otimização de parâmetros, estratégias de stop loss, gerenciamento de posição, etc. A estratégia é adequada para investidores com alguma base quantitativa que buscam altos retornos.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// "True relative Movement" or "TRM" for short is a system that combines my two favorite indicators: RSI and TSI. I strived to put together an indicator that combined the best of both 
// in order to help discretionary traders predict market direction, weakness and strength. As with most technical indicators there are "Buy and sell" signals. Similiar to Elder Impulse system, 
///TRM paints bars 3 different colors to display 3 different conditions: Blue for "Buy", Pink for "Sell", and gray for "Take profit/Hold". When the bars turn blue, that means all conditions
/// have been met. When they turn pink, no conditions have been met. When they are gray, only one condition has been met. The system is simple, yet effective. A buy signal is prodcued when 
/// TSI is above the signal line, and RSI is above 50, and vice versa for sell signals. I have modified the default parameters for TSI and RSI for more "aggressive" entries and exits. I may later on
/// name this condition "Fast-TRM" and "Slow-TRM" for when default settings for TSI and RSI are applies, as this is a very robust system as well. 

///******ES 1HR, 15MIN/5MIN SYSTEM***** Go long, when all time frame on a buy signal and vice versa. Take profit when the 5 min chart flips to buy or sell depending on what side of the trade you are on. Close or flip
//// long/short when time all time frames flip to Buy/Hold if short and Sell/Hold if long. Use 20EMA for additional confirmation. 

//@version=4
strategy("TKP-TRM Strategy", overlay=true)
Note = input( 0, title = "TSI standard values are 25, 13, 13, and RSI is 14. Can change the default values to these for 'Slow TRM'")
long = input(title="TSI-Long Length", type=input.integer, defval=25)
short = input(title="TSI-Short Length", type=input.integer, defval=5)
signal = input(title="TSI-Signal Length", type=input.integer, defval=14)
price = close
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
TSI_Signal_Line = (ema(tsi_value, signal))


/////////////////////////////RSI////////////////////////////////////////////////

src = close, len = input(5, minval=1, title="RSILength")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiBuyfilterlevel = input(50, minval = 1, title = "RSI cross above Buy Level")
rsiSellfilterlevel = input(50, minval = 1, title = "RSI cross below Sell Level")

////////////////////////////Bar Coloring//////////////////////////////////////////////////////////

TRM_Buy = ((tsi_value > TSI_Signal_Line) and (rsi > rsiBuyfilterlevel))
TRM_Sell = ( (tsi_value < TSI_Signal_Line) and (rsi <rsiSellfilterlevel))
TRM_Color = TRM_Buy? #3BB3E4 : TRM_Sell? #FF006E : #b2b5be
barcolor(TRM_Color)


///////////////////////////Strategy Paramters////////////////////////////////////////

if (TRM_Buy)
    strategy.entry("Long", strategy.long, comment="Long")

if (TRM_Sell)
    strategy.close("Long", comment="Sell")





Mais.