Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Porque no testador ele não chama OnChartEvent
É isso mesmo. Mas, na mesma situação no MT4, havia variantes possíveis. Implementei uma delas com sucesso. A interface funcionava para um Expert Advisor em execução no modo normal, mas podia controlar sua cópia em execução no testador. A conexão foi realizada por meio de recursos. O EA no gráfico recebeu todos os dados durante o processo de teste. Com o MT5, talvez a situação seja mais complicada. Não tenho certeza se será possível estabelecer "comunicação" entre duas cópias por meio de recursos. Essa questão requer um estudo separado.
4. navegar pelas listas de propriedades de itens individuais.
//-----------------------------------------------------------------------------------------
Deixe-me lembrá-lo da lista de tópicos a serem considerados:
1. orientação na lista do intellisense e seleção da função da janela correta.
2. Abrir e fechar janelas programaticamente.
3. orientação na lista do intellisense e seleção do item certo na janela certa.
4. Navegar pelas listas de propriedades de elementos individuais.
5. Analisar o nome de um elemento e a função de janela.
6.Retornar o valor do parâmetro de um elemento selecionado para uma variável de seu tipo. Considerar três tipos de vários elementos diferentes.
7. Definir valores nos parâmetros de diferentes tipos de elementos. Vamos ver como os valores aparecerão nas janelas de interface desses elementos.
8. Retornar os valores dos parâmetros de um elemento, modificar e encaminhar esse valor para outro elemento. Considere diferentes tipos de elementos e valores e teste o encaminhamento entre diferentes tipos de elementos em diferentes janelas.
9. Retornar o valor anterior (_V_LAST). Quando e para quais casos o último valor é necessário (não confundir com o valor atual).
10. Teste a configuração dos estados ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK para diferentes tipos de elementos.
11. Vamos tentar vincular e sincronizar as alterações de valores de elementos de tipos diferentes: por exemplo, campo de entrada com botões e controle deslizante. Vamos supor que, quando o valor de um elemento (manual ou de software) for alterado, o valor do segundo elemento será alterado de forma correspondente.
12. Vamos tentar redefinir programaticamente os limites do intervalo do controle deslizante e do campo de entrada com botões por meio de funções de wrapper. Não tive tempo de testar isso, mas algo sugere que funcionará. No entanto, vamos ver.
13. Vamos tentar retornar os estados dos elementos por meio de funções de wrapper. Isso está incluído na funcionalidade, mas não tive tempo de testá-la. Então, vamos ver... O resultado é desconhecido.
14. Vamos obter e definir cores para texto e bases de elementos. Podemos tentar associar essas cores a alguns eventos simples ou limites de valores.
15. Vou lhe dizer mais sobre como navegar e ler a impressão do novo arquivo da API.
//------------------------------------------
A cor amarela indica tópicos que já foram abordados.
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
Ênfase adicionada:
Cada função de wrapper aceita propriedades somente com o prefixo explicitado em seu nome.
É assim que o trabalho com listas se parece na prática(coloque colchetes no final, pois o intellisense não funciona dentro dos colchetes das funções de wrapper):
O gif está ligeiramente acelerado.
Como resultado das chamadas mostradas no gif, as funções de wrapper retornam os valores das propriedades especificadas.
Antes da chamada, você deve declarar uma variável para armazenar o valor da propriedade ou o resultado da execução da função. Mais informações sobre isso nos tópicos a seguir.
5.
Analisar o nome do elemento e a função de janela wrapper:
1. Nome da função do elemento wrapper:
Vejamos o exemplo da função do elemento do campo de entrada de texto EDITAR: w7_s_p4_EDIT_Comment_1();
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/ / - ------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
2. O nome da função do wrapper da janela:
Vamos dar uma olhada em outra função como exemplo: w_15_Processing_the_data();
//-------------------------------------------------------------
) // - ------------------------------------------------------------
//-------------------------------------------------------------
Deve-se observar que a função de janela ainda não tem um prefixo para abrir a lista de propriedades. Esse recurso será definitivamente exibido. Uma lista especial de propriedades da janela para retornar/definir será gerada e um prefixo será atribuído. Além disso, a função window ainda não contém uma letra de tipo de retorno.
Por enquanto, a função só pode abrir ou fechar uma janela.
Esses defeitos serão corrigidos na próxima versão.
Recomenda-se resumir essas informações de treinamento uma vez em particular e separadamente, caso contrário, elas inundarão os comentários no futuro
6.retornar o valor doparâmetro oudapropriedade para uma variável do tipo necessário:
O tipo do parâmetro do elemento(int, double ou string) determina o tipo da função do elemento.
Sabe-se que as funções de elemento retornam o valor do parâmetro com um dos três tipos: int, double ou string.
Entretanto, as funções também retornam valores de propriedade...
Surge uma situação em que o tipo do valor do parâmetro pode não coincidir com o tipo das propriedades, que são sempre int. Acontece que as funções retornam valores de propriedade do tipo errado, por exemplo, double ou string em vez de int. Esse inconveniente forçado é o preço pela universalidade das funções.
A tarefa do usuário é converter o valor recebido para o tipo necessário por conta própria..
Deixe-me enfatizar: o tipo principal de todas as propriedades de elementos é int.
Vamos dar uma olhada mais de perto nos exemplos de perguntas e respostas:
O tipo do valor do parâmetro determina o tipo da função do elemento.
E se a função do controle deslizante retornar o tipo int, isso significa que, no estágio de criação do elemento, o próprio usuário atribuiu números inteiros ao seu parâmetro ou às suas propriedades - por exemplo, colocou o intervalo do controle deslizante ou os campos de entrada com botões dentro de valores inteiros.
Conclusão: a tarefa do usuário é converter os valores recebidos para o tipo necessário.
Vamos considerar alguns exemplos práticos:
1.
//------------------------------------------------------------------------------------------------------------
2.
//------------------------------------------------------------------------------------------------------------
3.
Veja o resultado:
//------------------------------------------------------------------------------------------------------------
4.
//------------------------------------------------------------------------------------------------------------
5.
Veja o resultado:
Em seguida, vamos testar a obtenção e a definição de outras propriedades de elementos e parâmetros. Vamos também tentar trabalhar com o tipo double.
Segui o código e o testei, e encontrei uma coisa inesperada que não se oculta automaticamente quando o comprimento da cadeia aleatória é muito longo
w7_s_p4_EDIT_Comment_1("Some random text AAAAAAAA");