Guille escribió:Imaginemos que nuestro sistema es uno intradía a bastante corto plazo que se basa , por ejemplo, sobre un contrato de futuros determinado, digamos sobre el futuro del Bund, donde cada punto son 10 euros. Y nuestro drawdown máximo lo calculamos en 300 puntos, es decir, 3000 euros. Somos agresivos y aplicamos como delta el 50% del drawdown. Nuestra delta, por tanto, será el 50% de ese drawdown o , lo que es igual, 150 puntos o 1500 euros.
1. No pasaremos de un contrato mientras no se gane la delta, es decir, al menos 1500 euros o 150 puntos seguiremos siempre con un contrato.
2. Si gana más de 1500 euros pase a dos contratos.
3. Para pasar a tres contratos, necesitará ganar dos veces la delta, es decir, tener un beneficio acumulado de 3000
4. Para pasar a cuatro contratos, necesitaremos tener cuatro veces la delta o 6000 euros de beneficio acumulado.
Evidentemente, en todos los casos si se tiene pérdidas y se rebasa a la baja el mínimo capital de beneficio acumulado necesario para operar con esos contratos, se baja un escalón y se vuelve a operar con menos.
...//...
y hasta aquí Rafa7, luego el autor hace un par de consideraciones como poner un límite al numero de contratos por mucho que se esté ganando y que cada primeros de año se haga un "reset" y se empiece todo de nuevo desde el principio.
Hola Guille,
Te explñico como finalmente se puede deducir que el algoritmo de Cárpatos se puede expresar con una fórmula no iterativa.
El algoritmo de Cárpatos en forma iterativa sería este:
Si Equity < Delta, operar con 1 contrato.
Si Equity > Delta, Equity(2) = Delta y Equity(n + 1) = 2 * Equity(n).
Equity(3) = 2 * Equity(2) = 2^1 * Delta
Equity(4) = 2 * Equity(3) = 2^2 * Delta
Equity(5) = 2 * Equity(4) = 2^3 * Delta
...
Deduzco que Equity(n) = 2^(n - 2) * Delta
Vamos a demostrarlo por inducción:
Caso n = 2) Equity(2) = Delta
2^(2 - 2) * Delta = 2^0 * Delta = 1 * Delta = Delta
Demostrado para n = 2
Caso n ==> n + 1)
Supongamos que Equity(n) = 2^(n - 2) * Delta para un determinado n >= 2.
Queremos demostrar que Equity(n + 1) = 2^(n - 1) * Delta.
Equity(n + 1) = 2 * Equity(n) = 2 * 2^(n - 2) * Delta = 2^(n - 1) * Delta.
Demostrado.
Por lo tanto, para todo n >= 2 se cumple que Equity(n) = 2^(n - 2) * Delta
Ahora pasemos a logaritmos neperianos:
Ln(Equity) = (n - 2) * Ln(2) + Ln(Delta)
Despejemos n:
n = (Ln(Equity) - Ln(Delta)) / Ln(2) + 2 = Ln(Equity / Delta) / Ln(2) + 2 = Log2(Equity / Delta) + 2
Por lo tanto:
n = Log2(Equity / Delta) + 2, para todo n > 1.
Si Equity <= Delta, operar con 1 solo contrato.
Si Equity > Delta, operar con contratos = Log2(Equity / Delta) + 2
Si tu plataforma no tiene logaritmos en base 2, pero sí logaritmos neperianos, puedes aplicar:
Si Equity <= Delta, operar con 1 solo contrato.
Si Equity > Delta, operar con contratos = Ln(Equity / Delta) /Ln(2) + 2
Saludos.