Operar con spreads en Meta Trader - página 5

 

En pocas palabras:

1) Se calcula el diferencial medio

2) El diferencial actual se calcula para los últimos precios

3) Si el diferencial actual está por encima/por debajo del diferencial estadístico medio, se abre la posición. (El menor/mayor se determina en función de la situación del mercado - contango o backwardation)

 
¿Cómo se calcula el diferencial medio (si no es un secreto)?
 
MetaDriver >> :

No estoy muy seguro de cuál es el delito. ¿Se confabuló con un corredor para mover los precios? ¿O sólo con su pasta? Si con su propia pasta, no veo ninguna actividad delictiva. Ingenio, sí. Criminal, no. Y tu "gran golpe" es sólo una moralina neurótica. Cuando los bancos lo hacen, a nadie se le ocurre llamarlo delincuencia. :)


Léalo aquí (desde el puesto 310): http://www.procapital.ru/showthread.php?t=20648&page=21 y aquí http://www.procapital.ru/showthread.php?t=21115

 
rid >> :
¿Cómo se calcula el diferencial medio (si no es un secreto)?


double CalculateAvarageSpread(string Symbol_1, string Symbol_2,
                              int Timeframe, int NBars)
{
   int k;
   double N = 0;
   double Sum = 0;
   for( k = 0; k < iBars( Symbol_1, Timeframe); k++)
   {
      if( N == NBars)
         break;

      int symb2Shift = iBarShift( Symbol_2, Timeframe,iTime( Symbol_1, Timeframe, k),true);
      if( symb2Shift != -1)
      {
         Sum += iClose( Symbol_1, Timeframe, k) - iClose( Symbol_2, Timeframe, symb2Shift);
         N++;
      }
   }
   double avarageSpread = Sum / N;
   return( avarageSpread);
}
 

Esa es la posición de la oficina y es comprensible por qué. Pero si nos fijamos en los hechos, la cocina ha presentado una oferta y una oferta, que no es más que una oferta para hacer un trato. El cliente acepta esa oferta. Después, acusar a la cocina de haber sido engañada y, al mismo tiempo, argumentar que "nadie, ni siquiera el más brillante de los operadores, opera por la noche en la carne" o "no sabíamos que la liquidez del mercado no es infinita", es un juego de niños.

La posición de la cocina parece muy débil, dudo que quieran llevar el caso a los tribunales.

 

Sí... Por supuesto que no es suave.

En B. en la demo, las órdenes sólo pueden abrirse a los precios de los símbolos GCZ9 y GCG0, (Bid = Ask).

En la negociación real la orden se abre en GCZ9#I y GCG0#I, (Bid != Ask).

Y el diferencial se obtiene de forma bastante adecuada, pero no hay megabeneficio.


Por lo tanto, parece ser sólo otra forma de construir hermosos gráficos de equilibrio de demostración.

 
Fduch >> :

Sí... Por supuesto que no es suave.

En B. en la demo, sólo se pueden abrir órdenes a los precios de los símbolos GCZ9 y GCG0, (Bid = Ask).

En la negociación real la orden se abre en GCZ9#I y GCG0#I, (Bid != Ask).

Y el diferencial se obtiene de forma bastante adecuada, pero no hay megabeneficio.


Por lo tanto, parece ser sólo otra forma de construir hermosos gráficos de equilibrio de demostración.


No exactamente. ¡! En la demo, al igual que en la real, las posiciones se abren / cierran a los precios del Ticker Ask / Bid #I (¡y no al último!)

Está en el probador - el trabajo va en los precios de la última.

(Y en el probador B. no se tiene en cuenta la dispersión del ticker #I. Con todo lo que ello implica...)

Gracias, por cierto, por el código de propagación media.

Funciona. Aproximadamente lo mismo que en los estados de la p. 1.

Aunque en lo real, por supuesto, es poco probable que sea tan suave. El deslizamiento prácticamente (en el mejor de los casos) reduce a cero todo el beneficio obtenido. Hay que buscar los instrumentos más óptimos. Afortunadamente, hay muchos bienes (herramientas). Entonces puede que consigamos sacar algo.

El EA no se puede ejecutar en el probador por razones obvias. Por lo tanto, tendremos que supervisar la situación en línea. No es una tarea rápida...

 

Además, asumo implementar el cálculo de la desviación del spread y el cálculo de las entradas no por los precios LUST, sino por MarketInfo(ticker #I,MODE_ASK);

Además, establezca un límite en el tamaño del spread actual para cada símbolo:

spr = MarketInfo(ticker #I,MODE_ASK) -MarketInfo(ticker #I,MODE_BID) ;

Y también fijar rígidamente los intervalos de tiempo de trabajo. Para no caer en horas de poca liquidez con un spread enorme al abrir una posición.

Creo que de esta manera será posible aumentar el beneficio (o disminuir la pérdida) de cada operación en 2-4 ticks.

 
Por culpa de los precios LAST ocurre que los tickers de la cobertura llevan mucho tiempo con buenas ganancias (lo estoy viendo ahora - lo pongo en el comentario), pero el gráfico y el terminal muestran escasas ganancias o, peor, ¡siguen en pérdidas por la inercia de los precios LAST!
Mirando ahora en GBPUSD más 6BH0, por lo que necesita urgentemente para cambiar a los precios MarketInfo(ticker #I,....
 

He seguido el tema casi desde el principio.

Pero, no estoy del todo de acuerdo con detectar tanto el valor medio como no tener muy claro el tema de la apertura, es decir, cuándo.

He descrito el spread (diferencia) de forma algo diferente.Puede ser burdo, pero se muestra muy interesante como EA.

Si puedes hablar.

extern string Sum_1="GCG0";
extern string Sum_2="GCZ9";
double ARR[100,3];
double ARR_M[100];
int N=0;
int init()
{
ArrayInitialize( ARR,0);
ArrayInitialize( ARR_M,0);
}
int start()
  {
//----
double G0=MarketInfo( Sum_1,MODE_BID);
double Z9=MarketInfo( Sum_2,MODE_BID);
ARR[ N,0]= G0;
ARR[ N,1]= Z9;
ARR_M[ N]= G0- Z9;
N++;
if ( N>=100) N=0;
double SUM_0=0;
double SUM_1=0;
for (int r=0; r<100; r++)
{ 
SUM_0= SUM_0+( ARR[ r,0]- ARR[ r,1]);

}
double Aver= SUM_0/100;
double MAX=0;
double MIN=0;
for (int rr=0; rr<100; rr++)
{
if ( ARR_M[ rr]> MAX) MAX= ARR_M[ rr];
if ( ARR_M[ rr]< MIN) MIN= ARR_M[ rr];
}
Comment ("Aver  ",DoubleToStr( Aver,2),"   ", N,"   MAX  ",DoubleToStr( MAX,2)," MIN  ",DoubleToStr( MIN,2),"\n",
G0,"  ", Z9,"  ", G0- Z9);
//----
   return(0);
  }