mathematical foundations - ErnestoCobos/MidasV4 GitHub Wiki

Fundamentos Matemáticos de MidasScalpingv4

Este documento presenta los fundamentos matemáticos que subyacen al sistema de trading algorítmico MidasScalpingv4, incluyendo el análisis técnico, la toma de decisiones basada en aprendizaje por refuerzo, y los modelos de gestión de riesgo.

1. Modelo de Decisión de Trading

1.1 Indicadores Técnicos

Índice de Fuerza Relativa (RSI)

El RSI es un oscilador que mide la velocidad y cambio de los movimientos de precio.

$$\text{RSI} = 100 - \frac{100}{1 + \text{RS}}$$

Donde RS (Relative Strength) es:

$$\text{RS} = \frac{\text{Promedio de ganancias durante } n \text{ periodos}}{\text{Promedio de pérdidas durante } n \text{ periodos}}$$

Bandas de Bollinger

Las Bandas de Bollinger definen un rango de volatilidad alrededor de la media móvil.

$$\text{BB}{\text{middle}} = \text{SMA}(n)$$ $$\text{BB}{\text{upper}} = \text{SMA}(n) + k \times \sigma_n$$ $$\text{BB}_{\text{lower}} = \text{SMA}(n) - k \times \sigma_n$$

Donde:

  • $\text{SMA}(n)$ es la media móvil simple de $n$ períodos
  • $\sigma_n$ es la desviación estándar de los precios durante $n$ períodos
  • $k$ es el factor multiplicador (típicamente 2)

Media Móvil Simple (SMA)

$$\text{SMA}(n) = \frac{1}{n} \sum_{i=0}^{n-1} P_{t-i}$$

Donde $P_t$ es el precio en el tiempo $t$.

1.2 Función de Generación de Señales

La generación de señales se basa en condiciones lógicas combinando estos indicadores. Para una señal de compra fuerte:

$$\text{BUY signal} = \begin{cases} \text{True}, & \text{si } \text{RSI} < \text{RSI}{\text{oversold}} \text{ AND } P{\text{current}} < \text{BB}_{\text{lower}} \times 1.01 \text{ AND } \text{SMA}7 > \text{SMA}{25} \ \text{False}, & \text{en caso contrario} \end{cases}$$

La confianza de la señal se calcula como: $$\text{confidence} = 70 + (\text{RSI}_{\text{oversold}} - \text{RSI})$$

De manera similar, para señales de venta y señales moderadas.

2. Aprendizaje por Refuerzo (RL)

2.1 Formulación del Problema de RL

El trading se modela como un proceso de decisión de Markov (MDP) definido por la tupla $(\mathcal{S}, \mathcal{A}, \mathcal{P}, \mathcal{R}, \gamma)$:

  • $\mathcal{S}$: Espacio de estados (características del mercado)
  • $\mathcal{A}$: Espacio de acciones (comprar/vender/mantener con diferentes tamaños)
  • $\mathcal{P}$: Función de transición de probabilidad
  • $\mathcal{R}$: Función de recompensa
  • $\gamma$: Factor de descuento

2.2 Arquitectura de Red Q Dual con Ramificación de Acciones

La red Q dual separa la estimación del valor de estado $V(s)$ y la ventaja de cada acción $A(s,a)$:

$$Q(s,a) = V(s) + \left(A(s,a) - \frac{1}{|\mathcal{A}|}\sum_{a'} A(s,a')\right)$$

Con ramificación de acciones, para cada tipo de acción $i$ y tamaño $j$:

$$Q(s,(i,j)) = V(s) + \left(A_i(s,j) - \frac{1}{|\mathcal{A}i|}\sum{j'} A_i(s,j')\right)$$

2.3 Función de Recompensa

La función de recompensa balancea rentabilidad y riesgo:

$$R(s,a,s') = \underbrace{r_{\text{pnl}} \cdot 10}{\text{recompensa base}} - \underbrace{d \cdot 2}{\text{penalización drawdown}} + \underbrace{\min(w \cdot 0.1, 0.5)}_{\text{bonificación consistencia}}$$

Donde:

  • $r_{\text{pnl}}$ es el retorno normalizado (P&L dividido por el valor de la posición)
  • $d$ es el drawdown actual (cuando supera el 10%)
  • $w$ es la racha de operaciones ganadoras consecutivas

2.4 Algoritmo Q-Learning Profundo

El algoritmo actualiza los valores Q minimizando la pérdida:

$$\mathcal{L}(\theta) = \mathbb{E}{(s,a,r,s')} \left[ \left( r + \gamma \max{a'} Q(s',a';\theta^-) - Q(s,a;\theta) \right)^2 \right]$$

Donde:

  • $\theta$ son los parámetros de la red Q principal
  • $\theta^-$ son los parámetros de la red Q objetivo
  • $(s,a,r,s')$ son las transiciones almacenadas en el buffer de experiencia

2.5 Hindsight Experience Replay (HER)

La técnica HER relabela las experiencias utilizando conocimiento retrospectivo:

$$r_{\text{hindsight}}(s_t, a_t, s_T) = \text{sign}(P_T - P_t) \cdot 0.5$$

Donde $P_T$ es el precio final y $P_t$ es el precio en el momento $t$.

3. Detección de Regímenes de Mercado

3.1 Clasificación de Regímenes

El mercado se clasifica en cuatro regímenes usando una combinación de indicadores:

  1. Tendencia Alcista (TRENDING_UP): $$\text{ADX} > \text{ADX}_{\text{threshold}} \text{ AND } \text{DI+} > \text{DI-}$$

  2. Tendencia Bajista (TRENDING_DOWN): $$\text{ADX} > \text{ADX}_{\text{threshold}} \text{ AND } \text{DI+} < \text{DI-}$$

  3. Rango (RANGING): $$\text{ADX} < \text{ADX}{\text{threshold}} \text{ AND } \sigma{\text{price}} < \sigma_{\text{threshold}}$$

  4. Volatilidad (VOLATILE): $$\sigma_{\text{price}} > \sigma_{\text{threshold}}$$

Donde ADX es el Índice de Movimiento Direccional Promedio y $\sigma_{\text{price}}$ es la volatilidad del precio.

3.2 Adaptación Paramétrica

Los parámetros se ajustan dinámicamente según el régimen detectado:

$$\text{param}{\text{adjusted}} = f{\text{regime}}(\text{param}_{\text{base}})$$

Por ejemplo, para el régimen TRENDING_UP: $$\text{RSI}{\text{oversold}} = \max(20, \text{RSI}{\text{oversold, base}} - 5)$$ $$\text{risk}{\text{per trade}} = \min(2.0, \text{risk}{\text{base}} \cdot 1.2)$$

4. Gestión de Riesgo

4.1 Dimensionamiento de Posiciones Basado en Riesgo

El tamaño de posición se calcula mediante:

$$\text{Quantity} = \frac{\text{Balance}{\text{usable}} \cdot \text{risk}{\text{adjusted}}}{\text{|Entry Price - Stop Loss|}}$$

Donde: $$\text{Balance}{\text{usable}} = \text{Balance}{\text{total}} \cdot (1 - \text{reserve}{\text{ratio}})$$ $$\text{risk}{\text{adjusted}} = \text{risk}{\text{base}} \cdot \text{volatility}{\text{factor}} \cdot \text{drawdown}_{\text{factor}}$$

4.2 Stop Loss Dinámico

El stop loss se ajusta dinámicamente según la volatilidad del mercado:

$$\text{SL}{\text{percentage}} = \min\left(\text{SL}{\text{base}} \cdot \max\left(1, \frac{\text{volatility}}{\text{volatility}{\text{baseline}}}\right), \text{SL}{\text{max}}\right)$$

$$\text{SL}{\text{price}} = \begin{cases} \text{Entry Price} \cdot (1 - \text{SL}{\text{percentage}}), & \text{para posiciones largas} \ \text{Entry Price} \cdot (1 + \text{SL}_{\text{percentage}}), & \text{para posiciones cortas} \end{cases}$$

4.3 Trailing Stop

El trailing stop se actualiza cuando el precio se mueve a favor:

Para posiciones largas: $$\text{NewStop} = \max(\text{OldStop}, \text{CurrentPrice} \cdot (1 - \text{trailing}_{\text{percentage}}))$$

Para posiciones cortas: $$\text{NewStop} = \min(\text{OldStop}, \text{CurrentPrice} \cdot (1 + \text{trailing}_{\text{percentage}}))$$

4.4 Factor de Ajuste por Drawdown

El sistema reduce el riesgo cuando hay drawdown significativo:

$$\text{drawdown}_{\text{factor}} = \begin{cases} 1.0, & \text{si } \text{drawdown} < 0.05 \ 0.8, & \text{si } 0.05 \leq \text{drawdown} < 0.1 \ 0.6, & \text{si } 0.1 \leq \text{drawdown} < 0.15 \ 0.4, & \text{si } 0.15 \leq \text{drawdown} < 0.2 \ 0.2, & \text{si } \text{drawdown} \geq 0.2 \end{cases}$$

5. Validación de Operaciones

5.1 Verificación de Fondos para Spot

Para operaciones spot, se verifica:

$$\text{required_funds} = \text{position_value} \cdot (1 + \text{safety_margin})$$ $$\text{min_balance} = \text{total_capital} \cdot \text{min_reserved_ratio}$$ $$\text{available_capital} = \text{total_capital} - \text{min_balance}$$

Una operación es válida si y solo si: $$\text{required_funds} \leq \text{available_capital}$$

5.2 Restricciones de Exposición

Se aplican las siguientes restricciones:

  1. Número máximo de posiciones: $$|\text{open_positions}| < \text{max_positions}$$

  2. Exposición máxima total: $$\text{current_exposure} + \text{position_value} \leq \text{total_capital} \cdot \text{max_exposure_ratio}$$

  3. Exposición máxima por símbolo: $$\text{symbol_exposure} + \text{position_value} \leq \text{total_capital} \cdot \text{max_symbol_exposure_ratio}$$

6. Conclusión

Este framework matemático proporciona una base sólida para el sistema de trading MidasScalpingv4, combinando análisis técnico tradicional con técnicas avanzadas de aprendizaje por refuerzo y gestión de riesgo adaptativa. La implementación computacional de estos modelos permite al sistema adaptarse a diferentes condiciones de mercado mientras mantiene un estricto control del riesgo, especialmente importante en operaciones spot.