[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 417

 

Boa tarde, pessoal, alguém por favor ajude com a função WindowScreenShot. Para o 3º dia ninguém responde((. Escreveu o seguinte roteiro (ver arquivo anexo).

Em 2 palavras sobre o roteiro. O script destina-se a fazer screenshots do gráfico atual da janela do terminal do cliente. Na variável externa data/hora Time_bar a hora da barra a partir da qual e até a barra zero será criada (levando em conta o travessão direito no gráfico) é especificado. Na linha

int bar_number=iBarShift(NULL,0,Time_bar,true)

o número de série da barra que especificamos na variável externa data/hora_barra externa é procurado. A função em si, na linha

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Agora a questão é a seguinte... Para simplificar, vamos supor que precisamos criar uma captura de tela das duas últimas barras. Então, se a linha

int bar_number=iBarShift(NULL,0,Time_bar,true)

é deixado inalterado, o resultado será a seguinte captura de tela


Ou seja, não há barra na captura de tela (embora a corda

int bar_number=iBarShift(NULL,0,bar_time,true)

o número de barras por tempo deve ser calculado)

Se esta linha for apresentada da seguinte forma

int bar_number=iBarShift(NULL,0,Time_bar,true)+2

você terá a captura de tela que queríamos:

Pergunta: por que no caso desta corda ter a seguinte forma

int bar_number=iBarShift(NULL,0,Time_bar,true)

a captura de tela é feita com um deslocamento de 2 barras à direita do especificado na linha acima?

P.S. A fim de não desorganizar o fórum, obrigado antecipadamente por sua resposta
Arquivos anexados:
 
Vinin:

Sim, se é claro que a barra de zero nas barras de hora já começou.

pode ser usada a seguinte função com parâmetros para determinar se a barra foi iniciada:

int min=1;
int sec=59;

if ( TimeMinute(TimeCurrent())==m && TimeSeconds(TimeCurrent())==n)

{

se sim, faz uma pausa

}

 
stater:

podemos usar esta função com parâmetros para determinar se a barra foi iniciada:

int min=1;
int seg=59;

if ( TimeMinute(TimeCurrent())==m && TimeSeconds(TimeCurrent())==n)

{

se sim, faça uma pausa

}


É claro que você pode, mas se as transações forem significativamente menores do que o planejado, você pode procurar por outra condição
 
7777877:

Boa tarde, pessoal, alguém por favor ajude com a função WindowScreenShot. Para o 3º dia ninguém responde((. Escreveu o seguinte roteiro (ver arquivo anexo).

Em 2 palavras sobre o roteiro. O script destina-se a fazer screenshots do gráfico atual da janela do terminal do cliente. Na variável externa data/hora Time_bar a hora da barra a partir da qual e até a barra zero será criada (levando em conta o travessão direito no gráfico) é especificado. Na linha

int bar_number=iBarShift(NULL,0,Time_bar,true)

o número de série da barra que especificamos na variável externa data/hora_barra externa é procurado. A função em si, na linha

bool f=WindowScreenShot(name+".gif",1024,768,bar_number,Scale,View_graph)

Agora a questão é a seguinte... Para simplificar, vamos supor que precisamos criar uma captura de tela das duas últimas barras. Então, se a linha

int bar_number=iBarShift(NULL,0,Time_bar,true)

é deixado inalterado, o resultado será a seguinte captura de tela


Ou seja, não há barra na captura de tela (embora a corda

int bar_number=iBarShift(NULL,0,bar_time,true)

o número de barras por tempo deve ser calculado)

Se esta linha for apresentada da seguinte forma

int bar_number=iBarShift(NULL,0,Time_bar,true)+2

então teremos a captura de tela que queríamos:

Pergunta: por que no caso desta corda ter a seguinte forma

int bar_number=iBarShift(NULL,0,bar_time,true)

a captura de tela é feita com um deslocamento de 2 barras para a direita a partir da linha especificada na linha acima?

P.S. A fim de não desorganizar o fórum, obrigado antecipadamente por sua resposta

E clique em "bar shift" no terminal com antecedência.
 
FAQ:

E primeiro, clique em "bar shift" no terminal.

Desbloqueio... O resultado é o mesmo:

SEM "+2":


Com valor "+2" na linha int bar_number=iBarShift(NULL,0,Time_bar,true):


Nota: a linha vermelha vertical à esquerda (última captura de tela do gráfico) marca a barra da qual se deseja tirar uma captura de tela, mas sem "+2" na linha int bar_number=iBarShift(NULL,0,Time_bar,true).

P.S. Estou apenas começando a ficar louco(((.

 
Realmente... Meu conselho é tomar isso como uma característica e usá-lo, mas se isso incomodar demais, escreva para o decreto de serviço.
 
FAQ:
Realmente... Meu conselho - tome-o como uma característica e use-o, se o incomoda muito - escreva para o decreto de serviço.
Desculpe, mas só recentemente me dediquei à programação, portanto ainda não estou familiarizado com a gíria. Ficha - isto deve ser uma falha... Por favor, esclareça os "termos" de uso e dec. de serviço. )))
 

Uma característica - uma pequena inconsistência, que, no entanto, não interfere, e às vezes até oferece oportunidades sem documentação, como OrderClosePrice() - se você fechar um pedido com este parâmetro no preço de fechamento, ele fechará, sem necessidade de se preocupar em determinar o preço por tipo de pedido.

Bug - bug no programa (característica incorrigível)

Servidec - um lugar onde os usuários escrevem cartas com os bugs detectados. Ele está localizado no quinto fórum de seu perfil (é necessário um registro adicional)

 
7777877:

Desbloqueio... O resultado é o mesmo:

SEM "+2":


Com valor "+2" na linha int bar_number=iBarShift(NULL,0,Time_bar,true):


Nota: a linha vermelha vertical à esquerda (última captura de tela do gráfico) marca a barra da qual você queria tirar a captura de tela, mas sem "+2" na linha int bar_number=iBarShift(NULL,0,Time_bar,true).

P.S. Estou apenas começando a perder a cabeça(((




Ele dispara tudo corretamente, você tem Time_bar=D'2012.10.04 14:00' que é 33 barras na tabela horária, +2 35 barras, algo assim.

Eu também gostaria de ver tal imagem de tela..... a partir da linha vermelha.

 

Talvez alguém tenha encontrado este problema - apenas 20 plataformas MT4 podem ser abertas e pronto, não há mais abertura. CPU e RAM não são carregadas edevem permitir a abertura. Como resolver este problema?

Razão: