
A estratégia usa o cruzamento da média móvel do índice (EMA) para gerar sinais de negociação e, ao mesmo tempo, configura de forma dinâmica os níveis de stop e stop loss. Quando o EMA de curto período (EMA 12) passa o EMA de longo período (EMA 26) a partir da parte inferior, gera um sinal de compra. Por outro lado, quando o EMA 12 passa o EMA 26 a partir da parte superior, gera um sinal de venda.
O núcleo da estratégia é o uso de cruzamentos de médias móveis de índices (EMA) de dois períodos diferentes para produzir sinais de negociação. O EMA é um indicador de acompanhamento de tendências que permite suavizar os dados de preços e reduzir a interferência de ruído. Quando o EMA de menor período cruza o EMA de maior período abaixo, indica uma forte mudança de preço e produz um sinal de compra.
Ao mesmo tempo, a estratégia usa o método de stop loss dinâmico, configurando diferentes níveis de stop loss e stop loss de acordo com a direção da posição atual (multi-head ou headless). Esta estratégia de stop loss dinâmico permite que os lucros se expandam adequadamente quando a tendência é forte e, ao mesmo tempo, é interrompida quando a reversão de preços ocorre, melhorando assim o controle do risco.
Simples e fácil de usar: a estratégia usa apenas o cruzamento de duas linhas EMA para gerar um sinal de negociação, com lógica clara e fácil de entender e implementar.
Seguimento de tendências: O indicador EMA tem uma boa capacidade de acompanhamento de tendências, capaz de capturar eficazmente as principais tendências de preços.
Stop loss dinâmico: ajuste dinâmico dos níveis de stop e stop loss de acordo com a direção da posição, permitindo que os lucros se expandam plenamente quando a tendência é forte, enquanto que os perdas são interrompidas quando o preço se reverte, melhor controlando o risco.
Adaptabilidade: A estratégia é adaptável a diferentes ambientes de mercado e variedades de negociação, com maior adaptabilidade e flexibilidade.
Riscos de otimização de parâmetros: a escolha do ciclo EMA e a configuração do percentual de stop loss precisam ser otimizadas de acordo com o ambiente de mercado específico e a variedade de negociação. A configuração inadequada de parâmetros pode levar a um mau desempenho da estratégia.
Risco de negociação frequente: quando o mercado está em um estado de agitação, o cruzamento EMA pode ocorrer com frequência, resultando em uma estratégia que gera mais sinais de negociação, aumentando os custos de negociação e o risco.
Risco de reversão de tendência: A estratégia pode produzir sinais de negociação errados, resultando em perdas, quando a tendência do mercado se reverte de forma súbita.
Introdução de outros indicadores técnicos: pode ser considerado a introdução de outros indicadores técnicos, como RSI, MACD, etc., para auxiliar a confirmação do sinal de cruzamento EMA e melhorar a confiabilidade do sinal de negociação.
Optimizar a configuração dos parâmetros: encontrar a melhor combinação de parâmetros para um determinado ambiente de mercado e variedade de negociação através de testes de otimização do ciclo EMA e do Stop Loss Ratio.
Introdução de medidas de controle de risco: Considere a introdução de medidas de controle de risco, como gerenciamento de posições, gerenciamento de fundos, etc., para controlar melhor o risco de negociação.
Combinação com análise fundamental: Combinação de análise técnica com análise fundamental, considerando fatores como o ambiente de mercado, dados econômicos e outros, para aumentar a precisão das decisões de negociação.
A estratégia utiliza EMAs cruzadas para gerar sinais de negociação e usa um método de stop loss dinâmico para controlar o risco. Ela possui vantagens como a facilidade de uso, o acompanhamento de tendências e a forte adaptabilidade, mas também enfrenta desafios como o risco de otimização de parâmetros, o risco de negociação frequente e o risco de reversão de tendência.
/*backtest
start: 2023-05-23 00:00:00
end: 2024-05-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("CDC Action Zone Trading Bot with Dynamic TP/SL", overlay=true)
// ดึงข้อมูลราคาปัจจุบัน
current_price = close
// คำนวณเส้น EMA 12 และ EMA 26
ema12 = ta.ema(current_price, 12)
ema26 = ta.ema(current_price, 26)
// กำหนดเปอร์เซ็นต์ Take Profit และ Stop Loss
takeProfitPercent = 0.080
stopLossPercent = 0.025
// คำนวณระดับ Take Profit และ Stop Loss
longTakeProfit = strategy.position_avg_price * (1 + takeProfitPercent)
longStopLoss = strategy.position_avg_price * (1 - stopLossPercent)
shortTakeProfit = strategy.position_avg_price * (1 - takeProfitPercent)
shortStopLoss = strategy.position_avg_price * (1 + stopLossPercent)
// สัญญาณ Buy
buySignal = (ema12 > ema26) and (ema12[1] <= ema26[1])
// สัญญาณ Sell
sellSignal = (ema12 < ema26) and (ema12[1] >= ema26[1])
// เปิด Position Long
if (buySignal)
strategy.entry("Long", strategy.long)
// เปิด Position Short
if (sellSignal)
strategy.entry("Short", strategy.short)
// ปิด Position Long เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size > 0)
strategy.exit("Long TP/SL", from_entry="Long", limit=longTakeProfit, stop=longStopLoss, comment="TP/SL")
// ปิด Position Short เมื่อถึง Take Profit หรือ Stop Loss
if (strategy.position_size < 0)
strategy.exit("Short TP/SL", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss, comment="TP/SL")
// ปิด Position Long เมื่อเกิดสัญญาณขาย
if (strategy.position_size > 0 and sellSignal)
strategy.close("Long", comment="Sell Signal")
// ปิด Position Short เมื่อเกิดสัญญาณซื้อ
if (strategy.position_size < 0 and buySignal)
strategy.close("Short", comment="Buy Signal")
// Debugging messages to plot the calculated levels for visual verification
//plot(longTakeProfit, title="Long Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(longStopLoss, title="Long Stop Loss", color=color.red, linewidth=1, style=plot.style_line)
//plot(shortTakeProfit, title="Short Take Profit", color=color.green, linewidth=1, style=plot.style_line)
//plot(shortStopLoss, title="Short Stop Loss", color=color.red, linewidth=1, style=plot.style_line)