Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 494
![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
Até ontem, a minha EA só abriu uma encomenda cada e a seguinte só abrirá quando eu fizer uma encomenda. Agora, como fazer a minha EA abrir encomendas quando o bar anterior tiver aberto acima (abaixo) do canal?
Se analisar este fragmento de código, então, de acordo com este código, se a funçãoCountTrades() devolver zero, a condição se (CountTrades()==0) CheckForOpen()será executada, e a funçãoCheckForOpen() será chamada.Na marcação seguinte, se a ordem tiver sido aberta, a funçãoCountTrades() deve retornar 1, e então a outra condição é cumprida
Se aparecer que CountTrades()<max_trades, a funçãoCheckForOpen() será executada mais uma vez.De acordo com o código, o valor da variável max_trades é igual a 3. Assim, terá 4 encomendas em aberto.
Se a EA não abrir as ordens correctamente, então verifique a lógica, na qual define as condições em que as posições devem ser abertas na função CheckForOpen(). E também verificar as condições de tempo se (CurrTime < EaStartTime || CurrTime >= EaEndTime). Se eu fosse a si, utilizaria a função se (TimeHour(TimeCurrent())) = hora de início && TimeMinute(TimeCurrent()) = minutos de início ). A hora e os minutos são definidos em variáveis de tipo int ou uint.
Se o Open Bar Number 1 estiver acima/abaixo do canal.
Assim, terá 4 encomendas em aberto.
Se a EA não abrir as ordens correctamente, então verifique a lógica, onde especifica as condições em que as posições devem ser abertas na função CheckForOpen(). E também verificar as condições de tempo se (CurrTime < EaStartTime || CurrTime >= EaEndTime). Se eu fosse a si, utilizaria a função se (TimeHour(TimeCurrent())) = hora de início && TimeMinute(TimeCurrent()) = minutos de início ). A hora e o minuto são definidos em variáveis de tipo int ou uint.
Eu queria abrir 3 encomendas, mas não era isto que pretendia; queria até três, mas uma encomenda por cada bar novo.
Não há problema com o tempo, funciona num período de tempo estritamente especificado.
Queria até três encomendas, mas uma encomenda para cada nova barra. Há alturas em que várias barras seguidas dão sinais positivos.
Não há problema com o tempo, funciona num período de tempo estritamente especificado.
ficheiro .mq4, obteve o ficheiro .ex4. Mas não funciona no testador de estratégias. Final
era escrever um EA para o MT4. Na MQL5, tenho .mq5 e
.ex5 ficheiros. E o ficheiro .ex5 abriu comércios. A quarta versão é diferente de
A quarta versão tem algumas diferenças em relação à quinta, e eu ainda não sou um bom programador de MQL, por isso obtive maus resultados.
Não compreendi o que está errado agora, o ficheiro de registo do testador foi guardado. Я
Vou tentar traduzi-lo. Entretanto, peço-lhe que me diga
o que há de errado com o código do programa? Enquanto você responde, vou tentar
para o descobrir.
Fiquei surpreendido por encontrar na minha quarta versão do editor a opção de escrever
Estava prestes a escrevê-lo. Mas não fui eu que o escrevi. Estou a anexar
ficheiros de registo do testador e uma imagem de ecrã. 05:30 MSC.![Diário do tesoureiro Diário do tesoureiro](https://c.mql5.com/3/86/20160112.log)
![Karputov Karputov](https://c.mql5.com/3/86/2016.01.13_05_59_2tq16pbq6_165639q46_u23.png)
![Karputov Karputov](https://c.mql5.com/3/86/2016.01.13_05_59_u4gpi8dpe_ibhw03kfe_b32.png)
2016.01.13_05:14H, HORA DE MOSCOVO. Olá Sr. Karputov! Escrevi em MQL4
ficheiro .mq4, recebi um ficheiro .ex4. Mas não funciona no testador de estratégias.
Onde posso encontrar descrições de erros?
Não compreendo o que o compilador não gosta, porque é que me avisa?
verificar a precedência do operador para possíveis erros; usar parênteses para esclarecer a precedência
if(Low[X]>PriceBuy && High[X]>PriceBuy ||
Low[X]<PriceBuy && High[X]<PriceBuy)
calcBarX++;
e aqui
a expressão não tem efeito
for(calc_day;calc_day>0; calc_day--)
{
if(iLow(Symbol(),TF_3Day,calc_day)<iLow(Symbol(),TF_3Day,calc_day+1)) calc_day_OK++;
else break;
}
Onde posso encontrar descrições de erros?
Não compreendo o que o compilador não gosta, porque é que ele me avisa?
Na verdade, para além do texto de erro, o compilador também reporta o número da linha de código onde o erro é encontrado e a sua posição na linha.