Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 759
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
Olá! Você poderia me dizer por que às vezes tenho um operador ifle que não funciona.
Aqui está um exemplo:
Onde:
H3 é o valor do preço do nível
preço é o preço atual
O resultado é que o preço atinge este nível (às vezes até pára nele), mas Alert não aciona.
Você pode me dizer qual é o erro?
Bom dia.
O programa tem este aspecto.
Ao compilá-lo, ele dá para fora:
Ozero.mq4'.Ozero.mq4 1 1
valor de retorno de "OrderClose" deve ser verificado Ozero.mq4 46 13
conversão implícita de 'número' para 'string' Ozero.mq4 49 117
0 erro(s), 2 advertência(ões) 1 3
A aba "resultados" mostra que os pedidos estão abrindo e fechando.
1 2014.08.25 00:00 comprar 1 0.10 1.6550 0.0000 0.0000 0.00 10000.00
2 2014.08.25 06:30 fechar 1 0.10 1.6562 0.0000 0.0000 0.12 10000.12
3 2014.08.25 06:31 comprar 2 0.10 1.6564 0.0000 0.0000 0.00 10000.12
4 2014.08.25 10:00 fechar 2 0.10 1.6574 0.0000 0.0000 0.10 10000.22
5 2014.08.25 10:00 comprar 3 0.10 1.6576 0.0000 0.0000 0.00 10000.22
6 2014.08.25 12:58 fechar 3 0.10 1.6586 0.0000 0.0000 0.10 10000.32
7 2014.08.25 12:58 comprar 4 0.10 1.6590 0.0000 0.0000 0.00 10000.32
8 2014.08.26 13:13 fechar na parada 4 0.10 1.6576 0.0000 0.0000 -0.14 10000.18
8 - Interrompi o trabalho, fechando o testador.
A seguir, olhamos para o "Jornal":
2014.10.31 07:46:44.837 GBPUSD,M15: 4453 tick events (5608 bars, 340128 bar states) processados dentro de 312876 ms (tempo total 324436 ms)
2014.10.31 07:46:44.837 2014.08.26 13:13 Testador: o pedido nº 4 está encerrado
2014.10.31 07:46:44.798 2014.08.26 13:13 O testador visual parou
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: ENCOMENDA ABERTA 4
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: abrir #4 comprar 0.10 GBPUSD a 1.6590 ok
2014.10.31 07:43:15.315 2014.08.25 12:58 Ozero GBPUSD,M15: Aberto #4 comprar 0.10 GBPUSD a 1.6590 ok
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: Não creio que tenha fechado. Aqui vamos nós: 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: OrderClose error 4108
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: bilhete desconhecido 3 para a função OrderClose
2014.10.31 07:43:15.245 2014.08.25 12:58 Ozero GBPUSD,M15: fechar #3 comprar 0,10 GBPUSD a 1,6576 ao preço 1,6586
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: HOLD OPEN #3
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: abrir #3 comprar 0,10 GBPUSD a 1,6576 ok
2014.10.31 07:42:51.123 2014.08.25 10:00 Ozero GBPUSD,M15: Posição aberta #1
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: O que está acontecendo? Aqui vamos nós: 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: OrderClose error 4108
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: bilhete desconhecido 2 para a função OrderClose
2014.10.31 07:42:51.059 2014.08.25 10:00 Ozero GBPUSD,M15: fechar #2 comprar 0,10 GBPUSD a 1,6564 ao preço 1,6574
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: HOLD OPEN 2
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: abrir #2 comprar 0.10 GBPUSD a 1.6564 ok
2014.10.31 07:42:31.473 2014.08.25 06:31 Ozero GBPUSD,M15: Abertura da primeira posição
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: O que está acontecendo? Aqui vamos nós: 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: OrderClose error 4108
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: bilhete desconhecido 1 para a função OrderClose
2014.10.31 07:42:31.331 2014.08.25 06:30 Ozero GBPUSD,M15: fechar #1 comprar 0,10 GBPUSD a 1,6550 ao preço 1,6562
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: PEDIDO ABERTO 1
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: abrir #1 comprar 0.10 GBPUSD a 1.6550 ok
2014.10.31 07:41:31.966 2014.08.25 00:00 Ozero GBPUSD,M15: abrir #1 comprar 0.10 GBPUSD a 1.6550 ok
2014.10.31 07:41:31.958 Entradas Ozero: gLot=0,1; gPoint=0,001;
Agora estou completamente perdido. Por um lado, as ordens estão sendo fechadas como você pode ver no gráfico e nos resultados, por outro lado o código está sendo executado com erros como visto no log: (((((((((((
Ozero.
Você está tentando fechar a mesma ordem duas vezes. Retire a parte superior.
Bom dia.
Eliminadas duas linhas. Tudo funciona. E tudo é exibido corretamente no gráfico, nos resultados e nos registros.
Pergunta: ao compilar, ele dá
"Ozero".mq4'.Ozero.mq4 1 1
Valor de retorno de "OrderClose" deve ser verificado Ozero.mq4 46 13
0 erro(s), 1 aviso(s) 1 2
Sobre o que o compilador me avisa? A 46a linha é OrderClose(OrderTicket(),OrderLots(),_Bid,15);
Ozero.
Vocês podem me dizer o que pode estar causando a falha que ocorreu hoje?
A EA tem a opção de interromper as negociações 15 minutos antes do fechamento do mercado na sexta-feira.
Quando um novo dia aparece a EA verifica se é sexta-feira, então hoje deixamos de negociar em StringToTime("23:59")-15*60
No testador de estratégia, esta função funciona corretamente. No entanto, na negociação real, vejo uma situação totalmente diferente - o Expert Advisor deixa de negociar no primeiro tick quando chega a sexta-feira.
Aqui estão as impressões da revista do Expert Advisor:
Corretor nº 1, demonstração:
0 05:59:47.731 Scalper GBPAUDpt,M1: Terminar Na sexta-feira = 2014.10.23 23:44:00
Corretor 2, real:
0 03:00:11.999 Escalpador EURUSD,M1: Terminar Na sexta-feira = 2014.10.23 23:44:00
Ou seja, quando o bar diário de hoje aparece (sexta-feira, 24 de outubro) no primeiro tick, o EA
converterá a linha "23:59" para a hora de ontem, em vez de atribuir o dia de hoje.
Entretanto, se o Expert Advisor for reiniciado na sexta-feira no meio do dia, ele determinará corretamente a hora de conclusão.
Encontrei a razão deste problema: https://forum.mql4.com/33023
Como esperado, é praticamente um bug na função StringToTime. Todos os sintomas são semelhantes. Esta função converte a string "23:59" para data com data do PC local, mas não com data do MT4. E no testador, como sabemos, a data do PC local é emulada e equiparada à hora do terminal. É por isso que tudo funciona corretamente no testador, mas o tempo de demonstração/real resulta em falhas e perdas. A documentação, é claro, não diz de onde vem a data e o link acima mostra que este problema foi relatado há 4 anos, mas aparentemente as metáforas não se importam.
Outra pergunta. Entendo corretamente isso:
1. A numeração do pedido começa a partir de "0".
2) Este código fechará absolutamente todas as ordens, independentemente de eu as abrir manualmente ou programadamente... Ou seja, nunca vamos encontrar uma ordem que esta parte do programa não possa fechar?
Ozero.
Alguém já fez a rolagem do texto na tela? Por exemplo - pedidos mais ou menos abertos/fechados/modificados, etc... Notícias mais ou menos... ?
Se você não se importa, por favor, mostre-me um pedaço de código.
Obrigado!
A mais baixa é melhor. A ordem deve ser escolhida de antemão.
É melhor assim:
Alguém já fez a rolagem do texto na tela? Por exemplo - pedidos mais ou menos abertos/fechados/modificados, etc... Notícias mais ou menos... ?
Se você não se importa, por favor, mostre-me um pedaço de código.
Senx!
Estava fazendo rolagem vertical na janela indicadora vazia. Aqui está a função:
Como exemplo de utilização de uma única mensagem colorida (você pode ter 4 cores em uma linha para palavras diferentes):
Deve haver um indicador vazio chamado Win_Inform no gráfico.