La estrategia de alto porcentaje de reversión de seguimiento de la dinámica es una estrategia de negociación de alta frecuencia basada en la media móvil adaptada de Kaufman (KAMA). La estrategia utiliza el indicador KAMA como referencia principal en el marco de tiempo de 1 hora y se negocia en un marco de tiempo más corto (como 15 minutos). La idea central de la estrategia es el rápido reverso de posiciones excedentarias cuando el precio cruza la línea KAMA, mientras se establece un objetivo de ganancia del 1% para bloquear ganancias pequeñas pero frecuentes.
El núcleo de la estrategia consiste en utilizar la línea KAMA para capturar tendencias a corto plazo y adaptarse a la volatilidad del mercado mediante el reverso frecuente de las posiciones. El objetivo de ganancias del 1% asegura un rápido cierre de ganancias y reduce el tiempo de tenencia de la posición y el riesgo potencial.
Características de las operaciones de alta frecuencia: La estrategia capta las fluctuaciones de los mercados a corto plazo, aumentando la frecuencia de las operaciones y las oportunidades potenciales de beneficios.
Control de riesgos: Al establecer un objetivo de ganancias del 1%, la estrategia permite bloquear rápidamente pequeñas ganancias y reducir la exposición al riesgo de una sola operación.
Adaptabilidad: El indicador KAMA tiene características de adaptación, lo que permite ajustar la sensibilidad a las diferentes condiciones del mercado y mejorar la adaptabilidad de las estrategias.
Eficiencia de capital: la estrategia utiliza el 90% del saldo de la cuenta como tamaño de posición, aprovechando al máximo los fondos disponibles.
Control de drawdown: Las pequeñas ganancias frecuentes ayudan a controlar el máximo retiro y hacen que la estrategia sea más estable.
Potencial de apalancamiento: debido a la baja baja, la estrategia tiene el potencial de utilizar un mayor apalancamiento para aumentar los beneficios.
Completamente automatizado: La lógica de la estrategia es clara, es fácil de implementar operaciones totalmente automatizadas y reduce la intervención humana.
Exceso de transacciones: la inversión de alta frecuencia puede conducir a un exceso de transacciones, aumentando los costos de transacción y la pérdida de puntos de deslizamiento.
Los mercados convulsivos son desfavorables: en los mercados convulsivos horizontales, las frecuentes volteretas pueden causar la acumulación de pequeñas pérdidas en serie.
El objetivo de ganancias del 1% puede conducir a una liquidación prematura en un mercado de fuerte tendencia y a perder oportunidades de ganancias mayores.
Riesgo de brechas falsas: los cruces frecuentes de precios cerca de la línea KAMA pueden desencadenar múltiples brechas falsas.
Riesgo de gestión de fondos: el uso del 90% del saldo de la cuenta como posición puede erosionar rápidamente los fondos en caso de pérdidas continuas.
Limitaciones de aplicabilidad: La estrategia puede aplicarse solo a mercados con alta volatilidad y no es muy eficaz en mercados con baja volatilidad.
Dependencia tecnológica: la estrategia depende en gran medida del indicador KAMA, cuya falla puede causar graves pérdidas.
Bloqueo dinámico: Considere cambiar el objetivo de ganancias fijas del 1% a un bloqueo dinámico basado en el ATR o la volatilidad para adaptarse a las diferentes condiciones del mercado.
Filtración de entrada: Introducción de condiciones de filtración adicionales (por ejemplo, RSI, volumen de transacciones) para reducir las operaciones falsas de ruptura.
Evaluación de la intensidad de la tendencia: evaluar la intensidad de la tendencia antes de abrir una posición, comerciar solo cuando la tendencia es clara y evitar comerciar con frecuencia en mercados convulsivos.
Optimización de la gestión de posiciones: Implementa estrategias de gestión de posiciones más flexibles, como ajustar el tamaño de las posiciones en función de las ganancias y pérdidas de las cuentas o las fluctuaciones del mercado.
Análisis de múltiples marcos de tiempo: en combinación con análisis de marcos de tiempo más largos, mejora la precisión de la dirección de la operación.
Mecanismo de deterioro: Introducción de un mecanismo de deterioro adecuado para evitar pérdidas excesivas en una sola transacción.
Optimización de parámetros: optimización de los parámetros de KAMA para encontrar la combinación óptima de ciclo de línea rápida y lenta.
Adaptabilidad al mercado: desarrollo de mecanismos de identificación del estado del mercado para ajustar automáticamente los parámetros de la estrategia o suspender el comercio en diferentes condiciones del mercado.
La estrategia de seguimiento de la dinámica del porcentaje de inversión de alta frecuencia es un método de negociación de alta frecuencia innovador basado en el indicador KAMA. La estrategia apunta a obtener ganancias pequeñas y frecuentes al capturar rápidamente los cambios en las tendencias a corto plazo y establecer objetivos de ganancias fijas. Su ventaja reside en su alta adaptabilidad, bajo drawdown y potencialmente alta eficiencia de capital, pero también se enfrenta a desafíos como el riesgo de sobrecomercialización y el riesgo de mercado inestable.
La estrategia tiene el potencial de mejorar aún más su rendimiento y estabilidad mediante la optimización de las condiciones de entrada, la introducción de paradas dinámicas y la mejora de la gestión de las posiciones. Sin embargo, los operadores deben ser plenamente conscientes de sus riesgos al usar esta estrategia y hacer los ajustes adecuados en función de las preferencias de riesgo personales y las condiciones del mercado. En general, es una estrategia de comercio cuantitativa con potencial, especialmente adecuada para los inversores que buscan oportunidades de comercio de alta frecuencia y bajo riesgo.
/*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
// ----------------------------------------