Bibliotecas: MultiTester - página 27

 
fxsaber:

A biblioteca MTTester há muito tempo permite que você faça absolutamente tudo o que um usuário pode fazer por meio da GUI.

Estou dominando o MTTester.

Somente conexão

#include <fxsaber\MultiTester\MTTester.mqh>

Não consigo entender como esperar o fim do teste? Executo essas linhas

MTTESTER::Run( NULL,SimvolTorg[i]);
Sleep(10000);
MTTESTER::IsReady();

Como resultado, a espera pelo fim do teste não acontece. Preciso resolver esse problema sozinho? Ou já existe uma solução pronta?

 
pivomoe:

Como resultado, a espera pelo fim do teste não acontece. Preciso resolver esse problema sozinho? Ou já existe uma solução pronta?

Houve exemplos acima. Eu mesmo uso apenas quatro funções:

MTTESTER::IsReady - Тестер готов к запуску.
MTTESTER::ClickStart - Нажать на кнопку Старт/Стоп.
MTTESTER::GetSettings - получить полные текушие настройки тестера.
MTTESTER::SetSettings2 - задать любые настройки тестера.
 
while(1)
        {
         Sleep(1000);
         if( MTTESTER::IsReady() ) break;
        }
Obrigado a você. Isso ajudou.
 
pivomoe:
Obrigado a você. Isso ajudou.

E mais quatro para uso mais avançado.

MTTESTER::GetPassesDone - количество выполненных прогонов идущей оптимизации.
MTTESTER::GetLastOptCache - последний opt-файл.
MTTESTER::GetLastTstCache - последний tst-файл.
MTTESTER::CloseNotChart - закрывает график оптимизации.


Não uso mais nada.

 
Você pode me dizer se existe a possibilidade de adicionar uma função - no caso de otimização desativada ao testar um EA já otimizado na forma de cliques automáticos nas guias do testador "gráfico" e "backtest" com pausas de 15 segundos entre a mudança do par testado e o período de tempo? Se, em um Expert Advisor otimizado, for necessário testar muitos pares em muitos períodos de tempo, não será possível usar um multiteste, pois é necessário certificar-se, em cada instrumento, da correção dos indicadores inseridos a partir da otimização. Ou posso inserir uma pausa em algum lugar para ter tempo de revisar os resultados do teste anterior. Obrigado
 
Il'ya Matviyenko:
Você pode me dizer se existe a possibilidade de adicionar uma função - no caso de otimização desativada ao testar um EA já otimizado na forma de cliques automáticos nas guias do testador "gráfico" e "backtest" com pausas de 15 segundos entre a mudança do par testado e o período de tempo? Se, em um Expert Advisor otimizado, for necessário testar muitos pares em muitos períodos de tempo, não será possível usar um multiteste, pois é necessário certificar-se, em cada instrumento, da correção dos indicadores inseridos a partir da otimização. Ou algum lugar para inserir uma pausa para ter tempo de ver os resultados do teste anterior. Obrigado

Nem sequer tentei alternar entre as guias, pois é muito complicado para mim. Talvez alguém possa fazer isso e compartilhar aqui. Não tive sorte até agora.

 
fxsaber:

Nem sequer tentei alternar entre as guias, pois é muito complicado para mim. Talvez alguém possa fazer isso e compartilhar aqui. Até agora, não tive sorte.

Havia (talvez ainda haja) esse código

user32::SendMessageW(user32::GetDlgItem(Handle, 0x2712), WM_LBUTTONDOWN, 1, 0x17007C); // Selecionar a guia "Settings" (Configurações)

As outras guias devem ser semelhantes. Ou estou errado?

 
traveller00:

Esse código existia (talvez ainda exista)

É isso mesmo! Eu esqueci.

 

Tudo acabou sendo muito mais simples. No MultiTester.mqh, basta adicionar:

.....................

void OnTimer()
{
static const int Size = TesterSettings.GetSize();
static bool IsRun = false;
static int Pos = 0;
static datetime StartTime = 0;
static bool Init = false;
static int Attempts = 0;
static int Errors = 0;
if(MessageBox("Continue?",MB_OK)==IDOK) {
if (!Size || IsStopped())
{
EventKillTimer();
ExpertRemove();

}

................

e você pode admirar os resultados do teste intermediário o quanto quiser

 
Il'ya Matviyenko:

Tudo acabou sendo muito mais simples. No MultiTester.mqh, basta adicionar:

e você pode admirar os resultados intermediários do teste o quanto quiser

Esse é o motivo pelo qual tudo é de código aberto.