La estrategia de seguimiento de impulso de porcentaje de cambio de alta frecuencia es un enfoque de comercio de alta frecuencia basado en el promedio móvil adaptativo de Kaufman (KAMA). Este método utiliza el indicador KAMA en un marco de tiempo de 1 hora como su referencia principal mientras se ejecutan operaciones en marcos de tiempo más cortos, como 15 minutos. El concepto básico consiste en cambiar rápidamente entre posiciones largas y cortas a medida que el precio cruza la línea KAMA, con un objetivo de ganancia del 1% para asegurar ganancias pequeñas pero frecuentes.
La estrategia consiste en utilizar la línea KAMA para captar las tendencias a corto plazo y adaptarse a las fluctuaciones del mercado a través de cambios frecuentes de posición.
Características de las operaciones de alta frecuencia: La estrategia puede capturar la volatilidad del mercado a corto plazo, aumentar la frecuencia de las operaciones y las oportunidades potenciales de ganancia.
Control de riesgos: al establecer un objetivo de ganancia del 1%, la estrategia puede bloquear rápidamente pequeñas ganancias, reduciendo la exposición al riesgo por operación.
Alta adaptabilidad: El indicador KAMA tiene características adaptativas que le permiten ajustar la sensibilidad en diferentes condiciones de mercado, lo que mejora la adaptabilidad de la estrategia.
Alta eficiencia de capital: la estrategia utiliza el 90% del saldo de la cuenta como tamaño de la posición, utilizando plenamente los fondos disponibles.
Control de extracción: Las pequeñas ganancias frecuentes ayudan a controlar la extracción máxima, lo que hace que la estrategia sea más estable.
Potencial de apalancamiento: Debido a que las reducciones son más bajas, la estrategia tiene el potencial de utilizar un apalancamiento más alto para amplificar los rendimientos.
Automatización completa: La lógica de la estrategia es clara y fácil de implementar para el comercio totalmente automatizado, reduciendo la intervención humana.
Exceso de negociación: el cambio de frecuencia puede dar lugar a una negociación excesiva, aumentando los costes de transacción y las pérdidas por deslizamiento.
Desfavorable en mercados agitados: en mercados lateralmente agitados, los tiros largos y cortos frecuentes pueden resultar en pequeñas pérdidas acumuladas.
Tendencias faltantes: el objetivo de ganancia del 1% puede causar salidas anticipadas en mercados de tendencia fuerte, perdiendo oportunidades de ganancia más grandes.
Riesgo de ruptura falsa: los cruces frecuentes de precios alrededor de la línea KAMA pueden desencadenar múltiples operaciones de ruptura falsa.
Riesgo de gestión de fondos: el uso del 90% del saldo de la cuenta como tamaño de posición puede erosionar rápidamente el capital durante pérdidas consecutivas.
Aplicabilidad limitada: la estrategia puede ser adecuada únicamente para mercados altamente volátiles, con un rendimiento inferior en entornos de baja volatilidad.
Dependencia técnica: La estrategia se basa en gran medida en el indicador KAMA; si el indicador falla, puede dar lugar a pérdidas significativas.
Dinámica de las ganancias obtenidas: considerar la posibilidad de cambiar el objetivo fijo del 1% de las ganancias a una dinámica de las ganancias obtenidas basada en el ATR o la volatilidad para adaptarse a las diferentes condiciones del mercado.
Filtración de entrada: introducir condiciones de filtración adicionales (como RSI, volumen) para reducir las operaciones falsas de ruptura.
Evaluación de la fuerza de la tendencia: evalúe la fuerza de la tendencia antes de ingresar, solo negocie cuando las tendencias sean claras para evitar operaciones frecuentes en mercados agitados.
Optimización de la gestión de posiciones: aplicar una estrategia de posicionamiento más flexible, ajustando el tamaño de la posición en función del rendimiento de la cuenta o la volatilidad del mercado.
Análisis de marcos de tiempo múltiples: Incorporar análisis de marcos de tiempo más largos para mejorar la precisión de la dirección del comercio.
Mecanismo de stop-loss: introducir mecanismos de stop-loss adecuados para evitar pérdidas excesivas en operaciones individuales.
Optimización de parámetros: Optimice los parámetros KAMA para encontrar la mejor combinación de períodos rápidos y lentos.
Adaptabilidad del mercado: Desarrollar un mecanismo de reconocimiento del estado del mercado para ajustar automáticamente los parámetros de la estrategia o pausar las operaciones en diferentes condiciones de mercado.
La estrategia de seguimiento de impulso por porcentaje de cambio de alta frecuencia es un método de negociación de alta frecuencia innovador basado en el indicador KAMA. Al capturar rápidamente los cambios de tendencia a corto plazo y establecer objetivos de ganancias fijos, esta estrategia tiene como objetivo lograr ganancias pequeñas frecuentes. Sus ventajas se encuentran en una alta adaptabilidad, un bajo descenso y una alta eficiencia de capital potencial, pero también enfrenta desafíos como el sobrecomercio y los riesgos en mercados agitados.
Al optimizar las condiciones de entrada, introducir tomas dinámicas de ganancias y mejorar la gestión de posiciones, esta estrategia tiene el potencial de mejorar aún más su rendimiento y estabilidad. Sin embargo, los operadores deben reconocer plenamente sus riesgos al usar esta estrategia y hacer los ajustes apropiados basados en las preferencias personales de riesgo y las condiciones del mercado. En general, esta es una estrategia de negociación cuantitativa prometedora, particularmente adecuada para los inversores que buscan oportunidades de negociación 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 // ----------------------------------------