Se você souber os nomes dos inputs, a segunda opção é melhor. Ela permite que você não precise se preocupar com a ordem dos inputs no Expert Advisor. E é tecnicamente melhor implementada.
#include <fxsaber\Expert.mqh>
voidOnStart()
{
MqlParam Params[2];
// Caminho para ser um conselheiro
Params[0].string_value = "Experts\\Test6.ex5";
Params[0].string_value += "\nexpertmode=5";
Params[1].type = TYPE_INT;
Params[1].integer_value = 123423;
EXPERT::AddInputName(Params[1], "inpFirst");
EXPERT::Run(0, Params);
}
Apesar de o inpFirst ser o segundo na ordem, ele pode ser definido como qualquer coisa (nesse caso, ele é definido como o primeiro e único). Aqueles que não forem definidos serão padrão.
// Torna a variável de entrada do arquivo igual ao arquivo selecionado.bool FileDialogToInput( conststring InputName, constlong Chart = 0 )
{
string FileNames[];
constbool Res = (FileSelectDialog(MQLInfoString(MQL_PROGRAM_NAME) + " " + _Symbol + " " + EnumToString(_Period) +
": input string " + InputName + " = ",
NULL, NULL, FSD_FILE_MUST_EXIST, FileNames, NULL) > 0);
if (Res)
{
MqlParam Params[];
string Names[];
constint ExpertMode = EXPERT::Parameters(Chart, Params, Names);
constint Size = ArraySize(Params);
if (Size)
{
Params[0].string_value += "\nexpertmode=" + (string)ExpertMode;
for (int i = 1; i < Size; i++)
{
if (Names[i - 1] == InputName)
Params[i].string_value = FileNames[0];
EXPERT::AddInputName(Params[i], (Names[i - 1] == NULL) ? " " : Names[i - 1]);
}
EXPERT::Run(Chart, Params);
}
}
return(Res);
}
Essa função permite que você selecione um arquivo como variável de entrada. Essa implementação.
inputstring inFileName = NULL; // Arquivo selecionado#define TOSTRING(A) #A
intOnInit()
{
if (!FileIsExist(inFileName))
return(FileDialogToInput(TOSTRING(inFileName)) || INIT_FAILED);// Código se um arquivo válido for especificado na variável de entrada.return(INIT_SUCCEEDED);
}
Inicialização.
Clique em OK e selecione.
Clique em Abrir e veja as propriedades (F7) do EA em execução.
O mesmo funcionará com qualquer número de arquivos.
inputstring inFileName1 = NULL; // Arquivo selecionado1inputstring inFileName2 = NULL; // Arquivo selecionado2#define TOSTRING(A) #A
intOnInit()
{
if (!FileIsExist(inFileName1))
return(FileDialogToInput(TOSTRING(inFileName1)) || INIT_FAILED);
if (!FileIsExist(inFileName2))
return(FileDialogToInput(TOSTRING(inFileName2)) || INIT_FAILED);
// Código se um arquivo válido for especificado na variável de entrada.return(INIT_SUCCEEDED);
}
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
Apesar de o inpFirst ser o segundo na ordem, ele pode ser definido como qualquer coisa (nesse caso, ele é definido como o primeiro e único). Aqueles que não forem definidos serão padrão.
Eu a utilizei assim.
Surge a tarefa de reiniciar uma dúzia de Expert Advisors diferentes em mais de um Terminal. Em geral, é uma grande rotina.
Por exemplo, corrigimos algo. Em seguida, compilação em lote no ME e reinício. Eu uso esse script para isso.
Marquei um local importante no código. Sem ele, a aplicação do modelo não ocorrerá até o final do script. Por analogia, você pode resolver o lançamento de Expert Advisors após recarregar o Terminal, etc.
Surge a tarefa de reiniciar uma dúzia de Expert Advisors diferentes em mais de um Terminal. Em geral, é uma grande tarefa.
Por exemplo, corrigimos algo. Em seguida, compilação em lote no ME e reinicialização. Eu uso este script para isso.
Destaquei um local importante no código. Sem ele, o modelo não será usado até o final do script. Por analogia, você pode resolver o lançamento de Expert Advisors após recarregar o Terminal, etc.
Será um conjunto completo se você conseguir obter o nome do EA no gráfico especificado. Se isso não for difícil para você, conclua-o.
Ele estará completo se você conseguir colocar o nome do conselheiro na tabela especificada. Se não se importar, por favor, preencha-o.
Este é o MT5. Se você precisar de plataforma cruzada ou caminho completo para o Expert Advisor, use Expert.mqh.
Este é o MT5. Se você precisar de uma plataforma cruzada ou de um caminho completo para o Expert Advisor, use o Expert.mqh.
Você precisa de plataforma cruzada...
Precisa de um cros-platformer...
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação.
Bibliotecas: Expert
fxsaber, 2019.09.12 06:17 pm.
Essa função permite que você selecione um arquivo como variável de entrada. Essa implementação.
Inicialização.
Clique em OK e selecione.
Clique em Abrir e veja as propriedades (F7) do EA em execução.
O mesmo funcionará com qualquer número de arquivos.
E o carregamento de parâmetros de arquivos de configuração ainda não é suportado, pelo que entendi?
Ainda não. Mas é muito simples.