Página 6 de 7

Hola coleguis

Publicado: 09 Nov 2006 14:48
por scalp
smassax tu sistema contrata en la siguiente barra a la señal y debe contratar cuando toca la media en esa misma barra, independientemente que haya cerrado o no debe hacerlo justo cuando toca la media, por que si no., si contrata en la siguiente eso imposible que funcione.


hammer

Ese fallo o limitacion para que solo de una operacion por barra, se puede solucionar con un contador de filtro, pero en mi caso ese no es el problema.
Me gustaria si no te importa que me expliques cual es el proceso para pasar las medias de una grafica por ejemplo de 90 minutos a una grafica de tikcs.
Me imagino que sera una operacion matematica, con las bollinger no tengo ningun problema para hacerlo , con las medias al estar construidas sobre los minimos-maximos de una amplitud de barra por ejemplo de 90 minutos, para pasar ese rango a grafica de tikcs, si eres tan amable me gustaria saber como lo haces.,si es que se puede claro.
saludos :wink:

Publicado: 09 Nov 2006 15:47
por smassax
almenos por lo q yo se d sistemas en visual lo q comentas no se puede hacer. El visual trabaja siempre a fin d barra con lo q si estas en un grafico de 15 minutos no puedes lanzar una orden cuando llevas 10 minutos de barra.

si alguien sabe como programar esto le estaria muy agradecido q lo comentara

Publicado: 09 Nov 2006 15:58
por ledzep
Veo que todos usan visual es mejor que el metatrader?

Saludos.

Publicado: 09 Nov 2006 16:03
por smassax
no puedo opinar pq no conozco el metatrader

Hola smassax

Publicado: 09 Nov 2006 16:07
por scalp
Reducir las barras lo maximo posible jejeje dentro del mismo rango.

Si esas medias que llevas en 15 minutos dentro de ellas con ese mismo rango las barras son de tikck , asi no habria ningun problema, te contrataria al tocar la media, la cuestion es pasar una dimension a otra con los mismos parametros del rango .

En una media normal no hay problema para hacerlo, pero con estas al medir la amplitud del rango , no se como se hace, a ver si Alberto o hammer lo saben jejeje.

saludos :wink:

Publicado: 09 Nov 2006 16:43
por smassax
bueno, en principio no seria dificil d programar.
Si por parametros tienes el minutaje q quieres usar , a intervalos de estos minutos buscar el valor maximo y una vez lo tienes aplicarle la formula d la media por ejemplo simple.
Y para los minimos lo mismo

es esta la idea, no??
si es asi lo provare

Hola colega

Publicado: 09 Nov 2006 17:21
por scalp
No es asi de simple como parece.

En este grafico hay dos dimensiones, la mayor de 30 minutos y la menor de 2 minutos.
Trata de pasar las medias del grafico de 30 al de dos minutos y que marquen el mismo rango, veras que de sencillo no tiene nada jeje.

Una vez conseguido sale el problema que comenta hammer, como son varias barras que tocan la media, se vuelve loco de dar operaciones, habra una solucion pero costara encontrarla, aplicandole un contador que solo de 1 operacion al tocarlas puede ser la solucion pero yo no se hacerlo jejeje :cry: .

Discreccionalmente ta chupao, programarlo es mas dificil.
.
:wink: saludos

Publicado: 09 Nov 2006 17:36
por telson
Sigo tener que insistir en mis comentarios anteriores, pero a la vista de los gráficos que se adjuntan, se ve un error de concepto. Al tratarse de una media de sólo 2 periodos, los gráficos a toro pasado NO SIRVEN para saber los puntos de entrada y salida en función de las medias de máximos y mínimos que aparecen reflejadas en esos gráficos, pues en tiempo real se contrata AL TOQUE DE LA MEDIA y, en tiempo real, la media está EN UN LUGAR DISTINTO del que aparece en el el gráfico final.

Es por eso por lo que decía que "sobraban las medias", pues con dos periodos el punto de entrada y salida viene dado por los máximos y mínimos de la barra anterior.

¡Joer, ¿pero es que sólo lo veo yo?!

Publicado: 09 Nov 2006 17:39
por mojito
Holass a mí los de visual chart me hicieron lo q comentas scalp...como pues vamos muy nu se..pero es mirar el código por dentro y destriparlo...me pongo manos a la obra para ver si os puedo dar la soulución...mi sistema es diferente a lo q planteas pero al fin y al cabo el planteamiento es el mismo..se base en un gráfico de 30´ para dar la condición y las entradas/sañidas las realiza por el menor minutaje y solo una vez por condición sin repetir lo de la entrada múltiple en la misma barra....bueno voy a ver si lo saco y mañana os pongo el qué..saludoss

Hola colegas

Publicado: 09 Nov 2006 18:30
por scalp
mojito

Tambien a mi me lo programaron con ese filtro, un colega de barcelona hace muchos tiempo 4-5 años, un sistema que tenia el mismo problema, pero no se donde fue a parar que no lo encuentro........
Se agradece la colaboracion :-D


telson


Comprendo lo que dices pero no lo veo asi, no veo que el maximo minimo de la barra anterior o de las dos anteriores marque el maximo-minimo de la siguiente barra, por que la media es un valor promediado de la ultima y de la que se esta construyendo.

Si miras este grafico solo con los con los maximos-minimos de las barras, trata de encontrar apx el minimo -maximo de la barra siguiente, si consigues aproximarte de 10 barras 5 haces milagros.
Con la media ya sabemos que los tokes en tiempo real no son exactamente como se ven, pero son muy aproximados.......
Quiza es que lo entendemos de diferente forma

saludos :wink:

Publicado: 09 Nov 2006 18:43
por hammer
A las buenas,

Voy a intentar explicar el asunto de cómo se puede acceder a los datos, medias, etc. de un gráfico de minutos desde un gráfico de ticks en un sistema de Visual Chart. Lo explicaré desde cero para que lo pueda aprovechar cualquiera.

Como sabemos, los ticks se corresponden con cada una de las operaciones que se van ejecutando en el mercado sobre un simbolo concreto. Cada compra o venta produce un tick y no existe ninguna relación entre ticks y tiempo. En un periodo de 1 minuto se pueden producir 20 o 200 ticks, según lo animado que esté el cotarro.

Visual Chart ejecuta el sistema cada vez que se cierra una barra (en realidad también lo hace cada vez que se ejecuta una orden limitada o en stop que hayamos puesto en el mercado, lo que da no pocos problemas).

Por lo tanto, hasta que no se cierra la barra no tenemos la oportunidad de tomar decisiones. En un gráfico de 1 minuto, por ejemplo, puede no ser problemático porque el mercado no se suele mover mucho en ese tiempo (desde luego depende del producto y la hora). Pero en un gráfico de 30 minutos, puede que la entrada o salida sea tan tardías que no valga la pena ni hacerlas.

Para aprovechar la inmediatez de los ticks que se van produciendo cada vez que alguien compra o vende, es preciso trabajar sobre el gráfico de ticks, insertando en él el sistema.

No es lo mismo que el gráfico sea de 1 tick o de varios. En el caso de 1 tick, obviamente no tenemos precio de apertura o cierre, porque la "barra" es para esa única operación. Si queremos usar sistemas que hacen referencia a dichos precios, es mejor usar una cierta compresión en los ticks. Si usamos, por ejemplo, 5 ticks, tenemos una cercanía al precio casi igual a la de 1 tick y además el sistema es mucho más rápido al cargar en memoria 5 veces menos información.

Dado que no es posible convertir mediante una fórmula los parámetros de un indicador de minutos a ticks, la técnica a utilizar sería:

1 - Abrir el gráfico de x ticks con el símbolo sobre el que vamos a operar.

2 - Abrir en memoria el gráfico de minutos con el mismo símbolo (en este caso da igual si el simbolo es el contínuo o el del vencimiento porque no vamos a operar sobre él, sólo vamos a usar sus datos para calcular las medias).

Esto se puede hacer mediante el siguiente código:

Código: Seleccionar todo

KKK = .GetSymbolIdentifier("010015ED", 60, crMinutos, "31/10/2005", "31/12/2007")
La variable KKK (o como queramos llamarla) debe existir y ser de alcance público, así que hay que declararla mediante un Dim en la sección de declaraciones (donde los parámetros, etc).

En este caso estamos abriendo en memoria un "gráfico" del bund en 60 minutos y entre las fechas indicadas.

3 - Abrir en memoria las medias deseadas a partir de los datos recién cargados:

Código: Seleccionar todo

MediaMax = .GetIndicatorIdentifier(AvExponential, KKK, 2, PriceHigh)
MediaMin = .GetIndicatorIdentifier(AvExponential, KKK, 2, PriceLow)
MediaTendencia = .GetIndicatorIdentifier(AvTriangular, KKK, 30, PriceClose)
Las variables MediaMax, etc.deben estar declaradas al igual que KKK, claro.

4 - Usar estas medias como haríamos habitualmente. Por ejemplo:

Código: Seleccionar todo

If .GetIndicatorValue(MediaMax) > .GetIndicatorValue(MediaTendencia) Then ...
De esta manera estamos tratando las medias de un gráfico de 60 minutos según se van calculando desde un gráfico de x ticks.

En fin, me ha salido un pedazo tocho de tres pares de narices. La cosa es sencilla como se ve. Si hacen falta aclaraciones, por aquí andamos...

Un saludo ;-)

Publicado: 09 Nov 2006 18:50
por X-Trader
Muy bueno, hammer :smt023 , estoy por pedirte que lo conviertas en artículo y todo ;-)

Un saludo
X-Trader

Publicado: 09 Nov 2006 19:25
por hammer
Vale X, este fin de semana intentaré hacerlo más digerible y te lo paso para que hagas con él lo que quieras.

Un saludo ;-).

Publicado: 09 Nov 2006 19:56
por Mikelon
Hola, a la variable KKK se le puede sacar el maximo en ese tramo de 5 minutos?
Es decir el parametro .High?

Gracias.

Publicado: 09 Nov 2006 20:12
por hammer
Buenas,

Se puede hacer usando la notación .High(0, KKK) para la barra actual (ó .High(3, KKK) para 3 barras atrás).

Saludos.