Esta estratégia identifica oportunidades de compra combinando volume de negociação e indicadores RSI. Ela gerencia posições usando metas de lucro por etapas para bloquear ganhos gradualmente.
A estratégia utiliza dois indicadores para identificar os sinais de compra - volume de negociação e RSI. Especificamente, ele vai longo quando o volume excede 2,5 vezes o volume médio de 70 dias, juntamente com o RSI caindo abaixo de 30 (níveis de sobrevenda).
Uma vez estabelecida uma posição longa, a estratégia estabelece 5 metas de lucro de 0,4%, 0,6%, 0,8%, 1,0% e 1,2%.
Ao obter lucros em etapas, ele visa bloquear ganhos em meio a pequenos movimentos ascendentes, em vez de esperar por corridas maiores que podem não se materializar.
As principais vantagens desta estratégia são:
O uso de indicadores duplos evita falhas, o volume elevado confirma a convicção de fundo, enquanto os sinais de RSI sobrevendidos significam probabilidades de reversão.
Tomar lucros em lotes permite maximizar pequenas captações de ganhos dentro de intervalos.
Excelência em mercados de gama limitada, especialmente aqueles presos em torno de áreas institucionais inacabadas.
O stop loss amplo permite que os mercados tenham espaço para flutuações antes de serem interrompidos, evitando a saída prematura de retracements de curto prazo.
Os principais riscos são:
Interpretação errada de sinal duplo levando a entradas falsas.
Otimizar os níveis de lucro e os rácios de posição ajuda.
As paradas largas levam a perdas potencialmente elevadas em operações individuais.
Os mercados com tendências fortes representam riscos de viés direcional.
A utilização de corretores de baixa comissão é preferível.
As possibilidades de otimização incluem:
Otimizar as combinações de volume e RSI para reduzir os sinais falsos, adicionando confirmações como MACD e KDJ.
Testar diferentes níveis de lucro e proporções de posição para configurações ideais, potencialmente com mecanismos dinâmicos.
Introdução de regras de dimensionamento de posições para reduzir o risco máximo por transação através de sistemas de gestão de riscos.
Incorporar métricas de tendência para detectar reversões para parar perdas em tempo hábil.
Aproveitar o backtesting algorítmico para iterar rapidamente parâmetros para melhores configurações.
Aprender com os modelos institucionais de controlo do deslizamento/dos custos das TIC para melhorar a eficiência apesar da elevada rotatividade.
Esta estratégia de reversão de média de indicador duplo identifica sinais de baixo com aumentos de volume e RSI de sobrevenda para compra, obtendo lucros graduais em meio a intervalos através de saídas escalonadas. Ele lucra com frequência sem exigir grandes corridas. As desvantagens incluem riscos de má interpretação de sinal e alta rotatividade. A otimização de confirmação e os controles de risco / custo melhoram a robustez. Excelente para a colheita de ganhos de curto prazo em mercados agitados.
/*backtest start: 2023-12-27 00:00:00 end: 2024-01-03 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/ // © wielkieef //@version=5 strategy(title='BTFD strategy [3min]', overlay=true, pyramiding=5, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.03) // Volume vol_sma_length = input.int(70, title='Volume lenght ', minval=1) Volume_condt = volume > ta.sma(volume, vol_sma_length) * 2.5 // Rsi rsi_lenght = input.int(20, title='RSI lenght', minval=0) rsi_up = ta.rma(math.max(ta.change(close), 0), rsi_lenght) rsi_down = ta.rma(-math.min(ta.change(close), 0), rsi_lenght) rsi_value = rsi_down == 0 ? 100 : rsi_up == 0 ? 0 : 100 - 100 / (1 + rsi_up / rsi_down) rsi_overs = rsi_value <= 30 rsi_overb = rsi_value >= 70 // logic tp_1 = input.float(0.4," TP 1", minval=0.1, step=0.1) tp_2 = input.float(0.6," TP 2", minval=0.2, step=0.1) tp_3 = input.float(0.8," TP 3", minval=0.3, step=0.1) tp_4 = input.float(1.0," TP 4", minval=0.4, step=0.1) tp_5 = input.float(1.2," TP 5", minval=0.5, step=0.1) q_1 = input.int(title=' % TP 1 Q ', defval=20, minval=1, step=10) q_2 = input.int(title=' % TP 2 Q ', defval=40, minval=1, step=10) q_3 = input.int(title=' % TP 3 Q ', defval=60, minval=1, step=10) q_4 = input.int(title=' % TP 4 Q ', defval=80, minval=1, step=10) q_5 = input.int(title=' % TP 5 Q ', defval=100, minval=1, step=10) sl = input.float(5.0, '% Stop Loss', step=0.1) long_cond = Volume_condt and rsi_overs // this code is from author RafaelZioni, modified by wielkieef per(procent) => strategy.position_size != 0 ? math.round(procent / 100 * strategy.position_avg_price / syminfo.mintick) : float(na) // -------------------------------------------------------------------------------------------------------------------- if long_cond strategy.entry('BUY', strategy.long) strategy.exit('TP 1', qty_percent=q_1, profit=per(tp_1), loss=per(sl) ) strategy.exit('TP 2', qty_percent=q_2, profit=per(tp_2), loss=per(sl) ) strategy.exit('TP 3', qty_percent=q_3, profit=per(tp_3), loss=per(sl) ) strategy.exit('TP 4', qty_percent=q_4, profit=per(tp_4), loss=per(sl) ) strategy.exit('TP 5', qty_percent=q_5, profit=per(tp_5), loss=per(sl) ) // by wielkieef