Perguntas de Iniciantes MQL4 MT4 MetaTrader 4 - página 114
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
Boa tarde! Como posso criar um gatilho? Por exemplo, eu preciso desta condição se(iClose(NULL,HTF,4)<BlueLine) se for executado DayDown = 1 ! P: Como o DayDown pode ser deixado como 1 e não ser pesquisado até o dia seguinte ?
Eu tenho outros objetos anexados a 1 objeto, e quando você apaga este objeto, o resto fica pendurado na tabela
Tenho-o assim:
if(DayNext!= Day()) // Se um novo dia, você tem que pesquisar
{
// Votação
if(iClose(NULL,1440,2)<BlueLine)
if(iOpen(NULL,1440,1)<BlueLine && iClose(NULL,HTF,1)>BlueLine)
PROBOI1 = 1;Print("Closed above BlueLine = ",iClose(NULL,HTF,1));
if(iClose(NULL,1440,2)>RedLine)
if(iOpen(NULL,1440,1)>RedLine && iClose(NULL,HTF,1)<RedLine)
PROBOI1 = -1;Print("Closed below RedLine = ",iClose(NULL,HTF,1)));
DayNext = Day(); // Lembre-se do dia
}
Corrigir se algo está errado! Além disso, se eu quiser acompanhar o que está acontecendo agora em um TF inferior, preciso escrever Day outside the Survey? Certo -STARIJ:
if(iClose(NULL,60,1)>RedLine&&iClose(NULL,1440,2)>RedLine) ) Sell = 1
https://www.mql5.com/ru/forum/226620#comment_6481536
Defina o número mágico +1 para a condição 1, número mágico +2 para a condição 2 e assim por diante. Assim você pode ver se esta posição foi aberta com a condição 1 ou com a condição 2...
Boa tarde. Só tive sucesso em uma posição BAY. O conjunto magik para venda não funciona por alguma razão. Tudo é absolutamente idêntico, exceto o próprio magik, é claro. O que eu fiz de errado?
O que eu fiz de errado?
Peço desculpas por não ter encontrado o início da correspondência, mas gostaria de aconselhá-lo imediatamente a evitar condições e cálculos complexos neles - isto torna o código ilegível e, portanto, complica a busca por erros lógicos, eu escreveria seu código desta forma:
Se você entende o que quero dizer, você pode modificar o código que lhe dei um pouco mais, quero dizer colocá-lo em uma condição separadase(OrderType()==OP_BUY....
Então será muito mais fácil encontrar erros lógicos, imho
Peço desculpas por não ter encontrado o início da correspondência, mas gostaria de aconselhá-lo imediatamente a evitar condições e cálculos complexos neles - isto torna o código ilegível e como resultado complica a busca por erros lógicos, eu escreveria seu código desta forma:
Se você entender o que quero dizer, pode modificar o código que lhe dei um pouco mais, quero dizer colocá-lo em uma condição separadase(OrderType()==OP_BUY....
Então será muito mais fácil encontrar erros lógicos, imho
Entendi, obrigado, mas até onde entendi não há diferença para a compreensão do código pela plataforma, enquanto para mim, quebrar uma condição em várias outras mais curtas parece ser mais complicado na busca de erros porque o número de ocorrências de declarações dentro de cada uma delas aumenta. Mas talvez você esteja certo e em breve eu irei ao seu lado. Quanto à lógica de código - não encontrei nenhuma diferença entre a minha e a sua e ainda não vejo o erro.
Quanto à lógica do código - não encontrei nenhuma diferença entre a minha e a sua e ainda não vejo o erro.
Exatamente - a lógica do código é a mesma, mas se você dividir as condições, é mais rápido encontrar onde está o erro lógico, e no seu caso, se você o retirar:
em uma condição separada, obtemos uma otimização de código - a condição será verificada uma vez ao invés de 4 vezes, como no seu exemplo.
Verifique a saída no diário do Expert Advisor usando o
Print()
para registro para ver qual fragmento de código é executado e com quais parâmetros
Gente,
Como faço para ler o indicador Morning Flat no código Expert Advisor?
Estou tentando desta maneira e não funciona.
O próprio indicador