MT5程序代碼講解之——背景圖片大放送 [MT4]
作者:
MT4 來源:
cxh99.com 發(fā)布時間:2012年05月30日 點(diǎn)擊數(shù):
【
收藏到本網(wǎng)的會員中心】
- MT5程序代碼講解之——背景圖片大放送
MT5雖然還沒有正式投放市場,但是通過測試人員編寫的程序代碼我們已經(jīng)能夠看到一些令人激動的新功能了。下面這個EA能夠輪番播放存放于硬盤上的圖片文件,做為K線圖的背景畫面。還是挺有趣的。
//+-----------------------------------------------------+
//| ytg_BITMAP_exp.mq5 |Copyright Yuriy Tokman |
yuriytokman@gmail.com |
//+-----------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link "yuriytokman@gmail.com"
#property version "1.00"
input string name1 = "Tetris\\1.bmp"; // 帶路徑的圖片文件
input string name2 = "Tetris\\2.bmp"; //帶路徑的圖片文件input int seconds = 2; // 秒
string _NAME = "ytg_BITMAP";
int tick = 0;
//+----------------------------------------------------+
//| 初始化函數(shù) |
//+----------------------------------------------------+
int OnInit()
{ChartRedraw();//刷新圖表
EventSetTimer(seconds);//設(shè)置時間觸發(fā)器,這正是MT5的新功能,每隔seconds秒,這里設(shè)為2秒,觸發(fā)一次 OnTimer()函數(shù)。這樣不用象 MT4那樣只靠tick數(shù)據(jù)觸發(fā)了。
return(0);}
//+-----------------------------------------------------+
//|反初始化函數(shù) |
//+----------------------------------------------------+
void OnDeinit()
{
EventKillTimer();//如果在初始化函數(shù)中設(shè)置了EventSetTimer(),必須用這條語句在退出時取消時間觸發(fā)。
ChartRedraw();//刷新圖表
//---
ObjectDelete(0,_NAME);//刪除做為背景的物件
}
//+------------------------------------------------------------------+
//| 實(shí)時函數(shù) |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
tick ++;//計次。
if(tick == 2) Bitmap(_NAME,name1); //每觸發(fā)2次調(diào)用第一幅圖片做為背景。
if(tick == 4){tick = 0;Bitmap(_NAME,name2);} //每觸發(fā)4次調(diào)用第二幅圖片做為背景。并把計次變量清0。
ChartRedraw();
}
//+--------------------------------------------------+
void Bitmap ( string name, //對象名稱
string file, //文件路徑
int x = 1, // 以像素為單位的橫坐標(biāo)
int y = 1) // 以像素為單位的縱坐標(biāo)
{
if(ObjectFind(0,name)!=-1)ObjectDelete(0,name);//如存在同名物件予以刪除。
ObjectCreate(0,name,OBJ_BITMAP_LABEL,0,0,0,0,0);//建立名為name的位圖文件。
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);//橫坐標(biāo)
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//縱坐標(biāo)
ObjectSetInteger(0,name,OBJPROP_BACK,true);//設(shè)為顯示背景
ObjectSetString(0,name,OBJPROP_BMPFILE,file); //設(shè)置背景文件。
}
這個EA運(yùn)行后會每4秒更換一次背景圖片。
代碼講解:bcsunwww
MetaQuotes 官方網(wǎng)站俄文原文地址:http://codebase.mql4.com/ru/6026