
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.
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.
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.
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%.
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.
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.
Controle de drawdown: pequenos ganhos frequentes ajudam a controlar a retirada máxima, tornando a estratégia mais estável.
Potencial de alavancagem: Uma estratégia tem o potencial de usar uma alavancagem mais alta para aumentar os ganhos devido à baixa taxa de retirada.
Fully Automated: Uma estratégia com lógica clara e fácil de implementar, com transações totalmente automatizadas e menos intervenção humana.
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.
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.
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.
Risco de Falso Breakout: O cruzamento frequente de preços perto da linha KAMA pode desencadear vários falsos breakouts.
Risco de gerenciamento de fundos: o uso de 90% do saldo da conta como posição pode corroer rapidamente o dinheiro em perdas consecutivas.
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.
Dependência tecnológica: a estratégia depende muito do KAMA, que pode causar grandes perdas se falhar.
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.
Filtragem de entrada: introdução de condições de filtragem adicionais (como RSI, volume de transação) para reduzir falsos breakouts.
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.
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.
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.
Mecanismos de impedimento: introduzir mecanismos de impedimento adequados para evitar perdas excessivas em transações individuais.
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.
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.
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.
/*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
// ----------------------------------------