Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1892

 
Sergey Dymov #:

Você pode me dar uma dica?

Em mql4 havia um indicador baseado em MA para o preço de abertura, que permitia evitar a reavaliação da barra atual. através de int start() ele funcionou bem. Mostrou tudo claramente.

Em mql5, o mesmo indicador não funciona através de int start, ele funciona através de int OnCalculate. Ela continua recalculando e redesenhando, por um segundo a imagem desaparece e pode ter valores diferentes por causa da fronteira com dois MA que cruzam a situação, mesmo que eu tenha estabelecido distância entre dois MA, ela não funciona. Pensei que não tiraria o valor 0, mas o 1º do buffer MA, mas não funcionou e também pensei em pular esta função antes da chegada de um novo bar e também não funcionou (até tentei parar de exibir nada). Como superar esta situação?

Ao virar a tabela da direita para a esquerda, também pisca o indicador com recálculo constante

Faça a pergunta aqui - eles definitivamente ajudarão.

 
Sergey Dymov #:

Você pode me dar uma dica?

Em mql4 havia um indicador baseado em MA sobre o preço de abertura, que permitia evitar a re-encomenda na barra atual. através de int start() ele funcionou bem. Mostrou tudo claramente.

Em mql5, o mesmo indicador não funciona através de int start, ele funciona através de int OnCalculate. Ele continua recalculando e redesenhando, por um segundo a imagem desaparece e pode ter valores diferentes por causa da situação limite com a interseção de dois MAs, embora a distância entre dois MAs esteja definida, isso não ajuda. Pensei que não tiraria o valor 0, mas o 1º do buffer MA, mas não funcionou e também pensei em pular esta função antes da chegada de um novo bar e também não funcionou (até tentei parar de exibir nada). Como superar esta situação?

Ao virar a tabela da direita para a esquerda, também pisca o indicador com recálculo constante

Afixe o código
 

Existe tal coisa no gráfico

Já vi isso ser feito em qualquer cor, se não estou enganado.

Como?

 
Vitaly Muzichenko #:

Existe tal coisa no gráfico

Já vi isso ser feito em qualquer cor, se não estou enganado.

Como?

F8 e.


Mas esta também é a cor da grade, portanto, desmarque


 
Artyom Trishkin #:

F8 e

Mas esta também é a cor da grade, portanto, desmarque

Entendi, obrigado!

A grade é necessária, é uma pena que não esteja separada.

P.S. Como se deslocam programadamente 15 barras a partir da borda direita?
 
Vitaly Muzichenko #:

Entendi, obrigado!

A grade é necessária, é uma pena que não esteja dividida.

P.S. Como você muda programticamente 15 barras a partir da borda direita?

Que tal isso?

//+------------------------------------------------------------------+
//| Функция включает/выключает режим отображения ценового графика с  |
//| отступом от правого края.                                        |
//+------------------------------------------------------------------+
bool ChartShiftSet(const bool value,const long chart_ID=0)
  {
//--- сбросим значение ошибки
   ResetLastError();
//--- установим значение свойства
   if(!ChartSetInteger(chart_ID,CHART_SHIFT,0,value))
     {
      //--- выведем сообщение об ошибке в журнал "Эксперты"
      Print(__FUNCTION__+", Error Code = ",GetLastError());
      return(false);
     }
//--- успешное выполнение
   return(true);
  }
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Примеры работы с графиком - Константы графиков - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov #:

Que tal isso?

Sim, mas isso é apertar o botão

Quando você arrasta o marcador com as mãos, ele descansa um pouco antes de alcançar a borda certa - esta é uma limitação fundamentalmente errada do terminal!

Ao pressionar o botão, a barra mais externa quase se cola à borda direita, de modo que o valor da informação do gráfico se perde.

Você deve pressionar o botão sem atingir 15-20 barras e não realizar esta operação toda vez que uma nova barra aparecer. Comprimir apenas uma vez.

P.S. Por que uma tal restrição e tanto espaço vazio?


 
Vitaly Muzichenko #:

Sim, mas está empurrando o botão para longe.

Quando você arrasta o marcador com as mãos, ele descansa muito antes de atingir a borda certa - esta é uma limitação fundamentalmente errada do terminal!

Ao pressionar o botão, a barra mais externa quase se cola à borda direita, de modo que o valor da informação do gráfico se perde.

Você deve pressionar o botão sem atingir 15-20 barras e não realizar esta operação toda vez que uma nova barra aparecer. Comprimir apenas uma vez.

Porcentagem

//+------------------------------------------------------------------+ 
//| Функция устанавливает размер отступа нулевого бара от правого    | 
//| края графика в процентах (от 10% до 50%). Для включения режима   | 
//| отступа, нужно установить значение свойства CHART_SHIFT равным   | 
//| true.                                                            | 
//+------------------------------------------------------------------+ 
bool ChartShiftSizeSet(const double value,const long chart_ID=0) 
  { 
//--- сбросим значение ошибки 
   ResetLastError(); 
//--- установим значение свойства 
   if(!ChartSetDouble(chart_ID,CHART_SHIFT_SIZE,value)) 
     { 
      //--- выведем сообщение об ошибке в журнал "Эксперты" 
      Print(__FUNCTION__+", Error Code = ",GetLastError()); 
      return(false); 
     } 
//--- успешное выполнение 
   return(true); 
  }
 
Alekseu Fedotov #:

Porcentagem

Trabalha, mas o mínimo é um recuo que pode ser estabelecido manualmente e pelo menos

Visualmente, é cerca de 10% no mínimo. Por que 5% não funciona

 
Vitaly Muzichenko #:

Trabalha, mas o mínimo é um recuo que pode ser estabelecido manualmente e pelo menos

Sim, não menos do que 10% da janela.

Razão: