Random

Avatar de Usuario
Rafa7
Mensajes: 4811
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Random

Mensaje por Rafa7 »

X-Trader,


Supongo que el código que me has compartido lo has copiado de la siguiente página web:

Un simple generador de números aleatorios.

El código está escrito en Pascal.
Pero lo extraño es que la variable "a" no se usa para nada. ¿Por qué la define?
La Int() es una función parte entera.

Los displays del código son:
7
8
6
2
4
8
6
2
4
...
...
...

Es decir números pseudoaleatorios de un dígito.

Yo necesito 4 dígitos.
Bueno, es un punto de partida.
Pero, como te he dicho, no entiendo porque define la variable "a".

Y, sea cual sea el algoritmo, necesito una semilla que sea aleatoria. En el código que nos has compartido, la semilla es 0,1, la cual no es aleatoria.

X-Trader, lo que busco no es lo que propones pero no se aleja mucho de lo que propones.
Por ahí va la cosa.

Otra cosa que no entiendo porque elige 147. ¿Tiene alguna propiedad especial el número 147?
147 ni es primo, ni es número de Fibonacci, ... ¿Qué tiene de especial 147 para usarlo para generar números aleatorios?



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10977
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Random

Mensaje por X-Trader »

Rafa7 escribió:
18 Abr 2018 11:35
X-Trader,


Supongo que el código que me has compartido lo has copiado de la siguiente página web:

Un simple generador de números aleatorios.

El código está escrito en Pascal.
Pero lo extraño es que la variable "a" no se usa para nada. ¿Por qué la define?
La Int() es una función parte entera.

Los displays del código son:
7
8
6
2
4
8
6
2
4
...
...
...

Es decir números pseudoaleatorios de un dígito.

Yo necesito 4 dígitos.
Bueno, es un punto de partida.
Pero, como te he dicho, no entiendo porque define la variable "a".

Y, sea cual sea el algoritmo, necesito una semilla que sea aleatoria. En el código que nos has compartido, la semilla es 0,1, la cual no es aleatoria.

X-Trader, lo que busco no es lo que propones pero no se aleja mucho de lo que propones.
Por ahí va la cosa.

Otra cosa que no entiendo porque elige 147. ¿Tiene alguna propiedad especial el número 147?
147 ni es primo, ni es número de Fibonacci, ... ¿Qué tiene de especial 147 para usarlo para generar números aleatorios?



Saludos.
En efecto lo he sacado de ahí. La "a" está claro que sobra.

Lo del 147 no es por nada en particular, es un punto de partida como otro cualquiera.

Y si necesitas obtener decimales simplemente no multipliques por 10 (elimina showmessage(Floattostr(X * 10));)

De todos modos te he hecho una simulación en Excel, a ver qué te parece.

Saludos,
X-Trader
Adjuntos
PseudoAleatorio.xlsx
(11.86 KiB) Descargado 74 veces
"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."

Rango Starr
Mensajes: 3614
Registrado: 22 Dic 2014 10:49

Re: Random

Mensaje por Rango Starr »

Rafa ,

vas por buen camino...

sumale a los 86400 segundos que tiene un dia, el dia del mes, el mes multiplicado por 40, y el año.
con ello, tendras una secuencia unica.

coge un numero primo, multiplicalo por un numero de base diez que te lo acerque a 100.000, y dividelo por la suma de los numeros anteriores ( 86400 +d +m*40+año).

como es un numero primo, te dara un decimal con una buena ristra de numeros detras de la coma..... quitale la parte entera y los primeros decimales, (eso te lo dejo a ti, si no te aclaras lo explico), luego, la parte decimal que te quede, multiplicala por 10000, y coge la parte entera... ya tendras tu pseudo-aleatorio, de secuencia unica. es reproducible, pero puesto que cada divisor es diferente del resto, no existira una secuencia que se te repita. Como no se para que lo quieres pues la explicacion es un poco a burro barra...

Saludos!

