.Experimentos aleatorios en hojas de Excel.

El foro de los productos derivados
Avatar de Usuario
Tom
Mensajes: 2421
Registrado: 12 Feb 2005 10:23
Ubicación: Madrid

Mensaje por Tom »

El estudio es interesante.
Pero vayamos por partes.
1º Para aquellos que tengan dificultades con los Complementos y las Herramientas de Análisis, pueden utilizar una fórmula equivalente que funciona perfectamente con Excell sin instalar nada nuevo y da los mismos resultados.
=ALEATORIO()*(B2-A2)+A2
Imagen
No estoy muy seguro de haber entendido para que sirve esa fórmula y esa hoja pero, al menos, tenemos una posible dificultad resuelta.
Seguiremos tratando de entender y resolver. :D
Un saludo
Tom
Adjuntos
thinktwice3.JPG
thinktwice3.JPG (50.62 KiB) Visto 924 veces
----- Para que tu y yo ganemos dinero no habrían creado un mercado. ------
Avatar de Usuario
Tom
Mensajes: 2421
Registrado: 12 Feb 2005 10:23
Ubicación: Madrid

Puestos a hacer experimentos aleatorios.

Mensaje por Tom »

Imagen
Ya que nos hemos puesto a hacer experimentoas aleatorios me he acordado de un experimento que propone Jorge del Canto en uno de sus cursos.
Me parece justo citar la fuente pero lo presento aquí fuera de contexto y nadie debería sacar conclusiones respecto a la validez del curso y su contenido.
En cualquier caso es tema es muy antiguo pero no creo que haya perdido actualidad.

El experimento consiste en llamar a tu broker antes de la apertura del mercado y darle la orden de abrir posición al precio de apertura con Stop de 20 puntos y objetivo de 60 puntos.
Si el broker es suficientemente bueno debería ejecutar las órdenes que corresponda, cancelar la no ejecutada y bastaría con una llamada al dia para hacer el experimento. Debería ser tambien lo suficientemente bueno para cerrar la posición al cierre, en el caso de que durante la sesión no se hayan dado los límites previstos. El experimento en este caso es intradiario.
No hace falta tiempo real ni más dedicación o vigilancia.

Previamente habremos lanzado una moneda al aire para decidir si la orden de abrir es de Compra o de Venta.

Simulando con Excell una serie aleatoria con 50% de probabilidad, he aplicado la serie al mes de Agosto y esos son los resultados.

No se me ocurre la forma de hacer con facilidad varias o muchas simulaciones en Excell pero seguro que a alguien se le ocurre algo mejor.

En este caso el experimento ha sido positivo.
La máxima perdida y el Draw Down de 400 euros es razonable con respecto al beneficio.
También parece razonable que el número de operaciones perdedoras sea mayor que el de operaciones ganadoras. Es lógico admitir que hay más probabilidades de alcanzar un menos 20, antes de alcanzar un más sesenta.
La pregunta del millón es ¿Podríamos dar por sentado que sería rentable aplicar el sistema?
Un saludo
Tom
Adjuntos
Aleatorio.JPG
Aleatorio.JPG (75.34 KiB) Visto 1039 veces
----- Para que tu y yo ganemos dinero no habrían creado un mercado. ------
Avatar de Usuario
hammer
Mensajes: 675
Registrado: 12 Jul 2005 02:00

Mensaje por hammer »

Holas,

Pues va a ser que no, porque la mayoría de las veces, antes de llegar al objetivo, el precio habría visitado el stop.

Saludos.
Avatar de Usuario
Tom
Mensajes: 2421
Registrado: 12 Feb 2005 10:23
Ubicación: Madrid

Mensaje por Tom »

hammer escribió:Holas,

Pues va a ser que no, porque la mayoría de las veces, antes de llegar al objetivo, el precio habría visitado el stop.

Saludos.
Ese es un sentimiento muy generalizado.
Todos estaremos de acuerdo en que para mantener las probabilidades del 50% habría que igualar Stops y Objetivos.
También estaremos todos de acuerdo en que hay más probabilidades de que se mueva -20 antes de que se mueva +60 y que hay menos probabilidades de que se mueva +60 antes de que se mueva -20.
Pero falta la demostración empírica.
Y especialmente falta la cuantificación.
Después aun faltarían muchas cosas más de tipo Money Managment, ajuste de factor R, etc. etc.

Ya digo que en este caso el experimento ha sido positivo, dando por sentado que habrá otros casos.
No deja de ser un experimento o juego matemático.
En todo caso me parece ilustrativo y digno de mención.
----- Para que tu y yo ganemos dinero no habrían creado un mercado. ------
JuanP
Mensajes: 40
Registrado: 21 Jul 2006 13:32
Ubicación: Madrid

