Lección 7.4.7 · 60 min

Ética: datos personales, inteligencia artificial y la venta de señales

Un sistema que solo opera para su dueño apenas toca datos de otras personas. En cuanto tiene suscriptores, un asistente con IA o un canal de señales de pago, entran tres marcos: el RGPD, el Reglamento de IA y las normas sobre recomendaciones y asesoramiento. Esta lección los lee en sus fuentes primarias, seudonimiza y suprime datos con código, calcula qué obligaciones de IA se aplican hoy y simula 2.000 canales de señales sin ninguna habilidad para ver cómo sale de ellos un historial brillante. No es asesoramiento jurídico.

Fig. — Sharpe anual medio de 2.000 canales que dan señales al azar: todos en el primer año, los 316 que se anuncian por superar un Sharpe de 1 y esos mismos en los seis meses siguientes (esquema)
Lecciones del nivel 7
  1. 7.1 · Ingeniería de software para trading

    1. 7.1.1 Estructura de proyecto, configuración y calidad: del notebook al repositorio
    2. 7.1.2 Rendimiento: medir, perfilar y compilar solo lo que hace falta
    3. 7.1.3 Patrones: eventos, colas de mensajes y arquitectura hexagonal
  2. 7.2 · Infraestructura y despliegue

    1. 7.2.1 Docker y docker-compose: imágenes reproducibles con uv
    2. 7.2.2 VPS, nube y latencia; CI/CD con GitHub Actions
    3. 7.2.3 Orquestación y monitorización: grafos de tareas, logs estructurados, métricas, alertas y latidos
    4. 7.2.4 Seguridad y continuidad: 2FA, IP, copias y procedimientos ante fallos
  3. 7.3 · MLOps para modelos de trading

    1. 7.3.1 Registro de experimentos, modelos y datos: MLflow, DVC y una ejecución reproducida de principio a fin
    2. 7.3.2 Reentrenamiento programado, validación automática y champion/challenger
    3. 7.3.3 Monitorización del modelo en vivo y desactivación automática
    4. 7.3.4 Servir modelos: ONNX, inferencia en CPU o GPU y el coste de los LLM en producción
  4. 7.4 · Regulación, ética y fiscalidad

    1. 7.4.1 MiFID II: clientes, idoneidad y trading algorítmico
    2. 7.4.2 ESMA y CFD: apalancamiento, cierre y saldo negativo
    3. 7.4.3 PRIIPs, KID y ETFs estadounidenses
    4. 7.4.4 MiCA después del transitorio: comprobar un proveedor en los registros
    5. 7.4.5 Abuso de mercado: spoofing, layering y el bot que los imita sin querer
    6. 7.4.6 Fiscalidad del trading en España
    7. 7.4.7 Ética: datos personales, inteligencia artificial y la venta de señales
  5. 7.5 · Carrera profesional quant

    1. 7.5.1 Roles del quant: seis oficios alrededor de un mismo sistema
    2. 7.5.2 Dónde trabajar: qué hace cada empresa y qué dicen los registros
    3. 7.5.3 Portfolio público y entrevistas: enseñar criterio, no rentabilidades
    4. 7.5.4 Certificaciones, formación y prop firms: qué certifica cada cosa y qué mide un examen

Cuando el sistema toca a otras personas

Las lecciones 6.7.3 y 6.7.4 tratan los datos personales que llegan desde fuera: lo que un scraper recoge de una web y lo que contiene un dataset alternativo que se compra. Esta lección mira hacia dentro y hacia delante. Un trader sistemático acaba a menudo con datos de otras personas: la lista de correo de su blog, los suscriptores de un canal de señales, las cuentas de los clientes de una herramienta, las conversaciones de un asistente con IA. Y con ellas llegan tres preguntas éticas que tienen además respuesta legal:

  1. ¿Qué datos personales trato y cuánto tiempo los guardo? El RGPD.
  2. ¿Qué obligaciones tiene la IA que uso con esas personas? El Reglamento de IA y, si hay servicios de inversión, MiFID II.
  3. ¿Qué puedo decir de mis resultados y qué no puedo hacer con mis recomendaciones? MAR, la normativa de asesoramiento y las advertencias de la CNMV, más una cuestión de honestidad estadística que ninguna norma resuelve del todo: cómo se fabrica un historial.

RGPD: los datos de un servicio de trading

El artículo 5 del Reglamento (UE) 2016/679 (RGPD) fija los principios: los datos se recogen con fines determinados y no se tratan después de manera incompatible (limitación de la finalidad), deben ser «adecuados, pertinentes y limitados a lo necesario» (minimización), se conservan identificando al interesado solo el tiempo necesario (limitación del plazo de conservación) y con seguridad adecuada1Nota 1 · Reglamento (UE) 2016/679 (RGPD), artículos 4.5, 5, 6, 17, 22 y 25, BOE, consultado el 23/10/2026.. Cada tratamiento necesita una base del artículo 6: el contrato para enviar las señales a quien las paga, una obligación legal para la facturación, el consentimiento para la lista de correo comercial.

Una medida que el reglamento cita expresamente, en el artículo 25 (protección de datos desde el diseño), es la seudonimización: tratar los datos de modo que «ya no puedan atribuirse a un interesado sin utilizar información adicional, siempre que dicha información adicional figure por separado» (art. 4.5). Las directrices 01/2025 del Comité Europeo de Protección de Datos recuerdan que los datos seudonimizados siguen siendo datos personales y citan funciones como los HMAC, con un secreto guardado aparte, como forma de hacerlo2Nota 2 · CEPD, «Guidelines 01/2025 on Pseudonymisation», adoptadas el 16/01/2025 (versión para consulta pública), edpb.europa.eu.. El error habitual es usar un hash sin clave:

IN [01]python
import hashlib
import hmac

import numpy as np
import pandas as pd

subs = pd.DataFrame({
    "email": [f"usuario{i}@example.com" for i in (3, 17, 42, 108,
                                                  512, 999)],
    "ip": [f"203.0.113.{i}" for i in (5, 17, 23, 42, 77, 91)],
    "plan": ["básico", "pro", "pro", "básico", "pro", "básico"],
})

def hash_simple(x):
    return hashlib.sha256(x.encode()).hexdigest()[:16]

# en producción, la clave vive en un gestor de secretos (lección 4.4.5)
CLAVE = b"clave-de-ejemplo-guardada-aparte"

def seudonimo(x, clave=CLAVE):
    return hmac.new(clave, x.encode(), hashlib.sha256).hexdigest()[:16]

subs["h_simple"] = subs["email"].map(hash_simple)
subs["seud"] = subs["email"].map(seudonimo)

# quien tiene el log y una lista de correos candidatos
candidatos = [f"usuario{i}@example.com" for i in range(1, 1001)]
dicc = {hash_simple(c): c for c in candidatos}
dicc_k = {seudonimo(c, b"clave-adivinada"): c for c in candidatos}
print("hash sin clave reidentificados:",
      subs["h_simple"].map(dicc).notna().sum(), "de", len(subs))
print("HMAC, sin la clave:", subs["seud"].map(dicc_k).notna().sum())
print("HMAC, con la clave:",
      subs["seud"].map({seudonimo(c): c for c in candidatos})
      .notna().sum())
OUT [01]Hash sin clave frente a HMAC con clave
hash sin clave reidentificados: 6 de 6
HMAC, sin la clave: 0
HMAC, con la clave: 6

Un correo es un dato predecible: con una lista de candidatos (aquí mil; en la realidad, filtraciones con millones), el hash sin clave se deshace entero. El HMAC no se deshace sin la clave, y con ella sí: por eso la clave se guarda separada del log y con acceso restringido. Los datos con seudónimo siguen siendo personales, pero el riesgo de una fuga del log baja mucho.

La minimización se aplica antes: el log que sirve para medir qué señales se entregan y a qué plan no necesita el correo ni la IP, y la hora exacta tampoco:

IN [02]python
envios = pd.DataFrame({
    "email": subs["email"].repeat(2).to_numpy(),
    "ip": subs["ip"].repeat(2).to_numpy(),
    "ts": pd.to_datetime(["2026-10-21 08:59:58.120"] * 6
                         + ["2026-10-22 09:00:01.873"] * 6),
    "senal": ["NORU compra"] * 6 + ["MURI venta"] * 6,
})
analitico = pd.DataFrame({
    "seud": envios["email"].map(seudonimo),
    "plan": envios["email"].map(subs.set_index("email")["plan"]),
    "dia": envios["ts"].dt.date,
    "senal": envios["senal"],
})
print(list(envios.columns), "->", list(analitico.columns))
analitico.groupby(["dia", "plan"]).size()
OUT [02]Minimizar el log de envíos
['email', 'ip', 'ts', 'senal'] -> ['seud', 'plan', 'dia', 'senal']
dia         plan
2026-10-21  básico    2
            pro       4
2026-10-22  básico    4
            pro       2
dtype: int64

El log analítico responde a lo que el servicio necesita saber (cuántas señales se entregan cada día por plan) sin correos, IP ni milisegundos. El log de entrega con IP, si hace falta para seguridad, tiene otra finalidad, otro acceso y un plazo de conservación corto.

Supresión frente a obligación de conservar

El artículo 17 del RGPD da derecho a obtener la supresión de los datos, pero su apartado 3, letra b), lo excluye cuando el tratamiento es necesario para cumplir una obligación legal1. En un servicio de trading hay varias:

  • Contabilidad y facturas. El artículo 30 del Código de Comercio obliga a conservar libros, correspondencia, documentación y justificantes del negocio «durante seis años, a partir del último asiento realizado en los libros»3Nota 3 · Código de Comercio, artículo 30.1, BOE-A-1885-6627, texto consolidado consultado el 23/10/2026..
  • Órdenes y operaciones de clientes, si el servicio es una empresa de servicios de inversión: cinco años (art. 25.1 de MiFIR) y, para las grabaciones y comunicaciones, cinco años o hasta siete si la autoridad lo pide (art. 16.7 de MiFID II)4Nota 4 · Reglamento (UE) n.º 600/2014 (MiFIR), artículo 25.1, y Directiva 2014/65/UE (MiFID II), artículo 16.7, EUR-Lex..
consentimientocontratonosíobligaciónsínoPetición¿Base?Suprimir ya¿Contrato vivo?Mantener¿Plazo vencido?Bloquear y guardar
Fuente Mermaid
flowchart TB
  P[Petición] --> B{¿Base?}
  B -- consentimiento --> S[Suprimir ya]
  B -- contrato --> F{¿Contrato vivo?}
  F -- no --> S
  F -- sí --> M[Mantener]
  B -- obligación --> V{¿Plazo vencido?}
  V -- sí --> S
  V -- no --> K[Bloquear y guardar]

Convertido en código, con fechas inyectadas y la regla simplificada de que el plazo de seis años cuenta desde la fecha del documento:

IN [03]python
PLAZO_ANOS = {"contabilidad (art. 30 C. Com.)": 6}

datos = pd.DataFrame([
    ("lista de correo", "consentimiento", None, None),
    ("perfil y preferencias", "contrato", None, False),
    ("factura 2024-0312", "obligación",
     "contabilidad (art. 30 C. Com.)", "2024-03-12"),
    ("factura 2019-0044", "obligación",
     "contabilidad (art. 30 C. Com.)", "2019-02-04"),
], columns=["dato", "base", "norma", "fecha_o_vivo"])

def resolver(fila, hoy):
    if fila.base == "consentimiento":
        return "suprimir"
    if fila.base == "contrato":
        return "mantener" if fila.fecha_o_vivo else "suprimir"
    fin = (pd.Timestamp(fila.fecha_o_vivo)
           + pd.DateOffset(years=PLAZO_ANOS[fila.norma]))
    if hoy >= fin:
        return "suprimir"
    return f"conservar bloqueado hasta {fin.date()}"

hoy = pd.Timestamp("2026-10-23")
for f in datos.itertuples():
    print(f"{f.dato:<22} {resolver(f, hoy)}")
OUT [03]Resolver una solicitud de supresión
lista de correo        suprimir
perfil y preferencias  suprimir
factura 2024-0312      conservar bloqueado hasta 2030-03-12
factura 2019-0044      suprimir

La lista de correo se suprime en cuanto se retira el consentimiento, y el perfil, porque el contrato ya terminó. La factura de 2024 se conserva, pero bloqueada: solo para la finalidad de la obligación (una inspección, una auditoría), no para enviar publicidad ni para entrenar un modelo de abandono de clientes. La de 2019 ya superó su plazo y debería haberse suprimido sin esperar a ninguna petición: la limitación del plazo de conservación no depende de que alguien la reclame.

IA responsable: el Reglamento de IA y sus fechas

El Reglamento (UE) 2024/1689 de inteligencia artificial clasifica los sistemas por riesgo. Sus fechas de aplicación están en el artículo 113, que el Reglamento (UE) 2026/1744 («Ómnibus digital sobre IA»), publicado en el Diario Oficial el 24 de julio de 2026 y en vigor a los tres días, ha modificado5Nota 5 · Reglamento (UE) 2024/1689, artículos 4, 50 y 113 y anexo III, EUR-Lex, y Reglamento (UE) 2026/1744 del Parlamento Europeo y del Consejo, de 8 de julio de 2026 (DO L de 24.7.2026), que modifica sus artículos 4 y 113, EUR-Lex. Textos leídos en la versión española de la Oficina de Publicaciones de la UE el 23/10/2026.:

IN [04]python
calendario = pd.DataFrame([
    ("2025-02-02", "capítulos I y II: prohibiciones y alfabetización"),
    ("2025-08-02", "IA de uso general, gobernanza y sanciones"),
    ("2026-08-02", "aplicación general, transparencia del art. 50"),
    ("2026-12-02", "marcado (art. 50.2) de sistemas previos"),
    ("2027-12-02", "alto riesgo del anexo III (art. 6.2)"),
    ("2028-08-02", "alto riesgo de productos del anexo I (art. 6.1)"),
], columns=["desde", "que"])
calendario["desde"] = pd.to_datetime(calendario["desde"])

def vigentes(dia):
    c = calendario.copy()
    c["estado"] = np.where(c["desde"] <= dia, "aplicable",
                           (c["desde"] - dia).dt.days.astype(str)
                           + " días")
    return c

vigentes(pd.Timestamp("2026-10-23"))
OUT [04]Qué obligaciones del Reglamento de IA se aplican hoy
       desde                                               que     estado
0 2025-02-02  capítulos I y II: prohibiciones y alfabetización  aplicable
1 2025-08-02         IA de uso general, gobernanza y sanciones  aplicable
2 2026-08-02     aplicación general, transparencia del art. 50  aplicable
3 2026-12-02           marcado (art. 50.2) de sistemas previos    40 días
4 2027-12-02              alto riesgo del anexo III (art. 6.2)   405 días
5 2028-08-02   alto riesgo de productos del anexo I (art. 6.1)   649 días
Fig. — Fechas de aplicación del Reglamento (UE) 2024/1689 de inteligencia artificial tras su modificación por el Reglamento (UE) 2026/1744, y la fecha de esta lección

Para un trader sistemático, tres consecuencias:

  • Un modelo de trading por cuenta propia no es de alto riesgo por serlo. Las categorías de alto riesgo del anexo III son una lista cerrada; en finanzas incluyen los sistemas para evaluar la solvencia de personas físicas o su calificación crediticia y los de evaluación de riesgos y precios de seguros de vida y salud5. Comprar y vender para uno mismo no figura.
  • La transparencia sí puede tocar al servicio. Desde el 2 de agosto de 2026, el artículo 50.1 exige que los sistemas que interactúan directamente con personas se diseñen para que estas sepan que hablan con una IA, salvo que sea evidente. Un asistente que responde a los suscriptores de un canal de señales es el caso típico. La alfabetización del artículo 4, en la redacción del ómnibus, pide a proveedores y responsables del despliegue que adopten medidas para apoyarla entre quienes manejan los sistemas, sin exigir un nivel concreto.
  • Si hay clientes y servicios de inversión, manda MiFID II. ESMA lo dijo en su declaración de 30 de mayo de 2024: las decisiones de la empresa siguen siendo responsabilidad de su órgano de dirección, «irrespective of whether those decisions are taken by people or AI-based tools», y las obligaciones de MiFID II se aplican a las herramientas de IA que se usan con clientes6Nota 6 · ESMA, «Public Statement on the use of Artificial Intelligence (AI) in the provision of retail investment services», ESMA35-335435667-5924, 30/05/2024, esma.europa.eu.. Si además una decisión automatizada produce efectos significativos sobre una persona (rechazar a un cliente, por ejemplo), entra el artículo 22 del RGPD.

Vender señales: recomendación o asesoramiento

El artículo 20 de MAR obliga a quien elabora o difunde recomendaciones de inversión a presentarlas de forma objetiva y a comunicar sus intereses o conflictos7Nota 7 · Reglamento (UE) n.º 596/2014 (MAR), artículos 12.2.d y 20, DO L 173 de 12.6.2014, copia del BOE.. La CNMV lo traduce en su guía para finfluencers: «Cualquier persona puede publicar recomendaciones de inversión», pero con requisitos generales (quién la elabora, fecha y hora, hechos separados de opiniones, fuentes, intereses y conflictos visibles en cada canal) y requisitos adicionales para profesionales y «expertos», entre ellos la metodología, la duración de la inversión y advertencias de riesgo8Nota 8 · CNMV, «Finfluencers: cómo actuar con responsabilidad» (guía, mayo de 2026), apartados IV a VII, cnmv.es.. El Reglamento Delegado (UE) 2016/958 los detalla; su artículo 4.1.i pide a los expertos una lista de todas sus recomendaciones de los doce meses anteriores, con su fecha y el precio de cada una9Nota 9 · Reglamento Delegado (UE) 2016/958 de la Comisión, de 9 de marzo de 2016, artículos 2 a 5, EUR-Lex..

Otra cosa es el asesoramiento en materia de inversión, un servicio que exige autorización. El artículo 9 del Reglamento Delegado (UE) 2017/565 lo define por la recomendación personalizada: la que se presenta como idónea para esa persona o se basa en sus circunstancias personales, y aclara que «una recomendación no se considerará recomendación personalizada si se divulga exclusivamente al público»10Nota 10 · Reglamento Delegado (UE) 2017/565 de la Comisión, artículo 9, EUR-Lex..

nosínosíMensaje¿Sugiere invertir?Información¿Personalizada?Recomendación MARAsesoramientoExige autorización
Fuente Mermaid
flowchart TB
  M[Mensaje] --> A{¿Sugiere invertir?}
  A -- no --> I[Información]
  A -- sí --> P{¿Personalizada?}
  P -- no --> R[Recomendación MAR]
  P -- sí --> S[Asesoramiento]
  S --> Z[Exige autorización]

La CNMV es explícita sobre los avisos de descargo: si no se tiene autorización, no deben darse recomendaciones personalizadas sobre qué comprar, vender o mantener, y publicar «Esto no es asesoramiento en materia de inversión» «no te protegerá en estos casos, ni evita que tengas que cumplir con la normativa aplicable»8. En su guía para los seguidores sitúa las «alertas y señales (comprar/vender)» entre los contenidos de riesgo y advierte que el principal riesgo es el fraude: finfluencers que prestan asesoramiento sin autorización o captan clientes para chiringuitos financieros, entidades que prestan servicios de inversión sin estar autorizadas11Nota 11 · CNMV, «Del like a la inversión: qué debes saber de los finfluencers» (guía, abril de 2026), cnmv.es, y «Chiringuitos financieros» (guía), cnmv.es.. Su buscador de advertencias y sus registros de entidades autorizadas son la comprobación previa que recomienda12Nota 12 · CNMV, buscador de advertencias sobre entidades no autorizadas, cnmv.es..

Dos conflictos de interés frecuentes en la venta de señales:

ConductaPor qué es un problema
Comprar antes de publicar la señal y vender cuando los suscriptores compranEl artículo 12.2.d de MAR considera manipulación tomar posiciones, opinar después en los medios y aprovechar el efecto sin haber revelado el conflicto
Cobrar comisiones del bróker o del exchange que se recomiendaEs un interés que debe comunicarse; si la entidad no está autorizada, la CNMV advierte que promocionarla puede convertir al promotor en cómplice de una estafa

Cómo se fabrica un historial

Un vendedor de señales enseña su historial. El problema ético está en cómo se construye ese historial, aunque cada número sea cierto. Para medirlo, la celda siguiente crea 2.000 canales sin ninguna habilidad: cada día dan una señal de compra o de venta al azar sobre un activo sin tendencia. Después de un año, se anuncian los canales con un Sharpe anual mayor que 1, y se mide cómo les va los seis meses siguientes:

IN [05]python
rng = np.random.default_rng(2026)
N, DIAS, FUERA = 2000, 252, 126
r = rng.normal(0, 0.01, DIAS + FUERA)        # activo sin tendencia
senal = rng.choice([-1, 1], size=(N, DIAS + FUERA))   # sin habilidad
ret = senal * r

def sharpe(x, axis=-1):
    return np.sqrt(252) * x.mean(axis) / x.std(axis, ddof=1)

sr_dentro = sharpe(ret[:, :DIAS])
sr_fuera = sharpe(ret[:, DIAS:])
anunciado = sr_dentro > 1
print(f"anunciados: {anunciado.sum()} de {N}")
print(f"Sharpe medio, año del anuncio: "
      f"{sr_dentro[anunciado].mean():.2f}")
print(f"Sharpe medio, seis meses después: "
      f"{sr_fuera[anunciado].mean():.2f}")
print(f"todos los canales, año del anuncio: {sr_dentro.mean():.2f}")
OUT [05]2.000 canales al azar y los que se anuncian
anunciados: 316 de 2000
Sharpe medio, año del anuncio: 1.49
Sharpe medio, seis meses después: -0.04
todos los canales, año del anuncio: 0.02

Uno de cada seis canales supera un Sharpe de 1 sin saber nada. Su media en el año del anuncio, 1,49, es la que enseñarían sus páginas; los seis meses siguientes, la de una moneda al aire. La figura de la cabecera resume las tres cifras. En la realidad, el sesgo es peor: los canales que pierden cierran, cambian de nombre y vuelven a empezar, y el lector solo ve a los supervivientes.

La lección 2.5.4 da la vara de medir: el Sharpe máximo que cabe esperar entre NN estrategias sin habilidad, con la aproximación de Bailey y López de Prado (γ\gamma es la constante de Euler-Mascheroni y σSR\sigma_{SR} la desviación típica de los Sharpe estimados):

E[max⁡SR]≈σSR[(1−γ) Φ−1 ⁣(1−1N)+γ Φ−1 ⁣(1−1Ne)]E[\max SR] \approx \sigma_{SR}\left[(1-\gamma)\,\Phi^{-1}\!\left(1-\frac{1}{N}\right) + \gamma\,\Phi^{-1}\!\left(1-\frac{1}{N e}\right)\right]
IN [06]python
from scipy.stats import norm

g = np.euler_gamma
esperado = sr_dentro.std() * ((1 - g) * norm.ppf(1 - 1 / N)
                              + g * norm.ppf(1 - 1 / (N * np.e)))
mejor = sr_dentro.argmax()
print(f"mejor canal: Sharpe {sr_dentro[mejor]:.2f} "
      f"(seis meses después: {sr_fuera[mejor]:.2f})")
print(f"máximo esperado sin habilidad con N={N}: {esperado:.2f}")
OUT [06]El mejor canal frente al máximo esperado por azar
mejor canal: Sharpe 3.06 (seis meses después: -1.52)
máximo esperado sin habilidad con N=2000: 3.40

El mejor de 2.000 canales al azar tiene un Sharpe de 3,06, por debajo de lo que cabe esperar del mejor de 2.000 monedas. Un historial con un Sharpe de 3 no dice nada si no se sabe de cuántos intentos sale.

Elegir la ventana

El segundo truco no necesita anunciar solo a los mejores: basta con elegir el periodo. Cada canal enseña sus «últimos tres meses» justo cuando son los mejores del año. Con 63 sesiones, el Sharpe estimado tiene el doble de ruido que con 252, y entre todas las ventanas posibles siempre hay alguna buena:

IN [07]python
panel = pd.DataFrame(ret[:, :DIAS].T)          # una columna por canal
v = panel.rolling(63)
mejor_ventana = (np.sqrt(252) * v.mean() / v.std()).max()
print(f"Sharpe medio del año completo: {sr_dentro.mean():.2f}")
print(f"Sharpe medio de la mejor ventana: "
      f"{mejor_ventana.mean():.2f}")
print(f"canales con alguna ventana > 2: "
      f"{(mejor_ventana > 2).mean():.0%}")
OUT [07]La mejor ventana de tres meses de cada canal
Sharpe medio del año completo: 0.02
Sharpe medio de la mejor ventana: 3.41
canales con alguna ventana > 2: 84%

Con el año completo, el canal medio tiene un Sharpe de 0,02; con su mejor ventana de tres meses, 3,41 de media, y el 84 % de los canales sin ninguna habilidad tiene alguna ventana por encima de 2. «Nuestros últimos tres meses» solo informa si la fecha de corte se fijó antes de ver los resultados.

Borrar las señales perdedoras

El tercer truco es el más simple: no publicar, o borrar después, las señales que salen mal. Con un canal mediocre, el que ocupa la mediana de los 2.000 por su Sharpe, y una operación por día:

IN [08]python
mediano = np.argsort(sr_dentro)[N // 2]
ops = ret[mediano, :DIAS]
publicadas = ops[ops > 0]          # las perdedoras «se borran»
print(f"señales: {len(ops)}, publicadas: {len(publicadas)}")
print(f"acierto real: {(ops > 0).mean():.1%}; "
      f"acierto publicado: {(publicadas > 0).mean():.0%}")
print(f"rentabilidad real: {ops.sum():+.1%}; "
      f"publicada: {publicadas.sum():+.1%}")
OUT [08]Lo que se publica y lo que pasó
señales: 252, publicadas: 124
acierto real: 49.2%; acierto publicado: 100%
rentabilidad real: +0.3%; publicada: +107.7%

El canal mediano acierta el 49,2 % de los días y gana un 0,3 % en el año. Sin sus 128 señales perdedoras, publica 124 con un 100 % de aciertos y una suma de +107,7 %. Un 100 % de aciertos es imposible en un historial honesto y fácil en uno editado. Por eso la lista completa de recomendaciones de doce meses que exige el artículo 4.1.i del Reglamento Delegado 2016/958 a los expertos importa más que cualquier resumen: con todas las señales, fechadas y con su precio, el acierto vuelve a ser el real.

La carta que acierta diez veces seguidas

El último truco es antiguo y no necesita mercado. Se envía una predicción («sube» o «baja») a 1.024 personas, la mitad recibe una y la mitad la otra; a la semana siguiente se repite solo con quienes recibieron la buena:

IN [09]python
destinatarios = np.arange(1024)
for semana in range(1, 11):
    sube = destinatarios[: len(destinatarios) // 2]
    resultado_sube = rng.random() < 0.5
    destinatarios = sube if resultado_sube else \
        destinatarios[len(destinatarios) // 2:]
    if semana in (1, 5, 10):
        print(f"semana {semana:>2}: {len(destinatarios):>4} personas "
              "sin un solo fallo")
OUT [09]Diez aciertos seguidos sin saber nada
semana  1:  512 personas sin un solo fallo
semana  5:   32 personas sin un solo fallo
semana 10:    1 personas sin un solo fallo

Una persona ha recibido diez predicciones correctas seguidas, una probabilidad de 1 entre 1.024 si fueran al azar, y no tiene forma de saber que hay otras 1.023 cartas. Es la versión extrema de los canales anunciados: el que mira el historial no ve el denominador. La pregunta que lo desmonta es siempre la misma: ¿cuántos intentos hubo y dónde están todos?

Ejercicios

  1. Repite la simulación de los canales anunciando solo los que tienen un Sharpe mayor que 2. ¿Cuántos son, qué Sharpe medio enseñan y qué Sharpe tienen después?
Solución
IN [10]python
for umbral in [1, 2]:
    a = sr_dentro > umbral
    print(f"umbral {umbral}: {a.sum():>3} canales, "
          f"dentro {sr_dentro[a].mean():.2f}, "
          f"fuera {sr_fuera[a].mean():.2f}")
OUT [10]Un umbral más exigente
umbral 1: 316 canales, dentro 1.49, fuera -0.04
umbral 2:  37 canales, dentro 2.35, fuera -0.10

Con un umbral de 2 se anuncian 37 canales en lugar de 316 y su historial es más brillante (2,35 de media), pero los seis meses siguientes siguen alrededor de cero (−0,10). Endurecer el filtro sobre un historial elegido no crea habilidad: solo selecciona suerte más extrema. Lo que distingue a un canal con habilidad es que su Sharpe fuera de la muestra de selección se mantiene, y eso solo se ve con resultados fechados antes de saberlos.

  1. Un canal publica 40 señales en un año; dice que acertó 30. Te da la lista completa con fechas y precios y, al comprobarla, 12 de las 30 «acertadas» tenían un precio de entrada que no se alcanzó ese día. Calcula el acierto real si esas 12 no cuentan como operaciones y si cuentan como fallos.
Solución
IN [11]python
total, aciertos, imposibles = 40, 30, 12
print(f"declarado: {aciertos / total:.0%}")
validas = total - imposibles
print(f"sin las imposibles: {(aciertos - imposibles) / validas:.0%}")
print(f"imposibles como fallos: {(aciertos - imposibles) / total:.0%}")
OUT [11]Comprobar una lista completa
declarado: 75%
sin las imposibles: 64%
imposibles como fallos: 45%

El 75 % declarado se queda en un 64 % si se excluyen las señales con precios inalcanzables y en un 45 % si se cuentan como fallos. Por eso la lista completa del artículo 4.1.i incluye el precio de mercado en el momento de la difusión: permite comprobar que la señal era ejecutable. Un precio de entrada que nunca existió es una señal escrita después.

  1. Un canal de Telegram de pago envía cada mañana las mismas tres ideas a todos sus suscriptores. El administrador abre además un chat privado para quien paga el plan «premium», donde le pregunta su capital y su perfil y le dice cuánto comprar. ¿Qué parte es recomendación y qué parte asesoramiento? ¿Qué cambia si el chat lo atiende un asistente con IA?
Solución

Las tres ideas diarias, iguales para todos, son recomendaciones de inversión difundidas a un canal de distribución: se pueden publicar sin autorización, pero con los requisitos del artículo 20 de MAR y del Reglamento Delegado 2016/958 (identidad, fecha y hora, presentación objetiva, intereses y conflictos y, si quien las da es un «experto», metodología, riesgos y la lista de doce meses). El chat premium, que pregunta el capital y el perfil y dice cuánto comprar, da recomendaciones presentadas como idóneas o basadas en las circunstancias personales: es asesoramiento en materia de inversión según el artículo 9 del Reglamento Delegado 2017/565 y exige autorización, diga lo que diga el aviso de descargo. Si lo atiende un asistente con IA, la calificación no cambia (el servicio lo presta quien despliega el asistente) y se añade la obligación del artículo 50.1 del Reglamento de IA de que el usuario sepa que habla con una IA; las conversaciones son además datos personales con su propia finalidad y plazo de conservación.

Footnotes

  1. Reglamento (UE) 2016/679 (RGPD), artículos 4.5, 5, 6, 17, 22 y 25, BOE, consultado el 23/10/2026. ↩ ↩2

  2. CEPD, «Guidelines 01/2025 on Pseudonymisation», adoptadas el 16/01/2025 (versión para consulta pública), edpb.europa.eu. ↩

  3. Código de Comercio, artículo 30.1, BOE-A-1885-6627, texto consolidado consultado el 23/10/2026. ↩

  4. Reglamento (UE) n.º 600/2014 (MiFIR), artículo 25.1, y Directiva 2014/65/UE (MiFID II), artículo 16.7, EUR-Lex. ↩

  5. Reglamento (UE) 2024/1689, artículos 4, 50 y 113 y anexo III, EUR-Lex, y Reglamento (UE) 2026/1744 del Parlamento Europeo y del Consejo, de 8 de julio de 2026 (DO L de 24.7.2026), que modifica sus artículos 4 y 113, EUR-Lex. Textos leídos en la versión española de la Oficina de Publicaciones de la UE el 23/10/2026. ↩ ↩2

  6. ESMA, «Public Statement on the use of Artificial Intelligence (AI) in the provision of retail investment services», ESMA35-335435667-5924, 30/05/2024, esma.europa.eu. ↩

  7. Reglamento (UE) n.º 596/2014 (MAR), artículos 12.2.d y 20, DO L 173 de 12.6.2014, copia del BOE. ↩

  8. CNMV, «Finfluencers: cómo actuar con responsabilidad» (guía, mayo de 2026), apartados IV a VII, cnmv.es. ↩ ↩2

  9. Reglamento Delegado (UE) 2016/958 de la Comisión, de 9 de marzo de 2016, artículos 2 a 5, EUR-Lex. ↩

  10. Reglamento Delegado (UE) 2017/565 de la Comisión, artículo 9, EUR-Lex. ↩

  11. CNMV, «Del like a la inversión: qué debes saber de los finfluencers» (guía, abril de 2026), cnmv.es, y «Chiringuitos financieros» (guía), cnmv.es. ↩

  12. CNMV, buscador de advertencias sobre entidades no autorizadas, cnmv.es. ↩

Respuesta plegada en cada pregunta

Autoevaluación

  1. Un servicio de señales guarda sha256(email) de sus suscriptores en el log de envíos y dice que así los datos son anónimos. ¿Qué falla?

    • ANada: un hash es irreversible
    • BUn hash sin clave de un dato predecible se deshace con una lista de candidatos (en la lección, los seis suscriptores se reidentifican con mil correos), y aunque se use una clave secreta los datos siguen siendo seudónimos, es decir, personales
    • CQue SHA-256 está prohibido por el RGPD
    • DQue habría que usar MD5
    Ver respuesta

    Respuesta B. Un hash sin clave de un dato predecible se deshace con una lista de candidatos (en la lección, los seis suscriptores se reidentifican con mil correos), y aunque se use una clave secreta los datos siguen siendo seudónimos, es decir, personales

    El artículo 4.5 define la seudonimización como un tratamiento tras el que los datos ya no pueden atribuirse a una persona sin información adicional guardada aparte; las directrices 01/2025 del CEPD insisten en que los datos seudonimizados siguen siendo personales. Un HMAC con la clave en un gestor de secretos impide la reidentificación por diccionario a quien no tiene la clave; no convierte los datos en anónimos.

  2. Un exsuscriptor pide que se borren todos sus datos. Su factura de hace dos años está en la contabilidad. ¿Qué se hace con ella?

    • ASe borra inmediatamente, porque el derecho de supresión prevalece siempre
    • BSe conserva para siempre
    • CSe conserva, bloqueada para otros usos, mientras dure la obligación legal (seis años según el artículo 30 del Código de Comercio), y se suprime después; lo basado en el consentimiento, como la lista de correo, se suprime ya
    • DSe envía al interesado y se borra del sistema
    Ver respuesta

    Respuesta C. Se conserva, bloqueada para otros usos, mientras dure la obligación legal (seis años según el artículo 30 del Código de Comercio), y se suprime después; lo basado en el consentimiento, como la lista de correo, se suprime ya

    El artículo 17.3.b del RGPD excluye del derecho de supresión el tratamiento necesario para cumplir una obligación legal. La obligación no autoriza otros usos: el dato queda limitado a esa finalidad y se suprime cuando vence el plazo.

  3. Un modelo de ML decide cuándo comprar y vender para la cuenta propia de su autor. ¿Es un sistema de alto riesgo del Reglamento de IA?

    • ANo por ser un modelo de trading: el anexo III no incluye la negociación por cuenta propia (sí, por ejemplo, la evaluación de la solvencia de personas físicas); otras obligaciones, como la transparencia del artículo 50 si conversa con personas, pueden aplicarse a otros sistemas del mismo servicio
    • BSí, todos los sistemas de IA financieros son de alto riesgo
    • CSí, desde el 2 de agosto de 2026
    • DSolo si usa redes neuronales
    Ver respuesta

    Respuesta A. No por ser un modelo de trading: el anexo III no incluye la negociación por cuenta propia (sí, por ejemplo, la evaluación de la solvencia de personas físicas); otras obligaciones, como la transparencia del artículo 50 si conversa con personas, pueden aplicarse a otros sistemas del mismo servicio

    Las categorías del anexo III son cerradas y en finanzas citan la solvencia y la calificación crediticia de personas físicas y la tarificación de seguros de vida y salud. Para esas, el Reglamento (UE) 2026/1744 ha llevado las obligaciones al 2 de diciembre de 2027. El modelo sigue sujeto a MiFID II si lo usa una empresa de servicios de inversión con clientes (declaración de ESMA de 30/05/2024).

  4. De 2.000 canales que dan señales al azar durante un año, se anuncian los que tienen un Sharpe superior a 1. ¿Qué Sharpe tienen los anunciados en los seis meses siguientes?

    • AAlrededor de 1,5, como en el año del anuncio
    • BMás de 1, porque han demostrado habilidad
    • CExactamente 1
    • DAlrededor de 0: su Sharpe medio del año del anuncio (1,49) era selección, no habilidad, y fuera de esa muestra cae a −0,04
    Ver respuesta

    Respuesta D. Alrededor de 0: su Sharpe medio del año del anuncio (1,49) era selección, no habilidad, y fuera de esa muestra cae a −0,04

    Con señales al azar, 316 de 2.000 canales superan un Sharpe de 1 por pura suerte. Elegirlos por su historial produce un historial excelente sin capacidad de repetirlo; es el mismo sesgo de selección que corrige el Deflated Sharpe Ratio de la lección 2.5.4.

  5. ¿Qué protege a un influencer que envía a cada suscriptor de pago recomendaciones de compra adaptadas a su situación, si añade «esto no es asesoramiento»?

    • AEl aviso, que lo convierte en información genérica
    • BNada: una recomendación presentada como idónea o basada en las circunstancias personales es asesoramiento, que exige autorización, y la CNMV advierte que esos avisos no protegen ni evitan cumplir la normativa
    • CCobrar menos de 50 euros al mes
    • DPublicar en Telegram en lugar de en una web
    Ver respuesta

    Respuesta B. Nada: una recomendación presentada como idónea o basada en las circunstancias personales es asesoramiento, que exige autorización, y la CNMV advierte que esos avisos no protegen ni evitan cumplir la normativa

    El artículo 9 del Reglamento Delegado (UE) 2017/565 define la recomendación personalizada y aclara que no lo es la que se divulga exclusivamente al público. La guía de la CNMV para finfluencers dice que publicar «Esto no es asesoramiento en materia de inversión» no protege en esos casos.

Ideas clave

  • El RGPD se aplica a los datos de suscriptores, clientes y usuarios de un servicio de trading: finalidad, minimización y conservación limitada (art. 5). Un hash sin clave de un correo se deshace por diccionario; un HMAC con la clave aparte es seudonimización, y los datos siguen siendo personales.
  • La supresión (art. 17) cede ante una obligación legal de conservación (art. 17.3.b), como los seis años del artículo 30 del Código de Comercio o los cinco del artículo 25.1 de MiFIR para órdenes y operaciones de una ESI; lo que se conserva queda bloqueado para esa finalidad.
  • Reglamento de IA: prohibiciones y alfabetización desde el 2/2/2025, IA de uso general desde el 2/8/2025, aplicación general y transparencia del artículo 50 desde el 2/8/2026, y alto riesgo del anexo III desde el 2/12/2027 tras el Reglamento (UE) 2026/1744. Un modelo de trading por cuenta propia no está en el anexo III.
  • Cualquiera puede publicar recomendaciones de inversión, con las obligaciones de presentación objetiva y conflictos de interés del artículo 20 de MAR y el Reglamento Delegado 2016/958; el asesoramiento personalizado exige autorización, y un aviso de «no es asesoramiento» no lo cambia.
  • Con 2.000 canales al azar, 316 superan un Sharpe de 1 en un año (media 1,49) y caen a −0,04 los seis meses siguientes; elegir la mejor ventana de tres meses o borrar las señales perdedoras fabrica historiales igual de vacíos. La lista completa de recomendaciones de 12 meses (art. 4.1.i del Reglamento Delegado 2016/958) es el antídoto.

Recursos