Индикатор в основном окне.
Точка остановы у меня находится на первой строке в функции OnCalculate.
Последовательность действий такая:
Нажимаю кнопка отладка.
В МТ4 открывается новый график и на него система набрасывает индикатор.
Автоматически открывается окно МетаEditor со стрелочкой на строке кода. те Сработала остановка в режиме отладки.
В этот момент окно МТ4 подвисает. Посмотреть график нельзя.
Могу видео загрузить сюда.
Может это особенности ХР 32 bit?
Автоматически открывается окно МетаEditor со стрелочкой на строке кода. те Сработала остановка в режиме отладки.
В этот момент окно МТ4 подвисает. Посмотреть график нельзя.
Так и должно быть. Вы остановили выполнение индикатора в точке останова. Т.к. в МТ4 выполнение кода индикатора происходит в интерфейсном потоке терминала, то обработка интерфейса терминала прекращается (окно замораживается).
Это как то можно обойти?
Поэтому и создал тему. Возможно есть у кого то идеи как отлаживать индикатор и при этом видеть график.
Было бы удобно например нажимать на кнопочку, и чтоб график обновлялся в соответствие с массивами.
Уважаемый форумчане.
Предлагаю свой вариант отладки индикатора. (Правда есть кое какие ограничений)
Мне было необходимо посмотреть как последовательно отрисовывается индикатор с левого конца графика до правого. Так как на каждом новом баре происходят различные изменения, хочется знать значения принимают различные переменные.
Предложенную идею можно развить и доработать до полноценной билиотеки.
Данный способ отладки происходит не через встроенную возможность МQL4 Editor, а по старинке через поле Comment.
Индикатор настроен так что бы с каждым тиком делать расчет по всем барам. Ограничение задается глобальной переменной test_For_Cahrt_Event;
Таким образом с каждым тиком у нас индикатор будет расчитываться от 1 го бара до бара test_For_Cahrt_Event
При нажатие на кнопку UP (стрелочка вверх на клавиатуре) индикатор будет заного пересчитываться, только теперь на один бар больше.
Мы в поле Comment можем увидеть значения необходимых нам переменных.
for(int i=1; i<test_For_Cahrt_Event; i++) //вот так должна выглядить строка перебора по барам при расчете индикатора;
{... код расчета индикатора}
int test_For_Cahrt_Event=2; //глобальная переменная которая будет отсчитывать количество баров слева.
void OnChartEvent(const int id, const long &lparam,const double &dparam,const string &sparam) //функция которая отрабатывате событие
{
//
string name = "Arrr"; //имя для стрелочки, которая визуально показывает до какого бара идет расчет
ObjectDelete(name);
if(id==CHARTEVENT_KEYDOWN) //обработка события нажатия кнопки с клавы
{
switch(int(lparam))
{
case 38: { //код 38 это кнопка ВВЕРХ
Comment("Бары "+test_For_Cahrt_Event); // в данном поле необходимо вбить те переменные что нам нужно видеть
test_For_Cahrt_Event++;
ObjectCreate(0,name,OBJ_ARROW_DOWN,0,Time[test_For_Cahrt_Event],High[test_For_Cahrt_Event]+300*Point);
break;
}
}
ChartRedraw();
}
}
class CFix { } ExtFix;
//--->
Задам свой вопрос здесь. А программы mql5 в MetaEditor4 кто-нибудь отлаживать пробовал?
если скопировать его в папку установки МТ5 то работает. но ведь тот поновее будет - 975 против 966 из поставки МТ4-670
если скопировать его в папку установки МТ5 то работает. но ведь тот поновее будет - 975 против 966 из поставки МТ4-670
Интересная тема. Попробую.
Но задача стоит такая, чтобы индикатор на mql5 работал под МТ4! И странное дело, я закомментировал строки, в работе которых сомневаюсь и под МТ5 индикатор не выдает никаких результатов, но этот же самый код под МТ4 дает предварительные результаты, которые должен.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Недавно в редакторе кода появилась замечательная возможность - "Отладка". Она позволяет по шагам пройтись по коду и посмотреть какие значения принимают переменные.
Отладка советников и скриптов проходит на ура.
Отладка индикатора приводила к подвисанию МТ4, а окно с графиком становилось белым, но при этом можно было пройтись по строчкам кода. Сейчас кнопка отладки для индикатора вовсе недоступна.
Вопрос?
Возможно у когото есть идея, как нармально провести отладку в индикаторе, что бы при этом видеть окно графика?