[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 108

 

下午好。

有什么办法可以随时改变 indicator_minimum 和 indicator_maximum 属性,而不是向预处理器设置为常数一次?我在文档中没有发现任何有用的东西。

 
Solree:

下午好。

有什么办法可以随时改变 indicator_minimum 和 indicator_maximum 属性,而不是向预处理器设置为常数一次?我在文档中没有发现任何有用的东西。

指标设置 中,"普通 "选项卡。你不能用MQL软件做到这一点。
 
alsu:
在指标设置中,"常规 "选项卡。你不能使用MQL软件。
这是一个遗憾...谢谢你的答复。
 
alsu:
在指标设置中,"常规 "选项卡。你不能使用MQL软件。
你可以。只是方式不对。通过一个额外的缓冲区。是的,你不能设置小于操作值的最小值。
 
Zhunko:
你可以。只不过是歪打正着。使用一个额外的缓冲区。然而,不可能将最小值设置得低于工作最小值。
而且你也不能把最大值设置得高于预设值))。
 
alsu:
而且你也不能高于预先设定的最大值))。

竺可桢
是的,你可以。只是被扭曲了。通过额外的缓冲区。然而,不可能将最低限度设定得低于工作最低限度。

如果一切都由内部和程序控制,那就随心所欲地改变和控制它。

你可以把数值削减到EMPTY,或者你可以扩大缓冲区。

 
sergeev:

如果它都是内部的,并且是程序控制的,那么就可以随心所欲地改变和控制它。

你想把数值削减到EMPTY,或者反过来说,把缓冲区扩大。

回答了缓冲区的问题。

我有一个缓冲器,负责垂直扫频。我用图形对象输出线条。这就是为什么所有的东西在两个方向上的比例都是应该的。

 
你能更详细地介绍一下这个问题吗?如果你不介意的话,可以用这段代码来表达 :)
 
晚上好,又出现了一个问题。这里是代码的一部分。
#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); }
如何使Buf1完全不显示在指标窗口中?
 
Arles:
晚上好,又出现了一个问题。以下是部分代码:如何使Buf1完全不显示在指标窗口中?

我们必须改变

  SetIndexStyle(0,DRAW_NONE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0,Symbol1.Name)