Перерыл кучу инета в поисках темы "Как сделать так чтобы в зацикленном советнике открывались его свойства (F7 которые)", не нашел. Похоже все просто с этим мирятся, жмакают запрет советников или удаляют. Написал вот функцию, вроде с ней даже интереснее...
//+----------------------------------------------------------------------------+
//|Текстовая метка "Советник в цикле" |
//|Возвращает -1 если метка сдернута со своих координат, 1 если на месте |
//|Можно задавать время паузы |
//+----------------------------------------------------------------------------+
bool TextCycle(int sl)
{
if (sl>0){Sleep(sl);RefreshRates();}//Если задано время паузы- обновление предопр-х переменных функция берет на себя
int npr=1; //-номер угла привязки 0-3
int X=15; //-X-координаты в пикселях относительно угла привязки
int Y=15; //-Y-координаты в пикселях относительно угла привязки
string name= "Pr_bar_txt"; //-Имя объекта
string text= "Советник в цикле"; //-Собств. текст
string font= "Times New Roman"; //-Шрифт
color clr= PaleGreen; //-Цвет надписи
int fsize= 10; //-Размер шрифта
if (ObjectFind("Cicle")!=0)
{
ObjectCreate("Cicle",OBJ_LABEL,0,0,0,0,0,0,0);
ObjectSetText("Cicle",text,fsize,font,clr);
ObjectSet("Cicle",OBJPROP_CORNER,npr);
ObjectSet("Cicle",OBJPROP_XDISTANCE,X);
ObjectSet("Cicle",OBJPROP_YDISTANCE,Y);
ObjectSet("Cicle",OBJPROP_BACK,true);
}
if (ObjectGet("Cicle",OBJPROP_XDISTANCE)!=X||ObjectGet("Cicle",OBJPROP_YDISTANCE)!=Y)return(false);
return(true);
}
Надпись висит в аккурат под улыбающимся смайликом, пока висит,- советник зациклен, сдернул- потиково работает, можно в свойства залезть, нечаянно сдернул, можно удалить ее- заново в том же месте нарисуется и опять в цикле. Кстати, чтоб открыть свойства советника можно кликнуть мышкой по смайлику- за два года, только недавно узнал))
пример использ.:
extern int DepoDollar=10000;
int init()
{
MathSrand(GetTickCount());
}
int deinit()
{
if (ObjectFind("Cicle")==0)ObjectDelete("Cicle");
Comment("");
return(0);
}
int start()
{
while(TextCycle(1000))
{
if (IsStopped()||!IsExpertEnabled())break;
DepoDollar=DepoDollar+(MathRand()%200)-100;
Comment("Ваш депозит равен- ",DepoDollar,"$");
}
return(0);
}
//|Текстовая метка "Советник в цикле" |
//|Возвращает -1 если метка сдернута со своих координат, 1 если на месте |
//|Можно задавать время паузы |
//+----------------------------------------------------------------------------+
bool TextCycle(int sl)
{
if (sl>0){Sleep(sl);RefreshRates();}//Если задано время паузы- обновление предопр-х переменных функция берет на себя
int npr=1; //-номер угла привязки 0-3
int X=15; //-X-координаты в пикселях относительно угла привязки
int Y=15; //-Y-координаты в пикселях относительно угла привязки
string name= "Pr_bar_txt"; //-Имя объекта
string text= "Советник в цикле"; //-Собств. текст
string font= "Times New Roman"; //-Шрифт
color clr= PaleGreen; //-Цвет надписи
int fsize= 10; //-Размер шрифта
if (ObjectFind("Cicle")!=0)
{
ObjectCreate("Cicle",OBJ_LABEL,0,0,0,0,0,0,0);
ObjectSetText("Cicle",text,fsize,font,clr);
ObjectSet("Cicle",OBJPROP_CORNER,npr);
ObjectSet("Cicle",OBJPROP_XDISTANCE,X);
ObjectSet("Cicle",OBJPROP_YDISTANCE,Y);
ObjectSet("Cicle",OBJPROP_BACK,true);
}
if (ObjectGet("Cicle",OBJPROP_XDISTANCE)!=X||ObjectGet("Cicle",OBJPROP_YDISTANCE)!=Y)return(false);
return(true);
}
пример использ.:
extern int DepoDollar=10000;
int init()
{
MathSrand(GetTickCount());
}
int deinit()
{
if (ObjectFind("Cicle")==0)ObjectDelete("Cicle");
Comment("");
return(0);
}
int start()
{
while(TextCycle(1000))
{
if (IsStopped()||!IsExpertEnabled())break;
DepoDollar=DepoDollar+(MathRand()%200)-100;
Comment("Ваш депозит равен- ",DepoDollar,"$");
}
return(0);
}