MT5入門到精通之十五(文件操作,圖表操作祭陷,通知郵件發(fā)送)

一.文件操作
1.對應(yīng)文件路徑

image.png

2.常用操作代碼

//+------------------------------------------------------------------+
//|                                            operateFileScript.mq5 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <wz\Kline.mqh>

Kline kl;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlRates rates[];
   kl.getRates(rates,50);
   int f_h;

//1.正常文件寫入流程(一般打開這個屬性FILE_SHARE_READ苍凛,其他進程也可以查看)
   f_h=FileOpen("abc.txt",FILE_READ|FILE_WRITE|FILE_TXT|FILE_SHARE_READ,",");
   FileWrite(f_h,TimeToString(rates[0].time),DoubleToString(rates[0].open,Digits()));
   FileWrite(f_h,TimeToString(rates[1].time),DoubleToString(rates[1].open,Digits()));
//1.2Writes to a disk all data remaining in the input/output file buffer.
   FileFlush(f_h);
   FileClose(f_h);
//2.文件讀取操作
   f_h=FileOpen("abc.txt",FILE_READ|FILE_WRITE|FILE_TXT|FILE_SHARE_READ,",");
   while(FileIsEnding(f_h)==false)
     {
      //2.1返回整行的數(shù)據(jù)(2017.05.03 02:00,1.09307)
      string fr=FileReadString(f_h);
     }
   FileClose(f_h);

//3.在文件底部添加數(shù)據(jù),而不是直接覆蓋
//3.1推薦用csv格式兵志,不需要有分割號醇蝴,
   f_h=FileOpen("abc.csv",FILE_READ|FILE_WRITE|FILE_CSV|FILE_SHARE_READ);
   FileSeek(f_h,0,SEEK_END);
   FileWrite(f_h,TimeToString(rates[0].time),DoubleToString(rates[0].open,Digits()));
   FileWrite(f_h,TimeToString(rates[1].time),DoubleToString(rates[1].open,Digits()));
   FileWrite(f_h,TimeToString(rates[2].time),DoubleToString(rates[2].open,Digits()));
   FileFlush(f_h);
   FileClose(f_h);
//4.刪除文件
// FileDelete("abc.csv");


//5.二進制文件讀取操作
   f_h=FileOpen("test.bin",FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ);
   FileWriteDouble(f_h,1.23456);
   FileClose(f_h);

   f_h=FileOpen("test.bin",FILE_READ|FILE_WRITE|FILE_BIN|FILE_SHARE_READ);
   string valueD=FileReadDouble(f_h);
   FileClose(f_h);

//6.文件的復(fù)制(文件夾和目錄)
   f_h=FileOpen("directory\\abc.txt",FILE_READ|FILE_WRITE|FILE_TXT|FILE_BIN|FILE_SHARE_READ);
   FileWrite(f_h,TimeToString(rates[0].time),DoubleToString(rates[0].open,Digits()));
   FileWrite(f_h,TimeToString(rates[1].time),DoubleToString(rates[1].open,Digits()));
   FileFlush(f_h);
   FileClose(f_h);
   FileCopy("directory\\abc.txt",0,"directory\\dcd.txt",FILE_REWRITE);

//6.1文件夾創(chuàng)建
   FolderCreate("test");
   FolderDelete("test");
   FolderClean("test");

//7.文件搜索遍歷
   string fName;
   int s_h=FileFindFirst("directory\\a*.*",fName);
   if(s_h!=INVALID_HANDLE)
     {
      do
        {
         if(FileIsExist(fName)==true)
           {
            printf(fName+"這是一個文件");
           }
         else
           {
            printf(fName+"這是一個文件夾");
           }
        }
      while(FileFindNext(s_h,fName)==true);
     }
  }
//+------------------------------------------------------------------+

二.圖表操作
1.操作如下圖表


image.png

2.代碼實現(xiàn)

//+------------------------------------------------------------------+
//|                                           operateChartScript.mq5 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

//1.打開制定周期的圖表
   ChartOpen("GBPUSD",PERIOD_H1);
//2.1獲取圖表屬性ChartGetInteger ChartGetDouble ChartGetString
   int cMode=ChartGetInteger(0,CHART_MODE);
   if(cMode==CHART_BARS)Alert("柱狀圖");
   if(cMode==CHART_CANDLES)Alert("蠟燭圖");
   if(cMode==CHART_LINE)Alert("線形圖");


//2.1.1獲取當(dāng)前圖表價格邊界
   double min=ChartGetDouble(0,CHART_PRICE_MIN);
   double max=ChartGetDouble(0,CHART_PRICE_MAX);

   string eaName=ChartGetString(0,CHART_EXPERT_NAME);
   string scriptName=ChartGetString(0,CHART_SCRIPT_NAME);
//2.2設(shè)置圖表屬
   ChartSetInteger(0,CHART_SHOW_ONE_CLICK,true);


//3.遍歷所有窗口,可以關(guān)閉指定類型的貨幣窗口
   long first_chartId=ChartFirst();
   for(int i=0;i<200;i++)
     {
      string symbol=ChartSymbol(first_chartId);
      //3.1 關(guān)閉指定貨幣的窗口
      if(symbol=="EURUSD")
        {
         ChartClose(first_chartId);
        }
      first_chartId=ChartNext(first_chartId);
      if(first_chartId<0)
        {
         break;
        }
     }
//3.1當(dāng)前寬口價值指標(biāo) 
   int ma_h=iMA(Symbol(),0,5,0,0,0);
   ChartIndicatorAdd(0,0,ma_h);
   int bands=iBands(Symbol(),0,20,0,2.0,PRICE_CLOSE);
   ChartIndicatorAdd(0,0,bands);

//3.2遍歷指標(biāo)
   int indicatorsTotal=ChartIndicatorsTotal(0,0);
   for(int i=indicatorsTotal-1;i>=0;i--)
     {
      string indicator_name=ChartIndicatorName(0,0,i);
      //3.3刪除指標(biāo)
      //ChartIndicatorDelete(0,0,indicator_name);
      //3.4獲得指標(biāo)句柄
      int indicator_h=ChartIndicatorGet(0,0,indicator_name);
     }

//4.模板操作
//4.1加載模板
   ChartApplyTemplate(0,"ADX");

//4.2保存當(dāng)前頁面為模板
   ChartSaveTemplate(0,"testTemplate");

//6.屏幕截圖(交易的時候可以截圖留底)
   ChartScreenShot(0,"1.jpg",800,800);

//7.獲取最近操作的錯誤碼
   printf(GetLastError());

  }
//+------------------------------------------------------------------+

2017/5/4
三.通知郵件發(fā)送
1.發(fā)送郵件功能
1.1設(shè)置移動139郵箱想罕,有短信提醒功能(http://mail.10086.cn/

image.png
image.png

1.2發(fā)送郵件即可

   SendMail("郵件標(biāo)題","郵件內(nèi)容");

2.發(fā)送文件到FTP
2.1設(shè)置

image.png

2.2 上傳

SendFTP("testFtp.txt");

3.抓取網(wǎng)頁內(nèi)容
3.1先添加要抓取的頁面

image.png
image.png

4.消息推送到手機(待研究)
4.1設(shè)置

image.png

4.2如下代碼即可

SendNotification("發(fā)送通知到手機");

5.以上完整代碼如下

//+------------------------------------------------------------------+
//|                                          operateNoticeScript.mq5 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//1.發(fā)送郵件
   SendMail("郵件標(biāo)題","郵件內(nèi)容");
//2.上傳文件到ftp
   SendFTP("testFtp.txt");
//3.抓起網(wǎng)頁的內(nèi)容
//3.1上傳一個自定義的web
   SendFTP("web.html");
//3.2抓取網(wǎng)頁內(nèi)容
   string url="https://www.baidu.com";
   char  data[];          // HTTP 信息主體的數(shù)組
   char  result[];      // 包含服務(wù)器反應(yīng)數(shù)據(jù)的數(shù)組
   string  result_headers;  // 服務(wù)器響應(yīng)標(biāo)題

   WebRequest("GET",url,NULL,NULL,2000,data,0,result,result_headers);

   string res=CharArrayToString(result);

//4.發(fā)送通知到手機
   SendNotification("發(fā)送通知到手機");

   int a=0;
  }
//+------------------------------------------------------------------

如果您發(fā)現(xiàn)本文對你有所幫助悠栓,如果您認為其他人也可能受益,請把它分享出去弧呐。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末闸迷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子俘枫,更是在濱河造成了極大的恐慌腥沽,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鸠蚪,死亡現(xiàn)場離奇詭異今阳,居然都是意外死亡,警方通過查閱死者的電腦和手機茅信,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門盾舌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蘸鲸,你說我怎么就攤上這事妖谴。” “怎么了酌摇?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵膝舅,是天一觀的道長。 經(jīng)常有香客問我窑多,道長仍稀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任埂息,我火速辦了婚禮技潘,結(jié)果婚禮上遥巴,老公的妹妹穿的比我還像新娘。我一直安慰自己享幽,他們只是感情好铲掐,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著琉闪,像睡著了一般迹炼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上颠毙,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音砂碉,去河邊找鬼蛀蜜。 笑死,一個胖子當(dāng)著我的面吹牛增蹭,可吹牛的內(nèi)容都是我干的滴某。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼滋迈,長吁一口氣:“原來是場噩夢啊……” “哼霎奢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起饼灿,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤幕侠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碍彭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年坟冲,在試婚紗的時候發(fā)現(xiàn)自己被綠了靠汁。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡皆疹,死狀恐怖疏橄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情略就,我是刑警寧澤捎迫,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站残制,受9級特大地震影響立砸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜初茶,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一颗祝、第九天 我趴在偏房一處隱蔽的房頂上張望浊闪。 院中可真熱鬧,春花似錦螺戳、人聲如沸搁宾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盖腿。三九已至,卻和暖如春损同,著一層夾襖步出監(jiān)牢的瞬間翩腐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工膏燃, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茂卦,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓组哩,卻偏偏與公主長得像等龙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子伶贰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • feisky云計算蛛砰、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 3,815評論 0 5
  • 首頁 資訊 文章 資源 小組 相親 登錄 注冊 首頁 最新文章 IT 職場 前端 后端 移動端 數(shù)據(jù)庫 運維 其他...
    Helen_Cat閱讀 3,843評論 1 10
  • 大人們總說他們走過的路比你長,所以執(zhí)意要你聽他們的安排黍衙∧喑可是呢,他們懂得那么多们豌,經(jīng)驗?zāi)敲簇S富涯捻,地位還沒有一些年輕...
    衡懶閱讀 244評論 0 0
  • 自從上次家訪中斷之后,雖然每天都在看書但是好久都沒有寫讀書筆記了望迎。今天拿起王崧舟老師的《詩意語文》看起來障癌。在...
    狗尾巴草_8270閱讀 297評論 0 0
  • 我一生之中愛過許多人 你是我唯一用力去愛的人 我一生之中走過許多路 翻過許多橋 走過一片草原 穿過一片沙漠 到最后...
    代號1743閱讀 300評論 0 3