Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Спасибо! Я об этом не подумал. Действительно, в виде скрипта все работает, как надо :-)
Однако, посмотрел по загрузке процессора, она повыше, чем при работе со стандартными индикаторами. А ведь еще не проверял при поступлении котировок, как процессор будет загружаться. А если еще одновременно на экране открыто 6-9 окон с торговыми инструментами, и в каждом выполняется скрипт в реал-тайм при поступлении котировок, тогда что будет? Если постоянная загрузка процессора на 50% и более от его мощности, тогда не очень то хочется пользоваться скриптом.
Размер шрифтов и цвета я смог отрегулировать по своему усмотрению, а вот как передвинуть место расположения надписи? В ObjectCreate есть тип OBJ_LABEL, но вот изменить место надписи на экране не понял как (крестьяне мы, не понимаем :-)) А то если окошко с графиком меньше, то не видно надписи. Оптимально было бы сделать ее чуть ниже названия символа OHLC.
2. В индикаторах не работает Sleep().
При нарушении этих правил МТ зависает.
Допустим, в стадарте вместо надписи
"GBPUSD, M5 1.7681 1.7681 1.7670 1.7672"
была бы надпись
"GBPUSD, M5 141 points" - то, что нужно! :-))
2. В индикаторах не работает Sleep().
При нарушении этих правил МТ зависает.
Какие коварные МетаКвотесы! Все предусмотрели... ;-)
"Вы действительно хотите удалить скрипт ScreenAmplitude?"
Не хочу! - таймфрейм не переключается...
Хочу! - скрипт удаляется...
Просто безобразие! ;-)
ObjectSet( _LabelName, OBJPROP_XDISTANCE, _LabelXDistance );
ObjectSet( _LabelName, OBJPROP_YDISTANCE, _LabelYDistance );
Надпись передвинул куда нужно. Будет работать у меня в качестве индикатора - и на всех таймфреймах видно, и процессор не грузится. А обновляться пусть будет при новом тике :-))
Всем еще раз спасибо!
Кому нужно, вот текст исправленного индикатора (здесь белый цвет, если что, поменяйте в коде на нужный):
#property copyright "RealJin" #property link "much-love@yandex.ru" #property indicator_chart_window int deinit() { ObjectDelete("Window_Range_Label"); return(0); } int start() { int First_Visible_Index=Bars-FirstVisibleBar()-2; int Last_Visible_Index=First_Visible_Index-BarsPerWindow()+1; if(Last_Visible_Index<0)Last_Visible_Index=0; double wr=(High[Highest(NULL,0,MODE_HIGH,First_Visible_Index-Last_Visible_Index+1,Last_Visible_Index)]-Low[Lowest(NULL,0,MODE_LOW,First_Visible_Index-Last_Visible_Index+1,Last_Visible_Index)])/Point; if(ObjectFind("Window_Range_Label")!=0){ ObjectCreate("Window_Range_Label",OBJ_LABEL,0,0,0); } ObjectSet("Window_Range_Label", OBJPROP_XDISTANCE,10); ObjectSet("Window_Range_Label", OBJPROP_YDISTANCE,20); ObjectSetText("Window_Range_Label",DoubleToStr(wr,0)+ " points",10,"Arial",White); return(0); }int init() { start(); return(0); } int deinit() { ObjectDelete("s_Window_Range_Label"); return(0); } int start() { while(!IsStopped()) { RefreshRates(); int Bars_Visible=BarsPerWindow(); int Last_Visible_Index=FirstVisibleBar()-BarsPerWindow()+1; if(Last_Visible_Index<0)Last_Visible_Index=0; double wr=(High[Highest(NULL,0,MODE_HIGH,Bars_Visible,Last_Visible_Index)]-Low[Lowest(NULL,0,MODE_LOW,Bars_Visible,Last_Visible_Index)])/Point; if(ObjectFind("s_Window_Range_Label")!=0) { ObjectCreate("s_Window_Range_Label",OBJ_LABEL,0,0,0); ObjectSet("s_Window_Range_Label",OBJPROP_XDISTANCE,3); ObjectSet("s_Window_Range_Label",OBJPROP_YDISTANCE,15); } ObjectSetText("s_Window_Range_Label","Range: "+DoubleToStr(wr,0)+ " Points",16,"Arial",Yellow); Sleep(500); } return(0); }Сразу не проверил чужой код, еще и в расчетах ошибка была. Неправильные значения какие-то выдавались. Исправил.