Características da linguagem mql5, subtilezas e técnicas - página 24
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
O que vai mudar com isto?
Uma simples falha de rede de curto prazo anula a lógica de negociação baseada APENAS na escuta de eventos de negociação.
Portanto, os adeptos da OnTradeTransaction exageram um pouco no seu raciocínio.
Este é o mecanismo de lógica de negociação que servirá fielmente em qualquer plataforma
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bom exemplo de trabalho com ordens de limite em um EA
fxsaber, 2017.01.02 23:12
Eu só negoceio através de ordens pendentes uma boa parte do tempo. Não fazendo nenhum processamento. OrderSend devolvido -1 (MT4 ou MT5+MT4Orders) - não funcionou e ok, porque o próximo passo ainda é olhar completamente para o ambiente de negociação. E se não houver pendente/posição mas deve haver, sincronizamos com o estado em que deve estar - o OrderSend correspondente é enviado.
Com esta abordagem, todas as nuances de regressos, execuções parciais, etc., são consideradas. E a implementação é muito simples e eficiente. Nunca falhou.
Eu não tentei métodos assíncronos e aqui não é muito mais difícil, mas não posso ter certeza.
Uma simples falha de rede de curto prazo anula a lógica de negociação baseada APENAS em ouvir os eventos de negociação.
Portanto, os adeptos da OnTradeTransaction são um pouco exagerados em seu raciocínio.
Este é o mecanismo da lógica comercial que servirá fielmente em qualquer plataforma
Sim, a única maneira confiável é verificar o status da conta de negociação. Todos os eventos OnTrade* não podem fornecer um mecanismo confiável para a gestão de ordens de negociação.
Quanto às operações assíncronas - a sua única vantagem é que você pode enviar ordens de operação em linha, sem esperar pelos resultados das ordens anteriores. Mas o controlo da sua execução também não pode depender de eventos, neste aspecto não há diferença na verificação dos resultados das ordens síncronas.
O estado da conta de negociação é o que temos no momento do pedido (nós mesmos fazemos o pedido), se houver problemas com a rede - nada de mais, podemos fazer pedidos até que a rede se recupere. Confiar em eventos, por outro lado, torna-nos completamente dependentes de factores externos.
fxsaber:
Esta situação com o Trade-events é totalmente consistente com o tema deste ramo.
Não discordo em nada, só digo que não há muita gente que precise de apanhar tais subtilezas.
Uma simples falha de rede de curto prazo anula a lógica de negociação baseada APENAS na escuta de eventos de negociação.
Portanto, os adeptos da OnTradeTransaction exageram um pouco no seu raciocínio.
Este é o mecanismo da lógica comercial que servirá fielmente em qualquer plataforma
E não vou desencorajar ninguém de o fazer. Especialmente porque acho que é muito necessário controlar o retorno do servidor. Só que existem abordagens diferentes. O que sugere é correcto, mas não é uma panaceia.
Talvez seja o princípio da minha vida: "Posso fazer pior, mas à minha maneira. Se acontecer alguma coisa, não haverá ninguém para culpar".
Habituei-me a usar a função MarketInfo(_Symbol, MODE_TICKVALUE) para valor de ponto de um símbolo em 4. Eu ainda não encontrei nenhum problema.
Não é tão uniforme em diferentes corretores de MT5. Eu fiz um pequeno script em EURUSD e USDJPY em duas contas diferentes. Observe o valor do ponto e o tamanho do contrato.
Esta é uma conta demo da MQ.
Esta é umaconta demo da Just2Trade:
Alguém tem uma função universal que faça o valor do ponto parecer o mesmo?
Eu entendo o tamanho de um carrapato e o tamanho do contrato deve ser considerado, talvez algo mais?
Ou seja, se for EURUSD e o depósito for em dólares - então 1 ponto de cinco dígitos para torná-lo igual a 1 dol.
E em que casos devemos usar SYMBOL_TRADE_TICK_VALUE_PROFIT ou SYMBOL_TRADE_TICK_VALUE_LOSS?Habituei-me a usar a função MarketInfo(_Symbol, MODE_TICKVALUE) para valor de ponto de um símbolo em 4. Eu ainda não encontrei nenhum problema.
Não é tão uniforme em diferentes corretores de MT5. Eu fiz um pequeno script em EURUSD e USDJPY em duas contas diferentes. Observe o valor do ponto e o tamanho do contrato.
Esta é uma conta demo da MQ.
Esta é umaconta demo da Just2Trade:
Alguém tem uma função universal que faça o valor do ponto parecer o mesmo?
Eu entendo o tamanho de um carrapato e o tamanho do contrato deve ser considerado, talvez algo mais?
Ou seja, se for EURUSD e o depósito for em dólares - então 1 ponto de cinco dígitos para torná-lo igual a 1 dol.
Quando é correto usar SYMBOL_TRADE_TICK_VALUE_PROFIT ou SYMBOL_TRADE_TICK_VALUE_LOSS?Quando o "escritório do nikonor" tiver um tamanho de contrato como os normais, cem mil, então o valor do ponto será como os normais. Entretanto, podes multiplicar o que tens por 100.000 e conseguir o que queres.
Eu também já lutei com isto. Para a MetaQuotes-Demo o tamanho do contrato é um, para a Just2Trade é outro. Para os forex é a mesma coisa, mas para as ações e outros é diferente. - para Forex, um para ações, etc. É diferente. O que está escrito na referência sobre como calcular tudo não faz sentido, pelo amor de Deus. E o cliente está à espera... Então concordamos que ele não irá calculá-lo automaticamente, mas apenas multiplicá-lo por 100. E só no seu Just2Trade. Ainda não percebo este truque... :((
O que poderia não estar claro?
Tamanho do contrato padrão = 1 Compra 1000 lotes tem 0,00001*1000/1 = 0,01 por 1 pip
Outra opção, tamanho do contrato = 100000 comprou 0,01 lote (100000*0,01=1000) teve 1 ponto 1*1000/100000 = 0,01
Isto é para 5/3 dígitos.
ps; E no insta, o tamanho do contrato padrão era de 10000.O que poderia não estar claro?
Tamanho do contrato padrão = 1, comprou 1000 lotes, recebeu 0,00001*1000/1 = 0,01 por 1 pip
Outra opção, tamanho do contrato = 100000 comprou 0,01 lote (100000*0,01=1000) teve 1 ponto 1*1000/100000 = 0,01
Isto é para 5/3 dígitos.
ps; E na Insta o tamanho padrão do contrato era de 10000.Estou a ver, só não estou habituado a usar 3000 ou 5000 lotes. Vais ter de te habituar a isso.
Se não está habituado, pode escrevê-lo assim
E na função OrderSend() enviar uma variável de contrato, independentemente do capricho do revendedor.