MetaTrader 4 Build 529 beta lançado com novo compilador - página 37

 
Renat:
Ou seja, você pessoalmente não tem nenhum problema com a operabilidade do software e está fazendo perguntas gerais.

Li suas perguntas várias vezes e não as entendo. Estamos discutindo aqui as especificidades.

Não há problemas com a compilação. Há problemas com a operabilidade e, como eu entendo, eles têm a ver com a mistura da lógica MQL5 com a MQL4. Entretanto, os problemas que discutimos aqui não são suficientes para todas as ocasiões. Tudo isso é um caso especial. As regras são necessárias. Se você publicou um guia preliminar ou, pelo menos, a previsão das traduções das características e regras da MQL5 para a MQL4, isso não só nos ajudaria, mas também a compreender os problemas que surgem. E imagine só, haverá 500 páginas ou mais. Como posso relê-lo?

 
ForexMoneyMaker:

Não há problemas com a compilação. Há problemas com a operabilidade e, como eu entendo, eles têm a ver com a mistura da lógica MQL5 com a MQL4. Entretanto, os problemas que discutimos aqui não são suficientes para todas as ocasiões. Tudo isso é um caso especial. As regras são necessárias. Se você publicou um guia preliminar ou, pelo menos, a previsão das traduções das características e regras da MQL5 para a MQL4, isso não só nos ajudaria, mas também a compreender os problemas que surgem. E imagine só, haverá 500 páginas ou mais. Como você pode ler tudo isso?

primeiro, algo mais pode mudar (incluindo coisas que afetam a compatibilidade). segundo, agora todos os "recursos descritivos" são dedicados a preparar uma ajuda. por que sobrecarregar um sistema que já está funcionando em pleno? para que o número de bugs aumente?
 

MT4 constrói 536, ME constrói 872.

O indicador usa o parâmetro de entrada para uma janela separada: string externa Currency_Name = "EURUSD";

Se o indicador é iniciado sem alterar o parâmetro de entrada, o indicador é desenhado e funciona sem erros. Mas assim que eu mudar o símbolo após a primeira corrida, por exemplo "GBPUSD", o indicador não aceita o novo nome do símbolo. O short_Name do indicador mantém o mesmo nome, mas o indicador não é sorteado de forma alguma (campo vazio). Se você mudar o nome do símbolo na primeira chamada, o indicador será desenhado pelo nome inicial, escrito no programa.

Quanto à alteração dos valores numéricos dos dados iniciais do indicador, eles são alterados em todos os casos e o indicador é desenhado sem erros.

 
Renat:

Ter centenas de variáveis globais em um programa não é bom.

OOP e classes resolvem o problema completa e drasticamente, escondendo escopos e fornecendo acesso protegido aos dados.

Talvez não seja bom o suficiente. Mas eu escrevi lá por que é. Era impossível implementar o que se pretendia de forma diferente na MT4. Não funcionou de outra forma com gráficos. Somente através de variáveis externas você pode definir o estilo dos elementos gráficos. Se tivermos muitos elementos gráficos diferentes, teremos muitas variáveis externas. Além do estilo, há um grande número de propriedades dos itens gráficos, que também podem ser alterados APENAS COM VARIEDADES EXTERNAS. Os gráficos estão bem em bandeira. Mas no MT4 é uma verdadeira bagunça. É por isso que existem centenas de variáveis externas. Ainda não sabemos o que vai acontecer com a nova versão do MT4. Veremos.
 
nen:
Pode não ser bom o suficiente. Mas eu escrevi lá por que é. Era impossível implementar o que se pretendia de forma diferente na MT4. Não funcionou de outra forma com gráficos. Somente através de variáveis externas você pode definir o estilo dos itens gráficos. Se houver vários itens gráficos, você também terá muitas variáveis externas. Além do estilo, há muitas propriedades dos itens gráficos que também podem ser alteradas SOMENTE COM VÁRIAS EXTERNAS. Os gráficos em bandeira de bandeira são bons. Mas em MT4 é uma verdadeira bagunça. É por isso que existem centenas de variáveis externas. Como será na nova versão do MT4 é desconhecido. Veremos.

Portanto, estamos falando de variáveis, não de gráficos. Além disso, os gráficos são ótimos no MT5 - você pode fazer de tudo até jogos de computador. A Mt4 também está prestes a subir.

Como você pode transmitir em qualquer programa uma centena de parâmetros que um usuário deve modificar a qualquer momento? Somente com uma tabela de parâmetros de entrada. Não depende do tipo de programa.

De qualquer forma, centenas de parâmetros são o caminho do programador para lugar nenhum. Precisamos aplicar métodos inteligentes de controle automático para reduzir o número de parâmetros por um fator de dez. Quando você começa a pensar nisso, as soluções vêm imediatamente.

 
nen:

Se houver várias centenas de variáveis externas no indicador e algumas dezenas precisarem ser alteradas durante a instalação, então...

Antes de reinstalar, você precisará lembrar quais variáveis precisam ser salvas dos valores que foram alterados durante a instalação anterior do indicador.

Sem entrar na impossibilidade de se livrar de 100 parâmetros...

Para evitar ter que lembrar o que já foi mudado, existe um botão "Reset".

E o novo comportamento (salvar os valores inseridos das variáveis após a recompilação) torna o trabalho mais conveniente - você não precisa reconfigurar todas as cópias do indicador, se você mudar alguma coisa nele.

 

Renat, Stringo, será que a Unicode vai ficar de vez?

 
input datetime  Date_From = D'08.10.2013';      // Начало периода
input datetime  Date_To = D'08.11.2013';        // Окончание периода
input bool      Column_Headers = true;          // Создавать заголовки колонок?

Este é um script, na inicialização o campo Date_From é sempre a data/hora local atual, o campo Date_To está bem. Mudou a ordem das configurações - se uma variável do tipo data/hora não for a primeira da lista, este defeito não existe

---

Na ajuda, PRICE_CLOSE tem tipo ENUM_APPLIED_PRICE, mas o compilador não sabe - 'ENUM_APPLIED_PRICE' - declaração sem tipo. A ajuda ou o compilador irá consertá-lo?

---

E em geral para este editor/compilador - obrigado!

 

Eu faço alterações no indicador já compilado que está no gráfico do par de moedas. Eu recompilo-a. Para que as mudanças tenham efeito, é necessário reiniciar todo o terminal. Remover o indicador do gráfico e reiniciá-lo não ajuda, a mudança do cronograma não ajuda. Somente o reinício do terminal em si ajuda a ver as mudanças feitas.

Por favor, conserte-o.

 
ObjectSetInteger(0,"Name",OBJPROP_CORNER,CORNER_RIGHT_LOWER);
ObjectSetInteger(0,"Name",OBJPROP_ANCHOR,ANCHOR_RIGHT_LOWER);

CORNER_RIGHT_LOWER e ANCHOR_RIGHT_LOWER não são detectados

Arquivo Mqh-, erro de "identificador não declarado" nos registros


StringConcatenate funciona de forma estranha

Funciona desta maneira

StringConcatenate("Text 1 ","Text 2");
StringConcatenate("Text 1 ",10);
StringConcatenate(10," Text 2");
StringConcatenate(10,11);
StringConcatenate("Copyright ",CharToString(169));

Mas não funciona assim (apenas "©" é exibido)

StringConcatenate(CharToString(169)," Copyright");




Razão: