Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Увеличивай свой рейтинг. Выполняй заказы в сервисе Фриланс!
Sergey Pekshev
591
Sergey Pekshev 2015.12.31 07:40 

Коллеги, кто нибудь знает как в индикаторе определить тестер работает или находится в режиме паузы?

Как программно ставить/снимать с паузы, нашел решение, а как узнать работает/на паузе сейчас тестер?

Dmitry Fedoseev
41268
Dmitry Fedoseev 2015.12.31 09:06  

Типа дзен такой?

Если тестер на паузе, то в индикаторе не запускается функция, поэтому нет смысла что-то определять. А если запускается функция, то тестер точно не на паузе.

Sergey Pekshev
591
Sergey Pekshev 2015.12.31 14:13  
Dmitry Fedoseev:

Типа дзен такой?

Если тестер на паузе, то в индикаторе не запускается функция, поэтому нет смысла что-то определять. А если запускается функция, то тестер точно не на паузе.

да, дзен)

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

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

но мне нужно совершать определенные действия в соседнем окне, в зависимости от того в каком состоянии визуальный тестер

программно включать/выключать тестер я могу  

#import "user32.dll"

int GetAncestor(int, int);
int SendMessageW(int hWnd, int Msg, int wParam, int lParam);

#import

      int hwnd;

      hwnd = GetAncestor(WindowHandle(Symbol(), Period()), 2);

      SendMessageW(hwnd, 0x0111, 0x57a, 0);

 или так

#import "user32.dll"

void keybd_event(int bVk, int bScan, int dwFlags, int dwExtraInfo);

#import

         keybd_event(19, 0, 0, 0);

         keybd_event(19, 0, 2, 0);

 

т.е. могу включать и выключать паузу, а вот узнать текущее состояние не знаю как

pako
3343
pako 2015.12.31 15:11  
ps-n: 

т.е. могу включать и выключать паузу, а вот узнать текущее состояние не знаю как

Включили , поставили пауза true

Выключили, поставили пауза false 

keybd_event(19, 0, 0, 0);
Pause=true;
 keybd_event(19, 0, 2, 0);
Pause=false;
if(Pause)
{
 тут Ваш код;
}
else тут Ваш код;
Sergey Pekshev
591
Sergey Pekshev 2015.12.31 15:20  
pako:

Включили , поставили пауза true

Выключили, поставили пауза false 

keybd_event(19, 0, 0, 0); // Нажатие клавиши
keybd_event(19, 0, 2, 0); // Отжатие клавиши

 Но идея понятна, но не подходит, паузу можно включить и кнопкой в панеле управления тестером, тогда все собьется

Еще бы программно управлять скоростью тестирования... было бы вообще круто 

pako
3343
pako 2016.01.01 15:31  
ps-n:

 Но идея понятна, но не подходит, паузу можно включить и кнопкой в панеле управления тестером, тогда все собьется

Еще бы программно управлять скоростью тестирования... было бы вообще круто 

Кнопку можете опросить ? Нажата отжата
Sergey Pekshev
591
Sergey Pekshev 2016.01.01 16:47  
pako:
Кнопку можете опросить ? Нажата отжата

в Win API не силен

а еще на паузу ставить/снимать можно кнопкой "Pause" на клавиатуре, в обработчик событий OnChartEvent() не приходит событие при нажатии этой кнопки

да и тестирование собираюсь проводить при закрытом окне тестера стратегий и свернутом графике валютной пары (visual), хотя можно окно тестера не закрывать, а сворачивать двойным кликом по синей полосе слева, где написано тестер

pako:

Включили , поставили пауза true

Выключили, поставили пауза false 

если бы писалось для себя, то такой вариант бы устроил, но пишется для массового использования, хотелось бы что бы все четко работало

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий