Ошибки, баги, вопросы - страница 2300
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Прошу помочь знающих людей разобраться в вопросе указателей на экземпляры классов. А то я не въезжаю.
Имеем такой пример скрипта:
При выполнении имеем, как и предпологалось:
если экземпляр класса объявляем так:
тогда при выполнении имеем:
т.е. деструктор даже не запускается, память соответственно не освобождается.
Если же экземпляр класса объявляем так:
то конструктор запускается два раза, деструктор 1 раз, но при этом память не освобождается и имеем тип указателя объекта POINTER_AUTOMATIC , хотя предпологалось POINTER_DYNAMIC
Как добиться всегда выполнения деструктора и правильного выполнения delete
Ну и каша в голове.
Спасибо, земляк, дай бог тебе плюсов в карму)
Имел в виду, что нужно воспользоваться поиском:
В этом руководстве, кажется, есть то, что нужно. Буду копать в этом направлении. Спасибо!
Из работающего советника, поясните плз, в чём дело?
Вывод данных и привязка их к графику (по "опорной" ценовой координате Low) выполнены следующим образом:
1) определены нужные переменные
extern string font_name = "Arial"; extern int font_size = 8; extern color HighColor=Orange, LowColor=PaleGreen;
int kBtT,DtT; //количество Баров, Длина текущего тренда и bool tvT,tnT; //Тренд текущий восходящий/нисходящий
2) определена функция
void ORT(int n, double Y1, string l, color c) {
string Obj = TimeToStr(Time[n], TIME_DATE|TIME_MINUTES);
ObjectCreate (Obj, OBJ_TEXT, 0, Time[n], Y1);
ObjectSetText(Obj, l, font_size, font_name);
ObjectSet (Obj, OBJPROP_COLOR, c); }
3) после команды
if(tvT) ORT(kBtT,Low[kBtT],DtT,LowColor); else ORT(kBtT,High[kBtT]+6*_Point,DtT,HighColor);
на графике любой валютной пары с установленным индикатором Зигзаг ВБЛИЗИ его вершин и низин выводятся соответствующие им значения.
Однако в последующем числа в НИЗИНАХ Зигзага остаются без изменений, а в ВЕРШИНАХ Зигзага при изменениях РАЗМЕРА окна - почему-то начинают смещаться вверх или вниз на несколько пикселей.
В чём причина и что можно предпринять, чтобы устранить эту "неполадку"?
Из работающего советника, поясните плз, в чём дело?
Вывод данных и привязка их к графику (по "опорной" ценовой координате Low) выполнены следующим образом:
1) определены нужные переменные
extern string font_name = "Arial"; extern int font_size = 8; extern color HighColor=Orange, LowColor=PaleGreen;
int kBtT,DtT; //количество Баров, Длина текущего тренда и bool tvT,tnT; //Тренд текущий восходящий/нисходящий
2) определена функция
void ORT(int n, double Y1, string l, color c) {
string Obj = TimeToStr(Time[n], TIME_DATE|TIME_MINUTES);
ObjectCreate (Obj, OBJ_TEXT, 0, Time[n], Y1);
ObjectSetText(Obj, l, font_size, font_name);
ObjectSet (Obj, OBJPROP_COLOR, c); }
3) после команды
if(tvT) ORT(kBtT,Low[kBtT],DtT,LowColor); else ORT(kBtT,High[kBtT]+6*_Point,DtT,HighColor);
на графике любой валютной пары с установленным индикатором Зигзаг ВБЛИЗИ его вершин и низин были выводятся соответствующие им значения.
Однако в последующем числа в НИЗИНАХ Зигзага остаются без изменений, а в ВЕРШИНАХ Зигзага при изменениях РАЗМЕРА окна - почему-то начинают смещаться вверх или вниз на несколько пикселей.
В чём причина и что можно предпринять, чтобы устранить эту "неполадку"?
Для текстового объекта, располагающегося на High[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_LOWER (точка привязки снизу по центру).
Для текстового объекта, располагающегося на Low[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_UPPER (точка привязки сверху по центру).
Либо ANCHOR_CENTER для обоих расположений - точка привязки по центру.
Попробуйте.
Для текстового объекта, располагающегося на High[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_LOWER (точка привязки снизу по центру).
Для текстового объекта, располагающегося на Low[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_UPPER (точка привязки сверху по центру).
Либо ANCHOR_CENTER для обоих расположений - точка привязки по центру.
Попробуйте.
Спасибо. Начну с утра пораньше (чтобы сейчас не огорчаться или не слишком шумно радоваться). Спокойной ночи!
Для текстового объекта, располагающегося на High[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_LOWER (точка привязки снизу по центру).
Для текстового объекта, располагающегося на Low[], точка привязки (свойство OBJPROP_ANCHOR) должно иметь значение ANCHOR_UPPER (точка привязки сверху по центру).
Либо ANCHOR_CENTER для обоих расположений - точка привязки по центру.
Попробуйте.
Но это получается, что надо создавать ДВА объекта с именами, например, Hi и Lo (верхний и нижний экстремумы зигзага или верхний и нижний концы фактического восходящего или нисходящего локального тренда), и оба привязывать к графику с соответствующими значениями ANCHOR_LOWER и ANCHOR_UPPER. Не проще ли выполнить (как-нибудь) привязку Верха Зигзага - к ранее "привязанному" Низу? Примерно это я и сделал, добавив в прежнюю функцию строку
ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); и введя "поправки смещения" в строку вывода if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr); else ORT(kBtT,High[kBtT]+2*_Point,DtT,HighClr); //
Пока вроде работает. Спасибо!
Но это получается, что надо создавать ДВА объекта с именами, например, Hi и Lo (верхний и нижний экстремумы зигзага или верхний и нижний концы фактического восходящего или нисходящего локального тренда), и оба привязывать к графику с соответствующими значениями ANCHOR_LOWER и ANCHOR_UPPER. Не проще ли выполнить (как-нибудь) привязку Верха Зигзага - к ранее "привязанному" Низу? Примерно это я и сделал, добавив в прежнюю функцию строку
ObjectSetInteger(0,Obj,OBJPROP_ANCHOR,ANCHOR_CENTER); и введя "поправки смещения" в строку вывода if(tvT) ORT(kBtT,Low[kBtT]-2*_Point,DtT,LowClr); else ORT(kBtT,High[kBtT]+2*_Point,DtT,HighClr); //
Пока вроде работает. Спасибо!
Зачем? Привязку же можно менять в любое время. Или я чего не понял? Вы же цвет меняете. Так же и привязку меняйте.
После закрытия окна дебаг-визуализатора, перекомпиляции и запуска в Тестере одиночного прогона без визуализации получил такое
20 секунд ничего не мог сделать. Кнопка Старт была серой все этой время.
Записи Агента
Из логов следует, что Тестер попытался подключиться к Агенту в 01:52, а сам Агент (Server) остановился только в 01:54. Отсюда невозможность подключения и зависание. Давний баг, но сейчас хоть стала понятна причина.
Результаты профилировщика на исторических данных
Штатная OrderSend треть времени занимает. За счет чего такие неприятные показатели?