No se programar pero quiero aprender.

Todo lo relacionado con este conocido software de trading made in Spain: estudios, indicadores, sistemas, plantillas, etc.
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

¿Qué valores le estás dando a HoraFinal y HoraSalida?
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.
Hermo
Mensajes: 25
Registrado: 05 Ene 2012 09:30

Re: No se programar pero quiero aprender.

Mensaje por Hermo »

Buenas caballeros:

Por ejemplo HoraEntrada 900
HoraSalida: 1730
HoraFinal: 2100

Pero como me parece que tú ya abras averiguado, no se cumple siempre, es decir, lo he probado en varias fracciones de tiempo y resulta que en alguna ocasión deja la posición abierta igual.

Tengo que volver a ponerme con este tema.
Vuelvo a retomar el tema que sería tal que así:

HoraEntrada=La hora desde que comienza a realizar negocios.
Hora Salida=La hora que puede lanzar la ultima orden.
HoraFinal= Si tiene algún negocio abierto que lo cierre.

Se puede hacer?
Hermo
Mensajes: 25
Registrado: 05 Ene 2012 09:30

Re: No se programar pero quiero aprender.

Mensaje por Hermo »

Buenas esto sí que lo considero un logro:

Creo que tengo solucionado lo del Adx.
Si el Adx está por debajo de su banda y la cruza al alza lanzamos orden.
Lo programe independiente, a ver qué os parece. Tengo que admitir, que lo conseguí con la inestimable ayuda del libro de Estrategias y un poquito de otro sistema como ejemplo.

Un vistazo y decirme si tiene algo mejorable.

CruceAdx.png
Hermo
Mensajes: 25
Registrado: 05 Ene 2012 09:30

Re: No se programar pero quiero aprender.

Mensaje por Hermo »

Bueno y ahora sí que pido una mano:

Tema Trix:

Recordatorio:

Condición: El Trix lo quiero utilizar como filtro de tendencia. Por lo tanto quiero que compruebe que el Trix está en positivo.

1º Sin ninguna variable, como me dice que lo haga Wikmar.
1Trix.png
Me podeis explicar por que pasa lo de la imagen.

2º Con Variable de BarrasAtrasTrix (es decir que me deje el sistema comprobar en una optimización cuantas barras atrás hubiera sido mejor contar para determinar que el Trix está en positivo) Soy incapaz de programar esto, como veréis en respuestas anteriores algo hago mal que no me lo deja compilar y quiero saber hacerlo. Aunque después se termine el sistema sin que sea una variable pero quiero saber hacerlo. Agradecería que me echarais una mano.

3º Se que hay sistemas que utilizan dos fracciones de tiempo para determinar ciertos valores, lo que no se, porque no encontré ninguno, es si en PDV se pueden determinar Data2. Es decir, y me repito, necesito que el Trix no lo mida en la misma fracción de tiempo que el resto de las condiciones. Digamos que la madre del sistema trabaja en una escala de 5 min. Yo necesito que el sistema tome el valor del Trix en una escala superior por ejemplo 10 min. Alguien sabe si se puede hacer en PDV y si lo sabe, por favor que me lo diga. O que me guie en como hacerlo.
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

Noooo, no, no, no. Hay errores de concepto de programación: con el diagrama de flujo que has hecho, no tiene sentido que HoraFinal >= HoraSalida. Tampoco veo claro el diagrama de flujo donde haces lo del ADX.

¿Estás disparando el sistema sobre algún mercado?. ¿Se te representa lo que tu esperas?. Yo creo que no.

El GetMarketPosition del principio, no hace falta.

Vamos a hacer una cosa. Adjunta por aquí el .FLW con el sistema, el que llamaste 2º.png

y si alguno de los indicadores que tulizas no está en el paquete de Visual Chart, adjúntalo también. Te le voy a dar una vuelta, con lo que creo que quieres hacer. Si por algún motivo, no lo puedo compilar, al menos te podré adjuntar un pantallazo del diagrama de flujo que me salga.
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.

