Indicador de la combinación de precios de varios pares.

Foro dedicado a todo lo relacionado con la versión 4 de la plataforma de Metaquotes.
Responder
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Indicador de la combinación de precios de varios pares.

Mensaje por Ciclo »

A ver si lo que busco hacer es posible o no.

Me gustaría coger Bid de EURUSD, USDJPY, Y EURJPY y hacer un indicador tal que dibuje el resultado de EURUSD * USDJPY / EURJPY.

Si no se puede hacer con el Bid a cada tick si al menos con el iClose() de la barra. Cada resultado será proximo a 1.

Yo no se como se haría con cada Bid. He intentado con el iClose pero no me sale nada y no se donde está el error. Lo he escrito así:

int start()
{
int counted_bars=IndicatorCounted();
int limit,i;
double par1,par2,par3;
//---- check for possible errors
if(counted_bars<0) counted_bars--;
limit=Bars-counted_bars;
for(i=0; i<=limit; i++)
{
par1= iClose(Simbolo1,Marco,i);
par2= iClose(Simbolo2,Marco,i);
par3= iClose(Simbolo3,Marco,i);
ExtMapBuffer1=par1*par2/par3;
}
//----
return(0);

Espero algún comentario. Saludos
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Mensaje por nstrader »

Prueba esto, y deberás tener los tres pares abiertos a la vez

Código: Seleccionar todo

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

extern string Simbolo1="EURUSD";
extern string Simbolo2="USDJPY";
extern string Simbolo3="EURJPY";
extern int Marco=PERIOD_M5;

double ExtMapBuffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----
   int limit,i; 
double par1,par2,par3; 
//---- check for possible errors 
if(counted_bars<0) counted_bars--; 
limit=Bars-counted_bars; 
for(i=0; i<=limit; i++) 
{ 
par1= iClose(Simbolo1,Marco,i); 
par2= iClose(Simbolo2,Marco,i); 
par3= iClose(Simbolo3,Marco,i); 
ExtMapBuffer1[i]=par1*par2/par3; 
} 
//----
   return(0);
  }
//+------------------------------------------------------------------+
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Gracias de nuevo nstrader.

Lo que no sé es por que no me pintaba.

Un abrazo. :smt049
Spirit
Mensajes: 4739
Registrado: 12 Jun 2008 19:49

Mensaje por Spirit »

¿Que quieres hacer con ese indicador?

En tiempo real, visualmente tiene poquísima aplicación por no decir casi ninguna. Otra cosa es implementar el algoritmo para operar.

Lo que si es muy válido es tener un histórico de ticks y estudiar el comportamiento del anillo, horarios, spreads, etc. Pero eso se puede hacer con una simple excel.
Adjuntos
2009-07-07_230359_para_ciclo.gif
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Spirit escribió:¿Que quieres hacer con ese indicador?

En tiempo real, visualmente tiene poquísima aplicación por no decir casi ninguna. Otra cosa es implementar el algoritmo para operar.

Lo que si es muy válido es tener un histórico de ticks y estudiar el comportamiento del anillo, horarios, spreads, etc. Pero eso se puede hacer con una simple excel.
Hola amigo Spirit.
En principio tengo curiosidad por ver que ocurre con los precios cuando nos apartamos de 1. Soy consciente de que manualmente no se puede hacer la cobertura impecable e incluso posiblemente tampoco haya mucha aplicación a no ser que haya una desviación suficientemente grande para salvar los retardos en las entradas, los spliges y los spread.

Lo que dices del excel, me parece muy interesante pero no se como hacerlo. Si no tienes inconveniente en pasarmelo pues seria estupendo.

Un abrazo.

Spirit
Mensajes: 4739
Registrado: 12 Jun 2008 19:49

Mensaje por Spirit »

En realidad tengo muy poco hecho. Cuando salió el tema le di un par de vueltas y al comprobar que no era algo a lo que se le pudiera sacar ventaja a diario, lo dejé en el famoso cajón de tareas pendientes.

Comencé un EA para recopilar todos los ticks de los 3 pares, su ask y su bid en cada uno de ellos y lo tengo rulando sin interrupción desde hace mes y medio aproximadamene.

La prueba que he colgado corresponde a los datos recopilados durante 11 hora y media escasas, más o menos de 9:00 a 21:00 el día 29 de Mayo de 2009.

En la excel tengo los siguientes campos
A - Fecha hora formato excell
B - Fecha hora formato timespan
C - Bid eur/usd
D - Ask eur/usd
E - Bid eur/jpy
F - Ask eur/jpy
G - Bid usd/jpy
H - Ask usd/jpy
I - Ratio que representamos en el gráfico
J - Ratio medido en pipos eur/usd que es más representativo ya que debemos salvar unos 9 pipos de la suma de spreads + el beneficio que queremos obtener.

El gráfico es muy sencillo de implementar. Lo que ocurre es que no es suficientemente representativo tal y como lo he colgado ya que cada tick ocupa el mismo espacio en el eje X, cuando lo correcto sería que este eje se redimensionase de acuerdo al tiempo transcurrido entre ticks, esto es una escala temporal. ¿Por que mejoraría la representación? Muy sencillo, en la escala temporal comprobaríamos el tiempo que tenemos para ejecutar una orden cuando se da el desequilibrio buscado y podríamos comprobar que es prácticamente imposible cazarlo sin requotes.

El tema es que ese hilo de aquel foro lleva activo varios años, eso me llama la atención, pero dudo mucho que ninguno de los que postean hayan avanzado más alla del mero estudio o pequeñas pruebas en alguna cuenta real, que a buen seguro no han tenido continuidad.

Yo me llegué a plantear que si que tendría aplicación pero no como sistema de especulación, sino como cazador de situaciones excepcionales del mercado que se puedan dar una o dos veces al año o cada dos años, pero entonces surge la siguiente pregunta ¿Es rentable tener un EA rulando sin parar durante meses para cazar un buen pellizco de cuando en cuando? Eso implica tener liquidez para realizar la operación en el momento que se da.

Además tenemos otro handicap, es muy, pero que muy difícil sacar rentabilidad al desvio a un sólo lado del eje de equilibrio (1), eso implica que debemos utilizar el desvío positivo para abrir una operación y el desvío negativo para cerrarla, o vicevrsa. Luego entonces podemos tener problemas de ejecución en esos dos momentos, ya que son de alta volatilidad. Además esto puede implicar muchas horas, incluso días que deben transcurrir para que se pueda cerrar la operación con el coste añadido de los rollovers.

La excel si la sigues queriendo te la envío por donde quieras, tu me dirás, pero ya te digo que es una chuminada.
Avatar de Usuario
Ciclo
Mensajes: 687
Registrado: 14 Jul 2008 21:36

Mensaje por Ciclo »

Muy interesante tu estudio. No hace falta que me la mandes el excel, con lo que me has dicho es mas que suficiente. Ya imaginaba algo parecido. Supongo que grandes instituciones arbitrando con ventaja en la velocidad de adquisición de datos y trabajando sin spread, solo con la orquilla mínima de la oferta y la demanda, hace que ya no queda nada por arbitrar, y si queda algo no alcance el mínimo necesario.

Yo lo queria para ver si cuando haya desviaciones no podría confirmar las oportunidades indicadas por nuestro propio sistema de especulación y evitar así falsas entradas, o entradas de alto riesgo, o entradas poco rentables etc.

Un saludo :lol:
Avatar de Usuario
X-Trader
Administrador
Mensajes: 12793
Registrado: 06 Sep 2004 10:18
Contactar:

Mensaje por X-Trader »

En las pruebas que yo realice con el EURUSD/USDCHF/EURCHF, muchas de las desviaciones eran simplemente resultados numéricos imposibles de tradear porque en la práctica o ponías todas las órdenes limitadas y te cruzaban simultáneamente o perdías el edge entrando a mercado. En definitiva, por este camino está complicado de seguir incluso operando con ECN.

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."
Spirit
Mensajes: 4739
Registrado: 12 Jun 2008 19:49

Mensaje por Spirit »

Ciclo, para tu estudio te puede interesar la situación que se produjo el 21/06/2009 a las 23:53 (1245628398 timespam)
eur/usd: 1,3952 1,3954
eur/jpy: 134,41 134,45
usd/jpy: 96,21 96,24

Datos capturados en cuenta real de XTB. En ese momento los spreads eran normáles.

Es una situación bastante atípica.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Metatrader 4”