Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день, Евгений.
Нужно в OnDeinit прописать функцию принудительного удаления панели с графика. Дело в том, что не при смене графика МТ4 инициирует закрытие программы и вызов функции OnDeinit. После первой деинициализации в классе CAppDialog в частную переменную m_deinit_reason прописывается причина деинициализации. Но при смене таймфрейма МТ4 не удаляет класс из памяти. И при последующих попытках удалить паенель, класс считывает значение переменной и так как оно не пустое, ничего не делает
Но более простой и, наверно, более правильный вариант будет объявлять класс панели через ссылку на класс с использованием "*". В таком варианте нужно внести небольшие изменения в код
Такой вариант принудительно удалит класс торговой панели при деинициализации, а затем повторно его создаст.
С уважением,
Дмитрий.
Дмитрий, спасибо огромное, второй вариант сработал.))))
Здравствуйте Дмитрий!
А не подскажете. Как сделать что бы советник работал в тестере?
Заранее благодарю!
Да. Програмка замечательная. Но тоже хотелось бы, чтобы адаптировали к тестеру.
В тестере стратегий не работает OnChartEvent(), но программисты приспосабливают события к OnTick().
Я делал вроде этого...
Вместо:
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {
if(id==CHARTEVENT_OBJECT_CLICK && sparam==buyBtn && ObjectGetInteger(0,buyBtn,OBJPROP_STATE)==true){...
Такое:
void OnTick() {
if (MQLInfoInteger(MQL_TESTER) && ObjectGetInteger(0,buyBtn,OBJPROP_STATE)==true)
Отловить нажатие кнопки в тестере.
Да, в тестовом режиме MT4 и MT5 не генерируют события для запуска функции OnChartEvent. Но если вы хотите использовать несколько psels в тестовом режиме MT4, вы должны создать функцию для проверки состояния кнопок на каждом тике. Но этот метод не работает в MT5.
А можете подсказать, как это сделать?
На демо и реале все работает. Но мне хотелось бы применить эту панель в тестере стратегий
Да. Програмка замечательная. Но тоже хотелось бы, чтобы адаптировали к тестеру.
В тестере стратегий не работает OnChartEvent(), но программисты приспосабливают события к OnTick().
Я делал вроде этого...
Вместо:
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {
if(id==CHARTEVENT_OBJECT_CLICK && sparam==buyBtn && ObjectGetInteger(0,buyBtn,OBJPROP_STATE)==true){...
Такое:
void OnTick() {
if (MQLInfoInteger(MQL_TESTER) && ObjectGetInteger(0,buyBtn,OBJPROP_STATE)==true)
Отловить нажатие кнопки в тестере.
Как это сделать в MQL4?
Таким образом можно отследить только нажатие кнопок. Но не получиться отслеживать изменение редактируемых полей.
Добрый день!
Как можно ограничить перемещение панели за границы графика?
Например, если панель размещена у правого края графика, то при включении панели навигатора, панель "выезжает" за видимую область. Пример на скриншотах:
Добрый день!
Как можно ограничить перемещение панели за границы графика?
Например, если панель размещена у правого края графика, то при включении панели навигатора, панель "выезжает" за видимую область. Пример на скриншотах:
В блоке перемещения панели, контроль реализован. Вы не сможете переместить панель за график. Проблема в том, что контроль работает только при перемещении. В Вашем примере, панель оказывается за графиком при изменении размера графика. Поэтому, нужно добавить отработку события изменения размеров графика.