Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 599

 
Anatolii Zainchkovskii:

Ajuda, um erro está a aparecer na corda

StringTrimLeft( StringSubstr(ResultSymbols,1,StringLen(StringSubstr(ResultSymbols,0,1))- 1))

ResultSymbols' - identificador não declarado 296 46

variável desconhecida


 
Olá!

Pode dizer-me como iniciar um testador num outro terminal usando um guião de um terminal?

Há cerca de dois anos era possível fazê-lo desta forma:

// ShellExecuteA (работает с параметрами в ANSI),а ShellExecuteW (работает с параметрами в unicode)

#import  "shell32.dll"
    int ShellExecuteW
       ( int    hwnd,                  // Хендл родительского окна. Это окно получает любые окна сообщений, которые генерирует приложение.
         string Operation,             // Указатель на строку, определяющую операцию для выполнения.
         string File,                  // Указатель на строку, определяющую имя файла для открытия или печати, или имя папки для открытия.
         string Parameters,            // Указатель на строку параметров исполнимого файла.
         string Directory,             // Указатель на строку, определяющую директорию по умолчанию.
         int    ShowCmd );             // Определяет как файл будет показываться когда откроется. 3-Активирует окно и отображает его в развернутом виде.
#import

int      Start = 0;                                                          // Значение, возвращаемое функцией ShellExecuteW
string   PuthTester  = "D:\\Alpari_Terminal_Tester";                         // Путь к Тестеру
string   PuthIniTester = "D:\\Alpari_Terminal_Tester\\tester\\optimise.ini"; // Путь к Файлу *.ini в Тестере

int start()
   {
    Start = ShellExecuteW(0, "Open", "terminal.exe", PuthIniTester, PuthTester, 3);
    if(Start==2) Alert("Указаный файл не найден");
    return(0);
   }

E agora?

 
Leo59:
Olá!

Pode dizer-me como iniciar um testador num outro terminal usando um guião de um terminal?

Há cerca de dois anos era possível fazê-lo desta forma:


E agora?

É um leitor de mentes :) ? Estou apenas a preparar um artigo sobre a realização de testes em vários modos ao mesmo tempo. Espero que esteja a perguntar sobre o MetaTrader 5 e que tenha um sistema operativo Windows 10 64 bit?
 
Karputov Vladimir:
É um leitor de mentes :) ? Estou apenas a preparar um artigo sobre a realização de testes em vários modos ao mesmo tempo. Espero que esteja a perguntar sobre o MetaTrader 5 e que tenha um sistema operativo Windows 10 64 bit?
Vladimir, infelizmente é MetaTrader 4
 

Anteriormente, tanto quanto me lembro, o ficheiro optimise.ini era automaticamente criado ao iniciar o testador em MetaTrader4. Agora este ficheiro não é criado.

Pode por favor dizer-me como iniciar o testador noutro terminal usando um guião de um terminal?

Há cerca de dois anos atrás eu podia fazê-lo desta forma:

// ShellExecuteA (работает с параметрами в ANSI),а ShellExecuteW (работает с параметрами в unicode)

#import  "shell32.dll"
    int ShellExecuteW
       ( int    hwnd,                  // Хендл родительского окна. Это окно получает любые окна сообщений, которые генерирует приложение.
         string Operation,             // Указатель на строку, определяющую операцию для выполнения.
         string File,                  // Указатель на строку, определяющую имя файла для открытия или печати, или имя папки для открытия.
         string Parameters,            // Указатель на строку параметров исполнимого файла.
         string Directory,             // Указатель на строку, определяющую директорию по умолчанию.
         int    ShowCmd );             // Определяет как файл будет показываться когда откроется. 3-Активирует окно и отображает его в развернутом виде.
#import

int      Start = 0;                                                          // Значение, возвращаемое функцией ShellExecuteW
string   PuthTester  = "D:\\Alpari_Terminal_Tester";                         // Путь к Тестеру
string   PuthIniTester = "D:\\Alpari_Terminal_Tester\\tester\\optimise.ini"; // Путь к Файлу *.ini в Тестере
string   PuthIniTerminal = "D:\\Alpari_Terminal\\MQL4\\Files\\optimise.ini"; // Путь к Файлу *.ini в Терминале

int start()
   {
    Start = ShellExecuteW(0, "Open", "terminal.exe", PuthIniTester, PuthTester, 3);
    if(Start==2) Alert("Указаный файл не найден");
    return(0);
   }

Que tal agora?
 

cria agora um ficheiro com o nome do perito a ser testado

lastparameters.ini

 
Vladislav Andruschenko:

é agora criado um ficheiro com o nome do perito a ser testado

Para que é que escreve as respostas? Para lhes dar uma carraça?


Anteriormente, o ficheiro optimise.ini continha

;optimizar o testador de estratégias
TestExpert=AB_e_MACD_v36_Test_P
TestSymbol=EURUSD
TestPeriod=1
TestModel=2
TestDateEnable=verdadeiro
TestFromDate=2014.05.29
TestToDate=2014.05.30
TestShutdownTerminal=verdadeiro

E onde está isto agora no ficheiro com o nome da EA testada? Em que bloco?

Em <comum>, <inputs> ou em <limites> ?

 

lastparameters.ini - ficheiro de dados da última operação de teste.

pode iniciar o teste a partir de outro terminal sem qualquer problema, criar um ficheiro ini para iniciar o terminal com parâmetros predefinidos, incluindo nome EA, data e assim por diante.

https://www.metatrader4.com/ru/trading-platform/help/service/start_conf_file

 
Vladislav Andruschenko:

lastparameters.ini - ficheiro de dados da última operação de teste.

pode iniciar o teste a partir de outro terminal sem qualquer problema, criar um ficheiro ini para iniciar o terminal com parâmetros predefinidos, incluindo nome EA, data e assim por diante.

https://www.metatrader4.com/ru/trading-platform/help/service/start_conf_file

Obrigado, Vladislav. Estarei atento a isso.
 
Leo59:
Obrigado, Vladislav. Vou estudá-lo.

Utilizei o mesmo princípio para fazer um programa Exp - Super Testador - que está disponível gratuitamente na Internet.

Existe o mesmo princípio - o programa cria um ficheiro de inicialização, depois inicia o terminal com este ficheiro, respectivamente realiza um teste, faz um relatório e desliga - inicia o próximo teste e assim por diante.

Mas isso foi há muito tempo, então lembro-me que alguns parâmetros foram alterados e eu estava a redesenhar o meu programa.

No seu caso, o princípio é o mesmo, só você começa o testador a partir de outro terminal.