A100: Foi isto que sugeri: ... Apenas as operações == e != são afectadas pelas alterações. Tudo o resto, incluindo o = operador, deve ser deixado como está agora (inalterado)
Como pode o= operador ser deixado inalterado se agora causa confusão entre os apontadores e os próprios objectos? Se usar * para ele, então deve ser usado também para todos os outros operadores. Deve haver um único padrão. O que sugere é que o compilador deve escolher o certo por si só - isso é errado. Haverá muitos erros difíceis de encontrar. Tudo deve ser inequívoco: acções quer com um objecto quer com um ponteiro.
Bem, todos esses asteriscos são, evidentemente, muletas forçadas. Temos de mudar todo o conceito que os criadores escolheram não tão bem desde o início, penso eu.
Deveríamos ter passado da ligação para C++, e respectivamente abandonado a utilização de apontadores como um tipo separado de variável, substituindo-os por referências. As referências são essencialmente as mesmas que os apontadores, apenas interpretadas pelo compilador como objectos em si.Portanto, todas as acções com estas variáveis, incluindo os operadores, são tratadas como acções com um objecto. Se precisar de comparar ou atribuir exactamente as referências, utilize o operador de referência. Portanto, não haverá contradições:
Em suma, se os criadores alguma vez conceberam a MQL6, devemos ir nessa direcção. A ligação a C++ já não faz sentido, porque não corresponde ao conceito da linguagem.
Tanto MetaTrader como MetaEditor build 1159 (Windows 10 32 bit). Num PC grande (64 bit) não tenho a certeza sobre o MetaEditor, mas o MetaTrader construiu definitivamente 1159.
A100: MetaQuotes-Demo é de interesse uma vez que costumávamos receber actualizações 2-3 vezes por mês. É evidente que os corretores têm actualizações muito menos frequentes.
Karputov Vladimir:
É necessário ligar-se ao servidor MetaQuotes-Demo para obter as últimas actualizações.
Acordado, actualizado via MetaQuotes-Demo, ainda 1150! E o terminal informou-me várias vezes que as actualizações foram descarregadas e oferecidas para reiniciar, ainda 1150.
Ok, descarreguei o pacote de distribuição de http://www.metatrader5.com/ru/download, abri uma conta demo no MetaQuotes-Demo, desliguei e liguei o terminal por várias vezes - 1150! UAC desactivado, Windows 7 SP1 - 64
Скачать торговый терминал MetaTrader 5 для комфортной и успешной работы на финансовых рынках. Терминал обладает внушительными торговыми и аналитическими возможностями и является одним из лучших в мире
Vou repetir a pergunta uma vez que ninguém a respondeu e ela foi-se abaixo por causa da discussão acalorada sobre o OOP. Esta questão é realmente importante, é um insecto ou uma característica? Reparei nisso no MT4.
Encontrei uma situação em que a variável externa muda durante a execução do programa, mas quando altero o período de tempo, volta a tomar o valor que defini na janela de propriedades. Por exemplo, se antes do início definir TradeEnable para EnableAll e alterar o valor para EnableBuy durante a execução do programa, o valor retornará para EnableAll quando o gráfico mudar para outro período de tempo. O valor que defino no evento do temporizador e saída através de Comentário, não pode haver erro.
A variável TradeEnable não é afectada pela alternância entre gráficos. Ler a ajuda - Ao contrário das variáveis de entrada, os valores das variáveis externas podem ser alterados programmaticamente enquanto o programa está em execução.
É assim que o OnDeinit e o OnInit são criados.
Pergunta: Eu não entendo algo ou mudança de TradeEnable é um erro de tempo de execução?
int LastDeinitReason = 0;
voidOnDeinit(constint reason)
{
LastDeinitReason = reason;
if(reason==REASON_CHARTCHANGE || reason==REASON_TEMPLATE || reason==REASON_PARAMETERS)
return;
EventKillTimer();
// далее код при завершении работы советника
}
intOnInit()
{
if(LastDeinitReason==REASON_CHARTCHANGE || LastDeinitReason==REASON_TEMPLATE)
{
LastDeinitReason = 0;
return(INIT_SUCCEEDED);
}
if(LastDeinitReason==REASON_PARAMETERS)
{
SetParams();
return(INIT_SUCCEEDED);
}
// далее код инициализации при запуске
}
Karputov Vladimir: Basta abrir uma conta demo no servidor MetaQuites-Demo não é suficiente: também precisa de se ligar a esta conta demo para a actualização.
Claro que liguei. Em seguida, reiniciou novamente o terminal. Ainda não se vêem quaisquer actualizações.
Claro que liguei. Em seguida, reiniciou novamente o terminal. Ainda não se vêem quaisquer actualizações.
Estranho (olhou para o ficheiro de registo). Por experiência - se houver actualizações, então depois de ligar literalmente dentro de três segundos começa a descarregar.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Foi isto que sugeri:
...
Apenas as operações == e != são afectadas pelas alterações.
Tudo o resto, incluindo o = operador, deve ser deixado como está agora (inalterado)
Como pode o= operador ser deixado inalterado se agora causa confusão entre os apontadores e os próprios objectos? Se usar * para ele, então deve ser usado também para todos os outros operadores. Deve haver um único padrão. O que sugere é que o compilador deve escolher o certo por si só - isso é errado. Haverá muitos erros difíceis de encontrar. Tudo deve ser inequívoco: acções quer com um objecto quer com um ponteiro.
Bem, todos esses asteriscos são, evidentemente, muletas forçadas. Temos de mudar todo o conceito que os criadores escolheram não tão bem desde o início, penso eu.
Deveríamos ter passado da ligação para C++, e respectivamente abandonado a utilização de apontadores como um tipo separado de variável, substituindo-os por referências. As referências são essencialmente as mesmas que os apontadores, apenas interpretadas pelo compilador como objectos em si.Portanto, todas as acções com estas variáveis, incluindo os operadores, são tratadas como acções com um objecto. Se precisar de comparar ou atribuir exactamente as referências, utilize o operador de referência. Portanto, não haverá contradições:
Em suma, se os criadores alguma vez conceberam a MQL6, devemos ir nessa direcção. A ligação a C++ já não faz sentido, porque não corresponde ao conceito da linguagem.
Qual é a actualização mais recente que tem?
Qual é a actualização mais recente que tem?
Tenho 1150. não vejo actualizações para o último 1159.
MetaQuotes-Demo é de interesse uma vez que costumávamos receber actualizações 2-3 vezes por mês. É evidente que os corretores têm actualizações muito menos frequentes.
Acordado, actualizado via MetaQuotes-Demo, ainda 1150! E o terminal informou-me várias vezes que as actualizações foram descarregadas e oferecidas para reiniciar, ainda 1150.
Ok, descarreguei o pacote de distribuição de http://www.metatrader5.com/ru/download, abri uma conta demo no MetaQuotes-Demo, desliguei e liguei o terminal por várias vezes - 1150! UAC desactivado, Windows 7 SP1 - 64
Vou repetir a pergunta uma vez que ninguém a respondeu e ela foi-se abaixo por causa da discussão acalorada sobre o OOP. Esta questão é realmente importante, é um insecto ou uma característica? Reparei nisso no MT4.
Encontrei uma situação em que a variável externa muda durante a execução do programa, mas quando altero o período de tempo, volta a tomar o valor que defini na janela de propriedades. Por exemplo, se antes do início definir TradeEnable para EnableAll e alterar o valor para EnableBuy durante a execução do programa, o valor retornará para EnableAll quando o gráfico mudar para outro período de tempo. O valor que defino no evento do temporizador e saída através de Comentário, não pode haver erro.
A variável TradeEnable não é afectada pela alternância entre gráficos. Ler a ajuda - Ao contrário das variáveis de entrada, os valores das variáveis externas podem ser alterados programmaticamente enquanto o programa está em execução.
É assim que o OnDeinit e o OnInit são criados.
Pergunta: Eu não entendo algo ou mudança de TradeEnable é um erro de tempo de execução?
Tem de se ligar ao servidor MetaQuotes-Demo para obter as últimas actualizações.
Não ajuda. Cheguei mesmo a derrubar o MT5. Abriu uma demonstração em meta-cotações. Ainda 1150.
Basta abrir uma conta demo no servidor MetaQuites-Demo não é suficiente: também precisa de se ligar a esta conta demo para a actualização.
Claro que liguei. Em seguida, reiniciou novamente o terminal. Ainda não se vêem quaisquer actualizações.
Claro que liguei. Em seguida, reiniciou novamente o terminal. Ainda não se vêem quaisquer actualizações.
Estranho (olhou para o ficheiro de registo). Por experiência - se houver actualizações, então depois de ligar literalmente dentro de três segundos começa a descarregar.