Uma pergunta real - página 10

 
m100:

goldtrader ,talvez eu esteja fazendo uma pergunta idiota demais, mas ainda assim, de onde a "janela de dados" obtém todos os valores?


Essa é uma pergunta para os desenvolvedores de terminais MT4. Acho que vem dos amortecedores dos indicadores e das séries cronológicas relevantes.
 
goldtrader:
Esta é uma questão para os desenvolvedores de terminais MT4. Penso que a partir dos amortecedores dos indicadores e das séries de tempos correspondentes.

Então não há função equivalente como GetWindowsData(3 buffer,0 bar) ?

GetWindowsData foi criado por mim.

 
goldtrader:

Leia msdn, WinApi, WindowHandle. Não sou um especialista nestas tecnologias. Tenha em mente que, para sua tarefa, é um BLEEP.

Há algo aqui https://www.mql5.com/ru/forum/120356

Para obter esses valores da janela de dados - você precisa ter o cursor do mouse sempre sobre a janela desejada

assim que o cursor se move em algum lugar ou perde o foco - a janela pára de se refrescar

 
m100:

Então não há função equivalente como GetWindowsData(3 buffer,0 bar) ?

Obviamente não, porque tudo que você precisa está lá e você não precisa de redundância. A janela de dados é essencialmente desnecessária.
 
OK, obrigado a todos, vou desmontar o código do Drknn
 

Talvez valha a pena explicar algo para tornar as coisas mais claras.

A linha MyValue=MyValue/(PeriodSkolzjaschej+1); 1 é adicionado à variável PeriodSkolzjaschej porque o laço iniciará a busca a partir da vela com número = PeriodSkolzjaschej e terminará com vela zero. Portanto, o número total de castiçais que participaram do laço será igual a PeriodSkolzjaschej+1. Isto significa que se o PeriodSkolzjaschej=35, o MA com period=36 estará realmente envolvido. Para obter uma média móvel de 35 períodos sem alterar nada no código, precisamos definir a variável PeriodSkolzjaschej para 34.

 
drknn:

Talvez valha a pena esclarecer algumas coisas para que a questão seja esclarecida.

A linha MyValue=MyValue/(PeriodSkolzjaschej+1); 1 é adicionada à variável PeriodSkolzjaschej porque o laço iniciará a busca a partir da vela com número = PeriodSkolzjaschej, e terminará com a leitura da vela zero. Portanto, o número total de castiçais que participaram do laço será igual a PeriodSkolzjaschej+1. Isto significa que se o PeriodSkolzjaschej=35, o MA com period=36 estará realmente envolvido. Para obter uma média móvel de 35 períodos sem alterar nada no código, precisamos definir a variável PeriodSkolzjaschej para 34.

obrigado

O preço applied_price é uma variável extra?

 
m100:

obrigado

O preço applied_price é uma variável extra?


Não - por padrão eu defini o iMACD() como zero, o que significa que o indicador deve ser construído com base em preços próximos. Se eu permitir que o usuário escolha, então a solicitação do valor do indicador deve ser feita da seguinte forma

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}