Acceder

Análisis técnico: ¿alguien reconoce algún patrón característico?

15 respuestas
Análisis técnico: ¿alguien reconoce algún patrón característico?
Análisis técnico: ¿alguien reconoce algún patrón característico?
Página
1 / 2
#1

Análisis técnico: ¿alguien reconoce algún patrón característico?

Para los amantes del análisis técnico; aquí van 3 gráficos. Representan 1000 sesiones (no aparecen las fechas reales). En lugar de cotizaciones reales, aparecen como % respecto a la primera sesión.

Ejemplo 1
Ejemplo 1

Ejemplo 2
Ejemplo 2

Ejemplo 3
Ejemplo 3

Como os figuraréis, hay alguna trampa, pero...
¿Alguien reconoce algún patrón de análisis técnico en alguna de las figuras?. Teniendo en cuenta esto, ¿alguien se anima a decir como se va a comportar la cotización después?

Respuesta de qué estamos viendo, y como se comportaron en las siguientes 1000 sesiones, en un par de días.
#2

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

son graficos aleatorios, generados por computador, se nota a leguas la trampa
#3

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Al menos camuflalo con velas, y ponle un ticker y lo haces mas creible.

Ademas busca a gente mas novata.

Hay formas de diferenciar graficos aleatorios de los reales. Los que odian el AT y nos quieren hacer ver como idiotas no tienen razon en todo, en gran parte si, pero no en todo
#4

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

 No pretendo engañar a nadie, por eso no lo camuflo, ni le pongo ticker falso, ni pongo gráfico de velas, y además, ya había avisado de que “hay alguna trampa”. Enhorabuena por tu agudeza, de todas formas.

No me cabe ninguna duda de que los grandes expertos lo veáis a la legua. A la gente normal como yo, nos puede parecer curioso como, por caprichos del azar y sin ningún motivo especial ,puedan aparecer trazados que se asemejen a canales alcistas, o que aparezcan de pronto grandes subidas o grandes bajadas que, intuitivamente, parecerían improbables en un patrón aleatorio pero que, en realidad, son más frecuentes de lo que esperaríamos.

Luego subiré el código por si alguien quiere experimentar con él y contaré alguna cosa que me ha llamado la atención trasteando…
#5

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Los graficos, muestran el comportamiento humano de la masa.

Las masas ni los humanos nos comportamos de manera aleatoria. Yo creo que ni siquiera tenemos libre albedrio.

El grafico es una suerte de electrocardiograma del sentimiento de la masa.

Los analistas tecnicos tratamos de interpretar ese electrocardiograma.
#6

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Para hacerlo como experimento, hubiera sido mejor que lo camufles y no pongas "hay una trampa", quizas hasta me engañabas, pero hay pequeños detalles que no cuadran para el ojo entrenado, pequeños detalles como que no veo falsos breaks en contra de tendencia principal, volatilidad rara en algunos momentos, y como no parecen graficos de ningun mercado de futuros o forex solo podrian ser a acciones, y no logro distinguir donde estan las sorpresas negativas y positivas por earnings, etc.

Se parecen mucho a los graficos daily y 4h, por eso lo he sacado, porque trabajo mas en ellos.
No se parace nada a otros timeframes, por lo que para motivos del experimento, tambien podrias hacer un algoritmo que simule timeframes micros , pequeñas, medias y largas, no todas se comportan igual
#7

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Esos graficos aleatorios si tienen utilidad,

Su utilidad es testear sistemas automaticos (bots), el bot tiene que ser capaz de ganar mucho mas en el mercado real que en el mercado aleatorio, si es igual, casi igual o menos, el bot no sirve. Asi gane dinero
#8

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Pues, a mí, sí que me parece un experimento interesante.
Lo que también me gustaría saber es cuántos gráficos aleatorios sacaste antes de seleccionar estos tres que parecen "tendenciales".
Un saludo.
#9

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Muy buena pregunta, Franchico. Esta tarde subire el codigo (esta mañana toca trabajo), pero la seleccion de figuras no está nada sesgada; se trata de las primeras ejecuciones usando las semillas aleatorias 1, 2 y 3. Lo de las semillas, luego lo explicare un poco mas, es una forma de garantizar que en distintas ejecuciones el generador aleatorio se va a comportar siempre igual y mostrara, siempre que se ejecute el mismo codigo, el mismo resultado. Precisamente se suele usar para demostrar la reproductibilidad.
#10

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Aquí va el código (Python). La forma más sencilla de usarlo, para los que no estéis familiarizados, es abrir un cuaderno de Google Colab, pegar y ejecutar ahí mismo.
Google colab se puede usar gratuitamente, simplemente basta con tener cuenta de Google / gmail.
Una vez dentro, hay que abrir nuevo cuaderno, pegar el texto del código en la primera celda del cuaderno y, una vez  hecho esto, pulsar MAYUSCULAS+Retorno para ejecutar el código.
#11

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

 
import numpy as np
import matplotlib.pyplot as plt

############################################
#  PARAMETROS AJUSTABLES
#
# sigma: desviacion estandard del cambio diario (%)

sigma = 1

# rentab_anual:  rentabilidad anual (descontando efecto del ruido) (% respecto valor inicial;
# 100% implicaría mantener el valor, 50% reducir a la mitad, 200% duplicar)
rentab_anual = 100

# seed (semilla del generador aleatorio) (opcional): fuerza a que siempre que
# se introduzcan los mismos parámetros, se obtenga el mismo resultado
seed = None

# numero de sesiones a mostrar en la grafica
sesiones = 1000
#################################################

factor_sigma = np.log(1+sigma/100)
alpha = np.log(rentab_anual/100) / 365

#creacion de datos
np.random.seed(seed)
datos = np.random.randn(sesiones)*factor_sigma + alpha
datos = np.exp(datos)
datos = datos.cumprod()

# reinicio y creacion del grafico
plt.clf()
plt.plot(datos) 
#12

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Teniendo el código disponible, podéis ejecutarlo cuantas veces queráis, y en cada ejecución mostrará una gráfica aleatoria diferente. Veréis que es muy común, casi la norma, que se observen movimientos aleatorios importantes, por lo que los que seáis partidarios del análisis técnico, tenéis que tener claro que no necesariamente tiene que haber un motivo detrás de estos sucesos.
En un primer momento, configuré el generador de datos para que, en cada sesión, multiplicara el valor previo (la supuesta "cotización") por 1 +/- una pequeña variabilidad aleatoria que seguiría una distribución normal. Sin embargo, esto hacía que los datos tuvieran cierta tendencia a descender. Sin entrar en detalle, el motivo por el que ocurría esto era porque, en una sucesión de estas características, tienen más peso los descensos que los ascensos (por ejemplo, con ese método, una subida del 5% en una sesión y descenso del 5% en la siguiente sería equivalente a multiplicar 1.05 * 0.95, que no daría 1, sino 0.9975; con oscilaciones más grandes, el efecto aumenta; ej 1.2 * 0.8 = 0.96, etc. Al final, por ese motivo he usado una transformación logaritmica en la que el efecto sería neutro.


Pero lo más interesante, he destacado una serie de parámetros configurables. Para modificarlos, basta con cambiar el valor inicial que aparece en el recuadro de parámetros.
- sigma (línea 9): permite ajusta la volatilidad. Indicaría, en tantos por cien, el margen de oscilación que se esperaría en aproximadamente el 67% de las sesiones (1 desv estandard). Con 1 (valor por defecto), el 67% de las sesiones cambiarían en un rango entre -1% y +1%.
- rentab_anual (línea 11): indica el % del valor final esperable (sin contar la variación aleatoria) respecto al inicial. Vendría a representar algo así como el alfa de la acción. El valor por defecto es el 100%, con lo que, si se elimina la variabilidad (sigma=0), obtendremos una línea plana. Si se usan valores altos de rentab (ej: 300), obtendremos una curva exponencial (si se ajusta a 365 sesiones, y sin ruido - alfa=0 -, el valor final quedaría exactamente en 300).
- seed: lo que comentaba de las semillas. Por defecto, sin semilla (seed=None), por lo que cada ejecución será diferente. Manteniendo el resto de parámetros como vienen inicialmente, si usamos los valores de semilla 1, 2 y 3 obtendremos, necesariamente, las figuras 1, 2 y 3 (quizás esto pueda cambiar si se usan versiones diferentes de Python o de sus módulos, pero con Google colab a fecha de hoy obtendreis esta figura). (para cambiar los valores: seed = 1, seed = 2, etc).
- sesiones: como os imagináis y se describe, indica cuantas sesiones aparecerán en el gráfico.

Se que puede parecer un poco engorroso y no apetecer hacer la prueba, pero seguro que si seguís las instrucciones delante del pc, en menos de 5 minutos ya estaréis habiendo vuestras pruebas.

Si os animáis a trastear con el, me gustaría que comentarais vuestras conclusiones.
#13

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Lo he ejecutado, y lo que me sorprende son esas "rachas tendenciales" tan marcadas que se producen. Y, sobre todo, que el valor acumulado final termine tan lejos del inicial.
¿Con el lanzamiento de una moneda al aire sucedería lo mismo?
#14

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Sí, de hecho es más fácil de simular. La diferencia es que, a la hora de representarlo, en lugar de que en cada sesión suba o baje una cantidad variable, en cada tirada sube o baja siempre una unidad.
En principio, con el siguiente código, partiendo de 0, la gráfica se desplazaría en una unidad hacia arriba o hacia abajo según el resultado fuera cara o cruz.
Adjunto codigo y resultado con seed=1
 
cara o cruz, seed=1
cara o cruz, seed=1
 

########
import numpy as np
import matplotlib.pyplot as plt

sesiones = 100
seed = None

np.random.seed(seed)
datos = np.random.choice([-1,1], sesiones)
datos[0]=0
plt.clf()
plt.plot( datos.cumsum() )
plt.show() 


#15

Re: Análisis técnico: ¿alguien reconoce algún patrón característico?

Con esta variante del código, puedes ver al mismo tiempo varias curvas, superpuestas.
Las líneas largas en diagonal representan rachas en las que siempre aparece el mismo resultado, ya sea cara o cruz (ej: subir podria ser cara, bajar cruz, o al revés, vendría a ser lo mismo). Las salvas de varias veces con cara o varias veces con cruz son más comunes de lo que creemos.
 
5 series de 100 lanzamientos de moneda, seed=1
5 series de 100 lanzamientos de moneda, seed=1
 

#######
import numpy as np
import matplotlib.pyplot as plt

sesiones = 100
seed = None
curvas=5

np.random.seed(seed)

plt.clf()
for i in range(curvas):
  datos = np.random.choice([-1,1], sesiones)
  datos[0]=0
  plt.plot( datos.cumsum() ) 
plt.show()
#####

En algún lugar leí (¿creo que en alguno de los libros de Taleb?), refiriéndose a este fenómeno, que los programadores de videojuegos habían observado que la aparición de este tipo de rachas provocaban enfado en los jugadores, que solían pensar que el videojuego estaba mal programado. Para evitar este malestar, muchas veces cambiaban generadores aleatorios por otra serie de generadores, ya no aleatorios, en los que se intentaba evitar que aparecieran este tipo de rachas.