Bibliotecas: MT4Orders - página 31

 
Ilya Malev:

Sim, eu tinha apenas um pequeno número de transações lá. Mas, juntas, essas pequenas amostras se acumulam muito e, se cada uma delas tiver um pequeno erro (mesmo que não seja um erro, mas uma discrepância com o testador), é um pouco estressante).

Tire proveito disso.

 
Em geral, tenho tudo pronto. Sua biblioteca me ajudou muito, em vez de uma semana pensando em como escrever coisas simples sem bugs no MT5, eu a aproveitei e comecei a escrever coisas complexas :)
 
Ilya Malev:
Em geral, tenho tudo pronto. Sua biblioteca me ajudou muito, em vez de uma semana pensando em como escrever coisas simples sem bugs no MT5, eu a aproveitei e comecei as coisas complicadas :)

Para um testador, na verdade, tudo é simples.

 
fxsaber:

Para um testador, de fato, tudo é simples.

E coisas "complexas" do MT5 real e que você mesmo não entende completamente, a julgar por tudo o que está escrito em 30 páginas). Para mim, tudo que funciona e se adapta a uma situação específica é bom. E o fato de que pode haver 100500 situações diferentes e isso não funcionará lá, eu pessoalmente as resolverei à medida que surgirem, acho que é muito mais prático do que tentar fornecer tudo e em tudo. Embora, se houver uma solução pronta para isso, é claro que ela será muito bem-vinda

 
Ilya Malev:

E coisas "complexas" do MT5 real e que você mesmo não entende completamente, a julgar por tudo o que está escrito em 30 páginas).

É quase impossível detectar uma falha agora. Mas ficarei feliz se você conseguir.

 
As funções de Kim no MT4 são bastante populares, então baixei todas as fontes do site dele e escrevi um "conversor" simples para elas no MT5.
#include <KimIVToMT5.mqh> // https://c.mql5.com/3/263/KimIVToMT5.mqh

#include "e-Trailing.mq4" // http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=14

void OnTick() { start(); }


Enquanto o escrevia, encontrei um conversor automático gratuito. Ele parece funcionar!

Arquivos anexados:
KimIVToMT5.mqh  10 kb
 
fxsaber:
As funções do Kim no MT4 são bastante populares, então baixei todos os códigos-fonte do site dele e escrevi um "conversor" simples para elas no MT5.

Excelente!

 
fxsaber:

É quase impossível detectar uma falha agora. Mas ficarei feliz se você puder fazer isso.

Saudações!

Na versão atual de 26.11.2018, há um bug com ordens pendentes. Na versão anterior, não havia esse erro.

Uma ordem de cada tipo é definida.

Código

#property strict

#include <MT4Orders26.11.2018.mqh> // BUG
//#include <MT4Orders02.11.2018.mqh> // Trabalho
//+------------------------------------------------------------------+
//| Função de inicialização de especialista|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Função de tique de especialista|
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   Comment("BUYSTOP: ",Count(Symbol(),OP_BUYSTOP),"\n"
           "BUYLIMIT: ",Count(Symbol(),OP_BUYLIMIT),"\n"
           "SELLSTOP: ",Count(Symbol(),OP_SELLSTOP),"\n"
           "SELLLIMIT: ",Count(Symbol(),OP_SELLLIMIT),"\n"
          );
  }
//+------------------------------------------------------------------+
int Count(string symb,int type) {
 int c=0,t=OrdersTotal();
   for(int i=0; i<t; i++) {
    if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
     if(symb==OrderSymbol() && OrderType()==type) c++;
    }
   }
   return(c);
  }  

Para compreensão, renomeado sob as datas

Arquivos anexados:
 
Gostaria de acrescentar: ele se comporta de maneira muito estranha se o código for definido em um símbolo, mas a pendência for definida em outro símbolo e, em seguida, começar a excluí-los um a um do gráfico em que o Expert Advisor está instalado.
 
Vitaly Muzichenko:

Na versão atual, 26.11.2018, há um bug com ordens pendentes. Isso não existia na versão anterior.

Salpico minha cabeça com cinzas, espero não ter atrapalhado ninguém. Desatenção: não terminei esses símbolos

if (!Res && PrevTicket && (::OrderGetInteger(ORDER_TICKET) != PrevTicket))


A correção está disponível para download

// Lista de modificações:
// 17.01.2019
// Correção: corrigido um erro incômodo ao selecionar ordens pendentes.


Para quem usou a versão de 26.11.2018, recomendo fortemente a atualização - HotFix!


Mais uma vez peço desculpas, não foi legal.