#1
Buscando la f de kelly sin saber que existe, los beneficios de saber programar solo un poquito
La f de Kelly es un formula que nos da la fracción optima que tenemos que apostar si sabemos la probabilidad de acierto.
La enuncio Kelly , aqui hay mas información https://www.rankia.com/diccionario/bolsa/f-kelly-formula
Esta formula tiene algunas variantes, en trading nos serviria para saber que % de nuestro dinero poner en cada trade suponiendo que sabemos el % de acierto que puede tener nuestra operativa.
Para poner un ejemplo facil, tengo una moneda trucada que se que si la lanzo 10000000000veces va a caer 2 de cada 3 en cruz y una en cara, eso no quiere decir que pueda caer en cara 5 o mas veces seguidas por suerte en cara.
Tengo 100euros para apostar, y vamos a hacer 10-100 tiradas de la moneda, en las cuales yo voy a apostar a cruz por que se que tengo ventaja, se que cae el 66.66% de las veces en cruz y solo el 33.33% de las veces en cara.
Que porcentaje debo apostar en cada tirada de mi caja para tener el maximo beneficio esperado, esta claro que si apuesto siempre el 100% en cuanto salga una "cara" pierdo todo, pero si solo apuesto un 1% cada vez pues no voy a ganar todo lo que podria ganar.
Pues bien, el bueno de Kelly, nos dio la solucion con esta formula
f=2*P-1 donde P es la probabilidad de ganar
Asi pues si yo tengo un 66.66% de ganar cada vez, pues 2*0.6666-1=1.333-1=0.333 osea que tengo que apostar el 33% de lo que tenga
En este caso como empiezo con 100 apuesto 33eur, si gano tengo 133 y debería apostar a la siguiente 43 (133*0.33) si pierdo tengo 67 y la siguiente debo apostar 22 (67*0.33)
Hasta aqui todo claro, pero que pasa si no se que existe la formula de kelly y quiero resolver este problema?
Pues tenemos 2 soluciones, saber crear la formula, que no es mi caso o saber programar un poquito
Bueno pues sabiendo programar solo un poquito podemos crear un programa que no nos va a dar la formula, pero si nos va a dar % que debemos apostar, puede que con algo de error sobre la formula, pero muy poco en todo caso.
En este caso he programado en python para que se me de la fraccion(f) correcta a este problema y efectivamente, el resultado que me ha dado es 0.34 muy cerquita del 0.333 que me da la formula, y todo ello sin usar la formula. Aqui os copio el codigo en leguaje python por si lo quereis probar:
import random as rd
mejoresfracciones=[]
for q in range(100):
fraccion=0.00
mejorbolsa=0
for j in range(100):
bolsa=100
fraccion=fraccion+0.01
for i in range(10000):
a=rd.randint(1,3)
if a==1:
moneda="cara"
elif a==2 or a==3:
moneda="cruz"
apuesta=bolsa*fraccion
apuesta=int(apuesta)
if moneda=="cruz":
bolsa=bolsa+apuesta
else:
bolsa=bolsa-apuesta
if bolsa>mejorbolsa:
mejorbolsa=bolsa
mejorfraccion=fraccion
mejoresfracciones.append(mejorfraccion)
valortotal=0.00
for valor in mejoresfracciones:
valortotal=valortotal+valor
mediamejorfraccion=valortotal/len(mejoresfracciones)
print('Fraccion F de Kelly aproximada:')
print (mediamejorfraccion)
Este programita, tardara 5 minutos en ejecutarse y os va a dar un numero aproximado a 0.33, cada vez diferente pero entre 0.32 y 0.34
No se si queda claro a donde quiero llegar con todo esto? Pero algunos os dareis cuenta espero, me puede servir para valorar correctamente opciones sin saber la formula B&S, me puede servir para hacer estudios estadisticos sin saber de estadistica, en fin para muchisimas cosas relaccionadas con el trading y la inversion, y que me pueden ayudar mucho. Incluso a descubrir resultados de formulas nunca enunciadas ni enunciables que no existen aun.
La enuncio Kelly , aqui hay mas información https://www.rankia.com/diccionario/bolsa/f-kelly-formula
Esta formula tiene algunas variantes, en trading nos serviria para saber que % de nuestro dinero poner en cada trade suponiendo que sabemos el % de acierto que puede tener nuestra operativa.
Para poner un ejemplo facil, tengo una moneda trucada que se que si la lanzo 10000000000veces va a caer 2 de cada 3 en cruz y una en cara, eso no quiere decir que pueda caer en cara 5 o mas veces seguidas por suerte en cara.
Tengo 100euros para apostar, y vamos a hacer 10-100 tiradas de la moneda, en las cuales yo voy a apostar a cruz por que se que tengo ventaja, se que cae el 66.66% de las veces en cruz y solo el 33.33% de las veces en cara.
Que porcentaje debo apostar en cada tirada de mi caja para tener el maximo beneficio esperado, esta claro que si apuesto siempre el 100% en cuanto salga una "cara" pierdo todo, pero si solo apuesto un 1% cada vez pues no voy a ganar todo lo que podria ganar.
Pues bien, el bueno de Kelly, nos dio la solucion con esta formula
f=2*P-1 donde P es la probabilidad de ganar
Asi pues si yo tengo un 66.66% de ganar cada vez, pues 2*0.6666-1=1.333-1=0.333 osea que tengo que apostar el 33% de lo que tenga
En este caso como empiezo con 100 apuesto 33eur, si gano tengo 133 y debería apostar a la siguiente 43 (133*0.33) si pierdo tengo 67 y la siguiente debo apostar 22 (67*0.33)
Hasta aqui todo claro, pero que pasa si no se que existe la formula de kelly y quiero resolver este problema?
Pues tenemos 2 soluciones, saber crear la formula, que no es mi caso o saber programar un poquito
Bueno pues sabiendo programar solo un poquito podemos crear un programa que no nos va a dar la formula, pero si nos va a dar % que debemos apostar, puede que con algo de error sobre la formula, pero muy poco en todo caso.
En este caso he programado en python para que se me de la fraccion(f) correcta a este problema y efectivamente, el resultado que me ha dado es 0.34 muy cerquita del 0.333 que me da la formula, y todo ello sin usar la formula. Aqui os copio el codigo en leguaje python por si lo quereis probar:
import random as rd
mejoresfracciones=[]
for q in range(100):
fraccion=0.00
mejorbolsa=0
for j in range(100):
bolsa=100
fraccion=fraccion+0.01
for i in range(10000):
a=rd.randint(1,3)
if a==1:
moneda="cara"
elif a==2 or a==3:
moneda="cruz"
apuesta=bolsa*fraccion
apuesta=int(apuesta)
if moneda=="cruz":
bolsa=bolsa+apuesta
else:
bolsa=bolsa-apuesta
if bolsa>mejorbolsa:
mejorbolsa=bolsa
mejorfraccion=fraccion
mejoresfracciones.append(mejorfraccion)
valortotal=0.00
for valor in mejoresfracciones:
valortotal=valortotal+valor
mediamejorfraccion=valortotal/len(mejoresfracciones)
print('Fraccion F de Kelly aproximada:')
print (mediamejorfraccion)
Este programita, tardara 5 minutos en ejecutarse y os va a dar un numero aproximado a 0.33, cada vez diferente pero entre 0.32 y 0.34
No se si queda claro a donde quiero llegar con todo esto? Pero algunos os dareis cuenta espero, me puede servir para valorar correctamente opciones sin saber la formula B&S, me puede servir para hacer estudios estadisticos sin saber de estadistica, en fin para muchisimas cosas relaccionadas con el trading y la inversion, y que me pueden ayudar mucho. Incluso a descubrir resultados de formulas nunca enunciadas ni enunciables que no existen aun.