[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 108

 

Boa tarde.

Existe alguma maneira de alterar as propriedades indicador_mínimo e indicador_máximo sempre que você quiser, em vez de defini-las como constantes uma vez para o pré-processador? Eu não encontrei nada de útil nos documentos.

 
Solree:

Boa tarde.

Existe alguma maneira de alterar as propriedades indicador_mínimo e indicador_máximo sempre que você quiser, em vez de defini-las como constantes uma vez para o pré-processador? Eu não encontrei nada de útil nos documentos.

Nas configurações do indicador, guia "comum". Você não pode fazer isso com o software MQL.
 
alsu:
Nas configurações do indicador, guia "geral". Você não pode usar o software MQL.
É uma pena... Obrigado por sua resposta.
 
alsu:
Nas configurações do indicador, guia "geral". Você não pode usar o software MQL.
Você pode. Mas de uma forma ruim. Através de um buffer adicional. É verdade, não se pode definir o valor mínimo menor que o de operação.
 
Zhunko:
Você pode. Somente tortos. Use um buffer adicional. Entretanto, não será possível estabelecer um mínimo inferior ao mínimo de trabalho.
E você também não pode definir o máximo acima do pré-ajustado))
 
alsu:
E você também não pode ir além do máximo pré-estabelecido)).

Zhunko:
Sim, você pode. Apenas distorcido. Através de um buffer adicional. É verdade que será impossível estabelecer o mínimo menos do que o mínimo de trabalho.

Por quê? Se tudo é controlado internamente e de forma programática, então mude e controle como você quiser.

Você pode cortar os valores para VAZIO, ou pode ampliar os amortecedores.

 
sergeev:

Por quê? se tudo é controlado interna e programmaticamente, então mude e controle como você quiser.

Você quer cortar os valores para VAZIO, ou vice versa, ampliar os amortecedores.

Respondido para o buffer.

Tenho um buffer que é responsável pela varredura vertical. Eu saio as linhas com objetos gráficos. É por isso que tudo é escalonado como deveria ser em ambas as direções.

 
Você pode entrar um pouco mais em detalhes sobre isso? Um pedaço de código com isto, se você não se importa :)
 
Boa noite, surgiu outra pergunta. Aqui está uma parte do 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); }
Como fazer com que o Buf1 não seja exibido na janela indicadora?
 
Arles:
Boa noite, surgiu outra pergunta. Aqui está uma parte do código: Como fazer com que o Buf1 não seja exibido na janela indicadora?

Temos que mudar

  SetIndexStyle(0,DRAW_NONE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0,Symbol1.Name)
Razão: