Esta estratégia utiliza principalmente canais Camarilla e médias móveis para identificar pontos de ruptura no mercado e, assim, implementar a tendência seguindo.
Calcular os níveis de suporte e resistência utilizando os canais Camarilla, incluindo H4, L4 etc.
Identifique se o preço atravessa estas linhas de canal. Por exemplo, fechar acima de H4 e abrir abaixo de H4 indica um sinal de ruptura.
Adicione um filtro de média móvel para confirmação adicional.
Entre em posição longa com stop loss e take profit, tais como pontos de stop loss fixos e stop loss de trailing.
A mesma lógica aplica-se às posições curtas.
A lógica é direta e fácil de entender.
As vantagens desta estratégia:
Os canais Camarilla localizam com precisão potenciais suportes e resistências.
O filtro de médias móveis ajuda a validar os verdadeiros sinais de ruptura.
O trailing stop loss leva lucros, evitando paradas de reversão.
Os sinais são claros e fáceis de seguir.
Não são necessários ajustes frequentes para a negociação automatizada.
Há alguns riscos a tomar em consideração:
Os canais da Camarilla não conseguem identificar pontos de virada de forma eficaz.
A definição inadequada dos pontos de stop loss pode conduzir a uma saída prematura ou a perdas aumentadas.
Os sinais de fuga podem ser falsos.
Muitas falhas podem ocorrer em mercados variados.
A estratégia pode ser melhorada a partir dos seguintes aspectos:
Adicionar mais indicadores como filtros para aumentar a precisão do breakout, como KDJ, MACD etc.
Otimizar saídas, tais como stop loss dinâmico, integrando ATR, etc.
Otimizar os parâmetros de diferentes produtos para aumentar a robustez.
Adicionar um filtro de tendência de prazo mais alto para evitar negociações contra-tendência.
Concentre-se em grandes volumes de fuga para confirmação.
Desenvolver a otimização de parâmetros automáticos para sintonização dinâmica.
Expandir para estratégias de arbitragem multiproduto.
A estratégia tem uma lógica clara e simples com forte praticidade. Identifica potenciais suporte e resistência usando Camarilla e confirma a direção de ruptura com médias móveis. O método de saída também é razoável. Há também um enorme potencial de aprimoramento, como adicionar mais indicadores, expansão de vários produtos, etc. No geral, esta é uma estratégia promissora com bom potencial.
/*backtest start: 2023-09-23 00:00:00 end: 2023-10-23 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //Created by CristianD strategy(title="CamarillaStrategyV1", shorttitle="CD_Camarilla_StrategyV1", overlay=true) //sd = input(true, title="Show Daily Pivots?") EMA = ema(close,8) //Camarilla pivot = (high + low + close ) / 3.0 range = high - low h5 = (high/low) * close h4 = close + (high - low) * 1.1 / 2.0 h3 = close + (high - low) * 1.1 / 4.0 h2 = close + (high - low) * 1.1 / 6.0 h1 = close + (high - low) * 1.1 / 12.0 l1 = close - (high - low) * 1.1 / 12.0 l2 = close - (high - low) * 1.1 / 6.0 l3 = close - (high - low) * 1.1 / 4.0 l4 = close - (high - low) * 1.1 / 2.0 h6 = h5 + 1.168 * (h5 - h4) l5 = close - (h5 - close) l6 = close - (h6 - close) // Daily line breaks //sopen = request.security(syminfo.tickerid, "D", open [1]) //shigh = request.security(syminfo.tickerid, "D", high [1]) //slow = request.security(syminfo.tickerid, "D", low [1]) //sclose = request.security(syminfo.tickerid, "D", close [1]) // // Color //dcolor=sopen != sopen[1] ? na : black //dcolor1=sopen != sopen[1] ? na : red //dcolor2=sopen != sopen[1] ? na : green //Daily Pivots dtime_pivot = request.security(syminfo.tickerid, 'D', pivot[1]) dtime_h6 = request.security(syminfo.tickerid, 'D', h6[1]) dtime_h5 = request.security(syminfo.tickerid, 'D', h5[1]) dtime_h4 = request.security(syminfo.tickerid, 'D', h4[1]) dtime_h3 = request.security(syminfo.tickerid, 'D', h3[1]) dtime_h2 = request.security(syminfo.tickerid, 'D', h2[1]) dtime_h1 = request.security(syminfo.tickerid, 'D', h1[1]) dtime_l1 = request.security(syminfo.tickerid, 'D', l1[1]) dtime_l2 = request.security(syminfo.tickerid, 'D', l2[1]) dtime_l3 = request.security(syminfo.tickerid, 'D', l3[1]) dtime_l4 = request.security(syminfo.tickerid, 'D', l4[1]) dtime_l5 = request.security(syminfo.tickerid, 'D', l5[1]) dtime_l6 = request.security(syminfo.tickerid, 'D', l6[1]) //offs_daily = 0 //plot(sd and dtime_pivot ? dtime_pivot : na, title="Daily Pivot",color=dcolor, linewidth=2) //plot(sd and dtime_h6 ? dtime_h6 : na, title="Daily H6", color=dcolor2, linewidth=2) //plot(sd and dtime_h5 ? dtime_h5 : na, title="Daily H5",color=dcolor2, linewidth=2) //plot(sd and dtime_h4 ? dtime_h4 : na, title="Daily H4",color=dcolor2, linewidth=2) //plot(sd and dtime_h3 ? dtime_h3 : na, title="Daily H3",color=dcolor1, linewidth=3) //plot(sd and dtime_h2 ? dtime_h2 : na, title="Daily H2",color=dcolor2, linewidth=2) //plot(sd and dtime_h1 ? dtime_h1 : na, title="Daily H1",color=dcolor2, linewidth=2) //plot(sd and dtime_l1 ? dtime_l1 : na, title="Daily L1",color=dcolor2, linewidth=2) //plot(sd and dtime_l2 ? dtime_l2 : na, title="Daily L2",color=dcolor2, linewidth=2) //plot(sd and dtime_l3 ? dtime_l3 : na, title="Daily L3",color=dcolor1, linewidth=3) //plot(sd and dtime_l4 ? dtime_l4 : na, title="Daily L4",color=dcolor2, linewidth=2) //plot(sd and dtime_l5 ? dtime_l5 : na, title="Daily L5",color=dcolor2, linewidth=2) //plot(sd and dtime_l6 ? dtime_l6 : na, title="Daily L6",color=dcolor2, linewidth=2) longCondition = close >dtime_h4 and open < dtime_h4 and EMA < close if (longCondition) strategy.entry("Long", strategy.long) strategy.exit ("Exit Long","Long", trail_points = 140,trail_offset = 1, loss =170) //trail_points = 40, trail_offset = 3, loss =70 and shortCondition = close <dtime_l4 and open >dtime_l4 and EMA > close if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit ("Exit Short","Short", trail_points = 110,trail_offset = 1, loss =120)