Errores, fallos, preguntas - página 648

 
sergeev:
¿Se está depurando el probador?
Sí, está descargada.
 
MoneyJinn:

Sí, se equivoca. Se permiten múltiples formas de registro de ChartGetInteger.

Pero independientemente de la forma de registro de ChartGetInteger,no es posible obtener el valor actual de la propiedadCHART_BRING_TO_TOP.

Sin un ejemplo, es difícil decir qué y cómo. Por favor, compruebe la documentación y la versión de construcción.

Si no funciona como debería, escribe una solicitud a CA + código con un ejemplo.

Y la segunda variante debería devolver la propiedad de todos modos. donde hay cuatro parámetros.

 

Existe una función prototipo

#importar "kernel32.dll"
BOOL WriteFile(
HANDLE hFile, //descriptor de archivo
LPCVOID lpBuffer, // buffer de datos
DWORD nNumberOfBytesToWrite, // número de bytes a escribir
LPDWORD lpNumberOfBytesWritten, // número de bytes escritos
LPOVERLAPPED lpOverlapped // buffer asíncrono

);

La función se llama en el programa

op_err=WriteFile(h1,buff,LenPos, Writing,NULL);

¿Cómo puedo especificar correctamente que buff y Writing se pasan por referencia?

Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Основы языка / Функции - Документация по MQL5
 
tor30515:

Existe una función prototipo


¿Cómo puedo especificar correctamente que buff y Writing se pasan por referencia?

buff - a través de un array, por ejemplo, uchar &buff[]

escrito - también se puede utilizar una matriz o una sola variable int &escrito

 
Yedelkin:

Según el Manual, esta propiedad simplemente no se admite:

El código de error dice lo mismo. La cuestión de por qué no se admite la propiedad del gráfico CHART_BRING_TO_TOP es a nivel de desarrollador... Y si la propiedad está realmente soportada, entonces la pregunta es de nuevo a su nivel: ¿por qué en ese caso la función ChartGetInteger devuelve false?

Porque al establecer la propiedad CHART_BRING_TO_TOP a true se le da al terminal la orden de traer el gráfico dado al primer plano en el momento. No se trata de una propiedad en el sentido habitual, sino de una orden. Esa es la explicación.
 

Rosh:
Потому что установка свойства CHART_BRING_TO_TOP в значение true дает терминалу приказ вывести данный чарт на передний план в данный момент. Это не свойство в обычном понимание, а команда. Вот такое объяснение.

Significa que en nuestro caso el comando de "propiedad" CHART_BRING_TO_P con referencia a la función ChartGetInteger ( ) simplemente no es soportado y ChartGetInteger() devuelve false correctamente. Esta es la respuesta para MoneyJinn

 
Rosh:
Porque al establecer la propiedad CHART_BRING_TO_TOP a "true" se le da al terminal la orden de traer este gráfico al primer plano en este momento. No se trata de una propiedad en su acepción habitual, sino de una orden. Esa es la explicación.

Los desarrolladores no han dejado ninguna forma de determinar si la ventana del gráfico es visible o no para el usuario y cuál es la posición relativa de las ventanas.

Esto es muy malo. De nuevo, pérdida de control y nuevos riesgos.

 

Quiero señalar de inmediato que soy nuevo en la programación en MQL)

La esencia del problema: quiero implementar el dibujo de niveles (líneas horizontales) rehaciendo el estándar

indicador de fractales. Se trata de dibujar líneas horizontales en lugar de flechas.

Por tanto, la pregunta es: ¿es posible en el marco del indicador? Después de todo, es necesario especificar

No séel número de líneas del indicador antes del cálculo. ¿Es posible en la propiedad

#property indicator_plots para especificar una variable. ¿O es imposible?

A continuación se muestra el código de un fractal ligeramente modificado. Dibuja dos líneas en los fractales superior e inferior.

Pero necesito líneas horizontales, una línea por fractal.

¿Puede ser que las líneas horizontales se creen en el indicador a través de ObjectCreate?

#property copyright "2009, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
//---- indicator settings
#property indicator_chart_window 
//Для индикаторов расположение на графике цены (indicator_chart_window)
//или в отдельном окне (indicator_separate_window)
#property indicator_buffers 2
#property indicator_plots   2
#property indicator_type1   DRAW_LINE
#property indicator_type2   DRAW_LINE
#property indicator_color1  clrDeepPink
#property indicator_color2  clrRoyalBlue
#property indicator_label1  "Resistance lvl"
#property indicator_label2  "Support lvl"
#property indicator_style1  STYLE_SOLID
#property indicator_style2  STYLE_SOLID
#property indicator_width1  2
#property indicator_width2  2
//---- indicator buffers
double ExtUpperBuffer[];
double ExtLowerBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//---- indicator buffers mapping
   SetIndexBuffer(0,ExtUpperBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtLowerBuffer,INDICATOR_DATA);
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);// точность индикатора равна точности графика
//---- sets first bar from what index will be drawn
//  PlotIndexSetInteger(0,PLOT_ARROW,217);
//  PlotIndexSetInteger(1,PLOT_ARROW,218);
//---- arrow shifts when drawing
//  PlotIndexSetInteger(0,PLOT_ARROW_SHIFT,ExtArrowShift);
//  PlotIndexSetInteger(1,PLOT_ARROW_SHIFT,-ExtArrowShift);
//---- sets drawing line empty value--
//  PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,EMPTY_VALUE);
// PlotIndexSetDouble(1,PLOT_EMPTY_VALUE,EMPTY_VALUE);
//---- initialization done
  }
//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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 &TickVolume[],
                const long &Volume[],
                const int &Spread[])
  {
   int i,limit;
//---
   if(rates_total<5)
      return(0);
//---
   if(prev_calculated<7)
     {
      limit=2;
      //очистка буферов
      ArrayInitialize(ExtUpperBuffer,EMPTY_VALUE);
      ArrayInitialize(ExtLowerBuffer,EMPTY_VALUE);
     }
   else limit=rates_total-5;

   for(i=limit;i<rates_total-3 && !IsStopped();i++)//(?условие нач.цикла;усл.оконч.цикла;вычисление)
                                                   //i++ тоже самое что и i=i+1
     {
      //---- Upper Fractal
      if(High[i]>High[i+1] && High[i]>High[i+2] && High[i]>=High[i-1] && High[i]>=High[i-2])
         ExtUpperBuffer[i]=High[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtUpperBuffer[i]=ExtUpperBuffer[i-1];
      //else ExtUpperBuffer[i]=ExtUpperBuffer[1];

      //---- Lower Fractal
      if(Low[i]<Low[i+1] && Low[i]<Low[i+2] && Low[i]<=Low[i-1] && Low[i]<=Low[i-2])
         ExtLowerBuffer[i]=Low[i];
      //else ExtBuffer[i]=EMPTY_VALUE;
      else ExtLowerBuffer[i]=ExtLowerBuffer[i-1];
      //else ExtLowerBuffer[i]=ExtLowerBuffer[1];
      
     // ObjectCreate(0,Level_obj,OBJ_HLINE);

     }
//--- OnCalculate done. Return new prev_calculated.
   return(rates_total);
  }

//+------------------------------------------------------------------+
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - Документация по MQL5
 
pregunta sobre los archivos. ¿cuál es el límite del tamaño del archivo que se puede abrir en µl5?
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
¿Cómo puedo obtener el valor de ACCOUNT_BALANCE en el historial? Al consultar el historial de transacciones, es necesario conocer la variación del saldo.