Una pregunta para los conocedores de MQL - página 7

 

Si se ha encontrado con un problema similar: Cuando se prueban los EAs en el registro aparecen las primeras líneas como "2010.08.18 22:23:37 TestGenerator: unmatched data error (volume limit 32 at 2010.08.18 21:15 exceeded)" y el icono "Do not enter" (de las reglas de tráfico). Y luego hay cadenas de información a medida que avanza la prueba. ¿Es un problema con el servidor de DC o es algo malo con el Asesor Experto?

 

Esto suele ocurrir si las fechas de inicio y finalización de la prueba están mal configuradas.

O, al inicio de la prueba, cotizaciones incorrectas (o falta de ellas), - agujeros, barras que faltan en diferentes marcos temporales, etc.

 
pathfinder1:

Si se ha encontrado con un problema similar: Cuando se prueban los EAs en el registro aparecen las primeras líneas como "2010.08.18 22:23:37 TestGenerator: unmatched data error (volume limit 32 at 2010.08.18 21:15 exceeded)" y el icono "Do not enter" (de las reglas de tráfico). Y luego hay cadenas de información a medida que avanza la prueba. ¿Es un problema con el servidor de DC o es algo malo con el Asesor Experto?

Y para divertirse: haga una búsqueda en el sitio con la consulta "TestGenerator: unmatched data error", y luego díganos.
 

Debri... El límite de volumen varía de 32 a 4826 . Pero parece que la historia no está formada. He establecido un período de tiempo diferente y está bien.

 

1) recargue el historial, primero usando el botón "Page Ap", luego a través del Historial de Cotizaciones, recalcule todos los TFs, vaya al probador/historial y borre todos los archivos - debería estar bien, o tiene un agujero en el historial, luego borre todo el historial, y realice todas las operaciones.

 

¡Buenas tardes a todos!

Otra pregunta sobre el triángulo en la ventana del indicador.

He conseguido un dibujo de triángulo normal, con la punta hacia la convergencia.

Pero no lo entiendo,

1. ¿Cómo puedo establecer el color del triángulo en la función

ObjectCreate("TRIANGLE", OBJ_TRIANGLE,WindowFind(WindowExpertName()), 
         level_1, delta_1,  level_2,delta_2,    level_3,delta_3); 

si no hay opción de color?

2. No cambio la dirección del triángulo cuando cambio la convergencia/divergencia de las líneas.

He puesto el código así:

 datetime  level_1, level_2, level_3;

if ( MathAbs(Symbol1[1]-SymbolS[1]) > MathAbs(Symbol1[0]-SymbolS[0]) ) {
//если имеет место  схождение линий SUM-RDX, задаем переменные для 
// вершины треугольника вправо-  
        level_1=Time[0]+3500;  delta_1= 0.1;
        level_2=Time[0]+3500;  delta_2=-0.1;
        level_3=Time[0]+10500;  delta_3   =0;  
 }       
if ( MathAbs(Symbol1[1]-SymbolS[1]) <= MathAbs(Symbol1[0]-SymbolS[0]) )
{//если имеет место  расхождение линий SUM-RDX, задаем переменные для
// вершины треугольника влево -      
       level_1=Time[0]+3500;  delta_1=0;
       level_2=Time[0]+10500;  delta_2=0.1;
       level_3=Time[0]+10500;  delta_3=-0.1;
  } 
  //==задаем отрисовку треугольника ===================                  
ObjectCreate("TRIANGLE", OBJ_TRIANGLE,WindowFind(WindowExpertName()), 
              level_1, delta_1 ,level_2,delta_2,level_3,delta_3); 

Pero aquí estoy en el probador ahora, ejecutando el inductor y puedo ver que el propio triángulo no ha cambiado la configuración cuando cambio la convergencia a la divergencia. Además, ¡el propio triángulo "se fue" a la izquierda junto con "su" lugar de fijación inicial (atadura)! ¿Por favor, indíqueme cuál puede ser el error?

Deinit está fijado.

int deinit()  {
ObjectDelete("TRIANGLE");
   return(0);  }
 

1. objectSet( name, OBJPROP_COLOR, col); // name - nombre del objeto, col - color del objeto

2. para cambiar los valores de las coordenadas, utilice

ObjectSet(nombre, OBJPROP_PRICE1, precio1);
ObjectSet(nombre, OBJPROP_PRICE2, precio2);
ObjectSet(nombre, OBJPROP_PRICE3, precio3);
ObjectSet(nombre, OBJPROP_TIME1, tiempo1);
ObjectSet(nombre, OBJPROP_TIME2, tiempo2);
ObjectSet(nombre, OBJPROP_TIME3, tiempo3);

 

¡Gracias, keekkenen!

Hizo lo que escribió. ¡¡Todo funciona como debería!!

 

Buenas tardes a todos.

¿Podría decirme cómo hacer que la línea de precio en la ventana del indicador (véase la figura de arriba) cambie de color en un cambio de dirección?

Ni siquiera sé cómo resolver este problema.

Lo hice así:

 color Color_C ;
 double BufW[];

int init() {
    
  SetIndexStyle(4,DRAW_LINE,STYLE_DOT,2,Color_C);
  SetIndexBuffer(4,BufW);
  SetIndexLabel(4,"Channel width");
  return(0);
               }
int start() {
  
  //------------------------------------------------------------------ 
  // Отрисовка ценовых линий: рисуем и синхронизируем по наличию баров
  for(int i=0; i<limit; i++) { 
.... .... ... 
    BufW[i]=(iMA(Symbol3.Name,Period(),MA........ .... );
                             }  // Конец отрисовки ценовых линий

if( BufW[i-1] => BufW[i] )   Color_C = Green;
  else  Color_C = Red;


Pero no funciona.

 

SetIndexStyle(4,DRAW_LINE,STYLE_DOT,2,Color_C);
SetIndexBuffer(4,BufW);
SetIndexLabel(4,"Channel width");

SetIndexStyle( 5,DRAW_LINE,STYLE_DOT,2,Color_X);
SetIndexBuffer( 5,BufX);
SetIndexLabel( 5,"Channel width");

..............

......................

doble ma=iMA(...................,................,i);

doble ma1=iMA(......,...............,...........I+1);

si(ma>ma1)

BufW=ma;

si no

BufX=ma;