[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 108

 

Buenas tardes.

¿Hay alguna forma de cambiar las propiedades indicator_minimum e indicator_maximum cuando se quiera en lugar de ponerlas como constantes una vez al preprocesador? No he encontrado nada útil en los documentos.

 
Solree:

Buenas tardes.

¿Hay alguna forma de cambiar las propiedades indicator_minimum e indicator_maximum cuando se quiera en lugar de ponerlas como constantes una vez al preprocesador? No he encontrado nada útil en los documentos.

En la configuración del indicador, pestaña "común". No se puede hacer con el software MQL.
 
alsu:
En la configuración del indicador, pestaña "general". No se puede utilizar el software MQL.
Es una pena... Gracias por su respuesta.
 
alsu:
En la configuración del indicador, pestaña "general". No se puede utilizar el software MQL.
Puedes hacerlo. Sólo que de manera equivocada. A través de un buffer adicional. Verdadero, no se puede establecer un valor mínimo menor que el de funcionamiento.
 
Zhunko:
Puedes hacerlo. Solo que torcido. Utiliza un búfer adicional. Sin embargo, no será posible fijar un mínimo inferior al de trabajo.
Y tampoco puedes poner el máximo más alto que el preestablecido))
 
alsu:
Y tampoco puedes superar el máximo preestablecido)).

Zhunko:
Sí, puedes hacerlo. Sólo distorsionado. A través de un búfer adicional. Es cierto que será imposible fijar un mínimo inferior al de trabajo.

¿Por qué? Si todo está controlado interna y programadamente, entonces cámbialo y contrólalo como quieras.

Puede cortar los valores a VACÍO, o puede ampliar los búferes.

 
sergeev:

¿por qué? si todo es interno y se controla mediante programación, entonces cámbialo y contrólalo como quieras.

Si quieres reducir los valores a VACÍO, o viceversa, amplía los búferes.

Respondido por el buffer.

Tengo un búfer que es responsable del barrido vertical. Las líneas las emito con objetos gráficos. Por eso todo está escalado como debe ser en ambas direcciones.

 
¿Puede dar más detalles sobre esto? Un trozo de código con esto, si no te importa :)
 
Buenas noches, ha surgido otra pregunta. Aquí está parte del código:
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 1
#property indicator_width2 1

extern string Symbol1.Name = "EURUSD";     // Название инструмента 1
extern bool   Symbol1.Reverse = false;     // Является ли инструмент 1 реверсивным (с обратной корреляцией) 
                                           // по отношению к остальным инструментам
extern string Symbol2.Name = "EURUSD";     // Название инструмента 2
extern bool   Symbol2.Reverse = false;     // Является ли инструмент 2 реверсивным (с обратной корреляцией) 

extern int MA.Slow = 80;                   // Период медленной МА

// Буферы для отображения данных
double Buf1[];    // Первый инструмент
double Buf2[];    // Второй инструмент

// Параметры графических объектов        
string Label.Name = "label";  
int wndNum;                                // Номер подокна индикатора
string wndName;                            // Наименование окна
string oSymb1,oSymb2;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() { 
  // Задаем имена графическим объектам
  oSymb1=Symbol1.Name;
  oSymb2=Symbol2.Name;

  // Формируем свойства графиков индикатора
  IndicatorBuffers(2);
  
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0,Symbol1.Name);

  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(1,Buf2);
  SetIndexLabel(1,Symbol2.Name);

  return(0);
}

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()  {
  // Удаляем все графические объекты
  DeleteObject(oSymb1);
  DeleteObject(oSymb2); 
  return(0);  
}

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start() {
  // Подсчет количества баров для построения индикатора
  int limit; int counted_bars=IndicatorCounted();
  if(counted_bars<0) return(-1);
  if(counted_bars>0) counted_bars--; 
  limit=Bars-counted_bars;
  
  // Определяем параметры окна индикатора
  wndNum=WindowFind(WindowExpertName());
  wndName=WindowExpertName()+wndNum; 
  //------------------------------------------------------------------ 
  // Отрисовка ценовых линий: рисуем и синхронизируем по наличию баров
  for(int i=0; i<limit; i++) { 
    Buf1[i]= iMA(Symbol1.Name,0,MA.Slow,0,MODE_SMA,PRICE_CLOSE,i); }
    
  for (i=0; i<limit; i++) {
    Buf2[i]= iMAOnArray(Buf1,0,MA.Slow,0,MODE_SMA,i); }
¿Cómo hacer que Buf1 no aparezca en la ventana del indicador?
 
Arles:
Buenas noches, ha surgido otra pregunta. Aquí está una parte del código: ¿Cómo hacer que Buf1 no se muestre en la ventana del indicador en absoluto?

Tenemos que cambiar

  SetIndexStyle(0,DRAW_NONE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0,Symbol1.Name)
Razón de la queja: