A estratégia de rastreamento de impulso de alta frequência é uma abordagem de negociação de alta frequência baseada na média móvel adaptativa de Kaufman (KAMA). Esta estratégia usa o indicador KAMA em um período de tempo de 1 hora como sua referência principal ao executar negociações em prazos mais curtos, como 15 minutos. O conceito central envolve a rápida inversão entre posições longas e curtas à medida que o preço cruza a linha KAMA, com uma meta de lucro de 1% para garantir ganhos pequenos, mas frequentes.
O núcleo da estratégia consiste em utilizar a linha KAMA para captar tendências de curto prazo e adaptar-se às flutuações do mercado através de frequentes conversões de posição.
Características das negociações de alta frequência: a estratégia pode capturar a volatilidade do mercado a curto prazo, aumentando a frequência das negociações e as potenciais oportunidades de lucro.
Controle de risco: Ao estabelecer uma meta de lucro de 1%, a estratégia pode bloquear rapidamente pequenos lucros, reduzindo a exposição ao risco por negociação.
Alta adaptabilidade: O indicador KAMA possui características adaptativas que lhe permitem ajustar a sensibilidade em diferentes condições de mercado, aumentando a adaptabilidade da estratégia.
Alta eficiência do capital: a estratégia utiliza 90% do saldo da conta como tamanho da posição, utilizando plenamente os fundos disponíveis.
Controle de retirada: os pequenos lucros freqüentes ajudam a controlar a retirada máxima, tornando a estratégia mais estável.
Potencial de alavancagem: devido a baixos drawdowns, a estratégia tem o potencial de utilizar alavancagem mais elevada para amplificar os retornos.
Automação total: a lógica da estratégia é clara e fácil de implementar para negociação totalmente automatizada, reduzindo a intervenção humana.
Excesso de negociação: A inversão de alta frequência pode conduzir a negociações excessivas, aumentando os custos de transação e perdas por deslizamento.
Desfavorável em mercados agitados: Em mercados laterais e agitados, frequentes voltas longas e curtas podem resultar em pequenas perdas acumuladas.
Tendências em falta: a meta de lucro de 1% pode causar saídas antecipadas em mercados de forte tendência, perdendo oportunidades de lucro maiores.
Risco de falha de ruptura: cruzes frequentes dos preços em torno da linha KAMA podem desencadear múltiplas operações de falha de ruptura.
Risco de gestão de fundos: utilizar 90% do saldo da conta como tamanho da posição pode erodir rapidamente o capital durante perdas consecutivas.
Aplicabilidade limitada: a estratégia só pode ser adequada para mercados altamente voláteis, com desempenho inferior em ambientes de baixa volatilidade.
Dependência técnica: A estratégia depende fortemente do indicador KAMA; se o indicador falhar, pode resultar em perdas significativas.
A taxa de rendibilidade da empresa deve ser calculada de acordo com o método de cálculo da taxa de rendibilidade da empresa.
Filtragem de entrada: introduzir condições de filtragem adicionais (como RSI, volume) para reduzir as operações falsas de ruptura.
Avaliação da força da tendência: Avalie a força da tendência antes da entrada, negociando apenas quando as tendências forem claras para evitar negociações frequentes em mercados agitados.
Optimização da gestão das posições: aplicar uma estratégia de dimensionamento das posições mais flexível, ajustando o tamanho das posições com base no desempenho da conta ou na volatilidade do mercado.
Análise de quadros de tempo múltiplos: Incorporar análises de quadros de tempo mais longos para melhorar a precisão da direção comercial.
Mecanismo de stop-loss: introduzir mecanismos de stop-loss adequados para evitar perdas excessivas em operações individuais.
Otimização de parâmetros: otimize os parâmetros KAMA para encontrar a melhor combinação de períodos rápidos e lentos.
Adaptabilidade ao mercado: desenvolver um mecanismo de reconhecimento do estado do mercado para ajustar automaticamente os parâmetros da estratégia ou pausar a negociação em diferentes condições de mercado.
A estratégia de rastreamento de momentum de alta frequência é um método inovador de negociação de alta frequência baseado no indicador KAMA. Ao capturar rapidamente as mudanças de tendência de curto prazo e estabelecer metas de lucro fixas, essa estratégia visa alcançar pequenos lucros frequentes. Suas vantagens estão em alta adaptabilidade, baixo aproveitamento e potencialmente alta eficiência de capital, mas também enfrenta desafios como excesso de negociação e riscos em mercados instáveis.
Ao otimizar as condições de entrada, introduzir take-profits dinâmicos e melhorar a gestão de posições, essa estratégia tem o potencial de melhorar ainda mais seu desempenho e estabilidade. No entanto, os traders devem reconhecer plenamente seus riscos ao usar essa estratégia e fazer ajustes apropriados com base nas preferências pessoais de risco e nas condições do mercado.
/*backtest start: 2023-07-23 00:00:00 end: 2024-07-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // indicator('TeeLek Flip 1 Percent', shorttitle='TeeLek Flip 1 Percent', overlay=true) strategy("TeeLek Flip 1 Percent", shorttitle="TeeLek Flip 1 Percent", overlay=true) // ---------------------------------------- // Input // ---------------------------------------- BALANCE_USDT = input.float(1000, title="Start Balance (USDT)", minval=100) PERCENT_POSITION_SIZE = input.float(90, title="Position Size (%USDT)", minval=1, maxval=100) PERCENT_TAKE_PROFIT = input.float(10, title="Take Profit (%)", minval=0.1, maxval=100) // KAMA Setup KAMA_PERIOD = int(10) KMA_FAST_LEN = input.int(5, "KMA Fast Legnth", minval=1,group="KAMA Setup") KMA_SLOW_LEN = input.int(50, "KMA Slow Legnth", minval=1,group="KAMA Setup") // ---------------------------------------- // Function // ---------------------------------------- pine_kama(source) => price_change = math.abs(source - source[KAMA_PERIOD]) sum_price_change = math.sum(math.abs(source - source[1]), KAMA_PERIOD) fastest = 2/(KMA_FAST_LEN + 1) slowest = 2/(KMA_SLOW_LEN + 1) ER = price_change / sum_price_change SC = math.pow((ER * (fastest-slowest) + slowest), 2) alpha = SC sum = 0.0 sum := na(sum[1]) ? source : sum[1] + SC * (source - nz(sum[1])) // ---------------------------------------- // Variable // ---------------------------------------- var CurrentBalance_USDT = float(0) var Accom_USDT = float(0) var PositionSize_USDT = float(0) var PositionSize_BTC = float(0) var PositionTarget_USDT = float(0) var TargetPrice = float(0) var Long_BTC = float(0) var Long_AvgPrice = float(0) var Short_BTC = float(0) var Short_AvgPrice = float(0) var Long_Profit = float(0) var Short_Profit = float(0) // เริ่มต้นจากจำนวน Balanace ที่กำหนดมาให้ if CurrentBalance_USDT==0 CurrentBalance_USDT:=BALANCE_USDT // ---------------------------------------- // Signal // ---------------------------------------- // kama line kama_1h = request.security(syminfo.tickerid, "60",pine_kama(close)) // ---------------------------------------- // Strategy Preparing // ---------------------------------------- // คำนวณ Position Size เตรียมเอาไว้ PositionSize_USDT:=CurrentBalance_USDT*PERCENT_POSITION_SIZE/100 PositionSize_BTC:=PositionSize_USDT/close // คำนวณหามูลค่าเป้าหมาย ถ้าถึงก็จะขายเลย PositionTarget_USDT:=CurrentBalance_USDT+(CurrentBalance_USDT*PERCENT_TAKE_PROFIT/100) // ถ้ายังไม่ได้เปิด Order // ให้รอ ราคาตัดเส้น KAMA 1H ก่อน if Long_BTC==0 and Short_BTC==0 // ตัดขึ้น ให้ซื้อขึ้น Long if close>kama_1h and close[1]<=kama_1h[1] strategy.entry("L", strategy.long) Long_BTC:=PositionSize_BTC Long_AvgPrice:=close // ตัดลง ให้ซื้อลง Short else if close<kama_1h and close[1]>=kama_1h[1] strategy.entry("S", strategy.short) Short_BTC:=PositionSize_BTC Short_AvgPrice:=close // ---------------------------------------- // Strategy Switch Side // ---------------------------------------- // ถ้าเปิด Long อยู่ if Long_BTC>0 // ถ้าตัดลง ให้ปิด Long แล้วซื้อลง Short if close<kama_1h and close[1]>=kama_1h[1] strategy.close_all("X") strategy.entry("S", strategy.short) Accom_USDT:=Accom_USDT+(close*Long_BTC)-(Long_AvgPrice*Long_BTC) Long_AvgPrice:=0 Long_BTC:=0 Short_AvgPrice:=close Short_BTC:=PositionSize_BTC // ถ้าเปิด Short อยู่ if Short_BTC>0 // ตัดขึ้น ให้ปิด Short แล้วซื้อขึ้น Long if close>kama_1h and close[1]<=kama_1h[1] strategy.close_all("X") strategy.entry("L", strategy.long) Accom_USDT:=Accom_USDT+(Short_AvgPrice*Short_BTC)-(close*Short_BTC) Short_AvgPrice:=0 Short_BTC:=0 Long_AvgPrice:=close Long_BTC:=PositionSize_BTC // ---------------------------------------- // Strategy Take Profit // ---------------------------------------- // ถ้าเปิด Long อยู่ if Long_BTC>0 // คำนวณหาราคา Target price TargetPrice:=(PositionTarget_USDT+(Long_AvgPrice*Long_BTC)-(CurrentBalance_USDT+Accom_USDT))/Long_BTC // ถ้าราคามากกว่าราคาเป้าหมายก็ปิดทำกำไรได้เลย if close>=TargetPrice strategy.close_all("Take Profit") // เก็บกำไรเป็นทุน ไปเริ่มรอบใหม่ CurrentBalance_USDT:=CurrentBalance_USDT+(close*Long_BTC)-(Long_AvgPrice*Long_BTC) Long_BTC:=0 Long_AvgPrice:=0 Accom_USDT:=0 // ถ้าเปิด Short อยู่ if Short_BTC>0 // คำนวณหาราคา Target price TargetPrice:=((CurrentBalance_USDT+Accom_USDT)+(Short_AvgPrice*Short_BTC)-PositionTarget_USDT)/Short_BTC // ถ้าราคามากกว่าราคาเป้าหมายก็ปิดทำกำไรได้เลย if close<=TargetPrice strategy.close_all("Take Profit") // เก็บกำไรเป็นทุน ไปเริ่มรอบใหม่ CurrentBalance_USDT:=CurrentBalance_USDT+(Short_AvgPrice*Short_BTC)-(close*Short_BTC) Short_BTC:=0 Short_AvgPrice:=0 Accom_USDT:=0 // ---------------------------------------- // Draw // ---------------------------------------- // KAMA plot(kama_1h,"KAMA 1H", #f18a23 , linewidth = 2) // ---------------------------------------- // Alert // ---------------------------------------- // ---------------------------------------- // Info Table // ----------------------------------------