[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 645
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Não há quase nenhuma lógica - a simples saída de linhas em ordem, uma após a outra.
Eu usaria funções para facilitar a compreensão
Também me perguntei sobre isso, mas não encontrei nada de útil. Quando se trata de otimização, você já sabe sobre o grande freio do iCustom :), nos indicadores há uma restrição no número de barras, que pode ser calculado (através de IndicatorCounted() ou pelo número de barras). No código, não faz sentido se preocupar com o número e a complexidade de diferentes construções como se, enquanto, etc. Você não ganhará muito, mas com o tempo e a experiência, o código se tornará mais "bonito". Bem, no modo de visualização, quando cada "ressalto" é modelado, ele será lento quase em qualquer caso (dependendo da complexidade do sistema, é claro). Em algum lugar eu li que se cálculos complexos em um dll, será mais rápido, mas eu não o verifiquei. Com dll, também nuances suficientes.
Lembro que comandos como o TimeCurrent() diminuíram muito (quando há vários deles no código).
- É muito melhor usá-la uma vez - colocá-la em uma variável, e depois acessar a variável.
Eu usaria as funções para facilitar a percepção
Lembro-me de comandos como TimeCurrent() serem muito lentos (quando há vários deles no código)
- É muito melhor usá-la uma vez - colocá-la em uma variável, e depois acessar a variável.
Lembro que comandos como TimeCurrent() eram muito lentos (quando havia vários deles no código)
- É muito melhor usá-la uma vez, ou seja, armazená-la em uma variável e depois acessar a variável.
Como definir corretamente tal variável para que possa ser chamada mais tarde?
Declaro-o primeiro em variáveis globais
data/hora CurTime;
E então no início()
Eu lhe atribuo um valor:
CurTime=TimeCurrent();
e eu recebo um erro: 'CurTime' - variável esperada.
Como fazer isso corretamente?
E outra pergunta: se eu atribuir valores a algumas variáveis não no início() mas no init(), elas funcionarão corretamente?
Bem, quero dizer, que algumas funções, por exemplo, TimeCurrent(), ainda serão chamadas a cada tick, se uma variável for atribuída a esta função no início do start()
Que chatice! CurTime dá um erro e CurrTime não dá... Qual é o objetivo?
A questão é que CurTime é o nome obsoleto da função TimeCurrent, portanto, se um nome variável corresponde a um nome de função, o compilador sempre reclama...
Amigos, meu bloco lógico pessoal está um pouco em frangalhos. Não posso decidir como estar nesta situação:
Trabalhamos em duas direções, ou seja, Comprar e Vender têm suas próprias unidades de controle separadas. As posições podem ser abertas contra-direcionalmente, tudo depende de que maneira o mercado se move em cada TF.
Suponha a situação quando Vender e Comprar estão abertas (na M5 e M15) e de repente o mercado gira na direção oposta, oposta à Venda aberta na M5 e M15 (bem, qualquer que seja a situação no mundo...). Neste caso, todas as vendas abertas começam a aumentar muito o saque, e como também abrimos a Buy, é possível fechar algumas posições tanto na Buy como na Sell, para fechar as vendas com perdas mínimas às custas da Buy fechada.
Portanto, eu não posso decidir sobre a lógica desta situação. O que deveria ser?
Só por precaução, aqui está um exemplo:
Boa gente, voltando ao tema de ontem:
por favor, diga-me o que significa a mensagem do diário de bordo:
2010.06.24 17:28:26 TestGenerator: erro de dados inigualável (limite de volume 5357 em 2010.01.06 08:00 excedido)