Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1165

 
Alexey Viktorov:

Não se pode perder uma habilidade.

Sim? Uma centena, então? Com limão...

 
Artyom Trishkin:

Na imagem do ecrã, a visualização do buffer é deslocada cinco barras para a direita. Então - para obter a quinta barra do tampão indicador (com índice 4), e mais abaixo na lista à esquerda, de onde devemos obtê-los? De Buffer[4] e mais para a esquerda.

Em teoria. Na prática não abro o código de indicadores há muito tempo, já não trabalho com eles há quase um ano. Experimente.

É isso mesmo. Mas eu não preciso desses 5 valores à direita, quero ter o valor necessário em Buffer[0] de uma só vez. Caso contrário, terei de passar não só o tampão mas também a compensação para um monte de funções para calcular fractais por MA e outras coisas. Isto é uma complicação desnecessária do código e uma desaceleração extra dos cálculos.

Só posso copiar os valores requeridos em Buffer (sem 5 valores MA à direita) se passar -2*ma_shift em CopyBuffer para start_pos.
Essa é a questão original - de onde veio a dupla compensação negativa. Por favor, esclareça. Talvez seja um bug, ou talvez seja uma característica da MQL5.

 
RickD:

Isto é correcto. Mas não preciso desses 5 valores à direita, quero ter o valor desejado em Buffer[0] de uma só vez. Caso contrário, terei de passar não só a tampão, mas também a um monte de funções para o cálculo dos fractais por MA e outras coisas. Isto é uma complicação desnecessária do código e uma desaceleração extra dos cálculos.

Só posso copiar os valores requeridos em Buffer (sem 5 valores MA à direita) se passar -2*ma_shift em CopyBuffer para start_pos.
Essa é a pergunta original - de onde veio a dupla compensação negativa. Por favor, esclareça. Talvez seja um bug, ou talvez seja uma característica da MQL5.

Vê-se que não se é compreendido. Se o fizer, normalmente faz um desenho. Ainda não está claro O QUE se quer obter.


Acrescentado: A imagem deve mostrar O QUE deve ser o resultado INTEGRAL.

 
RickD:

Isto é correcto. Mas não preciso desses 5 valores à direita, quero ter o valor desejado em Buffer[0] de uma só vez. Caso contrário, terei de passar não só a tampão, mas também a um monte de funções para o cálculo dos fractais por MA e outras coisas. Isto é uma complicação desnecessária do código e uma desaceleração extra dos cálculos.

Só posso copiar os valores requeridos em Buffer (sem 5 valores MA à direita) se passar -2*ma_shift em CopyBuffer para start_pos.
Essa é a pergunta original - de onde veio a dupla compensação negativa. Por favor, esclareça. Talvez seja um bug, ou talvez seja uma característica da MQL5.

A mudança é simplesmente uma mudança na exibição da máscara. O valor mais à direita será em Buffer[0]. Se quiser saber o valor na barra de zero, estará em Buffer[0 + turno].


Se o desejar sem + turno, especifique 0 + turno emCopyBuffer(), então Buffer[0] conterá o valor desejado.
 
Pode dizer-me qual o inluder a ligar para chegar à funçãoMathCorrelationKendall()?
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall
  • www.mql5.com
Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Сергей Таболин:
Pode dizer-me qual o inluder a ligar para chegar à função MathCorrelationKendall()?

Ligar:

#include <Math\Stat\Math.mqh>
 
Vladimir Karputov:

Ligar:

Obrigado.

 
Se desejar sem + turno, especificar 0 + turno em CopyBuffer(), então Buffer[0] conterá o valor requerido.

Tudo isto é claro. Pergunta - que posição de partida deve ser especificada em CopyBuffer() para obter "sem + turno" nos seus termos?

 
Vladimir Karputov:

Vê-se que não se está a ser compreendido. Em tal caso, é habitual fazer um desenho. Ainda não está claro o que se pretende obter.


Acrescentado: O desenho deve mostrar O QUE deve ser o resultado.

Já havia um desenho. Vou repeti-lo.

Pretende-se que Buffer[0] tenha o valor de MA correspondente à linha vertical vermelha.
Buffer[1] deve ter o valor de MA à esquerda da linha vermelha. E assim por diante.

E tudo isto está no indicador.


Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
RickD:

Tudo isto é compreensível. Pergunta - que posição inicial especificar no CopyBuffer para obter nos seus termos "sem + turno" ?

O valor acrescentado para o offset da MA é 1.