Рамин Раджабов, ай как нехорошо а
Не очень хороший индикатор.... (((( Потому что вчера сделал разметку, расчертил график, линии тренда, ур. поддержки и сопротивления, а сегодня открываю терминал...ВСЁ стерто, кроме этих круглых чисел.... т.е. какой то бак в коде индикатора.... который стирает все линии находящиеся на графике.
Не очень хороший индикатор.... (((( Потому что вчера сделал разметку, расчертил график, линии тренда, ур. поддержки и сопротивления, а сегодня открываю терминал...ВСЁ стерто, кроме этих круглых чисел.... т.е. какой то бак в коде индикатора.... который стирает все линии находящиеся на графике.
Ну вот совместными усилиями и море по колено :)
Samura, ну что исправишь этот косяк?
так индюк очень удобный, давно искал подобное, вот только поподалось какое то все сложное и непонятное.
Samura, ну что исправишь этот косяк?
так индюк очень удобный, давно искал подобное, вот только поподалось какое то все сложное и непонятное.
Будет время посмотрю
А сколько этих уровней вверх и вниз ????????????????????????????????????????????
А сколько этих уровней вверх и вниз ????????????????????????????????????????????
Ты ж сам количество ставишь а скока вверх и вниз можешь самостоятельно в коде наколдовать :)
А для чего вот эта функция ObjectsDeleteAll() ??? Совсем не понятно....
Ладно вообщем сам разобрался, надо эту функцию закоментить...)
Спасибо.
#property indicator_chart_window extern int LinesAboveBelow= 10; extern color LineColorMain= Red; extern color LineColorSub= DarkGray; extern bool ShowSecondLine1= true; extern int SecondLine1Value= 33; extern bool ShowSecondLine2= true; extern int SecondLine2Value= 66; extern color LineColorSecond= DarkGray; double k; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { switch(Digits) { case 4: k=0.0001; break; case 3: k=0.001; break; case 2: k=0.01; break; case 1: k=0.1; break; case 0: k=1; break; } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { int obj_total= ObjectsTotal(); for(int i= obj_total; i>=0; i--) { string name= ObjectName(i); if (StringSubstr(name,0,11)=="[SweetSpot]") ObjectDelete(name); } return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i, ssp1, style, ssp,ssp2,ssp3; double ds1; color linecolor; ssp1= Bid/Point; ssp1= ssp1 - ssp1%50; for(i= -LinesAboveBelow; i<LinesAboveBelow; i++) { ssp= ssp1+(i*50); if (ssp%100==0) { style= STYLE_SOLID; linecolor= LineColorMain; ds1= ssp*Point; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); if (ShowSecondLine1) { ds1= ssp*Point-(k*100-k*SecondLine1Value); style= STYLE_DOT; linecolor= LineColorSecond; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); } if (ShowSecondLine2) { ds1= ssp*Point-(k*100-k*SecondLine2Value); style= STYLE_DOT; linecolor= LineColorSecond; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); } } else { style= STYLE_DOT; linecolor= LineColorSub; ds1= ssp*Point; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); } } return(0); } //+------------------------------------------------------------------+ //| Helper | //+------------------------------------------------------------------+ void SetLevel(string text, double level, color col1, int linestyle) { int digits= Digits; string linename= "[SweetSpot] " + text + " Line", pricelabel; // create or move the horizontal line if (ObjectFind(linename)!=0) { ObjectCreate(linename, OBJ_HLINE, 0, 0, level); ObjectSet(linename, OBJPROP_STYLE, linestyle); ObjectSet(linename,OBJPROP_BACK,true); ObjectSet(linename, OBJPROP_COLOR, col1); } else { ObjectMove(linename, 0, Time[0], level); } } //+------------------------------------------------------------------+
#property indicator_chart_window extern int LinesAboveBelow= 10; extern color LineColorMain= SaddleBrown; extern color LineColorSub= Gray; extern bool ShowSecondLine1= true; extern int SecondLine1Value= 330; extern bool ShowSecondLine2= true; extern int SecondLine2Value= 660; extern color LineColorSecond= Gray; double k; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { switch(Digits) { case 5: k=0.00001; break; case 4: k=0.0001; break; case 3: k=0.001; break; case 2: k=0.01; break; case 1: k=0.1; break; case 0: k=1; break; } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int deinit() { int obj_total= ObjectsTotal(); for(int i= obj_total; i>=0; i--) { string name= ObjectName(i); if (StringSubstr(name,0,11)=="[SweetSpot]") ObjectDelete(name); } return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int i, ssp1, style, ssp,ssp2,ssp3; double ds1; color linecolor; ssp1= Bid/Point; ssp1= ssp1 - ssp1%500; for(i= -LinesAboveBelow; i<LinesAboveBelow; i++) { ssp= ssp1+(i*500); if (ssp%1000==0) { style= STYLE_SOLID; linecolor= LineColorMain; ds1= ssp*Point; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); if (ShowSecondLine1) { ds1= ssp*Point-(k*1000-k*SecondLine1Value); style= STYLE_DOT; linecolor= LineColorSecond; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); } if (ShowSecondLine2) { ds1= ssp*Point-(k*1000-k*SecondLine2Value); style= STYLE_DOT; linecolor= LineColorSecond; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); } } else { style= STYLE_DOT; linecolor= LineColorSub; ds1= ssp*Point; SetLevel(DoubleToStr(ds1,Digits), ds1, linecolor, style); } } return(0); } //+------------------------------------------------------------------+ //| Helper | //+------------------------------------------------------------------+ void SetLevel(string text, double level, color col1, int linestyle) { int digits= Digits; string linename= "[SweetSpot] " + text + " Line", pricelabel; // create or move the horizontal line if (ObjectFind(linename)!=0) { ObjectCreate(linename, OBJ_HLINE, 0, 0, level); ObjectSet(linename, OBJPROP_STYLE, linestyle); ObjectSet(linename,OBJPROP_BACK,true); ObjectSet(linename, OBJPROP_COLOR, col1); } else { ObjectMove(linename, 0, Time[0], level); } } //+------------------------------------------------------------------+
посмотри этот индикатор. на чем угодно смотри. но на фунте посмотреть стоит ) к круглым числам можно еще добавить "красивые", например 1.5555, 1.3333 и т.п. (кстати у разных пар есть свои предпочтения).
прикрепленный индикатор - модификация уже существовавшего ранее, добавлены уровни на котировках х.хх33, х.хх66, х.хх50.
второй индикатор модифицирован под пятизнаковые котировки
посмотри этот индикатор. на чем угодно смотри. но на фунте посмотреть стоит ) к круглым числам можно еще добавить "красивые", например 1.5555, 1.3333 и т.п. (кстати у разных пар есть свои предпочтения).
прикрепленный индикатор - модификация уже существовавшего ранее, добавлены уровни на котировках х.хх33, х.хх66, х.хх50.
второй индикатор модифицирован под пятизнаковые котировки
К нему бы добавить ещё "мегафигуры" для старших ТФ - 0.1 и 0.5, да пожирнее.. пример:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уровни Круглых Чисел:
Бытует мнение, что в районе круглых чисел (1.20000, 1.21000, и т.д.) цены находят существенную поддержку или сопротивление.
Поэтому дабы не усложнять себе жизнь выставлением горизонтальных линий, мною был разработан индикатор, который легко и просто создает эти уровни.
Author: Чина