Estratégia de Momentum de Rastreamento de Porcentagem de Flip de Alta Frequência

KAMA TP
Data de criação: 2024-07-29 14:12:08 última modificação: 2024-07-29 14:12:08
cópia: 0 Cliques: 560
1
focar em
1617
Seguidores

Estratégia de Momentum de Rastreamento de Porcentagem de Flip de Alta Frequência

Visão geral

A estratégia de percentual de reviravolta de alta frequência de rastreamento de volume é uma estratégia de negociação de alta frequência baseada na média móvel adaptada de Kaufman (KAMA). A estratégia usa o indicador KAMA como referência principal em um período de tempo de 1 hora e negocia em um período de tempo mais curto (por exemplo, 15 minutos). A ideia central da estratégia é reverter rapidamente as posições em aberto quando o preço atravessa a linha KAMA, ao mesmo tempo em que se estabelece um objetivo de ganho de 1% para bloquear lucros pequenos, mas frequentes.

Princípio da estratégia

  1. A linha KAMA é usada como principal indicador de tendências no intervalo de 1 hora.
  2. A posição multi-cabeça é aberta quando o preço atravessa a linha KAMA e a posição vazia quando o preço atravessa a linha KAMA.
  3. Quando se detém uma posição de capital, se o preço atravessar a linha KAMA abaixo, o capital é liquidado e o capital é aberto; e vice-versa.
  4. Estabeleça uma meta de lucro de 1%. Quando atingir a meta, liquide imediatamente e reponha o saldo da conta.
  5. Usar 90% do saldo da conta como o tamanho da posição por transação.
  6. Execute transações em períodos de tempo mais curtos (por exemplo, 15 minutos) para capturar mais oportunidades de negociação.

O núcleo da estratégia é usar a linha KAMA para capturar tendências de curto prazo e se adaptar à volatilidade do mercado por meio de frequentes reversões de posições. A meta de ganho de 1% garante o bloqueio rápido dos lucros, reduzindo o tempo de posse e o risco potencial.

Vantagens estratégicas

  1. Características de negociação de alta frequência: a estratégia permite capturar oscilações de mercado de curto prazo, aumentando a frequência de negociação e as oportunidades de lucro potencial.

  2. Controle de risco: A estratégia permite bloquear rapidamente pequenos lucros e reduzir a exposição ao risco de uma única transação, definindo um objetivo de lucro de 1%.

  3. Adaptabilidade: O indicador KAMA possui características de auto-adaptação, podendo ajustar a sensibilidade em diferentes condições de mercado, aumentando a adaptabilidade da estratégia.

  4. Eficiência de capital: a estratégia usa 90% do saldo da conta como o tamanho da posição, aproveitando ao máximo os fundos disponíveis.

  5. Controle de drawdown: pequenos ganhos frequentes ajudam a controlar a retirada máxima, tornando a estratégia mais estável.

  6. Potencial de alavancagem: Uma estratégia tem o potencial de usar uma alavancagem mais alta para aumentar os ganhos devido à baixa taxa de retirada.

  7. Fully Automated: Uma estratégia com lógica clara e fácil de implementar, com transações totalmente automatizadas e menos intervenção humana.

Risco estratégico

  1. Transações excessivas: A inversão de alta frequência pode levar a transações excessivas, aumentando os custos de transação e a perda de pontos de deslizamento.

  2. Os mercados de choque são desvantajosos: em mercados de choque horizontal, as frequentes voltas aéreas podem levar à acumulação de pequenos prejuízos consecutivos.

  3. Perda de tendência: A meta de lucro de 1% pode levar a uma liquidação prematura em mercados de forte tendência, perdendo uma oportunidade de lucro maior.

  4. Risco de Falso Breakout: O cruzamento frequente de preços perto da linha KAMA pode desencadear vários falsos breakouts.

  5. Risco de gerenciamento de fundos: o uso de 90% do saldo da conta como posição pode corroer rapidamente o dinheiro em perdas consecutivas.

  6. Limitações de aplicabilidade: A estratégia pode ser aplicada apenas em mercados de alta volatilidade e não é eficaz em mercados de baixa volatilidade.

  7. Dependência tecnológica: a estratégia depende muito do KAMA, que pode causar grandes perdas se falhar.

Direção de otimização da estratégia

  1. Paradas dinâmicas: Considere a mudança de um objetivo de lucro fixo de 1% para paradas dinâmicas baseadas no ATR ou na volatilidade, para adaptar-se a diferentes condições de mercado.

  2. Filtragem de entrada: introdução de condições de filtragem adicionais (como RSI, volume de transação) para reduzir falsos breakouts.

  3. Avaliação da intensidade da tendência: Avalie a intensidade da tendência antes de abrir uma posição, negocie apenas quando a tendência é clara e evite negociar com frequência em mercados de turbulência.

  4. Optimizar o gerenciamento de posições: Implementar estratégias de gerenciamento de posições mais flexíveis, como ajustar o tamanho das posições com base em ganhos e perdas da conta ou na flutuação do mercado.

  5. Análise de multi-quadros de tempo: em combinação com a análise de quadros de tempo mais longos, aumenta a precisão da direção do negócio.

  6. Mecanismos de impedimento: introduzir mecanismos de impedimento adequados para evitar perdas excessivas em transações individuais.

  7. Optimização de parâmetros: Optimização dos parâmetros de KAMA para encontrar a melhor combinação de períodos de linha rápida e lenta.

  8. Adaptabilidade de mercado: desenvolvimento de mecanismos de identificação de estado de mercado para ajustar automaticamente os parâmetros de estratégia ou suspender a negociação em diferentes condições de mercado.

Resumir

A estratégia de percentual de reviravolta de alta frequência para rastrear a dinâmica é uma estratégia de negociação de alta frequência inovadora baseada no indicador KAMA. A estratégia visa obter pequenos lucros frequentes, capturando rapidamente mudanças de tendências de curto prazo e estabelecendo objetivos de lucro fixos.

A estratégia tem o potencial de melhorar ainda mais o seu desempenho e estabilidade, através da otimização das condições de entrada, da introdução de stop-loss dinâmicos e da melhoria da gestão de posições. No entanto, os comerciantes devem estar plenamente conscientes dos seus riscos ao usar esta estratégia e fazer os ajustes adequados de acordo com as preferências pessoais de risco e as condições do mercado.

Código-fonte da estratégia
/*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
// ----------------------------------------