Miscellaneous
0
Views
0
Downloads
0
Favorites
Clock_cuckoo
//+------------------------------------------------------------------+
//| Clock_cuckoo.mq4 |
//| Roll |
//+------------------------------------------------------------------+
#property copyright "Roll"
#property link "http://www.mql4.com/ru/users/Roll"
#property show_inputs
//Source:ClockTest-Ñòðåëî÷íûå ÷àñû äëÿ ÌÒ4(Àâòîð:TheXpert)Âñå,÷òî íàäî,óñòàíîâèòü øðèôò.http://codebase.mql4.com/ru/7671
extern string device="/============öèôåðáëàò======/";
extern int ClockSize=160;//ðàçìåð öèôåðáëàòà
extern color Clockcolor=DeepSkyBlue;//öâåò öèôåðáëàòà
extern string My_place="Ìåñòíîå";//íàçâàíèå ìîåãî ìåñòîðàñïîëîæåíèÿ
extern bool ShowClockBroker=false;//ïîêàçàòü âðåìÿ áðîêåðà
extern bool ShowClockLocal=true;//ïîêàçàòü ìåñòíîå(ëîêàëüíîå) âðåìÿ
extern string alarm="/=============timer===========/";
extern int mode=0;/*ðåæèìû òàéìåðà(ïî ìåñòíîìó âðåìåíè)(Mode of the timer):
1."êóðàíòû"-ïðè mode==0;
2."áóäèëüíèê","Alarm"-ïðè mode==1,ñðàáàòûâàíèå(ðàç â ñóòêè) ïî ïðÿìûì ïîêàçàíèÿì âíåøíèõ ïåðåìåííûõ hour,minut,second;
3."ðàçîâûé òàéìåð","Timer"-ïðè mode==2,ñðàáàòûâàíèå ïî ñóììå òåêóùåãî ìåñòíîãî âðåìåíè(äåíü ãîäà,÷àñ,ìèíóòà,ñåêóíäà)
è ñóììû ïîêàçàíèé âíåøíèõ ïåðåìåííûõ(hour,minut,second);
4."ïåðèîäû","Period"-ïðè mode==3,àíàëîãèÿ-ïåðèîäû ãðàôèêîâ(êðàòíûå èíòåðâàëû),
íà÷àëî îòñ÷åòà-"0"äëÿ êàæäîãî ïåðèîäà îòäåëüíî(ñåêóíäû,ìèíóòû,÷àñû).
Çíà÷åíèå ëþáîé âíåøíåé ïåðåìåííîé hour,minut,second íå áîëåå ñòàðøåãî ïåðèîäà,
èíà÷å - ñîêðàùåíèå äî îñòàòêà ñ ïåðåíîñîì â ñòàðøèé ïåðèîä:
íàïðèìåð,ïðè çíà÷åíèè âíåøíåé ïåðåìåííîé second=70 áóäåò ïðîèçâåäåí ïåðåðàñ÷åò ïåðèîäà
äî second=10 è minut=1,è ñèãíàëû áóäóò ïîäàâàòüñÿ ñ ïåðèîäîì=10 ñåêóíä - â 10,20,30,40,50,60
ñåêóíä è êàæäóþ ìèíóòó(ïåðèîä-1 ìèíóòà).
Ò.å.,âîçìîæíà îäíîâðåìåííàÿ ðàáîòà òàéìåðà ïî íåñêîëüêèì âàðèàíòàì ïåðèîäîâ(ñåêóíäû,ìèíóòû,÷àñû),
íàïðèìåð,:ïî ìèíóòàì è ñåêóíäàì; ïî ÷àñàì è ñåêóíäàì è ò.ä.
5."öèêëè÷íûé òàéìåð","Cycle"-ïðè mode==4,íà÷àëî îòñ÷åòà-âðåìÿ ñòàðòà ñêðèïòà,
ïåðèîä öèêëà -ñóììà ïîêàçàíèé âíåøíèõ ïåðåìåííûõ hour,minut,second.
Ïðèì.:äëÿ îòêëþ÷åíèÿ ðåæèìîâ òàéìåðà - çíà÷åíèå âí.ïåðåìåííîé mode ä.áûòü áîëüøå 4(íàïðèìåð,mode==5)
*/
extern int hour=0;
extern int minut=0;
extern int second=0;
extern string Sound_1="long_cuckoo_clock.wav";//äëèííûé ñèãíàë
extern string Sound_2="cuckoo_clock.wav";//êîðîòêèé ñèãíàë
int a[4],DD,HH,MM,CC,CC_per,MM_per,HH_per,i;string text_e;
int init(){if(mode==1)Alarm();if(mode==2||mode==4)Timer();return(0);}
int deinit(){Comment("");ObjectDelete("Òàéìåð");ObjectDelete("Text_Label");ObjectDelete("1 clock");ObjectDelete("2 hour");
ObjectDelete("3 minute");ObjectDelete("4 second");ObjectDelete("5 zona");ObjectDelete("0 clock mover");return(0);}
int start()
{int sec,sec_1,min,min_1,hours,hours_1,z;string A,B,S,R;
Per(); B=" : "+hour+" H, "+minut+" Minute, "+second+" Seconds";
if(mode==1)R="Alarm"+B;if(mode==2)R="Timer"+B;if(mode==3)R="Periods"+B;if(mode==4)R="Cycle"+B;
if(mode==1||mode==2||mode==4)S="Start - "+TimeToStr(TimeLocal(),TIME_DATE|TIME_SECONDS);
if(mode==3)S="Start = 0 (íà÷àëî îòñ÷åòà) + êðàòíûé ïåðèîä";A="Ðåæèì òàéìåðà - "+R+"\n"+S;
while(!IsStopped())
{datetime localTime=TimeLocal(),brokerTime=TimeCurrent();
if(ShowClockBroker)ClockTest(brokerTime," Áðîêåð");if(ShowClockLocal)ClockTest(localTime," "+My_place);
if(mode==0){if(TimeMinute(TimeLocal())==59&&TimeSeconds(TimeLocal())==59)Cuckoo(TimeHour(TimeLocal())+1);
if(TimeMinute(TimeLocal())==29&&TimeSeconds(TimeLocal())==59)PlaySound(Sound_2);}
if((mode==1)&&a[1]==TimeHour(TimeLocal())&&a[2]==TimeMinute(TimeLocal())&&
a[3]==TimeSeconds(TimeLocal())){Level();Sleep(900);PlaySound(Sound_1);z++;}
if((mode==2)&&a[0]==TimeDayOfYear(TimeLocal())&&a[1]==TimeHour(TimeLocal())&&a[2]==TimeMinute(TimeLocal())&&
a[3]==TimeSeconds(TimeLocal())){Level();Sleep(900);PlaySound(Sound_1);z++;}
if(mode==3)//ïîäà÷à ñèãíàëà ÷åðåç êðàòíûé èíòåðâàë âðåìåíè(ïåðèîäè÷åñêè).Íà÷àëî îòñ÷åòà-"0"äëÿ êàæäîãî ïåðèîäà îòäåëüíî(ñåêóíäû,ìèíóòû,÷àñû),è íå áîëåå ñòàðøåãî ïåðèîäà.
{if(second>0&&second<=60)sec_1=MathFloor(60/second);//áîé second ñåêóíä
for(i=1;i<sec_1+1;i++){sec=i*second;if(TimeSeconds(TimeLocal())==sec-1)
{Sleep(900);ObjectDelete("Text_Label");T_Label("Periods");PlaySound(Sound_1);z++;}}
if(minut>0&&minut<=60)min_1=MathFloor(60/minut);//áîé minut ìèíóò
for(i=1;i<min_1+1;i++)
{min=i*minut;if(TimeMinute(TimeLocal())==min-1&&TimeSeconds(TimeLocal())==58)
{Sleep(900);ObjectDelete("Text_Label");T_Label("Periods");PlaySound(Sound_1);z++;}}
if(hour>0&&hour<=24)hours_1=MathFloor(24/hour);//áîé hour ÷àñîâ
for(i=1;i<hours_1+1;i++){hours=i*hour;if(TimeHour(TimeLocal())==hours-1&&TimeMinute(TimeLocal())==59&&
TimeSeconds(TimeLocal())==58){Sleep(900);ObjectDelete("Text_Label");T_Label("Periods");
Cuckoo(hours);z++;}}}
if(mode==4)//ïîäà÷à ñèãíàëà ÷åðåç èíòåðâàë âðåìåíè(ïåðèîäè÷åñêè),íà÷àëî îòñ÷åòà-âðåìÿ ñòàðòà ñêðèïòà
{if(a[0]==TimeDayOfYear(TimeLocal())&&a[1]==TimeHour(TimeLocal())&&a[2]==TimeMinute(TimeLocal())&&
a[3]==TimeSeconds(TimeLocal())){ObjectDelete("Text_Label");T_Label("Cycle");PlaySound(Sound_1);Timer();z++;
}}if(a[2]*60+30<a[2]*60+TimeSeconds(TimeLocal())){ObjectDelete("Text_Label");ObjectDelete("Òàéìåð");}
WindowRedraw();Sleep(80);if(mode>0&&mode<5)Comment(A,"\n ",z);}return(0);}
//+------------------------------------------------------------------+
void Per(){CC_per=MathFloor(second/60);second=second%60;
minut=minut+CC_per;MM_per=MathFloor(minut/60);minut=minut%60;hour=(hour+MM_per)%24;}
void Alarm(){Per();a[1]=hour;a[2]=minut;a[3]=second;}
void Timer(){CC=TimeSeconds(TimeLocal())+second;CC_per=MathFloor(CC/60);CC=CC%60;
MM=TimeMinute(TimeLocal())+minut+CC_per;MM_per=MathFloor(MM/60);MM=MM%60;
HH=TimeHour(TimeLocal())+hour+MM_per;HH_per=MathFloor(HH/24);HH=HH%24;
DD=TimeDayOfYear(TimeLocal())+HH_per;a[0]=DD;a[1]=HH;a[2]=MM;a[3]=CC;}
void Cuckoo(int raz){if(raz>12)raz=raz-12;for(i=1;i<=raz;i++){PlaySound(Sound_2);Sleep(1300);}}
void Level(){string text_x="Alarm "+TimeToStr(TimeLocal(),TIME_SECONDS)+"!";
ObjectCreate("Òàéìåð",OBJ_LABEL,0,0,0,0);ObjectSet("Òàéìåð",OBJPROP_CORNER,0);
ObjectSet("Òàéìåð",OBJPROP_XDISTANCE,70);ObjectSet("Òàéìåð",OBJPROP_YDISTANCE,110);
ObjectSetText("Òàéìåð",text_x,30,"Comic Sans MS",Clockcolor);}
void T_Label(string text_e)
{string text_x=text_e+" - "+TimeToStr(TimeLocal(),TIME_SECONDS);ObjectCreate("Text_Label",OBJ_LABEL,0,0,0);
ObjectSetText("Text_Label",text_x,30,"Times New Roman",Clockcolor);ObjectSet("Text_Label",OBJPROP_CORNER,2);
ObjectSet("Text_Label",OBJPROP_XDISTANCE,5);ObjectSet("Text_Label",OBJPROP_YDISTANCE,5);}
//---ClockTest - http://codebase.mql4.com/ru/7671-(Àâòîð:TheXpert)---+
void ClockTest(datetime rez,string name)
{if(ObjectFind("0 clock mover")==-1)
{ObjectCreate("0 clock mover",OBJ_LABEL,0,0,0);ObjectSetText("0 clock mover","*",20);
ObjectSet("0 clock mover",OBJPROP_XDISTANCE,20);ObjectSet("0 clock mover",OBJPROP_YDISTANCE,40);
ObjectSet("0 clock mover",OBJPROP_COLOR,White);}
int x=ObjectGet("0 clock mover",OBJPROP_XDISTANCE);int y=ObjectGet("0 clock mover",OBJPROP_YDISTANCE);
ObjectCreate("1 clock",OBJ_LABEL,0,0,0);ObjectCreate("2 hour",OBJ_LABEL,0,0,0);
ObjectCreate("3 minute",OBJ_LABEL,0,0,0);ObjectCreate("4 second",OBJ_LABEL,0,0,0);
ObjectCreate("5 zona",OBJ_LABEL,0,0,0);
datetime local=rez;
ObjectSetText("1 clock",CharToStr(32),ClockSize,"ClockBuilder by TheXpert");
ObjectSet("1 clock",OBJPROP_XDISTANCE,x);ObjectSet("1 clock",OBJPROP_YDISTANCE,y);
ObjectSet("1 clock",OBJPROP_COLOR,Clockcolor);
int hours=TimeHour(local);
if(hours<12)ObjectSetText("2 hour",CharToStr(105+hours*5+TimeMinute(local)/12),ClockSize,"ClockBuilder by TheXpert");
if(hours>=12)ObjectSetText("2 hour",CharToStr(105+(hours-12)*5+TimeMinute(local)/12),ClockSize,"ClockBuilder by TheXpert");
ObjectSet("2 hour",OBJPROP_XDISTANCE,x);ObjectSet("2 hour",OBJPROP_YDISTANCE,y);
ObjectSet("2 hour",OBJPROP_COLOR,Clockcolor);
int minutes=TimeMinute(local);
ObjectSetText("3 minute",CharToStr(45+minutes),ClockSize,"ClockBuilder by TheXpert");
ObjectSet("3 minute",OBJPROP_XDISTANCE,x);ObjectSet("3 minute",OBJPROP_YDISTANCE,y);
ObjectSet("3 minute",OBJPROP_COLOR,Clockcolor);
int seconds=TimeSeconds(local);
ObjectSetText("4 second",CharToStr(105+seconds),ClockSize,"ClockBuilder by TheXpert");
ObjectSet("4 second",OBJPROP_XDISTANCE,x);ObjectSet("4 second",OBJPROP_YDISTANCE,y);
ObjectSet("4 second",OBJPROP_COLOR,Red);
ObjectSetText("5 zona",name,ClockSize/11,"Arial Black");
ObjectSet("5 zona",OBJPROP_XDISTANCE,x+50);ObjectSet("5 zona",OBJPROP_YDISTANCE,y+125);
ObjectSet("5 zona",OBJPROP_COLOR,Clockcolor);}
//+------------------------------------------------------------------+
Comments
Markdown Formatting Guide
# H1
## H2
### H3
**bold text**
*italicized text*
[title](https://www.example.com)

`code`
```
code block
```
> blockquote
- Item 1
- Item 2
1. First item
2. Second item
---