Especialistas: GlobalVariable

 

GlobalVariable:

Este advisor mostra um exemplo de uso das variáveis ​​globais. A tarefa do advisor: armazenar o resultado do cálculo numa variável global e obter o valor da variável global na nova inicialização.

Autor: Karputov Vladimir

 
Automated-Trading:

GlobalVariable:

Autor: Karputov Vladimir

obteve uma variável global, salvou a variável global, e daí? Desculpe-me, querida, mas não estou entendendo nada. Por que você precisa dessas variáveis?
 
spbkit:
obter uma variável global, salvar a variável global, e daí? Desculpe-me, querida, mas não estou entendendo nada. Por que você precisa dessas variáveis?

Peço desculpas. Esse exemplo foi criado em resposta a uma solicitação de um dos membros do fórum: precisávamos de um exemplo de trabalho com variáveis globais do terminal. As variáveis globais do terminal salvam seus valores depois de recarregar o terminal e esse exemplo mostra como ler e gravar uma variável global.

 

Obrigado, código útil! Mas ele não funcionou no MT4... Você pode me informar como adaptar melhor esse código de amostra para o MT4?

 
Aleksandr Glebov:

Obrigado, código útil! Mas ele não funcionou no MT4... Você se importaria em dar um conselho sobre como adaptar melhor esse código de amostra para o MT4?

Basta alterar a extensão do arquivo de *.mq5 para *.mq4.
 
Não é um exemplo claro... Nunca tive a chance de aplicá-lo.... E como salvar duas variáveis (dois níveis de preço) não está claro...?
 
Aleksandr Glebov:
Não é um exemplo claro... Nunca tive a chance de aplicá-lo.... E como salvar duas variáveis (dois níveis de preço) não está claro...?

Mostre-me o que não funcionou, por favor.

Aleksandr Glebov:
Exemplo não muito claro... Nunca consegui aplicá-lo.... E como salvar duas variáveis (dois níveis de preço) não está claro...?

E em que parte do programa você deseja salvar os valores: em OnInit(), em OnTick() ou em OnDeinit?

 
Karputov Vladimir:

Mostre-me o que não funcionou, por favor.

E em que parte do programa você deseja salvar os valores: em OnInit(), em OnTick() ou em OnDeinit?

Salvei os valores em OnTick() e tentei obtê-los com OnInit(), mas não funcionou. Funcionou apenas da seguinte maneira: salvei em OnTick() - GlobalVariableSet("OER", OER ); e aqui, em OnTick(), a primeira condição - se as ordens forem maiores que 0, então OER = GlobalVariableGet("OER"). A variável OER, agora, ao ser recarregada, não é redefinida para zero. Mas assim que as ordens são abertas durante a operação normal, a variável necessária assume as condições da variável global anterior.... É necessário tentar obter os valores de OnInit()...?
 
Aleksandr Glebov:
Salvei os valores em OnTick() e tentei obtê-los com OnInit(), mas não funcionou. Funcionou apenas da seguinte maneira: salvei em OnTick() - GlobalVariableSet("OER", OER ); e aqui, em OnTick(), a primeira condição - se as ordens forem maiores que 0, então OER = GlobalVariableGet("OER"). Agora, a variável OER não é redefinida no recarregamento. Você acha que essa é a maneira correta de escrever o código?
Qual é a finalidade de salvar preços em variáveis globais? O que você deseja implementar? Qual é o algoritmo de ação?
 
Karputov Vladimir:
Qual é o objetivo de salvar preços em variáveis globais? O que você deseja implementar? Qual é o algoritmo de ação?
Ao recarregar, duas variáveis são redefinidas e, por isso, ao carregar, a coruja não funciona corretamente.... Preciso aprender a salvar essas variáveis para esse caso (se houver pedidos ao carregar, use os dados do globo).
 
Aleksandr Glebov:
Ao recarregar, duas variáveis são redefinidas e, por isso, o EA não funciona corretamente ao carregar. Preciso aprender a salvar essas variáveis para esse caso (se houver ordens ao carregar, use os dados do globo).

Em OnDeinit(), escreva sua condição - se você precisa ou não sobrescrever suas variáveis globais.

Em geral, pergunto novamente: "Qual é o algoritmo de ação?". No momento, é um heap-mala. Entenda que, a menos que você entenda o que precisa, não conseguirá implementá-lo. Desenhe um fluxograma - isso o ajudará.