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
Você tem que pensar em cada frase.
Eu estava perguntando onde está a implementação de take-outs como limites, se o texto acima diz "O preço atingiu o take-out da posição aberta. O MT5 formou uma ordem de mercado".
Em resposta, recebi:
O MT5 sempre mostra os compradores para [cliente] na forma de ordens de mercado.
Como comparar isso?
De terceiros.
Portanto. Por que não conectá-lo?
Portanto, o limitador é enviado com um prazo de validade muito curto.
O que isso tem a ver com minha pergunta?
Qual é a diferença entre entrada e saída? Por que um mercado é mais favorável para a saída e um limite para a entrada?
Você precisa pensar em cada frase.
Infelizmente, esse é o custo do formato de comunicação.
O MT5 sempre mostra as retiradas na forma de mercados. O fato de serem mercados ou limitadores depende, na verdade, das implementações de gateway de terceiros. Nesse caso, esses mercados são enviados como limitadores.
O MT5 atua apenas como um banco de dados.
O MT5 sempre mostra compradores na forma de mercados. O fato de serem mercados ou limitadores depende, na verdade, das implementações de gateway de terceiros. Nesse caso, esses mercados são enviados como limitadores.
Estamos falando sobre como a execução da TP é exibida?
Então estou vendo do que se trata a postagem original)
Estou desenvolvendo recursos de conversão de indicadores para autoeducação. Aqui estão mais três indicadores.
Como de costume, o código original do MT4 não foi alterado.
A fonte mostra claramente o que os autores usam StringConcatenate em seus códigos. Isso é simplesmente estúpido!
OLÁ...
Como foi o processo de conversão para o MT5?
Tenho uma conta de compensação. Abro e fecho uma posição nela por meio de mercados. Ao fechar uma posição, o OrderSend retorna 0, o que não é um erro, mas também não é um sucesso.
Observo o seguinte código no OrderSend
MT4ORDERS::OrderSend retorna true. MT4ORDERS::LastTradeRequest.action == TRADE_ACTION_DEAL também é true. MT4ORDERS::IsTester também é true. Mas PositionSelect(MT4ORDERS::LastTradeRequest.symbol) retorna falso. Aparentemente, isso ocorre porque a posição está fechada. Isso é um bug ou um recurso? Ou entrei novamente em uma área que não é totalmente suportada por essa biblioteca?
Tenho uma conta de compensação. Abro e fecho uma posição nela por meio de mercados. Ao fechar uma posição, o OrderSend retorna 0, o que não é um erro, mas também não é um sucesso.
O fechamento de umaposição geralmente é feito por meio do OrderClose. Se você fechar uma posição via OrderSend, é lógico retornar zero, porque o MT4Style-OrderSend retorna um ticket de uma posição aberta. Bem, se você a fechou, não há nada a ser retornado. Um erro é quando -1.
Se você usar o OrderSend para fechar parcialmente ou virar, ele deverá (supostamente) retornar um tíquete da posição alterada. Zero - quando não há ticket para retornar.
Estou tentando configurar a execução parcial de ordens em minha mente, mas ainda não a compreendi totalmente. E as contas de demonstração, na maioria das vezes, cospem no volume e não permitem a verificação experimental.
Há duas situações: uso o MT4 puro com a opção"Partial Execution of Limit Orders" e uso o MT5 com a biblioteca MT4Orders. Uma ordem de limite é colocada e parcialmente executada.
1. No MT4, pelo que entendi, haverá duas ordens: uma para o volume parcialmente executado como não sendo uma ordem de limite, mas já executada, e uma para o volume restante como uma ordem de limite. As ordens serão independentes, a segunda ordem é essencialmente colocada pelo corretor. Depois que o volume restante for preenchido, haverá duas ordens, mas ambas serão executadas. Estou entendendo isso corretamente? Porque, olhando para o esquema da API no MT4, só isso me veio à mente, não vejo nenhum trabalho com execução parcial lá, bem como colocar o tipo de ordem, como FOK ou outra coisa.
2. Para o MT5, a ordem permanecerá 1, ainda uma ordem de limite, mas haverá uma divisão de volumes em ORDER_VOLUME_INITIAL e ORDER_VOLUME_CURRENT. O MT4Orders retornará ORDER_VOLUME_CURRENT e, para obter o segundo volume, você terá que usar a API nativa do MT5. Quando o volume restante for preenchido, a ordem permanecerá 1, passará do Limite para Executada e o preço será recalculado para a média. Estou entendendo isso corretamente?
Estou tentando configurar a execução parcial de ordens em minha mente, mas ainda não a compreendi totalmente. E as contas de demonstração, na maioria das vezes, cospem no volume e não permitem a verificação experimental.
Há duas situações: uso o MT4 puro com a opção"Partial Execution of Limit Orders" e uso o MT5 com a biblioteca MT4Orders. Uma ordem de limite é colocada e parcialmente executada.
1. No MT4, pelo que entendi, haverá duas ordens: uma para o volume parcialmente executado como não sendo uma ordem de limite, mas já executada, e uma para o volume restante como uma ordem de limite. As ordens serão independentes, a segunda ordem é essencialmente colocada pelo corretor. Depois que o volume restante for preenchido, haverá duas ordens, mas ambas serão executadas. Estou entendendo isso corretamente? Porque olhando o esquema da API no MT4 só me veio isso à mente, não vejo nenhum trabalho com execução parcial lá, bem como colocar o tipo de ordem, como FOK ou outra coisa.
Correto.
2. Para o MT5, a ordem permanecerá 1, enquanto ainda for uma ordem de limite, mas haverá uma divisão de volumes em ORDER_VOLUME_INITIAL e ORDER_VOLUME_CURRENT. O MT4Orders retornará ORDER_VOLUME_CURRENT e, para obter o segundo volume, você terá que usar a API nativa do MT5. Quando o volume restante for preenchido, a ordem permanecerá 1, passará do Limite para Executada e o preço será recalculado para a média. Estou entendendo isso corretamente?
Serão geradas muitas negociações com a mesma DEAL_ORDER. A ordem pode até ser modificada (preço de abertura) ou excluída por você. Ou seja, seu status pode ser CANCELADO, mas ela gerou várias negociações. É por isso que nem sempre é possível saber o valor da derrapagem.
Não estou ciente disso. Talvez no loop MOEX-demo seja possível influenciar o preço por meio de limitadores de demonstração. Então, é fácil reproduzir a situação: coloque BuyLimit dentro do spread e imediatamente faça alguns pequenos mercados de VENDA.
ORDER_VOLUME_INITIAL - não vi um cenário em que essa informação pudesse ser útil.
Se não houver posições abertas (não é necessário para Hedge), a execução parcial cria uma Posição MT5 e uma Ordem MT5 com o mesmo ticket. Além disso, ela cria negociações com o mesmo PositionID. É por isso que, no modo SELECT_BY_TICKET, diferentemente do MT4, você pode priorizar onde procurar primeiro (no Histórico ou entre os ativos) - MODE_HISTORY/MODE_TRADES. E a seleção por Ticket, portanto, não é inequívoca.
É por isso que recomendo fazer isso por meio de SELECT_BY_POS.
ORDER_VOLUME_INITIAL - Não vi um cenário em que essa informação fosse útil.
Eu a utilizo em conjunto com ORDER_VOLUME_CURRENT para determinar quanto foi despejado e quanto ainda está no limitador. Principalmente para minhas próprias estatísticas, para tornar o processo mais claro.
Obrigado pela explicação detalhada. Isso significa que imaginei tudo corretamente, então estou fazendo isso. A única coisa que não levei em conta é que a execução parcial no MT5 criará uma nova ordem de mercado.
O fechamento de uma posição é feito, na maioria das vezes, por meio do OrderClose.
Mas, nesse caso, é impossível trabalhar por meio do Limiter. Ou isso é possível de alguma forma?