Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 1149

 
Buenas tardes... Probablemente sea una pregunta sencilla, pero no sé por dónde empezar. Necesito un script que dibuje un rectángulo con un nombre que contenga la fecha y hora de creación. Tal vez alguien tenga un ejemplo que pueda adaptar a mi tarea.

Gracias de antemano :).
 
svob:
Buenas tardes... Probablemente sea una pregunta sencilla, pero no sé por dónde empezar. Necesito un script que dibuje un rectángulo con un nombre que contenga la fecha y hora de creación. Tal vez alguien tenga un ejemplo que pueda adaptar a mi tarea.

Gracias de antemano :).

Tome como base el ejemplo de la referenciaOBJ_RECTANGLE,

pero cambia esta línea

//--- создадим прямоугольник
   if(!RectangleCreate(0,InpName,0,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }

a esto:

//--- создадим прямоугольник
   if(!RectangleCreate(0,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS),0,date[d1],price[p1],date[d2],price[p2],InpColor,
      InpStyle,InpWidth,InpFill,InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_RECTANGLE
  • www.mql5.com
//| Cоздает прямоугольник по заданным координатам                    |               time1=0,                            price1=0,                         time2=0,                            price2=0,                        width=1,            //| Перемещает точку привязки прямоугольника                         |...
 
Vladimir Karputov:

Utilice el ejemplo de referenciaOBJ_RECTANGLE como base,

sólo cambia esta línea

a esto:

Gracias. :) Lo tengo...

 
Buenas tardes, ¿el número de decimales en el indicador (en la ventana separada) depende de los _Digitos de la herramienta? Si es así, ¿cómo puedo evitarlo? El indicador obtiene valores fraccionarios, mientras que sólo dibuja enteros en la escala.
 
VANDER:
Hola. ¿Depende el número de decimales de un indicador (en una ventana aparte) de los _dígitos de un símbolo? Si es así, ¿cómo puede evitarlo? El indicador produce valores fraccionarios, mientras que muestra sólo números enteros en la escala.

Ejemplo de indicador [carpeta de datos]\MQL5\NIndicadores\NEjemplos\ATR.mq5

OnInit() -> establecer la precisión de la visualización

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- check for input value
   if(InpAtrPeriod<=0)
     {
      ExtPeriodATR=14;
      printf("Incorrect input parameter InpAtrPeriod = %d. Indicator will use value %d for calculations.",InpAtrPeriod,ExtPeriodATR);
     }
   else ExtPeriodATR=InpAtrPeriod;
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtATRBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,ExtTRBuffer,INDICATOR_CALCULATIONS);
//---
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//--- sets first bar from what index will be drawn


Ejemplo #2 -> [carpeta de datos] \MQL5\NIndicadores\NEjemplos\NPromedio Móvil Personalizado.mq5

aquí la precisión es mayor

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtLineBuffer,INDICATOR_DATA);
//--- set accuracy
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);


Ejemplo #3 -> [carpeta de datos]\MQL5\NIndicadores\NEjemplos\ADX.mq5

siempre hay precisión de dos valores - independientemente de Digits()

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- check for input parameters
   if(InpPeriodADX>=100 || InpPeriodADX<=0)
     {
      ExtADXPeriod=14;
      printf("Incorrect value for input variable Period_ADX=%d. Indicator will use value=%d for calculations.",InpPeriodADX,ExtADXPeriod);
     }
   else ExtADXPeriod=InpPeriodADX;
//---- indicator buffers
   SetIndexBuffer(0,ExtADXBuffer);
   SetIndexBuffer(1,ExtPDIBuffer);
   SetIndexBuffer(2,ExtNDIBuffer);
   SetIndexBuffer(3,ExtPDBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,ExtNDBuffer,INDICATOR_CALCULATIONS);
   SetIndexBuffer(5,ExtTmpBuffer,INDICATOR_CALCULATIONS);
//--- indicator digits
   IndicatorSetInteger(INDICATOR_DIGITS,2);
 

¿Es posible acceder a otros gráficos en el probador de estrategias en modo visual (en pruebas multidivisa)? Por ejemplo:

int OnInit()
  {
   int bars=iBars("EURUSD",PERIOD_H1);
   bars=iBars("GBPUSD",PERIOD_H1);
   bars=iBars("USDJPY",PERIOD_H1);
   
   return(INIT_SUCCEEDED);
  }
void OnTick()
  {
   long arr[];
   ArrayResize(arr,1);
   arr[0]=ChartFirst();
   long id=arr[0];
   while (!IsStopped()){
      id=ChartNext(id);
      if(id>=0){
         int s=ArraySize(arr);
         ArrayResize(arr,s+1);
         arr[s]=id;
      }
      else break;
   }
   Comment("Total charts: ",ArraySize(arr));   
  }

Si lanza este EA en el probador de estrategias, el visualizador abrirá gráficos de EURUSD, GBPUSD, USDJPY, pero

Comment("Total charts: ",ArraySize(arr));

mostrará que sólo hay un gráfico.

 

¿Cómo puedo saber el tamaño de la etiqueta en términos de tamaño de letra y longitud de texto? Para posicionarlo con respecto a otros elementos

ObjectGetInteger(0,"label",OBJPROP_XSIZE,0);

Da 0

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Все объекты, используемые в техническом анализе, имеют привязку на графиках по координатам цены и времени – трендовая линия, каналы, инструменты Фибоначчи и т.д.  Но есть ряд вспомогательных объектов, предназначенных для улучшения интерфейса, которые имеют привязку к видимой всегда части графика (основное окно графика или подокна индикаторов...
 
Maksym Mudrakov:

¿Es posible acceder a otros gráficos en el probador de estrategias en modo visual (en pruebas multidivisa)? Por ejemplo:

Si ejecuta este EA en el probador de estrategias, el visualizador abrirá gráficos de EURUSD, GBPUSD, USDJPY, pero

mostrará que sólo hay un gráfico.

Este es un problema con la obtención de los manejadores de la ventana del renderizador. Y no hay manera de superarlo.

 
Roman Sharanov:

¿Cómo puedo saber el tamaño de la etiqueta en términos de tamaño de letra y longitud de texto? Para posicionarlo con respecto a otros elementos

Da 0

Utilizo fuentes de ancho único como "Courier New", entonces el ancho de cada carácter será aproximadamente el tamaño de la fuente.
 
indirectamente a través de la longitud de la línea y el tamaño de la letra.