Mensaje por JuanP »

La probabilidad de alcanzar el stop es del 75%, frente a un 25% de alcanzar el objetivo. Y esto ocurre (en media) indistintamente de que sean todo compras, todo ventas o cualquier combinación aleatoria de compras y ventas.

Esto puede verificarse fácilmente haciendo la simulación correspondiente para un periodo largo. En la hoja de Excel (una sola L) que has mostrado no se verifica esto y eso es porque la elección de compras y ventas, que se supone que ha sido al azar, ha sido muy afortunada. Evidentemente, si haces suficientes hojas como esa, con diferentes compras y ventas al azar, es probable que alguna incluso gane todos los días. Pero en media, la esperanza es la que he dicho, 25% objetivo, 75% stop (para el caso de 60 y 20 puntos, respectivamente).

Lo considero interesante, ya que cualquier desviación de las probabilidades citadas supone una oportunidad de ganar dinero. Por desgracia tal desviación no se ha dado, al menos en las pruebas que he hecho yo.

Un saludo!
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Buscar los 60 puntos respecto al minimo no creo que este mal

Mensaje por Mikelon »

Esta es la grafica de la diferencia entre el maximo y el minimo en el futuro del Ibex en puntos, y los casos en los que se ha comprobado
desde el 1 de enero del 2004 hasta hace 2 semanas.

Vemos como la mayor concentración esta en torno a los 60-80
puntos.

Lo que nos dice esta grafica es que si uno es un trader intradiario pero
solo toma una posicion diaria,
y esta en una posicion donde esta ganando, y supongamos que compro
a 20 puntos del minimo intradiario; y por ahora esta ganando 40 puntos
... lo mejor es vender.

¿Por que?

Como se ve en la grafica ... la probabilidad de ganar más de 60 puntos
si se compro en el minimo del dia
en la posicion son de 488 casos entre los 667 totales (73%)

Si aspiramos a ganar más de 80 puntos
la probabilidad de ganarlos son 311 de los 677(45%)

Si sabemos que el minimo del dia ya ha sucedido y vamos con ordenes
limitadas ...
tenemos una ganancia media con ordenes limitadas de 60 puntos
de:
60 * (0,73) = 43,8
y
respecto a ordenes limitadas basadas en los 80 puntos de:
80 * (0,45) = 36.

Esto esta claro.

Mayores frecuencias y menores disgustos cuando se espera que el
maximo del dia esta a 60 puntos del minimo que con 80.

Ahora veamos con 100 y 120.

Con 100: (197/667) * 100 = 29

Con 120: (109/667)*120 = 19

En ordenes limitadas y sin saber nada mas...
por que supongamos que no sabemos nada del rango
del dia de trading actual, si vamos a buscar los maximos
hay mejores probabilidades a 60 puntos del minimo
que a 80,100,120.

Y con 40?

(642/667)*40= 38

Un poco mejor que 80 pero menos que 60.

Si uno quiere poner ordenes limitadas y quiere pillar la mejor ganancia
estadistica respecto al minimo del dia .... 60 puntos mejor que
40,80,100 y 120.
Adjuntos
Diferencias entre maximos y minimos.
Diferencias entre maximos y minimos.
popuntos.JPG (24.57 KiB) Visto 1035 veces
JuanP
Mensajes: 40
Registrado: 21 Jul 2006 13:32
Ubicación: Madrid

Mensaje por JuanP »

Claro, pero hay dos consideraciones importantes:

a) No podemos saber nunca si el mínimo del día ya ha sucedido.

b) Incluso aunque lo supiéramos, no podemos saber si el máximo del día es posterior al mínimo. Esos 60 puntos que dices se encuentran entre el mínimo y el máximo, no tras el mínimo. A veces habría que ganarlos entrando largo tras el mínimo, pero otras veces habría que ganarlos entrando corto tras el máximo.

Por tanto, no le veo ninguna utilidad práctica. Corrígeme si me equivoco.
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Mensaje por Mikelon »

Esta claro lo que dices,
la utilidad estadistica que le encuentro es que si buscamos
entrar en el minimo del dia para vender en el maximo del dia,
el caso ideal....
pues sinceramente creo que en ese caso "casual" en que
compramos en el minimo del dia es mejor ir a por los 60
puntos que a por los 80 con ordenes limitadas.
Solo eso.

Igual me estoy equivocando y estoy utilizando la falacia del
jugador y no seria la primera vez.
Avatar de Usuario
MARTING
Mensajes: 369
Registrado: 14 Jun 2005 05:21

