O recurso está a ser carregado... Carregamento...

Estratégia de rastreamento de impulso por porcentagem de inversão de alta frequência

Autora:ChaoZhang, Data: 2024-07-29 14:12:08
Tags:KAMATP

img

Resumo

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.

Princípios de estratégia

  1. Utilize a linha KAMA num período de 1 hora como indicador principal da tendência.
  2. Abrir uma posição longa quando o preço atravessa acima da linha KAMA, e uma posição curta quando atravessa abaixo.
  3. Ao manter uma posição longa, se o preço cruzar abaixo da linha KAMA, feche a longa e abra uma curta; vice-versa para posições curtas.
  4. Estabeleça uma meta de lucro de 1%, e, uma vez atingida, feche imediatamente a posição e reinicie o saldo da conta.
  5. Utilize 90% do saldo da conta como o tamanho da posição para cada operação.
  6. Execução de transações num prazo mais curto (por exemplo, 15 minutos) para captar mais oportunidades de negociação.

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.

Vantagens da estratégia

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Controle de retirada: os pequenos lucros freqüentes ajudam a controlar a retirada máxima, tornando a estratégia mais estável.

  6. Potencial de alavancagem: devido a baixos drawdowns, a estratégia tem o potencial de utilizar alavancagem mais elevada para amplificar os retornos.

  7. 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.

Riscos estratégicos

  1. 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.

  2. Desfavorável em mercados agitados: Em mercados laterais e agitados, frequentes voltas longas e curtas podem resultar em pequenas perdas acumuladas.

  3. 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.

  4. 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.

  5. 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.

  6. Aplicabilidade limitada: a estratégia só pode ser adequada para mercados altamente voláteis, com desempenho inferior em ambientes de baixa volatilidade.

  7. Dependência técnica: A estratégia depende fortemente do indicador KAMA; se o indicador falhar, pode resultar em perdas significativas.

Orientações para a otimização da estratégia

  1. A taxa de rendibilidade da empresa deve ser calculada de acordo com o método de cálculo da taxa de rendibilidade da empresa.

  2. Filtragem de entrada: introduzir condições de filtragem adicionais (como RSI, volume) para reduzir as operações falsas de ruptura.

  3. 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.

  4. 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.

  5. 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.

  6. Mecanismo de stop-loss: introduzir mecanismos de stop-loss adequados para evitar perdas excessivas em operações individuais.

  7. Otimização de parâmetros: otimize os parâmetros KAMA para encontrar a melhor combinação de períodos rápidos e lentos.

  8. 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.

Conclusão

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
// ----------------------------------------


Relacionados

Mais.