Очень сложная задача. Решение вознаграждается полным рабочим кодом. - страница 3

 
HIDDEN писал(а) >>

Подобный инструмент уже есть в наличии, но у каждого инструмента есть и свои задачи, а так же и свои ограничения.

А вы бы могли указать точнее этот инструмент . Интересно сравнить со своим лисапедом .

 
ivandurak >>:

А вы бы могли указать точнее этот инструмент . Интересно сравнить со своим лисапедом .

Этот инструмент находится в личной коллекции, как и сама идея. Разглажению, распространению, и т.д. и т.п. не подлежит.

Могу сказать только что это примерно 1/3 основной картинки. Есть еще система анализа, которая делится на математическую и графическую части.

 
HIDDEN писал(а) >>

Этот инструмент находится в личной коллекции, как и сама идея. Разглажению, распространению, и т.д. и т.п. не подлежит.

Могу сказать только что это примерно 1/3 основной картинки. Есть еще система анализа, которая делится на математическую и графическую части.

Понятно . Один вопрос .

В этом направлении копать стоит ?

 
ivandurak >>:

Понятно . Один вопрос .

В этом направлении копать стоит ?

Да. Причём чем глубже, тем лучьше.

 
HIDDEN писал(а) >>

Да. Причём чем глубже, тем лучьше.

Огромное человеческое

 
YuraZ писал(а) >>

Видимо так

но увы в поле даты ничего не пишется

можно передать через хук ( изнутри MT4 да можно передать )

снаружи только через хук

с точки зрения вызова из эксперта это скорее всего только через хук

клик

т к TimeArray чужое для MT4 пространство

то работать этот метод не будет

TimeArray должен быть слева! Там был пример вытаскивания информации из TimeArray, а нам надо наоборот - заполнить TimeArray. Примерно так

   TimeArray[0]=nYear+nMonth<<16;
   TimeArray[1]=nDay<<16;
   TimeArray[2]=0;
   TimeArray[3]=0;
Никаких хуков
 
HIDDEN >>:

Занялся я разработкой автоматического запуска тестера стратегий из любого эксперта. Удалось реализовать все, кроме ввода дат начального периода тестирования и конечного.

Если кто-то хорошо разбирается в программировании и использовании функций WinAPI прошу помощи в реализации кода для вставки нужной даты в конкретное окно.

Вот рабочий пример (предполагается, что ввод даты разрешен):


extern datetime dtDateBegin   = D'2008.12.01';
extern datetime dtDateEnd     = D'2009.01.01';

#import "user32.dll"
   int SendMessageA(int hWnd, int Msg, int wParam, int lParam[]);
   int GetAncestor(int hWnd, int gaFlags);
   int GetDlgItem(int hDlg, int nIDDlgItem);
   int FindWindowExA(int hWndParent, int hWndChildAfter, string lpszClass, string lpszWindow);
#import

#define DTM_SETSYSTEMTIME      0x1002

void start()
{
   int hTerminalWnd, hTesterWnd, hDateTimeBegin, rglSysTime[4];
   
// определяем системный дескриптор окна тестера
   
   hTerminalWnd = GetAncestor(WindowHandle(Symbol(), Period()) ,2);
   hTesterWnd = GetDlgItem(hTerminalWnd, 0xE81E);
   hTesterWnd = GetDlgItem(hTesterWnd, 0x53);
   hTesterWnd = GetDlgItem(hTesterWnd, 0x81BF);

// устанавливаем дату начала  оптимизации\тестирования

   hDateTimeBegin = FindWindowExA(hTesterWnd, GetDlgItem(hTesterWnd, 0x3FF), "SysDateTimePick32", "");
   ArrayInitialize(rglSysTime, 0);
   
   rglSysTime[0] = (TimeMonth(dtDateBegin) << 16) | TimeYear(dtDateBegin);
   rglSysTime[1] = (TimeDay(dtDateBegin)   << 16) | TimeDayOfWeek(dtDateBegin);
   
   SendMessageA(hDateTimeBegin, DTM_SETSYSTEMTIME, 0, rglSysTime);
}

Конечная дата оптимизации\тестирования устанавливается аналогично.

 
Ilnur >>:

Вот рабочий пример (предполагается, что ввод даты разрешен):



Конечная дата оптимизации\тестирования устанавливается аналогично.


Ильнур, спасибо за пример, но одно породжает другое.

Объясни по коду, пару моментов.


1. Как быть в таком случае если инпортируемые функции из DLL у меня были

#import "user32.dll"
   int      SendMessageA(int hWnd,int Msg,int wParam,string lParam);
#import

в твоём примере функцию SendMessageA импортируется немного подругому.

#import "user32.dll"
   int      SendMessageA(int hWnd, int Msg, int wParam, int lParam[]);
#import

Как же теперь их совместить?

2-й момент пока писал понял и проверил сам.

 

Ilnur, YuraZ, Stringo, огромное спасибо за помощь в решении всех вопросов с WinAPI.

Ilnur, YuraZ, Вам как и обещал вышлю полный код запуска тестера или оптимизатора, только код немножко подшлефую...


Тему можно закрывать.


Автоматический запуск тестера или оптимизатора стратегий теперь возможен.


Варианты применения:

1. Оптимизация любого эксперта по заданным параметрам на любом заданном интервале, валютной паре и методе оптимизации.

2. Проведение бэк тестов полученных параметров.

3. Выборка оптимальных стабильных параметров и их подстановка в работающий эксперт.



Как говорится счастью нет придела.....


four2one 08.05.2009 11:05 Когда коту делать нечего он ...( далее всем известно), а когда якобы "великому программисту" "желта вода в голову ударяет", он "изобретает" всякую фигню.


Иногда "желта вода" которая бъёт в голову, движет человечество к огромному прогрессу.

 
stringo >>:

TimeArray должен быть слева! Там был пример вытаскивания информации из TimeArray, а нам надо наоборот - заполнить TimeArray. Примерно так

Никаких хуков

Спасибо!


HIDDEN 12.05.2009 00:56 Ilnur, YuraZ, Вам как и обещал вышлю полный код запуска тестера или оптимизатора, только код немножко подшлефую...

спасибо! я вставлю его обязательно в ТС которые как раз в этом нуждаются

--

класно было бы если бы в МТ5 был интерфесй работы с тестером -с оптимизацией с перебором указанных параметров

и возможность быстрого доступа к таблице результатов а не через файлы и парсинг

Причина обращения: