HistóriaSelect é uma função muito cara. Mas o HistorySelectByPosition é ainda mais caro.
Por exemplo, se precisarmos de encontrar o primeiro negócio da posição fechada, podemos agir de duas maneiras
Faça HistorySelectByPosition e depois encontre o negócio necessário a partir da pequena lista obtida. Mas esta lista é formada da seguinte forma Antes de mais nada, toda a história é formada (equivalente ao chamado do "infinito" HistorySelect). Depois há um FULL para loop através desta lista e apenas os negócios são selecionados, que têm um POSITION_IDENTIFIER apropriado.
Faça o HistorySelect (você pode "infinito", mas é melhor usar um intervalo, se conhecido), então no for loop faça uma pausa, quando você alcançar o DEAL_ENTRY correspondente.
O segundo item poderia ser muito mais barato. Mas certamente não mais caro.
Chamada de históricoAs funções Calling HistorySelect* no testador são quase um desperdício de recursos computacionais. Portanto, você deve sempre tentar minimizar o número deles. Especialmente a HistóriaSelectByPosition.
fxsaber: Para contas Hedge no testador Isso significa que o resultado do testador depende muito do tipo de conta.
Como se verificou em um dos fios vizinhos, o resultado do testador depende mesmo de o teste ser feito em um agente local ou em um dos agentes de uma rede distribuída.
Como se verificou em um dos fios vizinhos, o resultado do testador depende mesmo de o teste ser realizado no agente local ou em um dos agentes da rede distribuída.
Caros desenvolvedores, como se livrar dos Avisos nesta situação?
template <typename T>
T GetValue()
{
T Res; // possible use of uninitialized variable 'Res'return(Res);
}
voidOnStart()
{
MqlTick Tick = GetValue<MqlTick>();
int i = GetValue<int>();
}
Lifehack
template <typename T>
const T GetDefaultValue( void )
{
struct STRUCT_TYPE
{
const T Value;
};
const STRUCT_TYPE Res = {0};
return(Res.Value);
}
voidOnStart()
{
int i = GetDefaultValue<int>();
MqlTick Tick = GetDefaultValue<MqlTick>();
string Str = GetDefaultValue<string>();
}
HistóriaSelect é uma função muito cara. Mas o HistorySelectByPosition é ainda mais caro.
Por exemplo, se precisarmos de encontrar o primeiro negócio da posição fechada, podemos agir de duas maneiras
O segundo item poderia ser muito mais barato. Mas certamente não mais caro.
Chamada de históricoAs funções Calling HistorySelect* no testador são quase um desperdício de recursos computacionais. Portanto, você deve sempre tentar minimizar o número deles. Especialmente a HistóriaSelectByPosition.
Para contas Hedge no testador Isso significa que o resultado do testador depende muito do tipo de conta.
Como se verificou em um dos fios vizinhos, o resultado do testador depende mesmo de o teste ser feito em um agente local ou em um dos agentes de uma rede distribuída.
https://www.mql5.com/ru/forum/1111/page1880#comment_4904481
Como se verificou em um dos fios vizinhos, o resultado do testador depende mesmo de o teste ser realizado no agente local ou em um dos agentes da rede distribuída.
https://www.mql5.com/ru/forum/1111/page1880#comment_4904481
Você descreveu BAG, que não está no contexto deste tópico. A diferente execução dos limitadores é a posição oficial.
Concordo, só queria salientar que o testador está se tornando uma ferramenta cada vez mais imprevisível.
Concordo, só queria salientar que o testador está a tornar-se uma ferramenta cada vez mais imprevisível.
Isto significa que o resultado do testador é muito dependente do tipo de conta.
Resultado
Fórum sobre negociação, sistemas de negociação automatizados e testes de estratégia de negociação
Bugs, bugs, perguntas
fxsaber, 2017.04.10 16:53
Caros desenvolvedores, como se livrar dos Avisos nesta situação?Funções do rudimento (não necessário)