MT5程序代碼講解之——旋轉(zhuǎn)的時(shí)間
作者:MT4 來(lái)源:cxh99.com 發(fā)布時(shí)間:2012年05月05日
- MT5程序代碼講解之——旋轉(zhuǎn)的時(shí)間
//+-----------------------------------------------------+
ytg_Time_exp.mq5 |
//Copyright Yuriy Tokman |
//yuriytokman@gmail.com |
//+-----------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link "yuriytokman@gmail.com"
#property version "1.00"
string obj_name = "ytg_Time";
int tick = 0, tyk = 0;
string name ;
//+----------------------------------------------------+
//|初始化函數(shù)(加載函數(shù))|
//+----------------------------------------------------+
int OnInit()
{
//---
EventSetTimer(1);//設(shè)置時(shí)間觸發(fā)器,這正是MT5的新功能,每隔1秒觸發(fā)一次OnTimer()函數(shù)。這樣不用象 MT4那樣只靠tick數(shù)據(jù)觸發(fā)了。
ChartRedraw();//刷新圖表
//---
return(0);
}
//+-----------------------------------------------------+
//|反初始化函數(shù)(卸載函數(shù)) |
//+-----------------------------------------------------+
void OnDeinit()
{
//---
ObjectDelete(0,obj_name);//退出時(shí)刪除物件。
EventKillTimer();//如果在初始化函數(shù)中設(shè)置了EventSetTimer(),必須用這條語(yǔ)句在退出時(shí)取消時(shí)間觸發(fā)。
ChartRedraw();//刷新圖表
}
//+-------------------------------------------------+
//|實(shí)時(shí)函數(shù)
//+------------------------------------------------+
void OnTimer()
{
//---
tick ++; if(tick>10) tick = 0;//使tick在0至10之間變化。
tyk ++; if(tyk>=30) tyk = 0; //使tyk在0至30之間變化。
datetime t1 = TimeGMT();//GMT 是格林威治標(biāo)準(zhǔn)時(shí)間的英文縮寫(xiě),反回格林威治標(biāo)準(zhǔn)時(shí)間給 t1。
datetime t2 = TimeCurrent();//返回最后訪(fǎng)問(wèn)的服務(wù)器時(shí)間給 t2 。
datetime t3 = TimeLocal(); //返回當(dāng)前電腦時(shí)間給 t3。
color colir;//設(shè)置顏色變量。
if(tyk>=0 && tyk<10){name = TimeToString(t1,TIME_SECONDS)+" (GMT)";colir = Blue;}//對(duì)每30秒的前10秒設(shè)置文本內(nèi)容和顏色。
if(tyk>=10 && tyk<20){name = TimeToString(t2,TIME_SECONDS)+"(current)";colir = Lime;} //對(duì)每30秒的中間10秒設(shè)置文本內(nèi)容和顏色。
if(tyk>=20 && tyk<=30){name = TimeToString(t3,TIME_SECONDS)+"(local)";colir = Red;} //對(duì)每30秒的后10秒設(shè)置文本內(nèi)容和顏色。
//調(diào)用LABEL函數(shù)創(chuàng)建物件
Label(obj_name, //物件名稱(chēng)
name, // 文本內(nèi)容
200+tick*10,//橫坐標(biāo)在200至300像素之間變化
150+tick*10, //縱坐標(biāo)在150至250像素之間變化
9+tick*3,//字體在9至39號(hào)之間變化
36*tick,//角度在0至360度之間變化
"Tahoma",
colir);
ChartRedraw();
}
void Label(string obj_name, //對(duì)象名稱(chēng)
string txt, // 文本內(nèi)容
int x, // 以像素為單位的橫坐標(biāo)
int y, // 以像素為單位的縱坐標(biāo)
int font_size, // 字體大小
int angle, //物件角度
string font, // 字體名稱(chēng)
color cir ) //字體顏色
{
ObjectCreate(0,obj_name,OBJ_LABEL,0,0,0);
//ObjectSetInteger(0,obj_name,OBJPROP_COLOR,DeepSkyBlue);
ObjectSetString(0,obj_name,OBJPROP_TEXT,name);
ObjectSetInteger(0,obj_name,OBJPROP_XDISTANCE,x);
ObjectSetInteger(0,obj_name,OBJPROP_YDISTANCE,y);
ObjectSetInteger(0,obj_name,OBJPROP_FONTSIZE,font_size);
ObjectSetDouble(0,obj_name,OBJPROP_ANGLE,angle);
ObjectSetString(0,obj_name,OBJPROP_FONT,font);
ObjectSetInteger(0,obj_name,OBJPROP_COLOR,cir);
}
這個(gè)EA運(yùn)行后會(huì)在不同位置,不斷變換大小、角度、顏色來(lái)顯示三種形式的時(shí)間。
代碼講解:bcsunwww
MetaQuotes 官方網(wǎng)站俄文原文地址:http://codebase.mql4.com/ru/6023
[ 此帖被bcsunwww在2009-10-02 09:07重新編輯 ]