Ув.профи, подскажите... В индикаторе использую помимо линии самого индикатора еще и горизонтальные линии. Требуется что-бы цвет горизонтальных линий задавался тем же параметром, что и установка линии индикатора. Однако попытка изменить ObjectSet (Sname, OBJPROP_COLOR, Silver); на ObjectSet (Sname, OBJPROP_COLOR, indicator_color1); ничего не дает. Что делаю не так? Спасибо...
Ув.профи, подскажите... В индикаторе использую помимо линии самого индикатора еще и горизонтальные линии. Требуется что-бы цвет горизонтальных линий задавался тем же параметром, что и установка линии индикатора. Однако попытка изменить ObjectSet (Sname, OBJPROP_COLOR, Silver); на ObjectSet (Sname, OBJPROP_COLOR, indicator_color1); ничего не дает. Что делаю не так? Спасибо...
Цвет надо выносить во внешние переменные - через extern
Подскажите пожалуйста как найти разницу между ценами close соседних баров в пунктах (пятизнак).
Например Close[n-1]-Close[n]=0.0006 (т. е. 6 пунктов), по идее нужно просто домножить на 10000, но ведь есть пары (например eurjpy) там где тот же расчет будет давать Close[n-1]-Close[n]=0.11 (т. е. 11 пунктов), и нужно домножить всего на 100.
Неужели придется создавать отдельную функцию которая будет проверять число знаков после запятой и возвращать 100, 1000, 10000 в зависимости от результата проверки?
Нет смысла нормализовать double величины для их сравнения, поскольку два значения 1.778946 и 1.778949 после нормализации окажутся равными, а это уже неверно, т.к. первое значение меньше второго.
Нормализовать double надо только для отправки команды Дилеру, но не для "внутреннего потребления" - сравнения двух величин.
Я когда-то считал также, но столкнулся с проблемой сравнения double-величин в функции учёта ордеров, которая две недели не желала работать как ей положено и не видела ордеры по их параметрам. Я написал порядка 15 штук различных версий учётов ордеров, но ни одна из них не работала. И тут я решил нормализовать данные при их сравнении и сравнивать не сравнением, а вычитанием одного из другого и, при равности, считать сравнение == true. Всё заработало. Все 15 черновых версий учёта ордеров. Теперь я всегда делаю такое сравнение и не имею проблем, связанных с непонятным поведением функций, которые должны работать, но не работают... И экономлю время на поиске нелепых ошибок...
Подскажите пожалуйста как найти разницу между ценами close соседних баров в пунктах (пятизнак).
Например Close[n-1]-Close[n]=0.0006 (т. е. 6 пунктов), по идее нужно просто домножить на 10000, но ведь есть пары (например eurjpy) там где тот же расчет будет давать Close[n-1]-Close[n]=0.11 (т. е. 11 пунктов), и нужно домножить всего на 100.
Неужели придется создавать отдельную функцию которая будет проверять число знаков после запятой и возвращать 100, 1000, 10000 в зависимости от результата проверки?
Вместо Symbol() подставляйте имя инструмента, напр. "EURUSD" или "EURJPY" если хотите из советника, работающего на одном инструменте, получить данные по другому инструменту. Либо, оставляйте Symbol()или NULLи советник всегда будет брать данные с того инструмента, на котором работает.
Подскажите пожалуйста как найти разницу между ценами close соседних баров в пунктах (пятизнак).
Например Close[n-1]-Close[n]=0.0006 (т. е. 6 пунктов), по идее нужно просто домножить на 10000, но ведь есть пары (например eurjpy) там где тот же расчет будет давать Close[n-1]-Close[n]=0.11 (т. е. 11 пунктов), и нужно домножить всего на 100.
Неужели придется создавать отдельную функцию которая будет проверять число знаков после запятой и возвращать 100, 1000, 10000 в зависимости от результата проверки?
Может у кого есть уже готовая такая функция?
(Close[n-1]-Close[n])/Point/10; получаете в стандартных пунктах, без /10 в пятизначных пунктах.
А почему не сохраняется журнал событий и эксперта???
Открываю соответствующие папки в папке терминала, а там пусто....
В чем может быть проблема?
Так никто мне непоможет советом??
Так никто мне непоможет советом??
Логи полностью сохраняются после выгрузки терминала.
Всмысле???
У меня вообще ни один файл несохраняется.
как выгрузить терминал, чтоб получить логи???
geha 25.03.2011 13:24
Я новичек. Помогите плиз разобратся, что за ошибка и ак ее исправить? (Otd tisk EURUUSD30 1.41590/1.41610)
Europa 25.03.2011 13:47Ув.профи, подскажите... В индикаторе использую помимо линии самого индикатора еще и горизонтальные линии. Требуется что-бы цвет горизонтальных линий задавался тем же параметром, что и установка линии индикатора. Однако попытка изменить ObjectSet (Sname, OBJPROP_COLOR, Silver); на ObjectSet (Sname, OBJPROP_COLOR, indicator_color1); ничего не дает. Что делаю не так? Спасибо...
Ув.профи, подскажите... В индикаторе использую помимо линии самого индикатора еще и горизонтальные линии. Требуется что-бы цвет горизонтальных линий задавался тем же параметром, что и установка линии индикатора. Однако попытка изменить ObjectSet (Sname, OBJPROP_COLOR, Silver); на ObjectSet (Sname, OBJPROP_COLOR, indicator_color1); ничего не дает. Что делаю не так? Спасибо...
Цвет надо выносить во внешние переменные - через extern
Подскажите пожалуйста как найти разницу между ценами close соседних баров в пунктах (пятизнак).
Например Close[n-1]-Close[n]=0.0006 (т. е. 6 пунктов), по идее нужно просто домножить на 10000, но ведь есть пары (например eurjpy) там где тот же расчет будет давать Close[n-1]-Close[n]=0.11 (т. е. 11 пунктов), и нужно домножить всего на 100.
Неужели придется создавать отдельную функцию которая будет проверять число знаков после запятой и возвращать 100, 1000, 10000 в зависимости от результата проверки?
Может у кого есть уже готовая такая функция?
Нет смысла нормализовать double величины для их сравнения, поскольку два значения 1.778946 и 1.778949 после нормализации окажутся равными, а это уже неверно, т.к. первое значение меньше второго.
Нормализовать double надо только для отправки команды Дилеру, но не для "внутреннего потребления" - сравнения двух величин.
Теперь я всегда делаю такое сравнение и не имею проблем, связанных с непонятным поведением функций, которые должны работать, но не работают... И экономлю время на поиске нелепых ошибок...
Подскажите пожалуйста как найти разницу между ценами close соседних баров в пунктах (пятизнак).
Например Close[n-1]-Close[n]=0.0006 (т. е. 6 пунктов), по идее нужно просто домножить на 10000, но ведь есть пары (например eurjpy) там где тот же расчет будет давать Close[n-1]-Close[n]=0.11 (т. е. 11 пунктов), и нужно домножить всего на 100.
Неужели придется создавать отдельную функцию которая будет проверять число знаков после запятой и возвращать 100, 1000, 10000 в зависимости от результата проверки?
Может у кого есть уже готовая такая функция?
double pt=MarketInfo(Symbol(), MODE_POINT);
difference=(Close[n-1]-Close[n])/pt;
Вместо Symbol() подставляйте имя инструмента, напр. "EURUSD" или "EURJPY" если хотите из советника, работающего на одном инструменте, получить данные по другому инструменту. Либо, оставляйте Symbol() или NULL и советник всегда будет брать данные с того инструмента, на котором работает.
Подскажите пожалуйста как найти разницу между ценами close соседних баров в пунктах (пятизнак).
Например Close[n-1]-Close[n]=0.0006 (т. е. 6 пунктов), по идее нужно просто домножить на 10000, но ведь есть пары (например eurjpy) там где тот же расчет будет давать Close[n-1]-Close[n]=0.11 (т. е. 11 пунктов), и нужно домножить всего на 100.
Неужели придется создавать отдельную функцию которая будет проверять число знаков после запятой и возвращать 100, 1000, 10000 в зависимости от результата проверки?
Может у кого есть уже готовая такая функция?
(Close[n-1]-Close[n])/Point/10; получаете в стандартных пунктах, без /10 в пятизначных пунктах.