Hermo
Mensajes: 25
Registrado: 05 Ene 2012 09:30

Re: No se programar pero quiero aprender.

Mensaje por Hermo »

Buenas:

Esto debe ser lo que me pides, todavia no le incorpore la modificacion del Adx.

chandelier1.flw
(8.77 KiB) Descargado 321 veces
Todos los indicadores los tiene Visual si alguno no lo encuentras dimelo que lo adjunto.

Un saludo
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

Bueno, Hermo, a ver si te doy un empujón.

De antemano te digo que lo de dos compresiones horarias en el mismo gráfico / sistema, como creo que habías visto, parece que solo se pude hacer si programas directamente en Visaul Basic, no mediante el PDV:

http://blog.visualchart.com/2011/11/uti ... en-un.html

Tendrás que buscar alternativas.

Vamos con el remake de tu sistema obviando esa limitación:
chandelier1.JPG
* Hay cosas de lo que pretendes que no me encajan o no las entiendo. He intentado transformar lo que no tenía lógica de programación, en algo con una mínima coherencia dentro de lo que creo quieres hacer, pero quizá siga sin tener mucho sentido. No obstante, si sacas conclusiones, te servirá para aclarar conceptos.

* El TrixData "anterior" que se considera, bien por almacenamiento en variable, o bien por llamada a valor anterior del indicador, es el de la barra inmeiatamente anterior a la actual, que creo es lo que querías.

* Si HoraSalida < HoraFinal, no tenía sentido tener el control de HoraFinal dentro del de HoraSalida, porque no se haría nunca más allá de ésta, dime si entiendes la diferencia; a las 19h tu estabas queriendo hacer un control con el condicional Tiempo = HoraFinal que no se iba a hacer nunca, porque en cuanto sean más de las 17'30, tu sistema dejaba de funcionar. Para que haga algo más allá, hay que ponerlo a la salida negativa del control Tiempo < HoraSalida, ¿lo entiendes?.

* Una vez que Tiempo = HoraFinal lo tenemos fuera, lo que se hacía con ese control, tampoco tiene sentido: en cuanto el bloque de comprar, comprara, a la barra siguiente se te iba a cerrar el negocio (saldría por el negativo de Tiempo = HoraFinal).

* El control GetMarketPosition = 0, no hace falta. Si ya está comprado, no te va a abrir un nuevo negocio.

* También se podría prescindir en este caso del GetMarketPosition = 1, porque si no estás comprado, no te va a cerrar nada, y como no puedes estar vendido, pues para qué controlar si estás comprado, la condición para cerrar es que sea Tiempo = HoraFinal y Cierre < Indicador(CHANDANTData), no obstante, déjalo para fijar ideas.

* Entonces, tal y como queda ahora, entre las 9 y las 17'30, si se dan una serie de condiciones, te va a comprar un contrato, y fuera de ese horario, no se abren negocios (compras), sino que unicamente, si cuando ocurra Tiempo = HoraFinal, ocurre también que Cierre < Indicador(CHANDANTData), entonces te va a cerrar el negocio, pero atención: si estás comprado y llegado Tiempo = HoraFinal, no se cumple Cierre < Indicador(CHANDANTData), te va a dejar el negocio abierto.



* Versión almacenando el valor de Indicador(TrixData) de cada barra en una variable, para utilizarlo en la siguiente barra.
chandelier2.JPG
Simplemente, se almacena después de hacer el control que tiene el valor anterior para no machacarlo, y se hace dos veces, en los dos sitios por donde puede ir el flujo del programa. Son los sitios apropiados por razones obvias. Tienes que pensar por dónde puede irá el flujo del programa según se den todas las condiciones posibles. Esta visión es báscia en programación, con ella puedes entender lo del absurdo del control de horas que tenías; piensa que ers la barra de las 19h y métete en el flujograma, a ver lo que harías.


* Otra cosa. Al final, cuando tengas un sistema que funcione, limpia variables que no se usan y toda la porquería que hemos ido dejando en el desarrollo.


No he podido compilar porque los path que usamos son diferentes y da error, pero probablemente los que yo he retocado sí los puedas compilar tu, así que te los adjunto:
chandelier1.flw
(7.43 KiB) Descargado 267 veces
(parece que no deja adjuntar más de 3 ficheros, bueno, creo que el otro FLW no es vital)

S2
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

Se me pasó un detalle: en la 1a barra de trabajo, quizá haga falta darle un valor-truco a TrixData_ant, porque tendrá valor de inicialización (cero), y prob se cumpla siempre la condición, entonces habría que darle un valor de inicialización altísimo para que no se cumpla o buscar alternativa.

Esta es otra regla importante en programación: cuidado con los valores frontera.
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.
Hermo
Mensajes: 25
Registrado: 05 Ene 2012 09:30

Re: No se programar pero quiero aprender.

Mensaje por Hermo »

Buenas tardes caballero:

Me pongo con todo lo que me comentas, ya tengo trabajo para un rato, si no logro aclarar algo te lo pregunto. Respecto del tema del Trix de utilizar dos fracciones de tiempo, a parte de tu enlace que no le había prestado mucha atención en su momento por especificar que era para codificación en VBA, pues le he preguntado a Oscar de Visual Chart, adjunto contestación, también me aclara lo del tema de la hora. A ver que te parece.

Como siempre muchísimas gracias.
Hermo
Mensajes: 25
Registrado: 05 Ene 2012 09:30

Re: No se programar pero quiero aprender.

Mensaje por Hermo »

Mi pregunta a Oscar de Visual Chart.

Buenas tardes Oscar:

Necesitaba saber si es posible programar en PDV dos condiciones que me tienen un poco liado:

1ª Se trata de establecer un filtro horario:

Quiero que el sistema empiece a operar a una determinada hora y deje de lanzar órdenes a otra hora. Lo que no quiero es que me cierre las operaciones cuando yo lo que trato de decirle es que no opere mas, no que me cierre una operación.

HoraIncioOperaciones = Ejemplo: 900
HoraFinOperaciones = Ejemplo: 1830
HoraFin = Ejemplo: 2100

2º Tengo un sistema que utiliza tres indicadores, dos como filtro y el otro como gatillo de disparo de ordenes, uno de los que utilizo de filtro necesito que sea en otra fracción de tiempo diferente a la que esta el resto del sistema. He leído que VBA se puede hacer lo que no se, es si se puede programar en PDV.

Ej.: Trix = 15 min.
Adx= 5 min.
Chandelier = 5 min.

Por favor sin prisa, cuando puedas dime simplemente si se puede hacer.

Cualquier duda, ponte en contacto conmigo, reconozco que explicandome no soy muy claro.

Un cordial saludo.


Contestación

Creo que mejor que explicarle cómo hacerlo, lo pueda ver con un ejemplo. Le adjunto un sistema genérico que incluye la opción de los horarios.

La parte que le interesa de todo el código es la que le subrayo a continuación:

1 Sistema.jpg
En cuanto a las distintas compresiones de tiempo, existen dos opciones para hacer esto:

1. Crear de manera interna un objeto de tipo “fuente” de manera que luego cargamos el indicador que queramos sobre dicho objeto.

Para ello, seleccionamos la carpeta Series, pulsar con el botón derecho y elegir Añadir

2. Cargar el indicador directamente del Data 2. Para incluir un Data 2 debemos seleccionar la carpeta Series con el botón derecho y elegir Añadir Data dos veces, de manera que nos aparezca Data2.

Cuando vaya a añadir el indicador, verá que le aparece la opción de elegir este nuevo data:

2º.png
2º.png (7.16 KiB) Visto 1758 veces
Particularmente, yo aconsejo usar la opción 2, es decir, la de hacer referencia al Data2, porque a veces, la primera opción puede dar problemas y además no es susceptible de poder ser aplicado sobre cualquier instrumento.

Una vez que hacemos esto, si elegimos la opción 2, lo que debemos hacer es INSERTAR un segundo gráfico en la misma ventana sobre la que aplicamos el sistema. De esta manera, ese segundo gráfico será el representante de Data2. Ejemplo:

1. Abrimos un gráfico de 5 minutos .

2. Insertamos un segundo gráfico de 15 minutos.

3. Insertamos el sistema sobre el gráfico de 5 minutos.

Respecto al uso de dos compresiones de tiempo, es aconsejable que lea las consideraciones que hago en el blog de Visual Chart al respecto:

http://blog.visualchart.com/2011/11/uti ... en-un.html

Quedo a su disposición para aclarar más dudas.

Reciba un cordial saludo.
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

Ya tienes entretenimiento probando cosas y encontrando lo que más te convenza.
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.
daniclas
Mensajes: 8
Registrado: 31 May 2012 20:24

Re: No se programar pero quiero aprender.

Mensaje por daniclas »

Hola
Yo al igual que tu estoy intentando morderle el diente a la programación de VBA para VC.
Quiero mostrar mi interés e intención de sumarme a vuestra idea para la creación de un grupo con este interés común de programar para VC.
Mi proceso quizás sea diferente al vuestro, yo soy programador web, pero no trabajo con la tecnología de office (VB, etc) y mis conocimientos en el mundo del trading son nulos.
Si tengo mucho interés en poder aunque sea de forma automática, debido a las peticiones que me han llegado, desarrollar las estrategias que en este caso los clientes me puedan solicitar.
Quizás (no sé) mi ventaja con respecto a ustedes sea que la filosofía fundamental en la que se basa VB (POO) la domino y la utilizo en otras tecnologías para la programación de webs, por lo que la comprensión del lenguaje no me sería difícil, además VB de por sí es muy fácil, el tema está en los objetos orientados y creados para VC.
Yo también he bajado mucha documentación y videos al respecto y he estado trasteando el PDV que es muy intuitivo, pero claro, no domino la otra parte, la que se refiere al trading, sus conceptos y nomenclaturas, y en ese sentido sin orientación no sé como empezar y meterle el diente.
Repito, mi objetivo fundamental no es programar las estrategías que yo diseñe o cree, ya que no me dedico al tema, sino ser capaz de programar las estrategias que me soliciten. Claro, me imagino que en el camino será necesario la comprensión de las mismas para poder algoritmizarlas, cosa que no me vendría nada mal.
Bueno, aquí dejo mi petición. Si están interesados y me aceptan pueden contar conmigo.
Saludos.
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

daniclas, desde mi punto de vista, lo mejor que puedes hacer es estudiar mucho esto:

http://www.visualchart.com/MarketMonito ... ANGUAGE=ES

S2
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.
daniclas
Mensajes: 8
Registrado: 31 May 2012 20:24

Re: No se programar pero quiero aprender.

Mensaje por daniclas »

Wikmar escribió:daniclas, desde mi punto de vista, lo mejor que puedes hacer es estudiar mucho esto:

http://www.visualchart.com/MarketMonito ... ANGUAGE=ES

S2
Gracias por contestarme Wikmar, me imagino que lo que referencia en este link sea para adentrarme en el tema del trading.
La pregunta es: ¿Es necesario yo como programador (no te pregunto si es bueno porque sé que lo es) tener conocimientos de trading para poder programar?
Esperando no ser muy petardo y reiterándote las gracias.
Avatar de Usuario
Wikmar
Mensajes: 3868
Registrado: 29 Sep 2010 00:01
Ubicación: Madrid

Re: No se programar pero quiero aprender.

Mensaje por Wikmar »

Sí, son necesarios algunos conocimientos. P. ej., algo imprescincible aun suponiendo que sepas Visual Basic estándar: ¿cuales son las instrucciones para lanzar operaciones en el VBA de VC?, y para entender eso, antes debes saner qué son las "operaciones" de la especulación, sus tipos, etc.

Todo eso y mucho más, en ese enlace.
            https://wikmar.wordpress.com
            Si quieres algo de privacidad, cuidado con las Nubes, que nadie ha conseguido todavía ponerles una puerta.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Visual Chart”