EDITO.- Se me habia olvidado comentar que si la secuencia de generacion de los numeros del divisor, es menor de 1 segundo, los numeros se te repetiran asi, que o bien mediante un bucle de gasto de tiempo, o bien sumandole en la serie de iteraciones -1 al numero del divisor, en cada iteracion, entonces te genera una secuencia pseudoaleatoria, que en este caso, ya no sera unica, pero sera de repeticion testimonial...
Última edición por Rango Starr el 18 Abr 2018 13:47, editado 1 vez en total.

Avatar de Usuario
Rafa7
Mensajes: 4811
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Random

Mensaje por Rafa7 »

Gracias, X-Trader.



El Excel que has aportado me parece tiene un poco de lío. En un lugar usas 0,1 y en otro 0,01. Lo que no sé es si lo haces expresamente o si es una errata. ¿La intención es usar 0,1 o es usar 0,01? ¿o expresamente usas 0,1 y 0,01?

Cuando tenga tiempo le doy unas vueltas al Excel que has aportado.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
Rafa7
Mensajes: 4811
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Random

Mensaje por Rafa7 »

Rango Starr escribió:
18 Abr 2018 13:10
Rafa ,

vas por buen camino...

sumale a los 86400 segundos que tiene un dia, el dia del mes, el mes multiplicado por 40, y el año.
con ello, tendras una secuencia unica.

coge un numero primo, multiplicalo por un numero de base diez que te lo acerque a 100.000, y dividelo por la suma de los numeros anteriores ( 86400 +d +m*40+año).

como es un numero primo, te dara un decimal con una buena ristra de numeros detras de la coma..... quitale la parte entera y los primeros decimales, (eso te lo dejo a ti, si no te aclaras lo explico), luego, la parte decimal que te quede, multiplicala por 10000, y coge la parte entera... ya tendras tu pseudo-aleatorio, de secuencia unica. es reproducible, pero puesto que cada divisor es diferente del resto, no existira una secuencia que se te repita. Como no se para que lo quieres pues la explicacion es un poco a burro barra...

Saludos!

EDITO.- Se me habia olvidado comentar que si la secuencia de generacion de los numeros del divisor, es menor de 1 segundo, los numeros se te repetiran asi, que o bien mediante un bucle de gasto de tiempo, o bien sumandole en la serie de iteraciones -1 al numero del divisor, en cada iteracion, entonces te genera una secuencia pseudoaleatoria, que en este caso, ya no sera unica, pero sera de repeticion testimonial...
Gracias, Rango.



Por encima esta interesante tu aporte.
Pero ahora no tengo tiempo digerirlo.

Me llama la atención lo del 40. ¿No sería mejor 30 o 31? ¿Por qué 40?
Precisamente no quise a ir a dia del mes y año, porque no sabía que hacer, tomar 30, 31, 29, 28 ... Y al final desistí.

Ya volveré a leer tu aporte cuando tenga más tiempo.



Saludos.
Última edición por Rafa7 el 18 Abr 2018 14:54, editado 1 vez en total.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
X-Trader
Administrador
Mensajes: 10977
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Random

Mensaje por X-Trader »

Rafa7 escribió:
18 Abr 2018 13:16
Gracias, X-Trader.

El Excel que has aportado me parece tiene un poco de lío. En un lugar usas 0,1 y en otro 0,01. Lo que no sé es si lo haces expresamente o si es una errata. ¿La intención es usar 0,1 o es usar 0,01? ¿o expresamente usas 0,1 y 0,01?

Cuando tenga tiempo le doy unas vueltas al Excel que has aportado.

Saludos.
Era 0.01 en ambos lados pero vamos, que da un poco igual, puedes considerar 147 y 0.1 semillas y a partir de ahí variarlo usando 0.01. De todos modos te he actualizado el Excel para no liarse. La idea es al final es calcular la resta quitando la parte entera y sumar una cantidad pequeña, no tiene mayor historia y lo bueno es que el cálculo en términos computacionales apenas consume recursos.

Saludos,
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."

Rango Starr
Mensajes: 3614
Registrado: 22 Dic 2014 10:49

Re: Random

Mensaje por Rango Starr »

Rafa , lo de arriba, es para crear una secuencia unica continua....
mas sencillo, al time que calculas , sumarle o bien los ticks del activo , o bien los volumenes que se van generando del activo....

esa secuencia para cada dia sera unica. asi:

si son las 9 horas 20 minutos 30 segundos, cuando se pone en funcionamiento el algo, pues seria,
9*3600 + 20*60 + 30 = 33630,
que generamos un movimiento de 20 vol,
33630 +20 = 33650
que el siguiente es de 12 vol,
33650+12 = 33662

y asi, sucesivamente.

eso seria el denominador del generador de pseudoaleatorios. El resto, seria igual (numero primo*base 10/ por este numero).

asi:
147*1000/33630 = 4,371097234611954.....

lo multiplicamos por ejemplo por 10000,

4,371097234611954*10000 = 43710,97234611954

le quitamos la parte entera :

0 ,97234611954 , multiplicandolo de nuevo por 10000 (en tu caso quieres 10000 numeros ),

9723,4611954....

y nos quedamos con la parte entera: 9723 y asi con cada nuevo numero generado...

aqui, tendrias dos numeros que variaran... por un lado el time de ejecucion de la operacion, y por el otro , el sumatorio de volumenes de operacion.... puesto que ambos numeros varian con el tiempo,(siempre en sentido ascendente ambos) , para cada dia es seguro que no se generara un denominador identico, por lo que el cociente, no sera identico.... al quitar la parte entera y parte de los decimales, eliminas una secuenciacion de la division ya que conforme avanza el tiempo y el dia de contratacion, el cociente tiende a cero ( hay secuencia logica, por eso quitamos entero y parte de decimales)

respecto a lo de multiplicar por 40 el mes.....
lo he hecho para asegurarme que no coinciden numeros.. (no lo he calculado y como lo mismo nos da 30 que 40, ..) pero del 1,2,3,4,al 31, van todos esos asi que los otros que comiencen por 40...80...120....... :D , ya sabes que si en la serie tuvieramos 30 en dias y nos saliera un 30 en meses (30*1) .... tendriamos numeros repetidos en la secuencia, y la idea es huir de ello.

Saludos... (los ordenadores para generar los numeros aleatorios empleaban los ciclos de reloj interno, en un proceso muy parecido al que expongo....al menos eso era cierto para los primeros modelos)

editado.

Rango Starr
Mensajes: 3614
Registrado: 22 Dic 2014 10:49

Re: Random

Mensaje por Rango Starr »

....quieres otra forma?....

utiliza el coseno o el seno del volumen, y multiplicalo por 100000.... puesto que el volumen total que vamos marcando es aleatorio, y el seno y el coseno en absoluto van de 0 a 1, tendremos una secuencia aleatoria de calculo, basada en el volumen generado.... aqui el problema es hasta que numero se nos calculara el seno o el coseno..... porque si el volumen generado en el activo es mayor, que el valor maximo que nos coge el coseno o el seno, nos saltara error...

como ves se puede hace de muchas formas (logaritmos incluidos). El prorealtime es muy limitado, asi que los no limitados , nos toca ser a nosostros.... :D

saludos!

EDITO.- huelga decir que en este caso tambien hay que eliminar los primeros decimales....que si no se dice todo...

Avatar de Usuario
Rafa7
Mensajes: 4811
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Random

Mensaje por Rafa7 »

Rango Starr escribió:
18 Abr 2018 15:43
mas sencillo, al time que calculas , sumarle o bien los ticks del activo , o bien los volumenes que se van generando del activo....
Hola, Rango Starr.



Generar una series de números pseudoaleatorios es muy fácil puedes usar cualquier cosa, como por ejemplo, lo que mencionas (ticks, volúmenes, etc ...). Lo que es difícil (solo un poco difícil) es generar una serie de números pseudoaleatorios que tengan una distribución uniforme. En una distribución uniforme de números pseudoaleatorios entre cero y uno, la probabilidad de que el primer dígito sea 4, es la misma probabilidad de que el primer dígito sea 9, etc ... No sé si me explico. Si generamos números pseudoaleatorios con una distribución normal, por ejemplo, no me sirve, la serie de números pseudoaleatorios debe de tener una distribución homogénea.

Me temo que sumar ticks o volumenes, si sería "aleatorio" pero no tendría una distribución homogénea. Probablemente tienen otro tipo de distribución, por ejemplo, lognormal.

Hay que hilar muy fino porque aletoriedad no implica distribución uniforme. No me sirve cualquier tipo de aletoriedad, solo me sirve la uniforme, y además que tenga un periodo de ciclo suficientemente largo.



Saludos.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Rango Starr
Mensajes: 3614
Registrado: 22 Dic 2014 10:49

Re: Random

Mensaje por Rango Starr »

Rafa7 escribió:
18 Abr 2018 23:32
Rango Starr escribió:
18 Abr 2018 15:43
mas sencillo, al time que calculas , sumarle o bien los ticks del activo , o bien los volumenes que se van generando del activo....
Hola, Rango Starr.



Generar una series de números pseudoaleatorios es muy fácil puedes usar cualquier cosa, como por ejemplo, lo que mencionas (ticks, volúmenes, etc ...). Lo que es difícil (solo un poco difícil) es generar una serie de números pseudoaleatorios que tengan una distribución uniforme. En una distribución uniforme de números pseudoaleatorios entre cero y uno, la probabilidad de que el primer dígito sea 4, es la misma probabilidad de que el primer dígito sea 9, etc ... No sé si me explico. Si generamos números pseudoaleatorios con una distribución normal, por ejemplo, no me sirve, la serie de números pseudoaleatorios debe de tener una distribución homogénea.

Me temo que sumar ticks o volumenes, si sería "aleatorio" pero no tendría una distribución homogénea. Probablemente tienen otro tipo de distribución, por ejemplo, lognormal.

Hay que hilar muy fino porque aletoriedad no implica distribución uniforme. No me sirve cualquier tipo de aletoriedad, solo me sirve la uniforme, y además que tenga un periodo de ciclo suficientemente largo.



Saludos.

...y tu porque piensas que te digo que elimines de la division la parte entera y los cuatro primeros decimales, y luego cojas los 4 siguientes?....... quien dice los cuatro primeros dice los diez primeros.... por decimales sera...

coges un numero primo, lo multiplicas por una base 10 y luego lo divides por el la suma de volumenes..... que al ser cada una diferente, te asegura un cociente diferente..... pero no te aseguras que del 5º al 9º decimal, se pueda repetir un numero antes de 10000 iteraciones.....aunque sea improbable, y la distribucion, al coger los decimales tan alejados de las cifras con mayor peso del cociente, es cuasi aleatoria... no es aleatoria porque la generamos con un algoritmo y en un ordenador lo cual es determinista...

ah... y si ademas en vez de coger 4 digitos coges cinco, ya tienes cienmil posibles salidas.....

saludos

EDITO .. El problema que puede existir es la cantidad de decimales que guarde prorealtime....eso lo desconozco una calculadora como la del windows 10 creo que son 31 decimales mas un entero. o sea 32 digitos...

y otra cosa...un pero seria los cocientes del tipo 1,3333...., 2,3333333. y asimilados.. al coger solo los decimales mas alejados se te repetiran el 3333 , y otros como el varias veces... la solucion es que la parte entera este lo mas baja posible que tengas un 1,3333, un 2,3333 un 3,3333....... pero no un 2345,3333.... en senos y cosenos deberias estar entre 0 y 90. en la parte entera.... porque a partir de ahi se te repiten... pero esto supongo que ya lo sabes..

Avatar de Usuario
Rafa7
Mensajes: 4811
Registrado: 17 Dic 2009 21:36
Contactar:

Re: Random

Mensaje por Rafa7 »

X-Trader escribió:
18 Abr 2018 14:53
Rafa7 escribió:
18 Abr 2018 13:16
Gracias, X-Trader.

El Excel que has aportado me parece tiene un poco de lío. En un lugar usas 0,1 y en otro 0,01. Lo que no sé es si lo haces expresamente o si es una errata. ¿La intención es usar 0,1 o es usar 0,01? ¿o expresamente usas 0,1 y 0,01?

Cuando tenga tiempo le doy unas vueltas al Excel que has aportado.

Saludos.
Era 0.01 en ambos lados pero vamos, que da un poco igual, puedes considerar 147 y 0.1 semillas y a partir de ahí variarlo usando 0.01. De todos modos te he actualizado el Excel para no liarse. La idea es al final es calcular la resta quitando la parte entera y sumar una cantidad pequeña, no tiene mayor historia y lo bueno es que el cálculo en términos computacionales apenas consume recursos.

Saludos,
X-Trader
Gracias, X-Trader.


He modificado tu Excel, añadiendole dos hojas.

Te lo adjunto:

PseudoAleatorio.xlsx
(20.09 KiB) Descargado 76 veces

En la 1a hoja coincide con la hoja de tu Excel.
En la 2ª hoja pongo un código equivalente, que me permite prescindir de una columna. Da exactamente la misma serie que en la 1a hoja.
En la 3a hoja tomo como semilla el current time (1400 * ss + 24 * mm + hh), y como incremental 0,00000001, en lugar de 0,01, para obtener números aleatorios de 8 cifras.
La columna RANDOM sería la serie de números pseudoaleatorios de 8 cifras.

Como hh tiene 24 valores (del 0 al 23), ss y mm, se han de multiplicar por 24.
Como mm tiene 60 valiores (del 0 al 59), ss se ha de multiplicar por 60.
Por lo tanto ss se ha de multiplicar por 24 * 60, o sea por 1400.
De ahi sale 1400 * ss + 24 * mm + hh.

He supuesto, equivocada o acertádamente, no lo sé, que disminuyendo el incremental conseguimos series aleatorias de más dígitos. Me conformo con 8 dígitos, que es la precisión mínima de una calculadora (no recuerdo ninguna calculadora que yo haya tenido que tenga una precisión inferior).

El problema es saber si la serie de números que se genera con este algoritmo tendrá una distribución uniforme, y, en caso de que sea de ciclo periódico, si el período de ciclo es suficientemente largo.

¿Qué te parece?



Saludos.
Última edición por Rafa7 el 19 Abr 2018 15:04, editado 1 vez en total.
¡Jesús es el Rey de Reyes y el Señor de Señores!
https://loquepermanece.blogspot.com

Avatar de Usuario
mascara
Mensajes: 338
Registrado: 18 Oct 2007 23:15

Re: Random

Mensaje por mascara »

Hola,

Por si te sirve. He hecho un programa basándome en el código de una función que existe en el sistema con el que trabajo que da un número aleatorio. He copiado el código, quitando paja para dejarlo más simple y he hecho un programa que hace 100000 ejecuciones sacando números entre 0 y 10, y parece que los resultados siempre se distribuyen bastante bien entre todos los números posibles... tanto aumentando el rango de posibles valores o aumentando/disminuyendo el número de ejecuciones...
El algoritmo en sí no te lo sé explicar matemáticamente, porque no soy matemático y esas cosas se me escapan, pero creo que da buenos resultados, a menos que yo tenga algún error (cambiando el tipo de datos de ran_int y l_ran_int se puede hacer que funcione con resultados decimales...):

Código: Seleccionar todo

CONSTANTS
  lc_faktor TYPE p VALUE 86400. "= 24 * 60 * 60
DATA:
  lc_ran_a(4)  TYPE p  VALUE 67301,        "Multiplikator
  lc_ran_m(6)  TYPE p  VALUE 4294967296,   "Modulus 2**32
  lc_ran_c(1)  TYPE p  VALUE 01.           "Inkrement

*TYPE int4 significa que es un número entero...
*Rango de valores entre los que estará el resultado
DATA: ran_int_max TYPE int4 VALUE 10,
      ran_int_min TYPE int4 VALUE 0.

DATA: ran_int   TYPE int4. "TYPE p decimals 4. para hacerlo con números decimales...
DATA: l_ran_int TYPE int4. "TYPE p decimals 4. para hacerlo con números decimales...

*Si esto lo pongo como entero el WHILE se convierte en un bucle infinito!
*Supongo que porque al redondearse a entero deja de cumplir la condición del WHILE
data: l_ran_number TYPE p DECIMALS 4."int4.

DATA ran_seed TYPE p.

DO 100000 TIMES. "Voy a simular 100000 ejecuciones y recopilar el resultado en una tabla para ver si los resultados se distribuyen homogéneamente...

  l_ran_int = ran_int_min - 1.

*-- Der Bereich wird für die Berechnung erweitert, um
*   Randeffekte zu unterdrücken. Nicht gewünschte
*   Ergebnisse werden geskipt.
  WHILE l_ran_int > ran_int_max OR l_ran_int < ran_int_min.
*-- Zufallszahl zwischen 0 und 1 erzeugen
    IF ran_seed = 0.

      ran_seed = sy-datum * lc_faktor + sy-uzeit. "Inicializa el seed. sy-datum es la fecha en formato AAAAMMDD y sy-uzeit es la hora en formato HHMMSS
      ran_seed = ran_seed MOD lc_ran_m.

    ENDIF.

    ran_seed = ( ran_seed * lc_ran_a + lc_ran_c ) MOD lc_ran_m.

    IF ran_seed = 0. "Supongo que esto es sólo por seguridad por si el ran_seed se queda a cero, pero no creo que vaya a pasar eso nunca...
      MOVE lc_ran_m TO ran_seed.
    ENDIF.

    l_ran_number =  ran_seed / lc_ran_m.
*-- Zufallszahl auf den gewünschten Bereich transformieren
    l_ran_int = l_ran_number * ( ran_int_max - ran_int_min + 2 ) + ran_int_min - 1.
  ENDWHILE.

  MOVE l_ran_int TO ran_int. "valor obtenido!

* Esto es para luego imprimir una tabla con los resultados...
  t_resultados-numero = ran_int.
  t_resultados-apariciones = 1.
  COLLECT t_resultados.
ENDDO.

*Esto es para imprimir una tabla con los resultados...
SORT t_resultados.
LOOP AT t_resultados.
  AT FIRST.
    WRITE: /1 'Número', 20 'Apariciones'.
  ENDAT.
  WRITE: /1 t_resultados-numero, 20 t_resultados-apariciones.
ENDLOOP.
Resultado 100.000 ejecuciones:

Código: Seleccionar todo

Número             Apariciones
                  0     9.088
                  1     9.111
                  2     8.952
                  3     9.021
                  4     9.216
                  5     8.970
                  6     9.144
                  7     9.226
                  8     9.065
                  9     9.064
                 10    9.143
1000 ejecuciones:

Código: Seleccionar todo

Número             Apariciones
                  0        91
                  1        88
                  2        81
                  3        83
                  4        83
                  5        95
                  6        81
                  7        98
                  8       105
                  9       107
                 10        88
100 ejecuciones

Código: Seleccionar todo

Número             Apariciones
                  0         9
                  1        12
                  2        11
                  3         6
                  4        12
                  5         8
                  6         8
                  7        10
                  8         9
                  9         6
                 10         9
Saludos,

azinc
Mensajes: 4
Registrado: 08 Mar 2018 14:52

Re: Random

Mensaje por azinc »

Perdonar mi ignorancia, que uso le podeis dar a una sucesión de números pseudo-aleatorios con distribución uniforme?
He visto el Excell y ok,...de hecho se podría intentar que se fuesen actualizando
Del programa no puedo opinar aunque por curiosidad también me gustaría sabe en que lenguaje esta escrito
Supongo que tiene que ver con intentar demostrar la robusted de un sistema ¿?
Pasar buen día

Avatar de Usuario
mascara
Mensajes: 338
Registrado: 18 Oct 2007 23:15

Re: Random

Mensaje por mascara »

Está hecho en ABAP (el lenguaje de los sistemas SAP). No es pseudocódigo, pero como sólo son un par de bucles y unas fórmulas, prácticamente es pseudocódigo...

azinc
Mensajes: 4
Registrado: 08 Mar 2018 14:52

Re: Random

Mensaje por azinc »

Ok muchas gracias


Responder

Volver a “Indicadores”