Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 1032

 
Artyom Trishkin:

Este é o momento do ofício.

Não compreendo.
Duração?
Ou quando fechamos uma encomenda, é esse o momento do negócio?
E como filtrar, só estou interessado no momento de estabelecer as encomendas?
 
Roman Kutemov:
Não compreendo.
Duração?
Ou quando fechamos uma encomenda, é esse o momento do negócio?
E como filtrar, só estou interessado nos tempos de encomenda?

Não a duração, mas o momento da transacção.

Não existem ordens na lista de transacções. Existem duas listas históricas no terminal - a lista de encomendas e a lista de negócios. Estes são os que devem procurar exactamente o que é necessário.

Leia a ajuda:

Документация по MQL5: Торговые функции / HistorySelect
Документация по MQL5: Торговые функции / HistorySelect
  • www.mql5.com
Функция HistorySelect() создает в mql5-программе список ордеров и список сделок для дальнейшего обращения к элементам списка посредством соответствующих функций. Размер списка сделок можно узнать с помощью функции HistoryDealsTotal(), размер списка ордеров в истории можно получить с HistoryOrdersTotal(). Перебор элементов списка ордеров лучше...
 
Roman Kutemov:
Não compreendo.
Duração?
Ou quando fechamos uma encomenda, é esse o momento do negócio?
E como filtrar, só estou interessado nos tempos de encomenda?
Uma posição fechada tem pelo menos duas ordens e dois negócios. São eles que caracterizam a posição. Primeiro uma ordem e uma troca para abrir a posição, depois uma ordem e uma troca para fechar a posição. Se uma ordem sob a forma de uma ordem pendente pode "viver" durante algum tempo até que um acordo seja executado, então um acordo não tem tal "vida útil".
 
Alexey Viktorov:
Uma posição fechada tem pelo menos duas ordens e dois negócios. São estes que caracterizam a posição. Primeiro uma ordem e uma troca para abrir a posição, depois uma ordem e uma troca para fechar a posição. Se uma ordem sob a forma de uma ordem pendente pode "viver" durante algum tempo até que um acordo seja executado, então um acordo não tem tal "vida útil".
OK, então como determinamos o tempo para abrir uma posição que já está na história?
 
Roman Kutemov:
OK, então como determinamos o momento de abertura de uma posição que já está na história?

Pela enumeração da ENUM_DEAL_ENTRY

DEAL_ENTRY_IN

Entrada no mercado

DEAL_ENTRY_OUT

Saída do mercado

DEAL_ENTRY_INOUT

U-turn

DEAL_ENTRY_OUT_BY

Fechar posição do contador

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Сделка является отражением факта совершения торговой операции на основании ордера, содержащего торговый приказ. Каждая сделка описывается свойствами, позволяющими получить информацию о ней. Для чтения значений свойств используются функции вида Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая...
 
Alexey Viktorov:

Pela enumeração da ENUM_DEAL_ENTRY

DEAL_ENTRY_IN

Entrada no mercado

DEAL_ENTRY_OUT

Saída do mercado

DEAL_ENTRY_INOUT

U-turn

DEAL_ENTRY_OUT_BY

Fechar posição do contador

Pode haver muitas entradas para uma posição - vai dar-nos a informação pouco a pouco?

Encontre a primeira troca da posição DEAL_ENTRY_IN.

 
Roman Kutemov:
Muito bem, então como se determina a hora de abrir uma posição que já está na história?

Leia a ajuda - está tudo aí, e por vezes com exemplos.

Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Сделка является отражением факта совершения торговой операции на основании ордера, содержащего торговый приказ. Каждая сделка описывается свойствами, позволяющими получить информацию о ней. Для чтения значений свойств используются функции вида Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая...
 
Roman Kutemov:
Ok, então como determinar o tempo de abertura de uma posição que já está na história?

Duas opções

Fórum sobre comércio, sistemas comerciais automatizados e teste de estratégias comerciais

OrderCloseTime Expert Advisor MQL5

fxsaber, 2018.07.06 00:49

#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

void LastTimeMQL4( datetime &OpenTime, datetime &CloseTime )
{
  for (int i = OrdersHistoryTotal() - 1; i >= 0; i--)  
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL))
    {
      OpenTime = OrderOpenTime();
      CloseTime = OrderCloseTime();
      
      break;
    }
}

void LastTimeMQL5( datetime &OpenTime, datetime &CloseTime )
{
  if (HistorySelect(0, INT_MAX))
  {
    for (int i = HistoryDealsTotal() - 1; i >= 0; i--)
    {
      const ulong Ticket = HistoryDealGetTicket(i);
  
      if (HistoryDealGetInteger(Ticket, DEAL_ENTRY) == DEAL_ENTRY_OUT)
      {
        CloseTime = (datetime)HistoryDealGetInteger(Ticket, DEAL_TIME);

        if (HistorySelectByPosition(HistoryDealGetInteger(Ticket, DEAL_POSITION_ID)))
          OpenTime = (datetime)HistoryDealGetInteger(HistoryDealGetTicket(0), DEAL_TIME);
          
        break;
      }
    }
  }
}
A segunda opção é mais lenta, mas suporta redes.
 
Artyom Trishkin:

Pode haver muitas entradas para uma posição - vai continuar a dizer-me pouco a pouco?

Encontre a primeira troca da posição DEAL_ENTRY_IN.

Artem, quando faz tais perguntas, é 99% que é escrito para o mercado cambial e 90% que para a conta hadge. Porquê complicar a vida desde o início para o principiante?
 
Alexey Viktorov:
Artyom, quando faz tais perguntas, é 99% que é escrito para o mercado forex e 90% que é para a conta hadge. Porquê complicar a vida de um principiante no início?
Sim, sim. Não há necessidade de complicar a vida)).
Depois do mt4, é difícil entrar nele de todo.