Características da linguagem mql5, subtilezas e técnicas - página 20

 
Andrey Dik:

Também para a cobertura.

Ao longo dos anos o meu cérebro tem sido afiado para a rede. Ordem->Transacção->Posição. Pode haver muitos negócios em uma posição(em uma cobertura há apenas um negócio, me corrija se eu estiver errado), você pode dizer o que aconteceu com a posição pelo tipo de negócio.

Em uma sebe é claro que é mais fácil de entender, mas mais difícil de acompanhar. Claro que é.

Um, desde que a posição exista no mercado. Mas quando está fechada, há uma segunda ordem e uma segunda troca.

ps; provavelmente estou errado. Veja ps no post abaixo.

 
Artyom Trishkin:
E a rede de arrasto SL ? Como você vai determinar o que fechou na rede de arrasto do SL no lado positivo?

Ok, ainda não considerei isso. Então vamos verificar o preço da ordem que abriu a posição e o preço da ordem que fechou a posição.

Embora provavelmente possamos deixar as ordens em paz e operar apenas com acordos.

ps; Não... Há algo de errado aqui. Afinal, cada mudança de Take ou Stop após a abertura da posição é uma nova ordem e um novo negócio. Aparentemente, é com isto que devemos trabalhar...

Não posso verificá-lo, não tenho posições com paragens. Só alguns com takes.

 
Alexey Viktorov:

Quando você encontrar a última negociação DEAL_ENTRY_OUT e selecionar todo o histórico da posição HistorySelectByPosition nesta lista há, para contas hadge 2 negociações e 2 ordens, abrindo uma posição e fechando-a. A ordem com base na qual o fechamento ocorreu contém ORDER_PRICE_OPEN. Em seguida, você verifica o tipo de posição e o tipo de ordem que foi usada para fechá-la. Se o tipo de ordem é o oposto, significa que foi um fechamento. Assim, o preço da ordem é o preço que devemos procurar, com uma pequena correcção: se o lucro da ordem é > 0, então este é o preço do TP, se for < 0, então a posição fechou no SL.

Se dependermos do comentário ao pedido, eu não o faria.

Não é assim tão simples. A última ordem em uma posição pode ser a que fechou a posição assim como a que a reverteu.

Quanto a SL e TP - a partir do comentário para determinar a maneira mais fácil e confiável. Para comparar preços para SL e TP nem sempre funcionará corretamente, porque SL e TP podem estar ambos na zona de lucros e perdas. Isso já foi discutido bastante acaloradamente no fórum, o Sr. Sergeev deu a solução apropriada para o comentário que citei.

 
Andrey Dik:

Não é assim tão simples. A última ordem em uma posição pode ser a que fechou a negociação ou a que a reverteu.

E sobre SL e TP - a partir da cotação para determinar a maneira mais fácil e mais confiável. Comparar os preços de SL e TP nem sempre funcionará corretamente, porque tanto SL como TP podem estar na zona de lucros e perdas.

Eu não disse que era fácil. Na verdade, apenas nas contas líquidas o SL e TP são iguais ao SL e TP. E apenas em contas de compensação. Nas contas de cobertura, para inverter uma posição, ela deve ser fechada pela posição oposta com um volume maior. Não é assim?

Este tópico é interessante, mas não posso verificá-lo por causa das razões acima mencionadas. Não tenho posições com paragens e tomadas de posição, especialmente as que estão a seguir.

 
Alexey Viktorov:

Uma ordem que inverte uma posição não pode ser um take ou um stop.

TP e SL não são ordens no sistema de contabilidade MT, são propriedades de posição. Portanto, não é possível trabalhar com SL/TP em encomendas/comércios (mesmo o sábio motor do site confirma isso com um link).

Alexey Viktorov:

Nas contas de cobertura para reverter uma posição deve fechá-la com uma ordem oposta de um volume maior. Não é assim?

Não, não é. Nas contas de cobertura uma posição não pode ser revertida, só pode ser fechada.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Andrey Dik:

TP e SL não são ordens no sistema de contabilidade MT, são propriedades de posição. Por isso não pode trabalhar com SL/TP em encomendas/transacções (mesmo o sábio motor do site confirma com um link).

Não, não é. Em contas de cobertura uma posição não pode ser revertida, só pode ser fechada.

Mas quando uma posição é fechada, suas propriedades não estão mais disponíveis. Você só tem que pesquisar as informações necessárias sobre ordens e negociações.
 

Fórum sobre negociação, sistemas de negociação automatizados e testes estratégicos

MQL5 Como posso saber se uma troca foi fechada com stop loss ou não?

fxsaber, 2017.02.14 19:46

Ticket a ordem que foi o motivo para fechar a posição, empurre-a aqui
#define ORDER_TYPE_TAKEPROFIT (-1)
#define ORDER_TYPE_STOPLOSS   (-2)

int GetOrderType(const ulong OrderTicket)
{
  int OrderType=(int)::HistoryOrderGetInteger(OrderTicket,ORDER_TYPE);

  if((OrderType==ORDER_TYPE_BUY) || (OrderType==ORDER_TYPE_SELL))
    {
     const string OrderComment=HistoryOrderGetString(OrderTicket,ORDER_COMMENT);
     const string OrderPrice=::DoubleToString(::HistoryOrderGetDouble(OrderTicket,ORDER_PRICE_OPEN),
                                              (int)::SymbolInfoInteger(HistoryOrderGetString(OrderTicket,ORDER_SYMBOL),SYMBOL_DIGITS));

     if(OrderComment=="tp "+OrderPrice)
        OrderType=ORDER_TYPE_TAKEPROFIT;
     else if(OrderComment=="sl "+OrderPrice)
        OrderType=ORDER_TYPE_STOPLOSS;
    }

  return(OrderType);
}
 
Andrey Dik:
Dá-me um exemplo, por favor.
Um exemplo de quê? Que as propriedades da posição não estão disponíveis após fechá-la?
 
Alexey Viktorov:
Um exemplo de quê? Que as propriedades de uma posição não estão disponíveis após o seu encerramento?
Um exemplo de como você determina o que fechou a posição SL ou TP em ordens e negócios. Eu dei um exemplo de como você determina isso a partir do seu comentário.
 
Andrey Dik:
Exemplo de como você determina qual a posição SL ou TP fechada em ordens e negociações. Eu dei um exemplo de como você determina isso a partir do seu comentário.

Eu não estou a fazer nada. Mesmo em mql4, acho inútil olhar através da história da ordem. Ainda estou tentando analisar a direção que posso começar a cavar quando necessário. Como não há posições de tráfico em nenhum terminal, simplesmente não posso verificá-las.

Consequentemente, após fechar a posição nas minhas contas, existem apenas 2 ordens e 2 negócios referentes à posição. Usando-os, podemos obter algumas informações sobre a posição. Por exemplo, a que preço o pedido foi aberto e a que preço exactamente foi aberto. Assim, podemos facilmente determinar o deslizamento em que a posição foi aberta.

Eu trato os comentários com cautela desde a MT4 porque as corretoras sobrescrevem todos os comentários de acordo com suas próprias razões.