Bibliotecas: MT4Orders - página 4

 
O próprio OrdersHistoryTotal pode ser facilmente acelerado com o armazenamento em cache do contador.
 

Estou tentando conectá-lo, mas não funciona!

Tenho uma classe separada para trabalhar com ordens, então fiz uma alteração no início do código do EA e recebo 100 erros na minha classe.

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

 
-Aleks-:

Estou tentando conectá-lo, mas não funciona!

Tenho uma classe separada para trabalhar com ordens, então fiz uma alteração no início do código do EA e recebo 100 erros na minha classe.

#property strict
#include <cPoza13-1.mqh>
#include <MT4Orders.mqh>
#include <MQL4_to_MQL5.mqh>

O MT4Orders afeta somente o código abaixo (após #include). Portanto, coloque sua classe DEPOIS da biblioteca, não antes dela.
 
fxsaber:
O MT4Orders afeta apenas o código abaixo (após #include). Portanto, coloque sua classe não antes, mas DEPOIS da biblioteca.

1. primeiro você precisa ver que tipo de erros ele tem sem a ajuda da sociedade telepática.

2) Se o cPoza13-1 usa MT4Orders e MQL4_to_MQL5, por que eles não estão incluídos no próprio arquivo cPoza13-1? E em algum lugar do lado de fora... abordagem estranha de codificação

 
Decidi tentar, pois estou reescrevendo o bot no mt5 e preciso de um teste rápido :). Você diz que ele é para contas de hedge, o que é compreensível. Qual é a situação com contas que não são de negociação? Bem, levando em conta que minha estratégia usará apenas uma posição aberta, todo o resto funcionará corretamente?
 
o_O:

E se o cPoza13-1 usa MT4Orders e MQL4_to_MQL5, por que eles não estão incluídos no próprio arquivo cPoza13-1? E em algum lugar por aí... uma abordagem estranha de codificação

A abordagem é clara. A cPoza é uma biblioteca MQL4 pura. É por isso que ela não é corrigida.

Por exemplo, converti outro Consultor Especialista MT4( conversãoalternativa) em código de plataforma cruzada desta forma

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

#ifdef __MQL5__
  #define MODE_MINLOT SYMBOL_VOLUME_MIN
  
  double MarketInfo( const string Symb, const ENUM_SYMBOL_INFO_DOUBLE Type )
  {
    return(SymbolInfoDouble(Symb, Type));
  }
  
  void OnTick()
  {
    start();
  }  
#endif

#include "OpenTiks.mq4" // https://www.mql5.com/pt/code/8578
Ou seja, minha abordagem de conversão é não interferir no arquivo original.
 
Maxim Dmitrievsky:
Decidi tentar, pois estou reescrevendo o bot no mt5 e preciso de um teste rápido :). Você diz que ele é para contas de hedge, o que é compreensível. Qual é a situação com contas que não são de negociação? Bem, considerando que minha estratégia usará apenas uma posição aberta, todo o resto funcionará corretamente?
Funcionará! Eu faço tudo na bolsa de valores por meio do MT4Orders. Não me limito ao número de posições abertas.
 
Stanislav Korotky:
O próprio OrdersHistoryTotal poderia ser facilmente acelerado com o armazenamento em cache do contador.

É possível, é claro. Ainda não vi essa necessidade.

-Aleks-:

Eu uso a análise de histórico, meu MM envolve a negociação de uma situação durante a qual ocorre o fechamento e a abertura de posições, e o risco é levado em conta usando o resultado financeiro desde o início da situação.

Nessa situação, podemos imaginar a identificação de uma tendência - o trabalho em sua conclusão é realizado de forma diferente - abrindo e fechando posições, mas é importante saber o que você pode arriscar, pois quanto mais longa for a tendência, mais provável será sua conclusão - daí o volume diferente de ordens abertas e pontos de saída.

Aparentemente, isso deve ser feito.
 
Outro exemplo de conversão do MT4-advisor( conversãoalternativa) para a versão de plataforma cruzada
#include <MT4Orders.mqh>    // https://www.mql5.com/pt/code/16006
#include <MQL4_to_MQL5.mqh> // https://www.mql5.com/pt/code/16006

#ifdef __MQL5__
  double AccountBalance( void )  
  {
    return(AccountInfoDouble(ACCOUNT_BALANCE));
  }
  
  int TimeHour( const datetime Date )
  {
    MqlDateTime Tmp;
  
    TimeToStruct(Date, Tmp);
  
    return(Tmp.hour);
  }  
  
  void OnTick()
  {
    start();
  }  
#endif

#include "20_200_expert_v4_2_AntS.mq4" // https://www.mql5.com/pt/code/7891
A fonte do original está anexada.
Arquivos anexados:
 
fxsaber:
O MT4Orders afeta apenas o código abaixo (após #include). Portanto, coloque sua classe DEPOIS da biblioteca, não antes dela.

Entendi - obrigado - os erros quase desapareceram, mas ainda resta um:

'OrderCloseBy' - função não definida cPoza13-1.mqh 1885 8

 //+------------------------------------------------------------------------------------------------------------------------------------+
//| Возвращает TRUE, если один ордер закрылся другим
//+------------------------------------------------------------------------------------------------------------------------------------+
bool cPoza::closeBy(int ticketB, int ticketA)
{
  if(ticketB > 0 && ticketA > 0)
  {
    if(OrderCloseBy(ticketB, ticketA)) return true;
    else Print("Magic=", mMagic, " ",__FUNCTION__, " Встречное закрытие не вышло ticketB=", ticketB, " ticketA=", ticketA, " вызвало ошибку-", _LastError);
  }
  else return false;
 
  return false;
}