Essa situação parece não ter sido considerada. Quando o parâmetro é um grupo, não há um valor específico e o valor obtido será nulo, portanto, nenhum parâmetro após o grupo será obtido.
O código a seguir mostra que tudo é tratado corretamente.
inputbool InRun = true;
input group "label1"inputdouble In2 = 2.0;
#include <fxsaber\Expert.mqh> // https://www.mql5.com/pt/code/19003int GetAmountExperts()
{
int Res = 0;
for (long Chart = ChartFirst(); Chart != -1; Chart = ChartNext(Chart))
Res += (ChartGetString(Chart, CHART_EXPERT_NAME) != "");
return(Res);
}
voidOnInit()
{
if (InRun)
{
MqlParam Params[];
string Names[];
constint Size = EXPERT::Parameters(0, Params, Names) - 1;
ArrayPrint(Params);
ArrayPrint(Names);
int nameSize = ArraySize(Names);
for (int i = nameSize-1; i >= 0; i--) {
if (Names[i] == "InRun")
Params[i+1].string_value = "false";
EXPERT::AddInputName(Params[i + 1], Names[i]);
}
ArrayPrint(Params);
ArrayPrint(Names);
//Params[Size].string_value = "7";
EXPERT::Run(ChartOpen(_Symbol, _Period), Params);
return;
}
Print("In2 = ", In2);
}
A função GetAmountExperts é executada por um motivo desconhecido, por um período muito longo, sem nenhum resultado. Alterei um pouco o código - por favor, execute-o novamente. Você não deve atribuir o valor 7 ao parâmetro In2 (você verá que há 0, não 2).
Se houver algum problema, forneça arquivos mq5 prontos para reprodução.
Essa situação parece não ter sido considerada. Quando o parâmetro é um grupo, não há um valor específico e o valor obtido será nulo, portanto, nenhum parâmetro após o grupo será obtido.
O código a seguir mostra que tudo é tratado corretamente.
Resultado.
O Expert Advisor foi iniciado por meio do Expert.mqh.
A função GetAmountExperts é executada por um motivo desconhecido, por um período muito longo, sem nenhum resultado. Alterei um pouco o código - por favor, execute-o novamente. Você não deve atribuir o valor 7 ao parâmetro In2 (você verá que há 0, não 2).
Alterei um pouco o código - por favor, execute-o novamente.
Este é um relatório de bug exemplar: executei o código conciso, que imediatamente mostrou o bug.
Fiz a correção, obrigado.
Este é um relatório de bug exemplar: executou um código conciso que imediatamente mostrou um bug.
Fiz a correção, obrigado.
Se o script for carregado, parece que os parâmetros de entrada não podem ser alterados.
Se o script for carregado, parece que os parâmetros de entrada não podem ser alterados.
A arquitetura do MT5 é tal que você não pode definir valores de parâmetros de entrada para scripts e não pode lê-los.
A biblioteca tem um nome eloquente.
A arquitetura do MT5 é tal que não é possível definir valores de parâmetros de entrada para scripts e não é possível lê-los.
A biblioteca tem um nome eloquente.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: Expert
fxsaber, 2018.11.16 09:19 AM.
Um exemplo de outro aplicativo da biblioteca