Bibliotecas: MT4Orders - página 35

 
Vladislav Andruschenko:

o que funciona perfeitamente no mt4 não funciona perfeitamente no mt5.

Infelizmente, sem o código, essas declarações não causarão nenhuma discussão construtiva.

 
fxsaber:

Infelizmente, sem um código, essas declarações não serão construtivas.


Eu concordo.

Executei seu relatório - está tudo bem.

Estou procurando meu próprio erro.

Obrigado.


P/S/

Estou tentando entender o seu código, mas não consigo entender.


Mas encontrei isso:

      if (Sort ? OrderSelect((int)Tickets[i][TICKET_INDEX], SELECT_BY_TICKET) : (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && Filter.Is())) // int - (Sort == true) somente para MQL4.

Então ainda há algo sobre classificação?


#ifdef __MQL5__
      static const bool Sort = false;
    #else // __MQL5__
      #ifdef __VIRTUAL__
        static const bool IsTester = ::MQLInfoInteger(MQL_TESTER);

        const bool Sort = !IsTester && !VIRTUAL::GetHandle();
      #else // __VIRTUAL__
        static const bool Sort = !::MQLInfoInteger(MQL_TESTER);
      #endif // __VIRTUAL__
 
Vladislav Andruschenko:

Estou tentando entender seu código, mas não consigo entender.

Mas encontrei isso:

Então, há algo ali sobre classificação?

O código é multiplataforma. O código de classificação é executado lá apenas para o MT4.

O código é terrível, porque é um retrabalho local do script de mesmo nome de 2006.
 
fxsaber:

O código é multiplataforma. O código de classificação é executado lá apenas para o MT4.

O código é terrível, porque é um retrabalho local do script de mesmo nome de 2006.


Em geral, a história é a seguinte:

Em 2012, eu estava criando um indicador para coleta de estatísticas e coletei tudo em HTML para o MT4.

Lutei por um longo tempo e o abandonei (como centenas de outros projetos).

Em 2016, encontrei esse projeto e decidi terminá-lo, e foi o que fiz. Mas tive dificuldades com as ordens de classificação (no histórico) e, para tornar os resultados idênticos ao relatório do mt4, fiz a classificação por horário de fechamento,

mas também havia algumas nuances, a saber

se o horário de fechamento for o mesmo, às vezes o corretor fecha não em ordem (se o stop loss total for acionado), mas fecha os tíquetes em uma dispersão (às vezes isso acontece).

Resolvi esse problema.

O MT4 e os relatórios do mt4 e do meu indicador são os mesmos. O mesmo acontece com seu relatório


A maioria dos usuários pediu para fazer o mesmo no MT5.

É claro que sou muito preguiçoso para criar minha própria biblioteca, então peguei sua biblioteca - ela é muito interessante e resolve muitos problemas (HEDGE? Respeito, gosto, respeito).


Não mudei nada em meu código - conectei sua biblioteca MT4Orders - mas descobri que meu código não funciona nela (ainda não sei os motivos, talvez seja minha preguiça e desonestidade).


No mt4: se o horário de fechamento for o mesmo, às vezes o corretor fecha não em ordem (se o stop loss total for acionado), mas fecha os tíquetes em uma dispersão (às vezes isso acontece).

No mt5: não fiz essa classificação, mas fiz como está, começando pelo horário de fechamento, como o BAC.


E agora os resultados:





Como você pode ver, os resultados no seu relatório e no meu relatório são idênticos. É assim que deve ser.


Mas o relatório do mt5 tem uma classificação diferente.



Como você pode ver, o relatório do terminal mt5 tem uma classificação diferente.

E ela não é expressa em classificação (do final da lista ou do início da lista), mas pelo horário de abertura.

Em relatórios grandes, isso gera uma diferença nas estatísticas (por exemplo, vitória contínua).


Era isso que eu queria dizer...

É por isso que estou tentando entender tudo até o fim.

Peço desculpas se o confundi.

Continue com o bom trabalho, você está fazendo muito bem.

 
Vladislav Andruschenko:

Como você pode ver, os resultados do seu relatório e do meu relatório são idênticos. É assim que deve ser.


mas o relatório do mt5 é classificado de forma diferente.



Como você pode ver, o relatório do terminal mt5 tem uma classificação diferente.

E ela não é expressa em classificação (do final da lista ou do início da lista), mas pelo horário de abertura.

Em relatórios grandes, isso gera uma diferença nas estatísticas (por exemplo, vitória contínua).

De fato, o relatório de posição atual do MT5 é classificado pelo horário de abertura. O relatório de posição foi criado pelos desenvolvedores recentemente e sem nenhum problema. É por isso que ele ficou tão grosseiro. Tenho quase certeza de que esse é o motivo de uma classificação tão ilógica. Se você apontar o problema, acho que eles o corrigirão.

Quanto às vitórias contínuas, elas não têm nada a ver com o relatório de posição. O relatório de posição deles é uma adição tardia que não afeta as estatísticas.

 
fxsaber:

De fato, o relatório de posição atual do MT5 é classificado por tempo de abertura. O relatório de posição foi criado pelos desenvolvedores recentemente e sem nenhum problema. É por isso que ele ficou tão grosseiro. Tenho quase certeza de que esse é o motivo de uma classificação tão ilógica. Se você apontar o problema, acho que eles o corrigirão.

Quanto às vitórias contínuas, elas não têm nada a ver com o relatório de posição. O relatório de posição deles é uma adição tardia que não afeta as estatísticas.

Obrigado pela informação.

Por enquanto, vou tentar descobrir as nuances mais tarde.

Obrigado pela biblioteca.

 
Vladislav Andruschenko:

Não alterei nada em meu código - conectei sua biblioteca MT4Orders - mas descobri que meu código não funciona nela (ainda não sei os motivos, talvez seja minha preguiça e desonestidade).

Como você pode ver, os resultados em seu relatório e em meu relatório são idênticos. É assim que deve ser.

Essas duas frases se contradizem.

 
fxsaber:

Essas duas frases se contradizem.

Eu quis dizer que, em meu código do mt4, classifiquei pelo horário de fechamento, mas, se o horário de fechamento for o mesmo, classifiquei pelo número do tíquete (às vezes, encontrei contas em que as posições foram fechadas fora de ordem, o que prejudicou as estatísticas gerais). - Ajustei as estatísticas de acordo com o relatório do mt4. Não prestem atenção. Tenho minhas próprias baratas na cabeça.

Por alguma razão, esse código não funcionou no mt5 e eu simplesmente criei um relatório sem classificação.

É por isso que obtivemos os mesmos resultados no mt5. Era necessário se preocupar com isso? Agora não vejo nenhum erro, mesmo sem classificação. Talvez algo tenha mudado nos últimos 3 (7) anos.

Совершение сделок - Торговые операции - MetaTrader 5
Совершение сделок - Торговые операции - MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
// Lista de modificações:
// 13.03.2019
// Adicionar: Adicionado OrderTicketID() - PositionID da transação MT5 ou posição MT5, ticket da ordem MT4 pendente.
// Acrescente: SELECT_BY_TICKET é válido para todos os MT5-tickets (e MT5-PositionID).
 
Excelente! Pelo que entendi, isso resolve o problema de selecionar SELECT_BY_TICKET no histórico (sem garantia de execução parcial)?