Mensaje por MARTING »

Hola Mikelon !

Muy buen estudio, me surge alguna duda ¿ desde cuando has hecho esa estadística ?, si la has hecho desde algun periodo en el que el ibex estuviera muy por debajo de los niveles actuales que seguro que sí, quizas seria mejor hacerlo en porcentaje y no en puntos para intentar hacer un promedio aun mas objetivo.

Aun así haciendolo en porcentaje seguiria siendo ( desde mi punto de vista ) poco util para inlcuirlo como parametro a un sistema en la fecha actual, el motivo es porque ese porcentaje puede variar en funcion de la volatilidad que haya en el ultimo/os periodo/s.

Probablemente con algun indicador de volatilidad como el ATR se podria hacer algun estudio de este tipo para luego determinar stops u objetivos.

La otra pregunta es ¿ porque intentar buscar el minimo ?.
En la mayoria de los estudios que he hecho ( al menos en mi caso ) en el 80% de las ocasiones siempre fue mas rentable comprar caro para vender mas caro y vender basrato para comprar mas barato aun, de esta forma no entraras en el minimo del dia , pero aseguraras que cuando se den dias generosos te lleves los tramos amplios que da la tendencia.

De todas formas es muy interesante el estudio para tener una orientacion en funcion a la distribucion histórica de rangos.

Gracias por editarlo !!
Siempre escribes cosas interesantes ;-)

Un saludin

MartinG
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Mensaje por Mikelon »

Del año 2004 hasta hace 1 mes.

667 dias.

La verdad es que no he hecho ningun otro estudio;
no se si el rango de hoy es dependiente del rango del dia anterior o
de las anteriores.

Una de las cosas que te das cuenta, es que si tomas la posicion
mala es muy complicado que te salten un stop loss de 160 puntos.

Concretamente el 5% de los dias en el que estas realmente desacertado
(Creias que comprabas a buen precio pero fue el maximo del dia!)

Os paso el codigo de Visual Chart:

Const Data As Long = 0
Const Fichero_Log As String = "max_min.txt"
Const Hora_Inicio_Dia As Long = 905
Const Hora_Fin_Dia As Long = 1730
Const Dia_Inicio As Long = 20000101
Const Dia_Fin As Long = 20061212
Dim Numero_Elementos As Long
Dim Fecha As Date
Dim Abierto As Boolean
Dim FSO, Linea
Dim Total As Long
Dim Suma_Cuadrados As Long
Dim Media As Long
Dim Elementos_Intervalo As Long
Dim Desv_Tipica As Long
Dim Dia_Anterior As Long


Public APP As SysUserApp
Implements System

Public Sub System_OnInitCalculate()
Set FSO = CreateObject("Scripting.FilesystemObject")
Set Linea = FSO.CreateTextFile("c:\" & Fichero_Log)
Total = 0
Numero_Elementos = 0
Suma_Cuadrados = 0
Media = 109
Elementos_Intervalo = 0
Desv_Tipica = 57

escribir ("empieza la simulacion")

With APP
End With
End Sub

Public Sub System_OnCalculateBar(ByVal Bar As Long)




With APP


If .Date > Dia_Inicio And .Date < Dia_Fin Then
Dim Rango
Rango = .High - .Low
escribir ("Rango=" & Rango & " Fecha=" & .Date)
Numero_Elementos = Numero_Elementos + 1
Total = Total + Rango
Suma_Cuadrados = Suma_Cuadrados + (Rango - Media) ^ 2
'escribir (Rango & "desv= " & Desv_Tipica & "media= " & Media)
If ((Rango <20>= 40)) Then
Elementos_Intervalo = Elementos_Intervalo + 1
escribir (.Date)
Dia_Anterior = .Date
End If

End If




End With
End Sub

Public Sub System_OnSetParameters(ParamArray ParamList() As Variant)
'¡¡ Parameters initialization
'Parameters initialization !!
End Sub

Public Sub System_OnCalculateRange(ByVal StartBar As Long, ByVal FinalBar As Long)
Dim i As Long
i = APP.StartBar
If StartBar > i Then
i = StartBar
End If
While Not APP.ShouldTerminate And i <= FinalBar
APP.CurrentBar = i
System_OnCalculateBar i
i = i + 1
Wend

escribir ("total =" & Total)
escribir ("numero elementos = " & Numero_Elementos)
escribir ("suma cuadrados = " & Suma_Cuadrados)
escribir ("elementos intervalo = " & Elementos_Intervalo)

cerrar

End Sub
Private Sub SysUserAppInstance_OnConnection(ByVal Application As SysUserApp, ByVal MTDllInst As Object, Custom() As Variant)
Set APP = Application
End Sub

Public Sub escribir(S1 As String)
Linea.WriteLine (S1)
'Linea.Close

End Sub

Public Sub cerrar()
Linea.Close
End Sub


Te creara el fichero max_min.txt; en el directorio c:\


La variable Elementos_Intervalo almacena el numero de elementos
que cumplen el rango, en ese caso entre 20 y 40.

Numero_Elementos contiene el numero de elementos de la muestra

-------------

Un saludo MartinG; tus estudios tambien van encaminados a lo que yo
hago pero los tuyos son mejores ;-)
Avatar de Usuario
hammer
Mensajes: 675
Registrado: 12 Jul 2005 02:00

Mensaje por hammer »

Mikelon escribió: If ((Rango <20>= 40)) Then
Elementos_Intervalo = Elementos_Intervalo + 1
escribir (.Date)
Dia_Anterior = .Date
End If
Hola Mikelon,

Supongo que se tratará de un error de copiado, pero el código de dentro del if-endif nunca se puede ejecutar porque no es correcta la expresión.

Debería ser algo así como:

Código: Seleccionar todo

if (Rango >= 20 And Rango <= 40) Then
Saludos.
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Mensaje por Mikelon »

Si, el codigo se me ha cambiado cuando he hecho el Control V.
Lo importante es que con el Visual Basic podemos tomar estadisticas
de lo que deseemos.
Avatar de Usuario
X-Trader
Administrador
Mensajes: 13160
Registrado: 06 Sep 2004 10:18
Contactar:

Mensaje por X-Trader »

Muy buena idea esta de realizar estadísticas con el Visual, yo hasta ahora las hacía con Excel o con SPSS. No estaría de más hacer un artículo sobre ello, si os animais... 8)

Un saludo
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Surya
Mensajes: 144
Registrado: 09 Jul 2006 21:22

Mensaje por Surya »

Parece ser que Mikelon está empezando a comprender el fondo de la cuestión ahora tan sólo le falta desarrollar la estrategia adecuada para manejar esos datos a su favor.

El otro día había aquí alguien que se enrollaba sobre estrategia militar de la Wermacht y que en sus expresiones intuí que él también había conseguido desarrollar una estrategía similarmente apropiada para enfrentarse al mercado (similar a la de T.T. o a la mía).

Y tal estrategia no puede depender del análisis técnico por que para lo que este sirve es para convocar el cardumen para que sea fagocitado con más facilidad por los peces gordos. Ni es útil la gestión adecuada del dinero, por que cuando se tiene una estrategia perdedora como la que tiene la mayoría el money managament para lo único que sirve es para perder más lentamente el dinero.

El único secreto reside en saber convertir a todas las posiciones perdedoras ¿50 %? en ganadoras. Cuando se sabe como hacerlo el Santo Grial queda descubierto.

Como cantaba Parsifal:

"Siempre estuvo (el Santo Grial) delante de nuestros ojos, pero no supimos verlo por que estabamos obnibulados"

La obnibulación en trading se llama "cultura financiera popular" que es eso de lo que la mayoría se ha saturado leyendo libros comprados en Amazon.

El conseguir un 80 % de entradas ganadoras y con tan sólo un 10 % de perdedoras en cualquier activo está a la vuelta de la esquina para Mikelon si sigue por este camino de investigación y se le enciende la lucecita.

Sabiendo como hacerlo conseguir el 200-400 % anual de beneficios está facílisimo y sin apenas riesgos.

Era por ahí por donde iba Think Twice hasta que le cortasteis el rollo y por donde supongo que iba también el estudioso de la Wermacht del otro día aunque no dijo como hacerlo. (Aquí nadie dice como hacer nada y se conforman con explayarse en teorías generales, dicho sea de paso).

Creo que ese forero recomendaba estudiar un libro titulado "Desarrollo de la Defensa en Erizo" de Guderian (él daba el nombre de otro general), supongo que ese libro estará publicado en alemán y que se podrá encontrar en las librerias anticuarias alemanas, aunque para encontrarlo debe de estar un poco difícil.
Avatar de Usuario
Mikelon
Mensajes: 1152
Registrado: 27 Sep 2005 16:17

Mensaje por Mikelon »

X-Trader
las estadisticas no me suponen ningun coste
y ademas me lo paso bien, asi que voy a hacerlo siempre que pueda.
Creo que en este foro hay gente que sabe mas en profundidad
como se comporta todo...
pero simplemente no quieren escribirlo por pereza o por que
ganan mas sin difundirlo.
Yo por ahora no tengo ningun sistema que bata al mercado.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Futuros y Opciones”