Привет)
Удалите из функции start ObjectsDeleteAll(); , тогда Label появится.
Хорошая задумка!
Удачи!
Привет)
Удалите из функции start ObjectsDeleteAll(); , тогда Label появится.
Хорошая задумка!
Удачи!
Я проще поступил...
Поместил все лейбы в одну функцию.
void LabeLine(int u, int b, int s, int mn=0) { int i, styd=30, fnts=35, sizer=7; string txt=".", rek="назаборе"; color cv=Blue; //--- int start=20; for(i=0; i<u; i++) { ObjectCreate("bs_u_"+i,OBJ_LABEL, 0, 0, 0); ObjectSet("bs_u_"+i,OBJPROP_BACK,1); ObjectSet("bs_u_"+i,OBJPROP_CORNER,3); ObjectSet("bs_u_"+i,OBJPROP_XDISTANCE,start+(i*sizer)); ObjectSet("bs_u_"+i,OBJPROP_YDISTANCE,styd); ObjectSetText("bs_u_"+i, txt, fnts, "Tahoma", Blue); } //--- int startb=start+(i*sizer); for(i=0; i<b; i++) { ObjectCreate("bs_b_"+i,OBJ_LABEL, 0, 0, 0); ObjectSet("bs_b_"+i,OBJPROP_BACK,1); ObjectSet("bs_b_"+i,OBJPROP_CORNER,3); ObjectSet("bs_b_"+i,OBJPROP_XDISTANCE,startb+(i*sizer)); ObjectSet("bs_b_"+i,OBJPROP_YDISTANCE,styd); ObjectSetText("bs_b_"+i, txt, fnts, "Tahoma", YellowGreen); } //--- int starts=startb+(i*sizer); for(i=0; i<s; i++) { ObjectCreate("bs_s_"+i,OBJ_LABEL, 0, 0, 0); ObjectSet("bs_s_"+i,OBJPROP_BACK,1); ObjectSet("bs_s_"+i,OBJPROP_CORNER,3); ObjectSet("bs_s_"+i,OBJPROP_XDISTANCE,starts+(i*sizer)); ObjectSet("bs_s_"+i,OBJPROP_YDISTANCE,styd); ObjectSetText("bs_s_"+i, txt, fnts, "Tahoma", Red); } //--- if(b>s && b>0) {rek="BUY"; cv=Green;} if(b<s && s>0) {rek="SELL"; cv=Red;} { ObjectCreate("bs_r",OBJ_LABEL, 0, 0, 0); ObjectSet("bs_r",OBJPROP_BACK,1); ObjectSet("bs_r",OBJPROP_CORNER,3); ObjectSet("bs_r",OBJPROP_XDISTANCE,20); ObjectSet("bs_r",OBJPROP_YDISTANCE,styd+10); ObjectSetText("bs_r", rek, fnts*2, "Tahoma", cv); } }
Угу. Щаз.
Там строчку надо расскомментировать.
.
void Label(string txt, int fnts, color cv=Blue)
{
//ObjectCreate("bs_",OBJ_LABEL, 0, 0, 0); <--- вот эту, закомментировано именно создание
ObjectSet("bs_",OBJPROP_BACK,1);
ObjectSet("bs_",OBJPROP_CORNER,3);
ObjectSet("bs_",OBJPROP_XDISTANCE,10);
ObjectSet("bs_",OBJPROP_YDISTANCE,70);
ObjectSetText("bs_", txt, fnts, "Tahoma", cv);
}
.
И лично я бы всунул WindowRedraw
if(b>s && b>0) {Label("BUY ("+b+" против "+s+" из "+(u+b+s)+")",fntsize,Green);}
if(b<s && s>0) {Label("SELL ("+s+" против "+b+" из "+(u+b+s)+")",fntsize,Red);}
WindowRedraw(); <--- сюда

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Уже давно интересовал этот вопрос о реализации формального вывода сигналов индикаторов
более компактным и главное эргономичным способом...
На выходных нашлось немного времени и кое что состряпал.
Вроде всё идёт пока нормально, за мелкими непонятками.
Одна из таких.
Порой бывает что этот цикл "отрабатывает" трижды.
Что проявляется в виде увеличения значения переменных в тири раза и трижды "прострочен" коммент на графике.
но больше всего тупит почему не появляется обьект...
код полностью, пока черновой вариант: