Indicadores: Spread del los Símbolos

 

Spread del los Símbolos:

El indicador muestra la gráfica de la diferencia (suma) de los precios de los símbolos de comercio. Es adecuado para una estimación visual de la correlación de los símbolos comerciales. Va a ser muy útil para los traders interesados ​​en el pairs trading (spread trading). El indicador de las barras se sincroniza al mismo tiempo con las barras del gráfico del indicador cuando se pone en marcha.

Autor: Dmitry

 
Para no criar tales casos especiales en Codebase, decorar la base una vez - ChartBuilder.
 
hrenfx:
Con el fin de no crear este tipo de casos especiales en Codebase, decorar la base una vez - ChartBuilder.
En este indicador(ChartBuilder) - tanto como 23 parámetros de entrada, para entenderlo, es necesario estudiar a fondo su descripción, y mi indicador Spread_Of_Symbols - no más simple, sólo 4 parámetros de entrada y son claras incluso sin una descripción. Está claro que ChartBuilder es probablemente más universal... pero el mío es más simple que nunca, cualquier principiante puede escribir sus propios índices utilizando su esqueleto..... y además diste un enlace al indicador del cuarto lenguaje, y el mío es del quinto lenguaje.
 

Esa es la cuestión, para las cosas más sencillas no hace falta aprender nada allí. En tu caso, todo es extremadamente elemental:

Formula1 = "AUDUSD - NZDUSD";
Basta con reescribir un conjunto de herramientas bien pensado de MQL4 a MQL5. Y podrás implementar casi el 99% de los indicadores inventados en el tema de pair trading a un buen nivel.
 
Gracias al autor.
Para fines educativos, un indicador de este tipo es simplemente necesario.

Puedes ver de un vistazo qué añadir y dónde. Cuando mejoras (amplías la funcionalidad) entiendes mejor lo que está pasando.
 

Estoy intentando ponerle un canal, pero no funciona correctamente.




//+------------------------------------------------------------------+
//|ProjectName
//|Copyright 2012, CompanyName |
//| http://www.nombreempresa.net
//+------------------------------------------------------------------+
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_plots   4
//--- trazar Etiqueta1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  clrAqua
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- trazar Label2
#property indicator_label2  "Label2"
#property indicator_type2   DRAW_LINE
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1
//--- trazar Label3
#property indicator_label3  "Label3"
#property indicator_type3   DRAW_LINE
#property indicator_color3  clrRed
#property indicator_style3  STYLE_SOLID
#property indicator_width3  1
//--- trazar Label4
#property indicator_label4  "Label4"
#property indicator_type4   DRAW_LINE
#property indicator_color4  clrRed
#property indicator_style4  STYLE_SOLID
#property indicator_width4  1

//--- parámetros de entrada
input string         symbol1="EURUSD";
input string         symbol2="GBPUSD";
input double         mass_of_symbol1=1;
input double         mass_of_symbol2=1;
input int            ENPeriod    =  14;
input ENUM_MA_METHOD ENMethod    =  MODE_SMA;
input double         ENDeviation =  0.1;

//--- tampones indicadores
double         UBuffer[];
double         LBuffer[];
double         CBuffer[];

#include <IncOnArray/IncEnvelopesOnArray.mqh>
CEnvelopesOnArray en;

int i,r1,r2,j;
double S,prs,k1,k2,d1,d2;
//--- tampones indicadores
double        ind1[];
//+------------------------------------------------------------------+
//| Función de inicialización del indicador personalizada |
//+------------------------------------------------------------------+
int OnInit()
  {
    en.Init(ENPeriod,ENMethod,ENDeviation);
    
    //--- asignación de búferes indicadores
    SetIndexBuffer(0,ind1,INDICATOR_DATA);
    SetIndexBuffer(1,UBuffer,INDICATOR_DATA);
    SetIndexBuffer(2,LBuffer,INDICATOR_DATA);
    SetIndexBuffer(3,CBuffer,INDICATOR_DATA);
    
    PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,en.BarsRequired());
    PlotIndexSetString(1,PLOT_LABEL,en.Name()+" Upper");

    PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,en.BarsRequired());
    PlotIndexSetString(2,PLOT_LABEL,en.Name()+" Lower");

    PlotIndexSetInteger(3,PLOT_DRAW_BEGIN,en.BarsRequired());
    PlotIndexSetString(3,PLOT_LABEL,en.Name()+" MA");

    //---
   return(0);
  }
//+------------------------------------------------------------------+
//| Función de iteración del indicador personalizada |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   ArraySetAsSeries(time,true);ArraySetAsSeries(open,true);ArraySetAsSeries(high,true);ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);ArraySetAsSeries(tick_volume,true);ArraySetAsSeries(volume,true);ArraySetAsSeries(spread,true);

   ArraySetAsSeries(ind1,true);
   MqlRates rates1[]; ArraySetAsSeries(rates1,true);
   MqlRates rates2[]; ArraySetAsSeries(rates2,true);

   if(prev_calculated<rates_total)
     {
      for(i=0;i<rates_total;i++)
        {
         CopyRates(symbol1,0,time[i],1,rates1);
         CopyRates(symbol2,0,time[i],1,rates2);
         ind1[i]=mass_of_symbol1*rates1[0].close-mass_of_symbol2*rates2[0].close;
        }
     }

   en.Solve(rates_total,prev_calculated,ind1,CBuffer,UBuffer,LBuffer);

//--- valor de retorno de prev_calculado para la siguiente llamada
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

Parece que necesito entender los códigos Integer.

   //ArraySetAsSeries(ind1,true);

Quité la indexación y empezó a mostrarse, pero no correctamente.

 

Foro sobre negociación, sistemas automatizados de negociación y ensayo de estrategias de negociación

Indicadores: spread_on_chart

newdigital, 2014.01.12 08:59

¿Qué indica un spread a los operadores?

  • Los spreads se basan en el precio de compra y venta de un par de divisas.
  • Los costes se basan en los diferenciales y el tamaño del lote.
  • Los spreads son variables y deben ser referenciados desde su software de trading.

Spreads y Forex

Todos los mercados tienen un diferencial y también lo tiene Forex. Un spread se define simplemente como la diferencia de precio entre donde un operador puede comprar o vender un activo subyacente. Los operadores que estén familiarizados con la renta variable lo denominarán sinónimamente "diferencial de compra": Ask spread.

A continuación podemos ver un ejemplo del cálculo del spread para el EURUSD. Primero encontraremos el precio de compra en 1,35640 y luego restaremos el precio de venta de 1,32626. Lo que nos queda después de este proceso es una lectura de 0,00014. Los operadores deben recordar que el valor del pip se identifica en el EURUSD como el cuarto dígito después del decimal, lo que hace que el spread final se calcule en 1,4 pips.

Ahora que sabemos cómo calcular el spread en pips, veamos el coste real en el que incurren los operadores.



Costes y cálculos del diferencial

Dado que el spread es sólo un número, ahora necesitamos saber cómo relacionar el spread en Dólares y Centavos. La buena noticia es que si puede encontrar el diferencial, hallar esta cifra es muy sencillo desde el punto de vista matemático una vez que haya identificado el coste del pip y el número de lotes que está negociando.

Utilizando las cotizaciones anteriores, sabemos que actualmente podemos comprar el EURUSD a 1,3564 y cerrar la operación a un precio de venta de 1,35474. Esto significa que tan pronto como nuestra operación esté abierta, un operador incurriría en 1,4 pips de diferencial. Para hallar el coste total, ahora tendremos que multiplicar este valor por el coste del pip teniendo en cuenta la cantidad total de lotes negociados. Cuando se negocia un lote EURUSD de 10k con un coste de pips de 1$, se incurriría en un coste total de 1,40$ en esta transacción.

Recuerde que el coste del pip es exponencial. Esto significa que tendrá que multiplicar este valor en función del número de lotes que esté negociando. A medida que aumente el tamaño de sus posiciones, también lo hará el coste incurrido por el spread.


Cambios en el diferencial

Es importante recordar que los diferenciales son variables, lo que significa que no siempre serán los mismos y cambiarán esporádicamente. Estos cambios se basan en la liquidez, que puede variar en función de las condiciones del mercado y los próximos datos económicos. Para consultar los diferenciales actuales, consulte siempre su plataforma de negociación.

 

Foro sobre trading, sistemas automatizados de trading y prueba de estrategias de trading

Guiones: Noticias VLine

newdigital, 2014.01.30 09:25

Forex Spreads y las Noticias (basado en el artículo de dailyfx)

  • Los spreads se basan en el precio de compra y venta de un par de divisas.
  • Los spreads son variables y pueden cambiar durante las noticias.
  • Esté atento a la normalización de los diferenciales, poco después de los acontecimientos económicos.

Los mercados financieros pueden verse afectados drásticamente por la publicación de noticias económicas. Las noticias se suceden a lo largo de la semana, tal y como indica el calendario económico, y pueden aumentar la volatilidad del mercado, así como los diferenciales de sus pares de divisas favoritos.

Es imperativo que los nuevos operadores se familiaricen con lo que puede suceder durante estos eventos. Así que para prepararte mejor para las próximas noticias, vamos a repasar lo que ocurre con los diferenciales de Forex durante los mercados volátiles.


Losdiferenciales y las noticias

Las noticias son un momento notorio de incertidumbre en el mercado. Estas publicaciones en el calendario económico suceden esporádicamente y, dependiendo de si se cumplen las expectativas o no, pueden hacer que los precios fluctúen rápidamente. Al igual que los operadores minoristas, los grandes proveedores de liquidez no conocen el resultado de las noticias antes de su publicación. Por ello, intentan compensar parte de su riesgo ampliando los diferenciales.

Arriba se muestra un ejemplo de los diferenciales durante la publicación de la cifra de empleo NFP de enero. Observe cómo se ampliaron los diferenciales de los principales pares de divisas. Aunque se trata de un acontecimiento temporal, hasta que el mercado se normalice, los operadores tendrán que soportar mayores costes de negociación.


Cómomanejar los diferenciales

Es importante recordar que los diferenciales son variables, lo que significa que no siempre serán los mismos y cambiarán a medida que los proveedores de liquidez modifiquen sus precios. Arriba podemos ver lo rápido que se normalizan los diferenciales tras la noticia. En 5 minutos, los diferenciales del EURUSD pasaron de 6,4 pips a 1,4 pips. Entonces, ¿dónde deja esto a los operadores que quieren ejecutar órdenes en torno a las noticias?

Los operadores siempre deben tener en cuenta el riesgo de operar en mercados volátiles. Una de las opciones para operar con noticias es ejecutar inmediatamente las órdenes en el mercado con la esperanza de que la volatilidad del mercado cubra el aumento del coste del diferencial. O bien, los operadores pueden esperar a que los mercados se normalicen y aprovechar la liquidez adicional una vez que la actividad del mercado disminuya.


 

¡Lo siento!

¡Variables sin sentido declaradas y no funcionan!

 

en lugar de utilizar la diferencia, ¿podemos utilizar el cociente? (símbolo1/símbolo2)


Gracias.