Por que não colocar os parâmetros de entrada na estrutura? - página 4

 

Alexey Volchanskiy

A propósito, a MQL5 tem um limite para o número de parâmetros de função?

Parece haver 64 parâmetros por função.

 
Alexey Volchanskiy:

Como você otimiza? Não é a primeira vez que pergunto isto, e ninguém diz nada.


O problema é esse - você não tem. Isso significa que qualquer janela personalizada (DLL, GUI em MQL) destruirá completamente a otimização nativa. Em casos extremos, temos que adicionar nossa própria otimização dentro da EA, que é outra bicicleta.

O arquivo ini é o mesmo. Como é conveniente aqui não está claro em absoluto. Pelo menos, não vi usuários simples que editam o arquivo ini a fim de alterar os valores dos parâmetros de ajuste.

 
Alexey Volchanskiy:

Parece que escrevi com clareza suficiente, mas vou repetir com um exemplo. Há um Expert Advisor, tem 100 parâmetros de entrada, todos eles devem ser passados para uma instância da classe do algoritmo, onde todo o trabalho é realizado. Há duas maneiras:

  1. Fazer a(s) função(ões) de definição de parâmetros na classe. Agora imagine uma função com 100 parâmetros. A propósito, há um limite no número de parâmetros de função na MQL5?
  2. A classe é definida após as variáveis de entrada, ou seja, elas são visíveis a partir da EA. A desvantagem - menos flexibilidade no caso de múltiplas instâncias da classe. O mais é a quantidade mínima de escrita.

Então o problema é como passar variáveis de entrada para a instância de classe de algoritmo

Então você acertou.

// Begin: mqh-файл
class CLASS_EXPERT
{
public:  
  template <typename T>
  void Set( void );
};
// End: mqh-файл

input int inNum = 0;

struct INPUTS
{
  const int Num;
  
  INPUTS( void ) : Num(inNum)
  {
  }
};

CLASS_EXPERT Experts[10];

void OnInit()
{
  for (int i = ArraySize(Experts) - 1; i >= 0; i--)
    Experts[i].Set<INPUTS>();
}
 
Ihor Herasko:

Como isso é possível? Eu realmente não entendo como isso é possível. Conheço tal truque para roteiros, mas não para Conselheiros Especialistas e indicadores.

ExpertLoader_Example.mq5 a partir daqui.

Ihor Herasko:

Este é o ponto, não é o caso. Isso significa que qualquer janela personalizada (DLL, GUI em MQL) destruirá completamente a otimização padrão. Em casos extremos, temos que adicionar nossa própria otimização dentro da EA, que é outra bicicleta.

O arquivo ini é o mesmo. Como é conveniente aqui não está claro em absoluto. Pelo menos, não vi nenhum usuário simples que edite o arquivo ini para alterar os valores dos parâmetros de ajuste.

https://www.mql5.com/ru/docs/optimization_frames/parametersetrange

Expert
Expert
  • votos: 16
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
 

Você pode escrever as variáveis externas em um arquivo mqh e conectá-lo.

 

Devo estar atrás dos tempos ou me movendo na direção errada,

Pensei que quanto menos parâmetros de entrada uma EA tiver, melhor.

O ideal, em minha opinião, é que um EA não tenha parâmetros de entrada(variáveis de entrada).

Explique-me, qual é o objetivo de 100 parâmetros?

 
Sergey Chalyshev:

Devo estar atrás dos tempos ou me movendo na direção errada,

Pensei que quanto menos parâmetros de entrada uma EA tiver, melhor.

O ideal, em minha opinião, é que um EA não tenha parâmetros de entrada(variáveis de entrada).

Por favor, explique qual é o objetivo de 100 parâmetros?


Apenas para a experimentação.

 
Sergey Chalyshev:

Devo estar atrás dos tempos ou me movendo na direção errada,

Pensei que quanto menos parâmetros de entrada uma EA tiver, melhor.

O ideal, em minha opinião, é que um EA não tenha parâmetros de entrada(variáveis de entrada).

Por favor, esclareça o significado de 100 parâmetros.


Esta questão não é discutida aqui. Estamos discutindo os aspectos técnicos da passagem de parâmetros.

 
Dmitry Fedoseev:

Você pode escrever variáveis externas em um arquivo mqh e conectá-lo.


Estou perdendo a cabeça, as pessoas estão teimando em me ignorar. Você também pode escrevê-los em .mqh, que diferença fazcomo passá-los para a classe do algoritmo?

 
Alexey Volchanskiy:

Estou perdendo a cabeça, ainda não estou sendo ouvido. Você também pode usar .mqh, que diferença faz emcomo passá-los para a classe do algoritmo?


Você não precisa passá-las, as variáveis globais estão disponíveis como estão.