Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 1113

 
Mislaid:

Necesitas un guión para los fines de semana.

Trabajo entre semana. Por eso uso el indicador. Le doy una lista de instrumentos y me pide cotizaciones para el marco temporal, en el gráfico del que se encuentra. No me molesto con el manejo de errores. Después de una docena de minutos todo se calma.

Lo había olvidado por completo. Si necesita guardar el historial, el gráfico del símbolo debe estar abierto.

No podemos mantener abiertas más de 100 cartas. Necesitamos 100 pares en 9 marcos temporales = 900 gráficos.

El mercado se pone en marcha. Pero ni las llamadas de CopyTime, ni las de ArrayCopySeries reponen automáticamente el historial para los instrumentos de MarketWatch.
Las cartas de los instrumentos nunca se abrieron.
Debe haber una solución.

Por ejemplo, AUDCAD. No hay gráficos abiertos para este símbolo. Si abro manualmente el gráfico AUDCAD H1 y pulso los botones, se cargará el historial. Es lo mismo en otros plazos - sólo en modo manual, no quiere hacerlo automáticamente.
 
De todos modos, escribí un script que abre unas cuantas docenas de gráficos en bloques, emula la pulsación de la tecla Home y luego cierra los gráficos.
Esto funciona con una muleta, pero también cambia la historia por nuevos personajes.
 

Buenas tardes, queridos miembros del foro. Por favor, no te sientas herido, sólo estoy escribiendo mi tesis y quiero hacer una investigación sociológica. Seguro que hay gente que ha comprado EAs una o varias veces. Díganos, por favor, qué criterios fueron importantes y cruciales para usted a la hora de comprar. Por ejemplo, puede ser:

-tipo de Asesor Experto (tendencia, seth, martingala, scalper...)

-Historia enel probador de estrategias

-algunas funciones específicas del Asesor Experto

-Descripción detallada de cómo funciona el EA y cómo se configura

-calificación del vendedor

- Precio EA

-campañas y descuentos

O quizás algo más.

¿Y está contento con su compra?

Muchas gracias por su comprensión y respuestas

 
Konstantin Zubrilin:

Buenas tardes, queridos miembros del foro. Por favor, no te sientas herido, sólo estoy escribiendo mi tesis y quiero hacer una investigación sociológica. Seguro que hay gente que ha comprado EAs una o varias veces. Díganos, por favor, qué criterios fueron importantes y cruciales para usted a la hora de comprar. Por ejemplo, puede ser:

-tipo de Asesor Experto (tendencia, seth, martingala, scalper...)

-Historia enel probador de estrategias

-algunas funciones específicas del Asesor Experto

-Descripción detallada de cómo funciona el EA y cómo se configura

-calificación del vendedor

- Precio EA

-campañas y descuentos

O quizás algo más.

¿Y está contento con su compra?

Muchas gracias por su comprensión y respuestas

Deberías crear una encuesta, preferiblemente en el hilo de inglés, hay más pindos.
 

¿Puede decirme dónde está el error? Se calculan los valores de los elementos del array Koef[], a cada elemento se le asigna un valor. ¿Por qué no se asigna Buffer1[]?

#property copyright "Copyright 2016, T"
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_level1 0.8
#property indicator_level2 -0.8
#property indicator_levelcolor Black
#property indicator_color1 Blue
#property indicator_minimum -1
#property indicator_width1 2
#property indicator_style1 0
#property indicator_maximum 1

double Buffer1[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//--- indicator buffers mapping
  SetIndexBuffer(0, Buffer1);
  SetIndexStyle(0, DRAW_LINE);
  return(0);
//---
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
   {
   int n=25;                                                            // количество элементов в массиве(для периода H1 n=25, тк i<n)
   int m=24;                                                            // количество массивов(для периода H1 m=24, тк p=0, p<m)
   int w=18;                                                            // количество заков после запятой
  
   double Price_CloseX[][24];                                           // Массив цен закрытия 1 пары  
   double Price_CloseY[][24];                                           // Массив цен закрытия 2 пары
   double dx[][24];                                                     // Отклонение от среднего значения для пары 1 dx
   double dy[][24];                                                     // Отклонение от среднего значения для пары 2 dy
   double dx2[][24];                                                    // Квадрат отклонения ср.значения dx2
   double dy2[][24];                                                    // Квадрат отклонения ср.значения dy2
   double dxdy[][24];                                                   // Произведение dx и dy
  
   double sum_x[][24];
   double sum_y[][24];
  
   double Mx[][24];                                                         // Массив среднего значения цен закрытия пары 1 Mx
   double My[][24];                                                         // Массив среднего значения цен закрытия пары 2 My
  
   double Edx2[][24];                                                       // Сумма квадратов отклонений Edx2
   double Edy2[][24];                                                       // Сумма квадратов отклонений Edy2
   double Edxdy[][24];                                                      // Сумма произведений отклонений Edxdy
  
   double Koef[];
  
   ArrayResize(Price_CloseX, n);
   ArrayResize(Price_CloseY, n);
   ArrayResize(dx, n);
   ArrayResize(dy, n);  
   ArrayResize(dx2, n);
   ArrayResize(dy2, n);
   ArrayResize(dxdy, n);
   ArrayResize(sum_x, n);
   ArrayResize(sum_y, n);
   ArrayResize(Mx, n);
   ArrayResize(My, n);
   ArrayResize(Edx2, n);
   ArrayResize(Edy2, n);
   ArrayResize(Edxdy, n);
   ArrayResize(Koef, n);
  
   string sym_x="EURUSD";
   string sym_y="GBPUSD";
  
   for(int i=1; i<n; i++)
      {
      for(int p=0; p<m; p++)
         {
         Price_CloseX[i][p]=iClose(sym_x, PERIOD_H1, i+p);
         Price_CloseY[i][p]=iClose(sym_y, PERIOD_H1, i+p);
        
         }
      }
      
    for(int i=1; i<n; i++)
      {    
      for(int p=0; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][p-1]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p-1]+Price_CloseY[i][p];
        
         }        
      }
  
   for(int i=1; i<n; i++)
      {    
      for(int p=0; p<m; p++)
         {      
         Mx[i][p]=sum_x[p+1][m-1]/(n-1);  
         My[i][p]=sum_y[p+1][m-1]/(n-1);
                
         }
       }
  
   for(int i=1; i<n; i++)
      {
      for(int p=0; p<m; p++)
         {
         dx[i][p]=Price_CloseX[i][p]-Mx[i][p];
         dy[i][p]=Price_CloseY[i][p]-My[i][p];
        
         }
      }
    
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         dx2[i][p]=(dx[i][p]*dx[i][p])*1000000;
         dy2[i][p]=(dy[i][p]*dy[i][p])*1000000;
        
         }
      }
    
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         dxdy[i][p]=(dx[i][p]*dy[i][p])*1000000;
        
         }
      }  
                        
   for(int i=1; i<n; i++)                                                                  
      {
      for(int p=0; p<m; p++)
         {
         Edx2[i][p]=(Edx2[i-1][p]+dx2[i][p]);                                        
         Edy2[i][p]=(Edy2[i-1][p]+dy2[i][p]);
         Edxdy[i][p]=(Edxdy[i-1][p]+dxdy[i][p]);
         }
      }
  

      for(int p=0; p<m; p++)
         {
         Koef[p]=Edxdy[n-1][p]/sqrt(Edx2[n-1][p]*Edy2[n-1][p]);
         Buffer1[p]=Koef[p];
         Alert("Коэффициент корреляции Пирсона между ", sym_x, " и ", sym_y, " равен ", DoubleToString(Koef[p], w));
         Alert("Значение буфера ", p, " равно ", Buffer1[p]);
         }
   return(0);
   }
 
Buenos días! ¿Entiendo bien que con tp=2, sl=20 y spread=2 la probabilidad de tp=(2+2)/(20-2)=0,22.... ¿o tengo que multiplicar por algún coeficiente? Y si el verdadero tp=0,22, entonces lo ideal es que podamos abrir 3 operaciones seguidas con estos parámetros, y 4 del trato a saltar?
¿Tal vez haya temas similares? Dame un enlace, por favor.
 
bobrush:
Buenos días! ¿Estoy en lo cierto al entender que con tp=2, sl=20 y spread=2 la probabilidad de tp=(2+2)/(20-2)=0,22.... ¿o tengo que multiplicar por algún coeficiente? Y si el verdadero tp=0,22, entonces lo ideal es que podamos abrir 3 operaciones seguidas con estos parámetros, y 4 del trato a saltar?
¿Tal vez haya temas similares? Dame un enlace, por favor.

No voy a dar un enlace, la gente piensa diferente. Recomiendo partir del principio de la desesperanza de construir el Grial. En este caso, para un TP y un SL dados, se puede formular como sigue:

En ausencia de diferencial, el beneficio esperado en cualquier serie de operaciones con el mismo SL y el mismo TP es cero.

La expectativa de beneficio sin spread es igual a P(TP)*TP-P(SL)*SL=0, donde SL y TP son las distancias desde el nivel de apertura de la operación hasta sus niveles, P es la probabilidad de que la operación se complete por SL o TP, respectivamente.

A partir de la condición de finalización de todos los tratos P(TP)+P(SL)=1, donde P(TP)*TP-(1-P(TP))*SL=0, P(TP)*(TP+SL)=SL y

P(TP)=SL/(SL+TP).

Para tener en cuenta el spread, hay que sustituir la expectativa de beneficio cero por la expectativa de pérdida del tamaño del spread, P(TP)*TP-P(SL)*SL=Spread, y derivar la fórmula necesaria.

 
Vladimir:

No voy a dar un enlace, la gente piensa diferente. Recomiendo partir del principio de la imposibilidad de construir el Grial. En este caso, para el TP y el SL dados, se puede formular como sigue:

En ausencia de diferencial, el beneficio esperado en cualquier serie de operaciones con el mismo SL y el mismo TP es cero.

La expectativa de beneficio sin spread es igual a P(TP)*TP-P(SL)*SL=0, donde SL y TP son las distancias desde el nivel de apertura de la operación hasta sus niveles, P es la probabilidad de que la operación se complete por SL o TP, respectivamente.

A partir de la condición de finalización de todos los tratos P(TP)+P(SL)=1, donde P(TP)*TP-(1-P(TP))*SL=0, P(TP)*(TP+SL)=SL y

P(TP)=SL/(SL+TP).

Para tener en cuenta el diferencial, tenemos que sustituir el pago esperado cero por una expectativa de pérdida igual al diferencial, P(TP)*TP-P(SL)*SL=Spread, y derivar la fórmula necesaria.

Preguntando por el coeficiente, recuerdo algo así como C(n,k), es decir, P(x)=C(n,k)*P(y/x).... En fin, estoy confundido... Tendré que hojear el libro.
 
bobrush:
Preguntando por el coeficiente, recuerdo algo así como C(n,k), es decir, P(x)=C(n,k)*P(y/x)..... En fin, estoy confundido... Tendré que hojear el libro.

Si hablamos de libros de teoría de la probabilidad, y a juzgar por la alusión al número de combinaciones de n por k C(n,k), se trata de combinatoria, entonces no hay respuestas a la pregunta planteada en teoría de la probabilidad. En concreto, la fórmula P(TP)*TP-P(SL)*SL=0

Lo conseguí empíricamente. En la búsqueda de una combinación de SL y TP que diera incluso la más pequeña desviación estadísticamente significativa de cero. La base de datos de historiales de ticks para 25 pares de divisas se recopiló durante unas 300 semanas en 50-60 centros de negociación, y en ese momento había 50.000 millones de ticks. He probado docenas de métodos de apertura regular o pseudo-aleatoria de ofertas. El tipo de interés sin el diferencial se consideró la media aritmética de la oferta y la demanda.

 
Vladimir:

Si hablamos de libros de teoría de la probabilidad, y a juzgar por la alusión al número de combinaciones de n por k C(n,k), se trata de combinatoria, entonces no hay respuestas a la pregunta planteada en teoría de la probabilidad. En concreto, la fórmula P(TP)*TP-P(SL)*SL=0

Lo conseguí empíricamente. En la búsqueda de una combinación de SL y TP que diera incluso la más pequeña desviación estadísticamente significativa de cero. La base de datos de historiales de ticks para 25 pares de divisas se recopiló durante unas 300 semanas en 50-60 centros de negociación, y en ese momento había 50.000 millones de ticks. He probado docenas de métodos de apertura regular o pseudo-aleatoria de ofertas. El tipo sin diferencial se consideró la media aritmética de la Oferta y la Demanda.

Significa que la teoría y la práctica son lo mismo. ¿300 semanas son más de 5 años sólo para confirmar la teoría?
Resulta que no importa cómo se abra el trato, aunque sea por azar, aunque sea por la señal, el resultado es el mismo: M(x)=0?