Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1179
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
Quando eu faço uma pergunta como esta:
Eu recebo este resultado:
2020.06.17 13:49:53.270 2020.01.02 06:50:00 Símbolo EURUSD_i Dígitos 5 Ponto 1e-05
Quando eu faço um pedido como este:
Eu recebo este resultado:
2020.06.17 13:51:58.787 2020.01.02 06:45:00 Símbolo EURUSD_i Dígitos 0 Ponto 0.0
Ao mesmo tempo, quero notar que se eu não inserir a função Imprimir, não recebo nenhum erro, o pedido nem sequer tenta modificar-se a si mesmo. É como se a CTrade não visse meu pedido.
A verificação do símbolo e do número mágico não funciona:
Resultado:
2020.06.17 14:37:38.147 2020.01.02 06:50:00 Símbolo mágico 0 Ticket 2
O número mágico deve ser 12345, o símbolo é euro dólar.
Por que não posso ter um símbolo e uma tragédia médica?
Se você mudar a corda:
é alterado para
e remover a validação por número mágico, então temos problemas com os preços
2020.06.17 01:38:24.136 2020.01.02 07:40:00 falhou na modificação do pedido #2 buy stop 0.1 EURUSD_i a 1.12086 sl: 1.12023 tp: 1.12275 -> 1.00000, sl: 1.00000 tp: 1.00000 [Preço inválido]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 CTrade::OrderSend: modificar #2 a 1.00000 (sl: 1.00000 tp: 1.00000) [preço inválido]
2020.06.17 01:38:24.136 2020.01.02 07:40:00 A modificação BUY STOP falhou! Resultado Retcode: 10015, descrição do Retcode: preço inválido
Já me arrebentei, enquanto este mesmo código funciona bem em outro Expert Advisor.
O que eu estou fazendo de errado?
Objeto incorretamente inicializado (ou não) da classe CSymbolInfo.
Se você não tiver este símbolo de corda. Nome(Símbolo()), então acrescente-o.
Se você tiver um, depurar no Nome (símbolo de corda) funciona o que acontece.
Preenchimento de campos m_digits etc. na função Refresh().
s.s. A julgar pelo que você acrescentou, você definitivamente tem o símbolo assimicializado.
Até a chegada do novo tick, não há movimento dos botões. Isso é o que posso ver com meus olhos. Assim que o preço muda, os botões se movem.
Embora hoje mesmo no novo tick os botões tenham parado de ser redesenhados, embora eu não tenha mudado nada. Apenas o fundo está em movimento.Para esclarecer - como você diz, você muda as coordenadas no OnTick, e alega que de fato os botões se movem no NEXT tick. O próximo tique de quê? aquele em que você mudou as coordenadas, ou aquele do Natal?
Seu objeto de classe CSymbolInfo é inicializado incorretamente (ou não é inicializado de forma alguma).
Se você não tiver esse símbolo de corda. Nome(Símbolo()), então acrescente-o.
Se você tiver um, depurar no Nome (símbolo de corda) funciona o que acontece.
Preenchimento de campos m_digits etc. com Refresh().
s.s. A julgar pelo que você acrescentou, seu símbolo é definitivamente não-inicializado.
É uma inicialização? Ao compilar, recebo as seguintes informações
Trade.mq5 panel' Trade.mq5 panel 1 1
'Trade.mqh' Trade.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
OrderInfo.mqh' OrderInfo.mqh 1 1
HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
SymbolInfo.mqh' SymbolInfo.mqh 1 1
código gerado 1 1
0 erros, 0 avisos, 3192 msec decorridos 1 1
Após abrir um pedido Buy Stop, recalculo todos os pedidos, seleciono um pedido aberto e verifico se o símbolo e o número mqh correspondem:
Nada acontece neste estágio, como escrevi acima, asymbol.Name() não retorna o símbolo de ordem aberta por algum motivo, aorder.Magic() retorna valor 0 (embora meu número mágico seja 121345), asymbol.TickSize() retorna valor 0. Em outras palavras, a verificação falha e, portanto, o trabalho adicional sobre o pedido pára. Por favor, esclareça"debug in function Name(string symbol) what's going on", eu não entendo bem esta frase. O que devo acrescentar e onde?
Para esclarecer - como você diz, você muda as coordenadas no OnTick, e alega que de fato os botões se movem no NEXT tick. O próximo tique de quê? aquele em que você mudou as coordenadas, ou aquele do Natal?
Nesta fase, nada acontece, pois como já escrevi acima, a função asymbol.Name() por algum motivo não retorna o símbolo de ordem aberta, function aorder.Magic() retorna valor 0 (embora minha Magic seja 121345), function asymbol.TickSize() retorna valor 0. Em outras palavras, a verificação falha e, portanto, o trabalho adicional sobre o pedido pára. Por favor, esclareça"debug in function Name(string symbol) what's going on", eu não entendo bem esta frase. O que devo acrescentar e onde?
O erro no índice de ordem / bilhete pode ser um erro a julgar pelo mágico 0. No momento do acesso à estrutura da ordem, os dados da ordem errada são escritos lá. No loop de seleção, pode ser que o próximo número seja colocado no último conjunto de pedidos, mas não aquele que você precisa. Os dados do último pedido selecionado são devolvidos a partir da estrutura do pedido.
no topo do meu código estão as linhas
Isto é uma inicialização? Ao compilar, eu recebo as seguintes informações
'Trade panel.mq5' Trade panel.mq5 1 1
'Trade.mqh' Trade.mqh 1 1
'Object.mqh' Object.mqh 1 1
'StdLibErr.mqh' StdLibErr.mqh 1 1
OrderInfo.mqh' OrderInfo.mqh 1 1
HistoryOrderInfo.mqh' HistoryOrderInfo.mqh 1 1
PositionInfo.mqh' PositionInfo.mqh 1 1
'DealInfo.mqh' DealInfo.mqh 1 1
SymbolInfo.mqh' SymbolInfo.mqh 1 1
código gerado 1 1
0 erros, 0 avisos, 3192 msec decorridos 1 1
Após abrir um pedido de Buy Stop, recalculo todos os pedidos, seleciono um pedido aberto e verifico se o símbolo e o número Majdic correspondem:
Nada acontece neste estágio, como escrevi acima, asymbol.Name() não retorna o símbolo de ordem aberta por algum motivo, aorder.Magic() retorna valor 0 (embora meu número mágico seja 121345), asymbol.TickSize() retorna valor 0. Em outras palavras, a verificação falha e, portanto, o trabalho adicional sobre o pedido pára. Por favor, esclareça"debug in function Name(string symbol) what's going on", eu não entendo bem esta frase. O que devo acrescentar e onde?
Nossa, por que você usa algo que não entende (e se for uma mala yadda yadda)? )
E você nem se dá ao trabalho de ler o que está escrito
Se você não tiver um símbolo. Nome(Símbolo()) então acrescente-o.
s.w. Eu queria explicar mais sobre a inicialização, mas acho que isso também seria inútilPode haver um erro no índice de ordem / bilhete de acordo com o mágico 0. No momento de se referir à estrutura da ordem, os dados da ordem errada são armazenados ali. No ciclo de seleção pode ser que o próximo número seja colocado no último conjunto de pedidos, mas não aquele que você precisa. Os dados do último pedido selecionado são devolvidos a partir da estrutura do pedido.
Boa tarde!
Ajude-me a resolver um problema simples.
Contador de falhas. Eu quero contar as lacunas que são mais de 10 pontos.
A "lacuna" variável é reposta a zero. Eu não entendo por que. Eu já tentei de tudo. Já tentei loops e estática - não funciona. Suspeito que escrevi os loops de forma incorreta.
Boa tarde!
Ajude-me a resolver um problema simples.
Contador de falhas. Eu quero contar as lacunas que são mais de 10 pontos.
A "lacuna" variável é reposta a zero. Eu não entendo por que. Eu já tentei de tudo. Já tentei loops e estática - não funciona. Suspeito que escrevi os loops de forma incorreta.
A lacuna variável está no escopo da função de início - e a cada novo tick é reinicializada com zero
Boa tarde!
Ajude-me a resolver um problema simples.
Contador de falhas. Eu quero contar as lacunas que são mais de 10 pontos.
A "lacuna" variável é reposta a zero. Eu não entendo por que. Eu já tentei de tudo. Já tentei loops e estática - não funciona. Suspeito que escrevi os loops de forma incorreta.