ayuda de programacion visual chart

Todo lo relacionado con este conocido software de trading made in Spain: estudios, indicadores, sistemas, plantillas, etc.
Responder
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

ayuda de programacion visual chart

Mensaje por polxx »

Supongamos que queremos diseñar un indicador en plataforma visual de la siguiente manera:
1º Tomamos el ATR del precio
2º Tomamos un RSI en el que su periodo sea el valor del ATR en ese momento
3º Ese valor de ese RSI concreto pasa a ser el valor final de nuestro indicador.

Es decir, normalmente un parametro es un numero que elegimos a traves del cuadro de propiedades del indicador. Y yo quiero que un parametro se modifique internamente a traves de una formula.

Adjunto un archivo en .flw con el ejemplo ya echo.

Todo esta correcto, sin embargo el resultado que aparece al insertarlo en un grafico es el de un RSI de periodo 14...

Alguien me puede ayudar????

Gracias por anticipado.
Adjuntos
zzparambb.flw
(1021 Bytes) Descargado 213 veces
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Searchpoint
Mensajes: 44
Registrado: 12 Jun 2006 12:02
Ubicación: Barcelona

Mensaje por Searchpoint »

Buenas!

Creo que hay un error. Cuando creas el indicador rsi tienes que seleccionar en Data Source: AVTrueRangeData en lugar de Data que es lo que viene por defecto.

Te lo he modificado. Eliminando el RSI que tenias y creando uno nuevo con Data source : ATR. Espero que sea eso.


Saludos!
Adjuntos
zzparambb_128.flw
(992 Bytes) Descargado 151 veces
Cada vez que aprendo algo, me doy cuenta de lo poco que se.
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Mensaje por polxx »

Hola Searchpoint...eso que tu has echo hace lo siguiente:
Coge el precio, le saca el ATR, y al ATR le saca el RSI.

Yo lo que quiero es:
Cojo el precio, le saco el ATR, al valor al que este el ATR (si por ejemplo esta a 3) entonces saco el RSI del precio pero con periodo 3...

Es un ejemplo tonto, para luego hacer otras varias cosas que quiero.

Alguien sabe?
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Avatar de Usuario
Homer
Mensajes: 69
Registrado: 27 Sep 2007 11:20
Ubicación: Springfield

Mensaje por Homer »

El periodo de un indicador hay que ponerlo en un punto del sistema (durante la declaración del indicador en la sección System_OnInitCalculate) a la que no se tiene acceso en tiempo de ejecución, por lo que no es posible hacer cambios mientras el sistema está en marcha.

Una solución sería tener varias versiones del indicador, una para cada posible periodo y elegir la que convenga según el ATR.

Saludos.
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Mensaje por polxx »

Homer parece que tengas razon, pero me gustaria que no fuera asi..

Esto que digo da mucho juego, imaginar por ejemplo que queremos hacer un macd que sea diferente segun la hora del dia. O un estocastico que dependa del atr.

Si observais el sistema que yo puse en el primer post vereis que todo esta correctamente programado. Es decir, el parametro del periodo de un indicador visual chart permite tratarlo como una formula que dependa de otras cosas.

Sin embargo a la hora de ver resultados no le hace caso ninguno y lo deja a 14.

Mas respuestas PLEASE que es importante.
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.

Avatar de Usuario
Homer
Mensajes: 69
Registrado: 27 Sep 2007 11:20
Ubicación: Springfield

Mensaje por Homer »

polxx, cuando se inserta un sistema en un gráfico, se cargan los indicadores en memoria con el periodo que tengan indicado. Posteriormente ya no es posible modificar el periodo.

Por eso, la única solución que hay, que yo sepa, es la que te comenté: insertar un indicador para cada posible valor y utilizar el que convenga en cada momento.

En el entorno visual no tengo ni idea de cómo se hace, pero en Visual Basic no tiene complicación. Si el valor de ATR es 1, cojo el valor del indicador RSI1, si el valor de ATR es 2, cojo el valor del indicador RSI2, etc. Si no son muchos los valores previsibles del ATR, no es mala solución.

Además, se puede hacer por límites: Si el valor de ATR está entre 1 y 5, cojo el valor del indicador RSI-a, si el valor de ATR está entre 6 y 10, cojo el valor del indicador RSI-b, etc.

Saludos.
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Mensaje por polxx »

Pues los de visual chart se han enrollao y me han dao la solucion al problema.

Adjunto un archivo en el que vemos un indicador, que cuando son antes de las 14 horas toma el valor del rsi de periodo 4 y si es mas de las 14 horas toma el valor del rsi de periodo 40.

Se hace mediante la funcion ReleaseDataIdentifier, que en la ayuda de visual chart no viene explicada. Me da a entender que lo que hace es resetear el indicador y tomarlo de nuevo con el periodo que le indiquemos...

Hay una cosa muy curiosa, en este ejemplo el indicador ATR no se usa para nada, y sin embargo si lo elimino de la lista de indicadores nos dara error al compilar. Es como si la funcion ReleaseDataIdentifier necesite que tengamos metido mas de un indicador.

Eso de poner sentencias encerradas con comillas no lo sientiendo...pero me lo han dado asi y la cosa es que funciona. Si alguien sabe para que son las comillas que me lo diga...¿Puede ser para que al crear el codigo en formato VBA mantenga exactamente lo que hay dentro de las comillas?

La pega esta en si ralentiza mucho el proceso...ya que resetear el indicador cada vez no puede ser weno... y si no que le pregunten a hamilton, jejejeje
Adjuntos
zzparambb.flw
(3.66 KiB) Descargado 221 veces
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
tradingknow
Mensajes: 2
Registrado: 26 Oct 2008 20:32

Mensaje por tradingknow »

Se puede cambiar fácilmente para que solo lo haga dos veces al día, justo cuando se necesita cambiar a un periodo u otro.

Basta con usar una variable de tipo numérico que tenga el valor 1 inicialmente (en Indicator_OnInitCalculate). En Indicator_OnCalculateBar se comprueba la hora tal como se está haciendo en el código actual pero luego, en vez de hacer el ReleaseDataIdentifier y GetIndicatorIdentifier se comprueba el valor numérico. Si es 1, se hace. Si no, ya sabemos que está hecho y nos podemos ahorrar el hacerlo.

El numero se irá incrementando cada vez que se haga un GetIndicatorIdentifier para saber en que condición estamos (en el primer if se cambia si vale 1, en el else se cambia si vale 2)

Es sencillo y solo hace dos veces al día las llamadas a ReleaseDataIdentifier
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Visual Chart”