您当前的位置: > 最新资讯 > 行情分析
联系我们
服务热线:15388665518

MQL5编程MT5程序代码讲解 之 旋转的时间

时间:2025-09-02  来源:  作者:EBC官方网站

// -----------------------------------------------------

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 ;

// ----------------------------------------------------

//|初始化函数(加载函数)|

// ----------------------------------------------------

int OnInit()

{

//---

EventSetTimer(1);//设置时间触发器,这正是MT5的新功能,每隔1秒触发一次OnTimer()函数。这样不用象 MT4那样只靠tick数据触发了。

ChartRedraw();//刷新图表

//---

return(0);

}

// -----------------------------------------------------

//|反初始化函数(卸载函数) |

// -----------------------------------------------------

void OnDeinit()

{

//---

ObjectDelete(0,obj_name);//退出时删除物件。

EventKillTimer();//如果在初始化函数中设置了EventSetTimer(),必须用这条语句在退出时取消时间触发。

ChartRedraw();//刷新图表

}

// -------------------------------------------------

//|实时函数

// ------------------------------------------------

void OnTimer()

{

//---

tick ; if(tick10) tick = 0;//使tick在0至10之间变化。

tyk ; if(tyk=30) tyk = 0; //使tyk在0至30之间变化。

datetime t1 = TimeGMT();//GMT 是格林威治标准时间的英文缩写,反回格林威治标准时间给 t1。

datetime t2 = TimeCurrent();//返回最后访问的服务器时间给 t2 。

datetime t3 = TimeLocal(); //返回当前电脑时间给 t3。

color colir;//设置颜色变量。

if(tyk=0 && tyk<10){name = TimeToString(t1,TIME_SECONDS) " (GMT)";colir = Blue;}//对每30秒的前10秒设置文本内容和颜色。

if(tyk=10 && tyk<20){name = TimeToString(t2,TIME_SECONDS) "EBC官方网站(current)";colir = Lime;} //对每30秒的中间10秒设置文本内容和颜色。

if(tyk=20 && tyk<=30){name = TimeToString(t3,TIME_SECONDS) "(local)";colir = Red;} //对每30秒的后10秒设置文本内容和颜色。

//调用LABEL函数创建物件

Label(obj_name, //物件名称

name, // 文本内容

200 tick*10,//横坐标在200至300像素之间变化

150 tick*10, //纵坐标在150至250像素之间变化

9 tick*3,//字体在9至39号之间变化

36*tick,//角度在0至360度之间变化

"Tahoma",

colir);

ChartRedraw();

}

void Label(string obj_name, //对象名称

string txt, // 文本内容

int x, // 以像素为单位的横坐标

int y, // 以像素为单位的纵坐标

int font_size, // 字体大小

int angle, //物件角度

string font, // 字体名称

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);

}

这个EA运行后会在不同位置,不断变换大小、角度、颜色来显示三种形式的时间。