Erros, bugs, perguntas - página 1853

 
Комбинатор:

Não pode o quê? Anotar assim?

Estruturas[(int)0]

Sim, não se pode escrevê-lo assim. Mais ainda - Struct[(MqlTick)0]


Fórum sobre negociação, sistemas de negociação automatizados e testador de estratégias

Nova versão do MetaTrader 5 build 1570: Melhoria do Market Watch e Extensão das Funções do Template em MQL5

MetaQuotes Software Corp., 2017.03.22 16:31

  1. MQL5: Foi acrescentada a possibilidade de especialização explícita das funções do modelo. Para este efeito, os parâmetros de dactilografia devem ser especificados antes da lista de parâmetros de chamada:
    template<typename T>
    T Func() { return (T)0; }
      
      
    void OnInit()
      {
       Func<double>();   // явная специализация шаблонной функции
      }
    Assim, a especialização não é através de parâmetros de chamada, mas sim especificando explicitamente os tipos.
 
C é uma linguagem de programação fixe. Mas, muitas pessoas programam com os olhos fechados(:
 

Assim, a especialização não é através de parâmetros de chamada, mas sim através da indicação directa de tipos.

Tipos de quê? Qual é o tipo de estrutura que está a violar?

 
Алексей Тарабанов:

Que tipo de estrutura violam?

struct STRUCT
{
  template <typename T>
  void operator []( int )
  {
    Print(__FUNCSIG__);
  }
};

void OnStart()
{
  STRUCT Struct;
  
  Struct.operator[]<int>(0);
  Struct.operator[]<MqlTick>(0);
}

Resultado
void STRUCT::operator[]<int>(int)
void STRUCT::operator[]<MqlTick>(int)
 
fxsaber:

Resultado

Basta estudar os tipos de dados.
 
Алексей Тарабанов:
Basta estudar os tipos de dados.
Ter sentido de humor - assinalou a caixa.
 
fxsaber:
Ter sentido de humor - assinalou a caixa.

Obrigado
 
Renat Fatkhullin:

A tarefa já foi definida para alterar esta estratégia e trazer dados não mais profundos do que 500 barras a partir da data mais longínqua do pedido. Isto permitirá uma escrita indolor dos screeners do mercado.

1. será possível alterar esta profundidade?

2. Onde em MT5 estão regulamentados os limites do histórico de carga?

 
Li o Tutorial para Chupeta. Tenho um algoritmo, mas não o posso prescrever correctamente.
Assim, a ideia é que eu aceda ao conjunto de dados das últimas 86 velas, excepto 0. Cada vela branca é 1, cada vela preta é 0. Se o preço de fecho de 1 vela é igual aopreço de abertura de 1 vela, então olhe para o preço de fecho de 2 velas e se é superior ao preço de abertura de 1 vela, então coloque 0. Se o preço de fecho de 2 velas é igual ao preço de abertura de 1 vela, então pelo mesmo princípio, compare o preço de abertura de 2 velas com o preço de fecho de 2 velas.
O ciclo decorre a cada 15 min ou 60
 
Isto é um erro na língua ou uma característica não documentada?
struct STRUCT
{
  void operator =( STRUCT& ) { Print(__FUNCSIG__); }
};

void OnStart()
{
  STRUCT Struct = {0};
  
  Struct = (STRUCT)Struct; // Пусто
  Struct = Struct;         // void STRUCT::operator=(STRUCT&)
}

O operador não é chamado, mesmo que o faça um operador modelo!