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

 

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta para iniciantes em MQL4, ajuda e discussão sobre algoritmos e códigos

Taras Slobodyanik, 2018.10.07 09:47

Estou escrevendo para dar o exemplo)

se você não precisa se lembrar do símbolo, você pode não se lembrar dele

Se o nome será apenas uma identificação gráfica, como apagar variáveis desnecessárias?
(haverá muitas variáveis se você as usar com freqüência)

Se não houver prefixo - a mesma coisa, como apagar variáveis desnecessárias?


=Estouescrevendo istoapenas como exemplo).

Se você quer expandir a mente pouco sofisticada, é um bom exemplo para a educação :-)

=Se eunomear apenas o id do gráfico, como remover variáveis desnecessárias?

Por que removê-los de todo? Se, por exemplo, você quiser armazenar apenas o período, então nome = prefixo+símbolo é suficiente. Tenho uma suposição que posso fazer com um GP - se eu executar apenas uma operação de mudança de quadro em um gráfico, ela terminará antes de eu ir para o próximo gráfico e lá o período é solicitado novamente e o GP é sobregravado. Há alguma armadilha neste caso?

 
Taras Slobodyanik:

meu código, meu código funciona, eu não consigo ver seu código.
por favor)

Então, eu joguei seu script no gráfico e a lista de variáveis globais é 0.
 
inter78:
Então, eu joguei seu script no gráfico e a lista de variáveis globais é 0.

você quer verificar ou quer dirigir?)
olhar a lista visualmente é olhar para bits longos, como bits para dublagem - há abracadabra, ou NaN

 
psyman:

Por que removê-los de todo? Se, por exemplo, você precisar armazenar apenas um ponto, então nome = prefixo + símbolo é suficiente. Tenho uma suposição que posso fazer com um GP - se eu fizer apenas uma operação de mudança de quadro no gráfico, ela termina antes de ir para o próximo gráfico, e lá o período é reinquirido e o GP é sobregravado. Não há armadilhas neste caso?

tudo depende da finalidade

se o indicador (ou qualquer outro), funcionará em uma instância, em um símbolo, e ninguém mais fará as mesmas variáveis, então, é claro, você não pode incomodar

 
Taras Slobodyanik:

você quer verificar ou dirigir?)
olhar a lista visualmente é olhar para bits longos, como bits para dublagem - há abracadabra, ou NaN

Isso se eu agora entendesse o que você acabou de me escrever, não me incomodaria com você. É só que meu conhecimento de programação tende a zero. Mas se eu pudesse enfiar o ChartID nas variáveis globais sem distorção, ficaria feliz. Obrigado.
 

Fórum sobre comércio, sistemas automatizados de comércio e testes estratégicos

Qualquer pergunta para iniciantes em MQL4, ajuda e discussão sobre algoritmos e códigos

Taras Slobodyanik, 2018.10.06 21:47

      string name=prefix_gv+"Price_"+IntegerToString(num,4,'0');
      if (GlobalVariableCheck(name) || GlobalVariableTemp(name))
         GlobalVariableSet(name, Line_ALL[i].price);
      

Como posso obter de forma tão inteligente que a variável nome é atribuída a um valor de string de texto e entãoLine_ALL[i].price é escrito lá também, mas como um GP?

Em teoria, o nome deveria apenas sobrescrevê-lo.

UPD

Acho que consegui - preciso de uma variável simples para armazenar o nome do GP. O nome da variável pode ser o mesmo. Certo?

 
psyman:

Explique a parte complicada: ao nome é atribuído um valor de string de texto e entãoLine_ALL[i].price é escrito lá,mas como um GP?

Em teoria, o nome deve ser simplesmente sobrescrito.

UPD

Acho que consegui - preciso de uma variável simples para armazenar o nome do GP. O nome da variável pode ser o mesmo. Certo?

Nonome da variável, um nome (textual) é criado, depois uma variável global é criada com este nome e um valor é escrito para este GP.
ou seja, é gerada uma lista de GPs e parte da matriz é armazenada neles

1

 
inter78:
Se eu entendesse o que você acabou de escrever, não o estaria incomodando. É só que meu conhecimento de programação tende a zero. Mas se eu pudesse enfiar o ChartID nas variáveis globais sem distorção, ficaria feliz. Obrigado.

meu código escreve o LongChartID para uma variável global temporária.

Visualmente, se você pressionar F3, zero (ou outro valor diferente) é exibido lá.
Isto acontece porque o terminal pensa que é um valor duplo e tenta mostrá-lo, mas nós o deslizou um longo tempo - que é um formato de número completamente diferente.

Se este valor for lido de volta como um duplo normal, será uma confusão.
Se for lido pelo meu código, será longo novamente (o mesmo que salvamos).
Se você clicar manualmente sobre esta variável na janela do terminal, ela será reinicializada porque o terminal detectará a troca.

 
Taras Slobodyanik:

Um nome é criado nonome da variável (textual), então uma variável global é criada com esse nome e um valor é escrito para esse GP.
ou seja, é gerada uma lista de GPs e parte da matriz é armazenada neles


Mas esta condição.

GlobalVariableCheck(name) || GlobalVariableTemp(name)

para quê?

A própria definição "GlobalVariableTemp tenta criar uma variável global temporária" não é clara para mim.

Por que tentar criar quando a GlobalVariableSet o faz?

UPD

Coloque-o no OnInit:

   string   GV_prefix="ZZ_";
   string   ctime=GV_prefix+_Symbol+"_"+ChartID();
   GlobalVariablesDeleteAll(NULL, 0);
    if (GlobalVariableCheck(ctime) || GlobalVariableTemp(ctime))
      GlobalVariableSet(ctime, Period());

Chamada no OnChartEvent:

if(GlobalVariableGet(ctime)!=Period()) 

A resposta que recebo é 'ctime' - identificador não declarado


 
psyman:

Mas esta condição.

por quê?

GlobalVariableCheck()- verifica se tal variável já existe, se não
GlobalVariableTemp()- cria uma variável temporária, que será apagada por si mesma no próximo lançamento.

psyman:

UPD

Escrevi-o no OnInit:

Eu o chamo no OnChartEvent:

Em resposta eu recebo 'ctime' - identificador não declarado

a cadeia precisa ser movida acima do OnInit, para variáveis de código global.

ou adicionar aoOnChartEvent

string   GV_prefix="ZZ_";
string   ctime=GV_prefix+_Symbol+"_"+ChartID();