Type/to search
2
Follow
484
Followers
Lanzamiento de instrumentos TradFi: Estrategia de cuadrícula adaptativa
Original
Created 2026-05-15 11:21:55  Updated 2026-05-18 16:52:00
 2
 315

img

Prólogo: ¿Por qué no hacer criptomonedas, sino TradFi?

Todo el que ha hecho grid trading en criptomonedas ha tenido la misma pesadilla: justo después de construir la cuadrícula, el precio se desploma, todas las posiciones quedan atrapadas, y tienes que añadir margen o te liquidan directamente. El atractivo de las criptomonedas es que no tienen límite de subida o bajada, pero eso es precisamente el mayor enemigo de una estrategia de cuadrícula: la cuadrícula está diseñada para mercados laterales; un mercado direccional la hará perderlo todo.

Entonces, ¿existe algún tipo de activo que conserve suficiente volatilidad intradía para que la cuadrícula se active con frecuencia, sin que tenga movimientos violentos del 30% o 50% en una sola dirección? La respuesta son los productos TradFi.

Los derivados TradFi (Finanzas Tradicionales), que incluyen contratos perpetuos sobre activos tradicionales como el S&P 500, Nasdaq, oro, petróleo, divisas, etc., tienen un fundamento real detrás. Los índices bursátiles están limitados por las ganancias corporativas y la política de la Reserva Federal; las materias primas se rigen por la oferta y la demanda; los tipos de cambio están determinados por la relación relativa entre dos economías soberanas. Estos activos no suben 5 veces de la noche a la mañana sin razón, ni se desploman un 80% por un tuit. Sus precios tienen "gravedad": pueden oscilar a corto plazo, pero a largo plazo vuelven a los fundamentos.

Esta característica es casi una combinación perfecta para una estrategia de cuadrícula: la volatilidad intradía normal del 1% al 3% es suficiente para que la cuadrícula se active repetidamente; incluso en condiciones extremas, la cuadrícula no se rompe por completo, dejando suficiente margen para el stop loss y la gestión de fondos. Esta estrategia se basa precisamente en esta lógica: escanear automáticamente todos los productos TradFi, identificar los que tienen la volatilidad más activa en ese momento, construir cuadrículas circulantes en ellos y rotar automáticamente los productos cuando la estructura de volatilidad cambie.


Antecedentes: Los exchanges de criptomonedas han lanzado silenciosamente una nueva gama de productos

En los últimos dos años, los principales exchanges de criptomonedas como OKX, Bitget, etc., han lanzado silenciosamente una gran cantidad de productos perpetuos TradFi, que abarcan desde índices bursátiles estadounidenses (S&P 500, Nasdaq 100), acciones individuales (Apple, Nvidia, Tesla), hasta materias primas (oro, petróleo, gas natural) y divisas (euro, yen). En resumen, ahora puedes operar acciones estadounidenses, oro y divisas directamente en un exchange de criptomonedas, las 24 horas del día, los 7 días de la semana, y además con apalancamiento.

Esto tiene un gran significado para los traders cuantitativos. Por un lado, estos productos heredan las propiedades fundamentales de los activos financieros tradicionales: los precios no suben ni bajan sin motivo. Por otro lado, al cotizar en exchanges de criptomonedas, utilizan la misma estructura de contratos perpetuos, con liquidez suficiente, comisiones transparentes y APIs idénticas a las de las criptomonedas normales, lo que permite una integración perfecta con estrategias cuantitativas.

En otras palabras, estos productos abren un nuevo espacio de arbitraje: usar la infraestructura de trading de criptomonedas para hacer arbitraje de volatilidad en activos financieros tradicionales. Esta estrategia está hecha a medida para este escenario: usar un programa para filtrar automáticamente los productos con mayor volatilidad, ejecutar grids en ellos y aprovechar los movimientos laterales.


I. Lógica de selección de productos: solo los de mayor volatilidad

Que un grid gane dinero depende en un 60% de la selección del producto. Si eliges bien, el grid se activa docenas de veces al día y las ganancias se acumulan naturalmente; si eliges mal, el grid cuelga una semana sin moverse y los fondos están parados consumiendo margen.

El criterio de selección de esta estrategia es solo una dimensión: el rango diario promedio de los últimos N días.

Puntuación de volatilidad = Σ [ (High_i − Low_i) / Close_i × 100 ] / N

El código se implementa de la siguiente manera, con una lógica clara:

python
def score_symbol(info): bars = exchange.GetRecords(info["sym"], PERIOD_D1, KLINE_COUNT + 2) if not bars or len(bars) < 3: return None bars = bars[-KLINE_COUNT:] atr_pcts = [(b["High"] - b["Low"]) / b["Close"] * 100 for b in bars if b["Close"] > 0] avg_atr = sum(atr_pcts) / len(atr_pcts) # El rango diario promedio debe ser al menos 1.5 veces el espaciado de la cuadrícula, de lo contrario se descarta directamente if avg_atr < GRID_RATIO * 100 * 1.5: return None return {"sym": info["sym"], "atr": round(avg_atr, 3), "price": bars[-1]["Close"]}

La estrategia escanea periódicamente todos los productos TradFi y los clasifica, seleccionando los TOP_N con mayor volatilidad para mantener posiciones. El umbral de entrada es crítico: el rango diario promedio debe ser al menos 1.5 veces el espaciado de la cuadrícula; de lo contrario, el precio podría no cruzar ni un solo grid en un día, por lo que se descarta directamente, evitando que los fondos se estanquen en productos ineficientes consumiendo margen.

La identificación de los productos también requiere un tratamiento especial. En la plataforma FMZ, los productos TradFi se distinguen de las criptomonedas comunes mediante el campo instCategory:

python
def scan_tradfi(): markets = exchange.GetMarkets() for sym, mkt in markets.items(): if not sym.endswith("USDT.swap"): continue info = mkt.get("Info") or {} # instCategory != 1 son productos TradFi if int(info.get("instCategory", 1)) == 1: continue result.append({"sym": sym, "base": base, "cat": cat})

II. Estructura de la cuadrícula: comprar bajo, vender alto, arbitraje en ciclo

img

En el producto seleccionado, con el precio actual como centro, se extiende un cierto porcentaje hacia arriba y hacia abajo, dividiendo las celdas de manera equiespaciada en proporción geométrica. Por debajo del precio actual se coloca una orden de compra en cada celda, esperando que el precio baje para ejecutarse.

El código central para construir la cuadrícula es el siguiente:

python
def build_grid(sym, price): low = price * (1 - LOWER_RANGE) high = price * (1 + LOWER_RANGE) # Dividir celdas en proporción geométrica grids, p = [], low while p <= high * 1.001: grids.append(round(p, g_states[sym]["pp"])) p = p * (1 + GRID_RATIO) for i in range(len(grids) - 1): buy_p, sell_p = grids[i], grids[i + 1] if buy_p < price: oid = buy_open(sym, buy_p, GRID_VALUE) # por debajo del precio actual, colocar orden de compra directamente g["status"] = "pending_buy" if oid else "skip" else: g["status"] = "above" # por encima del precio actual, no colocar orden todavía, esperar a que baje

La sincronización de la cuadrícula es el bucle central de la estrategia, que verifica el estado de las órdenes de cada celda y responde:

python
def sync(sym): for g in grids: if g["status"] == "pending_buy": s, deal, avgp = check_order(g["buy_oid"]) if s == "filled": # orden de compra ejecutada → colocar inmediatamente orden de take profit oid = sell_close(sym, g["sp"], ct) g["status"] = "pending_sell" elif g["status"] == "pending_sell": s, deal, avgp = check_order(g["sell_oid"]) if s == "filled": # take profit ejecutado → calcular ganancia, volver a colocar orden de compra, ciclo profit = g["ct"] * cv * (avgp - g["fp"]) g_total_profit += profit oid = buy_open(sym, g["bp"], GRID_VALUE) g["status"] = "pending_buy"

La lógica de funcionamiento es clara: cuando el precio cruza hacia abajo una celda, se activa la compra; cuando cruza hacia arriba la celda superior, se activa el take profit; después del take profit, se vuelve a colocar una orden de compra en la misma posición, repitiéndose el ciclo. Se incluyen mecanismos de detección automática y reposición para casos como cancelación de órdenes o anomalías en las órdenes de take profit, por lo que la estrategia no se interrumpe por eventos de órdenes ocasionales.


III. Cambio inteligente de producto: mantener los fondos siempre en los productos más activos

img

El ritmo de volatilidad de los productos TradFi se desplaza con eventos macro, temporadas de resultados, cambios de políticas, etc. El oro puede ser el más activo durante un tiempo, y luego puede convertirse en el petróleo o los futuros del S&P. Fijarse en un solo producto para hacer grid trading tarde o temprano se encontrará con que ese producto entra en un período de baja volatilidad y el grid no se mueve durante una semana.

Esta estrategia vuelve a puntuar y clasificar todos los productos TradFi cada cierto número de horas (por defecto 48 horas), para determinar si es necesario reemplazar los productos actuales en cartera. Para evitar el desgaste por comisiones debido a cambios frecuentes por diferencias mínimas, se introduce un mecanismo de histéresis:

python
def needs_rebalance(new_selected): cur_scores = {s["sym"]: s["atr"] for s in g_score_log if s["sym"] in g_active} for s in new_selected: if s["sym"] in g_active: continue weakest_atr = min(cur_scores.values()) threshold = weakest_atr * (1 + HYSTERESIS) # 必须高出 20% 才触发换仓 if s["atr"] >= threshold: Log(f"{s['base']} ATR={s['atr']:.2f}% > 阈值={threshold:.2f}%,触发换仓") else: Log(f"{s['base']} ATR={s['atr']:.2f}% < 阈值={threshold:.2f}%,磁滞保持")

Solo cuando la amplitud diaria promedio del nuevo candidato supera en más del 20% a la del activo con la posición más débil actual, se activa realmente el reequilibrio. El proceso de reequilibrio es: primero cancelar todas las órdenes pendientes del activo antiguo, cerrar todas las posiciones, y luego establecer una cuadrícula completa en el nuevo activo. Todo el proceso se completa automáticamente.


Cuarto, Explicación de parámetros clave

  • TOP_N controla el número de activos mantenidos simultáneamente, por defecto 3, es decir, los fondos se distribuyen entre los 3 activos de mayor volatilidad.
  • GRID_RATIO es la proporción de espaciado de la cuadrícula, por defecto 1.5%, que representa el porcentaje de toma de ganancias de cada celda.
  • GRID_VALUE es la cantidad fija de USDT invertida por celda, por defecto 50, no se ajusta con el precio.
  • LOWER_RANGE determina el rango de precios cubierto por la cuadrícula, por defecto ±10% alrededor del precio actual.
  • REBALANCE_HOURS es el período de evaluación para el reequilibrio, por defecto 48 horas.
  • HYSTERESIS es el umbral de histéresis, por defecto 20%, para evitar reequilibrios frecuentes.
  • LEVERAGE es el apalancamiento, se recomienda no más de 3x.
  • STOP_LOSS_RATIO es la línea de stop loss global; cuando la pérdida de la cuenta supera esta proporción, se cierran automáticamente todas las posiciones y se detiene la operación, por defecto 30%.
  • KLINE_COUNT es el número de velas diarias utilizadas para la puntuación, por defecto las últimas 20.
  • EXCLUDE_SYMBOLS es una lista negra; se ingresan los códigos de los activos que no se desea que el estrategia toque, múltiples separados por comas.

Quinto, Control de riesgos

El stop loss global es la última línea de defensa de la estrategia. Cuando la pérdida del capital de la cuenta supera la proporción definida respecto al capital inicial, se cancelan automáticamente las órdenes, se cierran posiciones y se detienen todas las operaciones posteriores:

python
def check_stop(): acc = exchange.GetAccount() loss = (g_init_equity - acc.Equity) / g_init_equity if loss >= STOP_LOSS_RATIO: Log(f"触发止损!亏损={loss*100:.1f}% → 全部平仓停止") for sym in list(g_active): close_all(sym) g_state = "STOP"

En la fase de selección, el filtro de admisión elimina los activos con volatilidad insuficiente, asegurando que cada activo que ingresa a la estrategia tenga una amplitud intradía suficiente para impulsar el funcionamiento de la cuadrícula. El mecanismo de lista negra permite excluir manualmente activos con baja liquidez, spread anormal o comportamiento inestable. Todos los precios y cantidades de las órdenes se alinean estrictamente con los requisitos de precisión del exchange, eliminando desde el origen los rechazos de órdenes por falta de precisión. Los fondos se distribuyen equitativamente entre cada activo, y la pérdida de un solo activo no afecta la estructura general de la cartera.


Sexto, Mercados aplicables y consideraciones

Esta estrategia funciona mejor en mercados laterales (en rango). Cuando el activo objetivo oscila repetidamente dentro de un rango, las celdas se activan con frecuencia, las ganancias se acumulan linealmente con el tiempo y la estrategia requiere casi ninguna intervención manual.

Es importante tener en cuenta que, si el precio continúa en una tendencia bajista unilateral y rompe el límite inferior de la cuadrícula, todas las órdenes de compra quedarán atrapadas, a la espera de que el precio regrese o de que se active el stop loss global. Algunos activos TradFi experimentan una caída significativa de liquidez durante los períodos fuera de horario de negociación (por ejemplo, durante el cierre de los mercados de valores de EE. UU.), por lo que es normal que las órdenes pendientes no se ejecuten durante mucho tiempo. El espaciado de la cuadrícula GRID_RATIO debe ajustarse en función de la amplitud diaria promedio del activo objetivo; se recomienda mantenerlo entre 1/3 y 1/2 de dicha amplitud. Si es demasiado grande, la frecuencia de activación será baja; si es demasiado pequeño, las comisiones erosionarán las ganancias. El apalancamiento debe mantenerse dentro de 3x; un apalancamiento excesivo en condiciones extremas acelerará las pérdidas y será difícil de controlar antes de que se active el stop loss.


Conclusión

La lógica central de esta estrategia se puede resumir en una frase: mantener los fondos siempre en los activos TradFi de mayor volatilidad, y dejar que la cuadrícula sea amiga del tiempo. Los cuatro módulos —selección de activos, construcción de la cuadrícula, reequilibrio y control de riesgos— están interconectados y funcionan de forma totalmente automática. Las propiedades fundamentales de los activos TradFi proporcionan la garantía subyacente de que el precio no se desviará indefinidamente, mientras que el filtro programático de volatilidad asegura que los fondos se asignen siempre a los activos más eficientes. Con parámetros configurados adecuadamente, la estrategia puede generar ganancias estables de cuadrícula en la mayoría de las condiciones del mercado, al tiempo que controla el riesgo a la baja dentro de un rango aceptable mediante el stop loss y el mecanismo de histéresis.


Este artículo es una descripción de la estrategia original de la plataforma FMZ Quant, solo para fines de aprendizaje e intercambio, y no constituye ningún consejo de inversión.

Comment
All comments (2)

    梦总 公布代码吧 我要试试

    a month ago
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)