[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 309
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
Isso mesmo: é boa educação arrumar seu próprio lixo...
Mas neste contexto, como saber se o "lixo" precisa ser limpo agora ou vice-versa: não é lixo - são os dados necessários para os cálculos posteriores.
Como eu entendo, deinit() deve ser usado para limpar o lixo, mas... é executado não apenas quando o gráfico de um instrumento comercial é excluído, quando o Expert Advisor é removido do mesmo, mas também quando a TF é alterada. Neste caso, todos os dados acumulados para a TF serão perdidos e o Consultor Especialista começará a trabalhar novamente com uma matriz nula quando retornar ao cronograma anterior. O mesmo acontecerá se alterarmos qualquer um dos parâmetros do Expert Advisor.
Acontece que em algumas situações a "coleta de lixo" é um processo lógico complexo, não uma simples mudança do tamanho da matriz.
Bem, não é difícil. No loop, inicializar a matriz com valores. Então trabalhamos com a matriz resultante. Quando o trabalho é feito, fazemos com que seja zero em comprimento. Em caso de dúvida, você pode fazer isso no final do código imediatamente antes do retorno(0).
Sugira o código abaixo para ler o arquivo de log. Lê automaticamente o arquivo de registro atual por data e o envia para a impressora.
Onde:
O arquivo está sendo montado a partir de peças. Mas eu não preciso do arquivo completo, apenas da última linha. Ajude a corrigir, por favor.
Bem, não é difícil. No laço, a matriz é inicializada com valores. Depois trabalhamos com a matriz resultante. Quando o trabalho termina, fazemos dele uma matriz de comprimento zero. Em caso de dúvida, você pode fazê-lo no final do código imediatamente antes do retorno(0).
Fui mal compreendido.
No contexto da conversa (se eu entendi corretamente a premissa desta conversa), o laço é o trabalho da própria EA. Afinal de contas, cada vez que um tique vem, a matriz ou aumenta ou permanece a mesma, dependendo se um novo valor precisa ser escrito para ela.
Como podemos saber que o trabalho está terminado, e não apenas, por exemplo, que uma pessoa mudou o prazo? Mesmo por acidente... Neste caso, o deinit() será chamado e todos os dados serão perdidos. O Expert Advisor começará a armazená-los (escrever em uma matriz dinâmica) de novo, com base nos valores obtidos no novo cronograma(um novo ciclo).
Estou falando sério.
Eu não fui compreendido.
No contexto de nossa discussão (se entendi corretamente a premissa desta discussão), o ciclo é o trabalho do próprio Expert Advisor. Afinal de contas, cada vez que um tick chega, a matriz ou é aumentada ou permanece inalterada, dependendo se um novo valor precisa ser escrito para ela.
Como você pode saber se um trabalho está terminado e não apenas uma pessoa mudando os prazos, por exemplo? Mesmo por acidente... Neste caso, o deinit() será chamado e todos os dados serão perdidos. O Expert Advisor começará a acumulá-los (escreva-os em uma matriz dinâmica) novamente, com base nos valores obtidos no novo cronograma(um novo ciclo).
Meu ponto é o seguinte.
Notei uma característica específica do terminal. Como o cálculo do lucro do pedido não considera a OrderSwap(), eu quero que ela feche o pedido de uma vez.
Isso significa que devemos usar esta fórmula para fechar o pedido com lucro:
(OrderProfit()+OrderSwap()+OrderComission())>0
Nunca trabalhei com comissão e a comissão não é usada em demonstração, por isso não posso verificar por conta disso.
Meus cálculos estão corretos?
Se você entrar em detalhes, você pode usar esta função. Ele lhe dirá o motivo da desinicialização.
Muito bem... :)
Esqueci-me disso. Agora, com meu hábito de usar "infalível", vamos usá-lo...
ObjectGetValueByShift() para ajudar você
E como você vai trabalhar com ele - só você sabe...
Obrigado, gentil homem!
Posso mudar o tamanho do lote de um pedido pendente?
Não, você não pode.
tudo o que você pode mudar é explicado aqui https://docs.mql4.com/ru/trading/OrderModify