¿Cómo simular la negociación con apalancamiento?
Los conceptos básicos
Todos los scripts de estrategia escritos en Pine Script™ v4 y superiores admiten de forma nativa la simulación de operaciones de apalancamiento, es decir, pedir prestado a un bróker para abrir posiciones más grandes con cantidades más pequeñas de capital.
Con las operaciones de apalancamiento, los traders pueden colocar órdenes de mayor volumen de lo que permitiría el saldo de su cuenta, siempre que la cuenta del trader mantenga el margen necesario para mantener el préstamo.
NOTA: El apalancamiento amplifica los beneficios y las pérdidas potenciales. Los traders siempre deben actuar con cautela y evaluar a fondo su apetito por el riesgo antes de utilizar el apalancamiento en operaciones reales.
Las estrategias Pine Script™ determinan las cantidades de apalancamiento aplicadas a las operaciones largas y cortas simuladas mediante las entradas "Margen para posiciones largas" y "Margen para posiciones cortas" de la pestaña "Propiedades" de la configuración del script. Estas entradas definen el porcentaje mínimo del valor de una posición requerido en el saldo de la cuenta para que la estrategia simule la apertura y el mantenimiento de la posición.
Por ejemplo, un valor de "Margen para posiciones largas" del 20 % significa que la simulación requerirá que el 20 % de cualquier posición larga sea cubierta por el saldo disponible de la estrategia, con el 80 % restante cubierto por el bróker emulado. Dado que cualquier posición larga solo requiere una quinta parte de su valor para ser financiada por la cuenta, la estrategia puede simular posiciones largas de hasta cinco veces su saldo disponible. En otros términos, este nivel de margen (1:5) aumenta el apalancamiento de la estrategia a 5:1.
NOTA: Los programadores pueden definir los valores de margen por defecto en sus scripts de estrategia a través de los parámetros `margin_long` y `margin_short` de la función `strategy()`.
Los detalles
Cuando un trader pide dinero prestado a un bróker para aumentar su poder adquisitivo, este le exigirá que tenga una cantidad mínima de capital en su cuenta para utilizarla como garantía, lo que también se conoce como margen. En otras palabras, el margen es la parte de la posición que los traders deben cubrir con su propio capital para que el bróker cubra el resto.
El margen asignado a una operación es el producto del valor de mercado de la posición y el coeficiente de margen (es decir, el recíproco del coeficiente de apalancamiento deseado).
Supongamos que la cotización actual del EURUSD es de 1,05, y queremos simular la compra de un lote estándar (100.000 unidades) sin pedir fondos prestados al bróker (es decir, utilizando un apalancamiento de 1:1). En este caso, fijamos el "Margen para posiciones largas" en 100 %, indicando a la estrategia que coloque órdenes utilizando solo sus fondos disponibles. Por lo tanto, la cuenta debe tener al menos 105.000 USD (1,05 * 100.000) disponibles para facilitar la operación.
Supongamos ahora que deseamos simular la misma operación con un apalancamiento de 20:1. En este caso, el ratio de margen es de 1:20 (5 %). Establecer el "Margen para posiciones largas" en 5 % especifica que el saldo de la cuenta debe ser de al menos el 5 % del valor de la posición para simular que se recibe el otro 95 % del bróker. El saldo mínimo de la cuenta (margen) necesario para facilitar esta operación es el 5 % de 105.000 (5.250 USD).
A diferencia del ejemplo que no depende de los fondos del bróker, abrir una posición con un apalancamiento de 20:1 en el mundo real conlleva un riesgo de pérdida para el titular de la cuenta y para el bróker. Si la posición abierta pierde más de lo que el saldo de la cuenta puede cubrir, el bróker solicitará más fondos al trader o liquidará forzosamente una parte o la totalidad de la posición abierta para cubrir las pérdidas. El Simulador de estrategias representa los escenarios de liquidación forzosa como eventos de "Llamada de margen".
Nuestro Simulador de bróker maneja estos escenarios en los resultados de la estrategia liquidando cuatro veces la cantidad requerida para cubrir la pérdida en la simulación, previniendo eventos constantes de llamada de margen en barras de gráficos subsecuentes.
NOTA: Las operaciones en corto suelen consistir en tomar prestadas acciones, participaciones, etc. del bróker y venderlas posteriormente a otro precio. El valor de la posición representa el coste de comprar un número equivalente de acciones, unidades, etc. para devolverlas. Por ello, las operaciones en corto pierden dinero cuando suben los precios. A diferencia de las posiciones largas, la pérdida potencial en una posición corta no tiene límite, ya que no existe un límite definido sobre cuánto puede subir el precio de un instrumento. Por lo tanto, incluso con un margen del 100%, una posición corta se enfrenta al riesgo de liquidación forzosa.
Las estrategias también pueden simular requisitos de margen poco convencionales. Por ejemplo, se podría utilizar un valor de "Margen para posiciones largas" del 200 %, lo que significa que la cuenta simulada debe tener al menos el doble del valor de la posición para facilitar la operación y mantener la posición. Este ajuste limita efectivamente el tamaño máximo de la posición al 50 % del capital de la estrategia.
Es importante tener en cuenta que los ajustes de margen de un script de estrategia le permiten validar tamaños de posición. Al desactivar los requisitos de margen estableciéndolos en 0 %, el script puede simular posiciones de cualquier tamaño, independientemente del capital real disponible en la simulación, lo que puede producir resultados engañosos. Por lo tanto, no recomendamos establecer los valores de "Margen para posiciones largas" o "Margen para posiciones cortas" en 0 %.
Quedarse sin fondos
La principal advertencia de las operaciones con apalancamiento es que aumentan el riesgo de quedarse sin fondos. Las posiciones cerradas a la fuerza por un bróker reducen sustancialmente la capacidad de los traders para recuperarse de las pérdidas y pueden acelerar el deterioro de su cuenta. El Simulador de estrategias representa las posiciones cerradas forzosamente como eventos de "Llamada de margen".
La fórmula que rige cuándo se produce un evento de Llamada de margen es:
CurrentEquity <= MarginRequired
El valor de CurrentEquity es la cantidad de capital que tiene la estrategia simulada en un momento determinado, incluyendo las ganancias o pérdidas de la posición abierta. El MarginRequired es el capital que la cuenta necesita para mantener la posición. Una vez que el CurrentEquity no sea suficiente para financiar la posición abierta, se producirá un evento de Llamada de margen.
La fórmula para CurrentEquity es PriceChange * Direction * PointValue * AbsPositionSize + InitialCapital + NetProfit, donde:
- PriceChange es la diferencia entre el precio actual y el precio de entrada de la posición abierta.
- Direction es 1 si la posición es larga o -1 si es corta.
- PointValue es la cantidad de dinero que representa un movimiento de precio de un número entero. Para la mayoría de los símbolos, el valor es 1, con la principal excepción de los futuros, donde un cambio de 100 a 101 puede significar que el valor cambió en 50 USD en lugar de 1 USD, en cuyo caso el PointValue será 50.
- AbsPositionSize es el tamaño de la posición actual. Este valor siempre es positivo, aunque los scripts de estrategia representen operaciones en corto con números negativos en el gráfico.
- InitialCapital + NetProfit es el importe total del capital de la estrategia antes de abrir la posición actual.
La fórmula para MarginRequired es LastPrice * PointValue * AbsPositionSize * (MarginPercent / 100), donde LastPrice es el precio del gráfico para el cálculo, y (Margin Percent / 100) es el coeficiente por el que multiplicamos para obtener la parte requerida del titular de la posición abierta.
Para demostrar estos cálculos, imaginemos que simulamos una estrategia con 1.000 USD como "Capital inicial" y un valor de "Margen para posiciones largas" del 20% (apalancamiento 5:1) para comprar 40 acciones de NASDAQ:GOOG al precio de 100 USD.
Si el precio de la acción cayó a 95 USD, la CurrentEquity es PriceChange * Direction * PointValue * AbsPositionSize + InitialCapital + NetProfit = (95 - 100) * 1 * 1 * 40 + 1000 + 0 = 800, y el MarginRequired es LastPrice * PointValue * AbsPositionSize * (MarginPercent / 100) = 95 * 1 * 40 * 0.2 = 760. La estrategia todavía puede mantener la posición abierta a este precio, por lo que no se produce ningún evento de Llamada de margen. La estrategia todavía puede mantener la posición abierta a este precio, por lo que no se produce ningún evento de Llamada de margen.
A continuación, supongamos que el precio sigue bajando hasta un valor de 90 USD. El nuevo valor de CurrentEquity es (90 - 100) * 1 * 1 * 40 + 1000 + 0 = 600, y el MarginRequired es ahora 90 * 1 * 40 * 0.2 = 720. Como la CurrentEquity ya no es suficiente para cubrir el MarginRequired, la estrategia crea un evento de Llamada de margen y liquida forzosamente parte de la posición.
Visualización del precio del margen
La forma más sencilla de visualizar el precio al que se puede producir un evento de Llamada de margen es utilizar la variable incorporada `strategy.margin_liquidation_price` en el código fuente de Pine Script™ de la estrategia. Añadiendo esta línea de código a cualquier estrategia Pine Script™ v5 mostrará el precio de liquidación como una línea azul en el gráfico:
plot(strategy.margin_liquidation_price)
GenericSi es necesario calcular el precio manualmente, se puede transformar la ecuación del apartado anterior en la siguiente fórmula:
MarginLiquidationPriceRaw = ((InitialCapital + NetPofit) / (PointValue * AbsPositionSize) - Direction * EntryPrice) / (MarginPercent / 100 - Direction)
El valor resultante de MarginLiquidationPriceRaw se redondea hacia arriba (para posiciones cortas) o hacia abajo (para posiciones largas) al precio más cercano divisible por el valor mínimo de tick del símbolo.
Observe cómo toda la expresión se divide por (MarginPercent / 100 - Direction). Si la dirección es en largo y el MarginLong% es 100, el divisor será 0, y el MarginLiquidationPriceRaw resultante no será alcanzable debido a la división por cero. Este comportamiento es consistente con la noción de que un bróker no puede liquidar forzosamente una posición en largo con un margen del 100%.
Con la estrategia hipotética descrita en la sección anterior, este cálculo dará como resultado: ((1000 + 0) / (1 * 40) - 100) / (20 / 100 - 1) = 93,75, que es el primer precio que justificará un ajuste de márgenes. Dado que 93,75 es divisible por el tamaño del tick de GOOG de 0,01, el redondeo basado en el tick mínimo no tiene efecto en este escenario.
Tenga en cuenta que no se garantiza que el evento de Llamada de margen se active a este precio calculado durante la simulación.
Cálculo de la cuantía de la liquidación
El importe exacto de una posición liquidada por un evento de Llamada de margen depende del precio en el que se produzca. Como se ha indicado anteriormente, el emulador de bróker liquida cuatro veces la cantidad necesaria para cubrir la pérdida, lo que proporciona un colchón para garantizar que estos eventos no se produzcan en rápida sucesión. Utilizamos el siguiente algoritmo para calcular el importe de liquidación:
1. Calcula el dinero gastado, es decir, el capital invertido en abrir la posición.
Position Size * Entry Price
2. Calcula el valor de mercado del valor (MVS).
Position Size * Current Price
3. Calcule el beneficio abierto. Si la dirección de la operación es corta y el beneficio abierto es un número positivo, el resultado debería seguir siendo negativo, por lo que multiplicamos el valor absoluto de nuestro cálculo por -1.
ABS(MVS - Money Spent) * -1
4. Calcula los fondos propios, es decir, el capital disponible en la simulación.
Initial Capital + Net Profit + Open Profit
5. Convierte el porcentaje de margen en un ratio de margen.
Margin Percent / 100
6. Calcula el margen, es decir, la cantidad necesaria en la cuenta para cubrir la parte de la posición abierta que corresponde a al trader.
MVS * Margin Ratio
7. Calcula los fondos disponibles, es decir, la cantidad de dinero perdido que el trader no puede cubrir con su capital actual.
Equity - Margin
8. Calcula la cantidad total de dinero que ha perdido el trader.
Available Funds / Margin Ratio.
9. Calcula cuántas acciones, unidades, etc. tendría que liquidar la estrategia para cubrir la pérdida. Truncamos el valor al mismo punto decimal que el tamaño mínimo del contrato para el símbolo actual.
TRUNCATE(Step #8 / Current Price)
10. Calcula cuántas acciones, participaciones, etc. liquidará el bróker para cubrir la pérdida. Nuestro bróker emulado vende cuatro veces la cantidad necesaria para asegurar que no se dispare constantemente un evento de Llamada de margen si continúan las pérdidas. Este valor será positivo para las operaciones en corto porque el bróker compra unidades para cubrir la pérdida en lugar de venderlas.
Step #9 * 4
Para examinar este cálculo en detalle, agreguemos la Estrategia de supertendencia incorporada al gráfico NASDAQ:TSLA en el intervalo de tiempo "1D" y establezcamos el "Tamaño de la orden" en 300% del capital y el "Margen para posiciones en largo" en 25%:
La primera entrada se produjo al precio de apertura de la barra el 16 de septiembre de 2010. La estrategia compró 682.438 acciones (tamaño de la posición) a 4,43 USD (precio de entrada). Luego, el 23 de septiembre de 2010, cuando el precio cayó a 3,9 (precio actual), el emulador liquidó por la fuerza 111.052 acciones a través del evento Llamada de margen.
1. Dinero gastado: 682438 * 4.43 = 3023200.34
2. MVS: 682438 * 3,9 = 2661508,2
3. Beneficio abierto: -361692.14
4. Capital: 1000000 + 0 - 361692,14 = 638307,86
5. Ratio de margen: 25 / 100 = 0,25
6. Margen: 2661508,2 * 0,25 = 665377,05
7. Fondos disponibles: 638307.86 - 665377.05 = -27069.19
8. Dinero perdido: -27069,19 / 0,25 = -108276,76
9. Acciones para cubrir la pérdida TRUNCATE(-108276,76 / 3,9) = TRUNCATE(-27763,27) = -27763
10. Tamaño del ajuste de márgenes: -27763 * 4 = - 111052