Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1250
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
Obrigado. Em mql5 não foram construídos tais labirintos. Em vez de ir directamente para o objectivo, é preciso fazer alguns desvios, passar por muitos becos sem saída e obstáculos. Uma língua por causa de uma língua.
Na MQL4 também se define um magik para uma posição.
Aqui decidiu utilizar um objecto comercial da SB. Isto significa que durante a sua criação e inicialização é necessário definir os seus parâmetros. E depois utiliza-o apenas para funções comerciais. Pode haver muitos desses objectos, e definirá parâmetros diferentes para cada um deles. E depois - aplicar ao objecto necessário para a gestão de ordens de comércio os símbolos e sinais mágicos que foram definidos para cada objecto em particular, e que são necessários em momentos diferentes, dependendo do TS.
É tão simples quanto isso.
Na MQL4, também se define um magik para uma posição.
Aqui decidiu utilizar um objecto comercial da SB. Isto significa que, ao criá-lo e inicializá-lo, é necessário definir os seus parâmetros. E depois utiliza-o apenas para funções comerciais. Pode haver muitos desses objectos, e definirá parâmetros diferentes para cada um deles. E depois - aplicar ao objecto necessário para a gestão de ordens de comércio os símbolos e sinais mágicos que foram definidos para cada objecto em particular, e que são necessários em momentos diferentes, dependendo do TS.
É tão simples quanto isso.
Olá. Obrigado pela sua resposta. Vou dar o meu ponto de vista. Ao abrir uma encomenda em MQL4, especificamos os seus parâmetros incluindo um magik. Em #include <Trade\OrderInfo.mqh>, tudo, excepto o magik, é especificado. Por exemplo - CTrade::BuyLimit(const volume duplo,const preço duplo,const símbolo de string string=NULL,const sl duplo=0,const duplo tp=0.0,const duplo tp=0.0,const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const data de expiração=0,const string comment=""). Na minha opinião, isto não é uma correcção e devemos corrigi-la introduzindo outro parâmetro mágico. Ou, #include <Trade\ HistoryOrderInfo.mqh> contém tudo excepto o lucro (lucro/perda) retirado pela encomenda. Esta é uma informação importante sobre a encomenda e está em falta. Precisamos de encontrar o lucro da última encomenda fechada. Esta informação será mostrada em Comentário(). E vamos ver. Embora não haja ordem aberta (posição), o comentário mostra o lucro da última ordem. Assim que a ordem (posição) é aberta, obtemos 0 no comentário, até que a ordem seja fechada. Ou seja, a ordem ainda está no mercado, mas simultaneamente na história, permanece em duas hipóstases simultaneamente. Mas isto é um disparate. É por isso que eu digo que a língua é apenas para o bem da língua. Na minha opinião, há muitos detalhes incompletos.
Os conceitos são confusos (em particular 'ordem'). Pode haver uma ORDEM REMOTA ou uma POSIÇÃO no mercado. Pode ler mais na ajuda:Princípios Gerais.
A classe CTrade é auto-suficiente e não há falhas nela, apenas a sua falta de vontade de ver o código de implementação. Ao enviar uma ordem de comércio (para abrir ou modificar uma POSIÇÃO), a instância da classe de comércio envia um número mágico - basta inicializá-lo imediatamente ao criar o objecto.
Fórum sobre comércio, sistemas de comércio automatizados e testes estratégicos
FAQ de Iniciantes MQL5 MT5 MetaTrader 5
Vladimir Karputov, 2020.09.12 19:11
Não se esqueça dedefinir o ID do Conselheiro Especialista
É uma questão de hábito.
Olá. Obrigado pela sua resposta. Vou dar a minha opinião. Ao abrir uma encomenda em MQL4, especificamos os seus parâmetros incluindo um magik. Em #include <Trade\OrderInfo.mqh>, tudo, excepto o magik, é especificado. Por exemplo - CTrade::BuyLimit(const volume duplo,const preço duplo,const símbolo de string string=NULL,const sl duplo=0,const duplo tp=0.0,const duplo tp=0.0,const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const data de expiração=0,const string comment=""). Na minha opinião, isto não é uma correcção e devemos corrigi-la introduzindo outro parâmetro mágico. Ou, #include <Trade\ HistoryOrderInfo.mqh> contém tudo excepto o lucro (lucro/perda) retirado pela encomenda. Esta é uma informação importante sobre a encomenda e está em falta. Precisamos de encontrar o lucro da última encomenda fechada. Esta informação será mostrada em Comentário(). E vamos ver. Embora não haja ordem aberta (posição), o comentário mostra o lucro da última ordem. Assim que a ordem (posição) é aberta, obtemos 0 no comentário, até que a ordem seja fechada. Ou seja, a ordem ainda está no mercado, mas simultaneamente na história, permanece em duas hipóstases simultaneamente. Mas isto é um disparate. É por isso que eu digo que a língua é apenas para o bem da língua. Na minha opinião, há muitos detalhes inacabados.
Yury, isto não é uma massa de detalhes inacabados, mas sim uma massa de mal-entendidos.
Porquê, em cada abertura de uma ordem ou posição, escrever um mágico, se é suficiente para o indicar uma vez no OnInit().
É tudo!!! Então a magia de uma ordem, negócio ou posição será verificada da mesma maneira para identificar "amigo ou inimigo". O problema está na sua mente.
Uma encomenda pode não ter lucro! Uma posição tem um lucro no tempo actual. E uma posição tem um comércio de fecho, ou parte de uma posição, mas isso está na história do comércio. Uma ordem é apenas uma ordem para fazer uma transacção no mercado.
Deixe-me tentar explicar em kolkhoznyy. Vem ao mercado, decide comprar um pickle.
Mandado: dê-me um quilo deles...
negócio: dás-me o dinheiro, levas o peixe...
posição: na sua bolsa está o damasco...
Do ponto de vista do vendedor:
posição: tem o guisado de peixe no balcão...
encomenda: recebe uma encomenda para pesar um quilo de peixe...
transacção: entregar os damascos, pôr o dinheiro no saco...
Olá. Obrigado pela sua resposta. Vou dar a minha opinião. Ao abrir uma encomenda em MQL4, especificamos os seus parâmetros incluindo o magik. Em #include <Trade\OrderInfo.mqh>, tudo, excepto o magik, é especificado. Por exemplo - CTrade::BuyLimit(const volume duplo,const preço duplo,const símbolo de string string=NULL,const sl duplo=0,const duplo tp=0.0,const duplo tp=0.0,const ENUM_ORDER_TYPE_TIME type_time=ORDER_TIME_GTC,const data de expiração=0,const string comment=""). Na minha opinião, isto não é uma correcção e devemos corrigi-la introduzindo outro parâmetro mágico. Ou, #include <Trade\ HistoryOrderInfo.mqh> contém tudo excepto o lucro (lucro/perda) retirado pela encomenda. Esta é uma informação importante sobre a encomenda e está em falta. Precisamos de encontrar o lucro da última encomenda fechada. Esta informação será mostrada em Comentário(). E vamos ver. Embora não haja ordem aberta (posição), o comentário mostra o lucro da última ordem. Assim que a ordem (posição) é aberta, obtemos 0 no comentário, até que a ordem seja fechada. Ou seja, a ordem ainda está no mercado, mas simultaneamente na história, permanece em duas hipóstases simultaneamente. Mas isto é um disparate. É por isso que eu digo que a língua é apenas para o bem da língua. Na minha opinião, há muitos detalhes inacabados.
Pensa-se em termos de procedimentos, mas tenta-se utilizar os objectos do OOP. São tratados de uma forma diferente. Por exemplo:
É criado um objecto. Um mágico está preparado para isso.
Um segundo objecto é criado. Um segundo mágico está pronto.
É criado um terceiro objecto. Um terceiro mágico é-lhe entregue.
Agora tem três objectos de comércio para três estratégias numa só EA.
Deve utilizar o primeiro objecto comercial para abrir uma posição ou colocar uma ordem pendente para o primeiro TS.
A fim de abrir uma posição ou estabelecer uma ordem pendente para o segundo TS, deve referir-se ao segundo objecto comercial.
Para abrir uma posição ou colocar uma ordem pendente para um terceiro TS, deve referir-se a um terceiro objecto comercial.
As encomendas não têm um parâmetro de lucro. Por uma razão simples - uma ordem é uma ordem (uma ordem pendente é uma ordem a um corretor para executar alguma acção quando o preço atinge um determinado nível, ou seja, uma ordem para executar uma negociação após algum tempo quando o critério especificado é atingido). Uma transacção (ordem) pode resultar numa transacção (já tem o parâmetro de lucro DEAL_PROFIT) que levará ou à criação de uma posição ou à sua alteração ou encerramento (a posição também tem o parâmetro de lucro, mas apenas uma corrente - POSIÇÃO_PROFIT flutuante).
E depois há a ordem de mercado (ordem de mercado), que aparece sempre antes da negociação quando se envia uma ordem de negociação - esta é a sua ordem de negociação. E é visível na lista de encomendas existentes. Ou seja, qualquer abertura de posição gera uma cadeia: ordem --> comércio --> posição. Qualquer acção sobre uma posição aberta cria uma cadeia: posição --> ordem --> comércio --> sem posição, ou uma posição menor, ou uma posição maior (netting), ou uma inversão de posição (netting).
Estudar a referência.
Obrigado a todos vós. Especialmente Alexey Viktorov- claro e específico. Já o reprocessei e verifiquei. Agora temos a informação sobre o lucro da última encomenda, e a EA usa-a. Isto é demasiado complicado, existe uma confusão desnecessária e supérflua. Existem ordens actuais (pendentes, comprometidas /market/) e ordens que entraram para a história, mas todas as mesmas ordens. Não tenho uma bicha auricular, tenho uma bicha auricular - o processo de transferência é de curta duração e absolutamente irrelevante. Acontece que enquanto a encomenda do vendedor está a ser pesada, a do comprador já se foi. Isto é, há confusão e confusão no intervalo. Quanto mais simples, melhor.
Mas obrigado a todos, de qualquer forma, e boa sorte.
Obrigado a todos vós. Especialmente Alexey Viktorov- claro e específico. Já o reprocessei e verifiquei. Agora temos a informação sobre o lucro da última encomenda, e a EA usa-a. Isto é demasiado complicado, existe uma confusão desnecessária e supérflua. Existem ordens actuais (pendentes, comprometidas /market/) e ordens que entraram para a história, mas todas as mesmas ordens. Não tenho uma bicha auricular, tenho uma bicha auricular - o processo de transferência é de curta duração e absolutamente irrelevante. Acontece que enquanto a encomenda do vendedor está a ser pesada, a do comprador já se foi. Isto é, há confusão e confusão no intervalo. Quanto mais simples, melhor.
Mas, mesmo assim, obrigado, desejo-vos boa sorte a todos.
Não é uma peculiaridade dos desenvolvedores de terminais. Foi uma peculiaridade encaixar toda a cadeia num único conceito de "ordem" em 4. Tudo está agora de acordo com o que realmente acontece.
E o tempo para mudar um toco da prateleira para a bolsa é o tempo de execução de uma ordem de comércio. E assim, tendo absolutamente todos os dados sobre os acontecimentos actuais, pode facilmente controlar a rapidez com que as ordens estão a ser executadas. E não só isso. Agora tem uma vasta gama de possibilidades para a implementação de quaisquer estatísticas em qualquer um dos servidores, e como eles podem executar as suas encomendas.
Isto não é uma peculiaridade dos desenvolvedores de terminais. Foi uma peculiaridade encaixar toda a cadeia num único conceito de "ordem" em quádruplo. Está agora em sintonia com o que está realmente a acontecer.
E o tempo para mudar um toco da prateleira para a bolsa é o tempo de execução de uma ordem comercial. E assim, tendo absolutamente todos os dados sobre os eventos que ocorrem, pode facilmente controlar a rapidez com que as ordens estão a ser executadas. E não só isso. Agora tem muitas oportunidades para implementar quaisquer estatísticas em qualquer um dos servidores, e como eles podem satisfazer as suas necessidades.
Sem desrespeito, puramente de acordo com a discussão. Há muito tempo que negoceio os meus EAs (não os vendo), com corretores diferentes e não estou interessadonos dados absolutos sobre eventos. Estou interessado no resultado final - a qualidade das encomendas executadas a pedido de uma EA. Se as ordens forem abertas apenas uma vez (figurativamente falando), simplesmente não vou trabalhar com este corretor. Se a ordem de um corretor abre meio segundo mais depressa do que o outro, não é importante para mim (assim como a diferença nas citações).
Porque é fácil escrever uma EA em mql4 e quão incómoda é com mql5? Porque é que as perguntas sobre mql5? Ouvi bons relatos sobre o testador MT5 e tive de me familiarizar com o mql5 para o experimentar. Já experimentei e não estou satisfeito. É conveniente descarregar citações, é muito mais rápido, mas o MT4 é mais informativo. Por exemplo, quero saber não só a que preço as encomendas foram fechadas, mas também que lucro (perda) elas tiraram. A optimização para a frente é tão intensiva em termos de processador que o computador se desliga. Já tentei uma vez (isto não é uma prova, claro) gerir um e o mesmo Expert Advisor num e no mesmo corretor. Os resultados são diferentes; o mt5 é melhor - mais lucro, significativamente menos esgotamento, o que é stressante. Talvez isto seja eu estar senil, mas por agora tenho mais críticas do que positividade. Ainda não vou negociar no mt5, mas o interesse em escrever um bom Conselheiro Especialista permanece. Apenas por uma questão de interesse.
Desejo-lhe boa sorte.