A estratégia permite a negociação de curto prazo em Bitcoin através da computação do True Strength Index (TSI) do Bitcoin para identificar tendências de mercado e, em combinação com a filtragem do RSI, para fazer mais oportunidades de curto prazo. A estratégia é adequada para investidores que procedem a negociação programada do mercado de Bitcoin de acordo com as circunstâncias.
A estratégia baseia-se principalmente no indicador de força e fraqueza reais (TSI). O TSI mede a magnitude e a direção do valor absoluto da mudança de preço através da taxa de variação de preço de dupla suavização, para identificar a força absoluta de alta e baixa de preços. O método de cálculo específico é o seguinte:
A estratégia também combina o indicador RSI com o filtro do sinal de negociação do TSI, que só produz um sinal múltiplo quando o valor do RSI é maior que 50 e um sinal de vazio quando o valor do RSI é menor que 50, filtrando parte do falso sinal.
A estratégia tem as seguintes vantagens:
A estratégia também apresenta os seguintes riscos:
Pode-se reduzir o efeito de onda e o problema de atraso por meio de uma flexibilização apropriada das condições de filtragem do RSI, reduzindo o ciclo EMA, etc. Ao mesmo tempo, otimize a estratégia de parada de perdas e controle rigoroso do risco de uma única transação.
A estratégia pode ser melhorada em vários aspectos:
Optimizar os parâmetros do TSI e do RSI para encontrar a melhor combinação de parâmetros. Pode ajustar o ciclo de EMA mais longo, os parâmetros do RSI, etc.
Adicionar outros indicadores combinados, formando modelos multifatores. Por exemplo, pode ser adicionado MA, KD e outros indicadores, aproveitando ao máximo as vantagens de cada indicador.
Otimizar as condições de entrada, evitar a colisão de vários mercados. A direção pode ser julgada de acordo com a tendência do grande ciclo.
Optimizar estratégias de stop loss, como stop loss móvel, stop loss de tempo e stop loss de ruptura.
Otimizar as condições de saída, evitando a perda prematura ou tardia. Pode ser combinado com o indicador de taxa de flutuação para determinar quando sair do campo.
Optimização da variedade de transação e do tempo de transação, concentração na variedade e no tempo de transação mais eficazes.
Esta estratégia identifica a tendência de curto prazo do bitcoin através de indicadores reais de força e fraqueza, e é auxiliada por sinais de filtragem do indicador RSI, para efetivamente executar negociações programadas de bitcoin. A estratégia possui vantagens de identificar tendências sensíveis e eliminar o ruído, mas também possui alguns problemas de atraso e risco de negociação.
/*backtest
start: 2022-09-30 00:00:00
end: 2023-10-06 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// strategy("True Strength Indicator BTCUSD 15p", shorttitle="TSI BTCUSD 15p",initial_capital=1000, commission_value=0.15, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)
//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe", defval="15" )
long = input(title="Long Length", defval=25)
short = input(title="Short Length", defval=13)
signal = input(title="Signal Length", defval=13)
price = request.security(syminfo.tickerid,resCustom,close)
double_smooth(src, long, short) =>
fist_smooth = ta.ema(src, long)
ta.ema(fist_smooth, short)
pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2=ta.ema(tsi_value, signal)
plot(tsi_value, color=color.lime,linewidth=2)
plot(tsi2, color=color.red,linewidth=2)
rsiserie = ta.rsi(price,7)
cciserie = ta.cci(price,14)
stochserie = ta.stoch(price,14,3,3)
plot(rsiserie,color=color.purple)
hline(30, title="Zero")
hline(50, title="Zero",linestyle=hline.style_solid, linewidth=2)
hline(70, title="Zero")
buy = ta.crossover(tsi_value, tsi2) //and rsiserie[1]<25 //and cciserie<-100 and stochserie<20
sell = ta.crossunder(tsi_value, tsi2) //and rsiserie[1]>85 //and cciserie>100 and stochserie>80
alertcondition(buy, title='TSI system', message='Buy signal at!' )
alertcondition(sell, title='TSI system', message='Sell signal at!' )
strategy.entry("BUY", strategy.long, 1, when = buy)
strategy.entry("SELL", strategy.short, 1, when = sell )
greentsi =tsi_value
redtsi = tsi2
bgcolor( greentsi>redtsi and rsiserie > 50 ? color.lime : na, transp=90)
bgcolor( greentsi<redtsi and rsiserie < 50 ? color.red : na, transp=90)
yellow1= redtsi > greentsi and rsiserie > 50
yellow2 = redtsi < greentsi and rsiserie < 50
bgcolor( yellow1 ? yellow : na, transp=80)
bgcolor( yellow2 ? yellow : na, transp=50)
bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
bgcolor( yellow2 and yellow2[2] ? yellow : na, transp=70)
bgcolor( rsiserie > 70 ? color.lime : na, transp=60)
bgcolor( rsiserie < 30 ? color.red : na, transp=60)