MT5入門到精通之十九(獲取最近歷史訂單)

一獲取最近歷史訂單
1.基本概念有三種模式
a.deal模式背蟆,沒有止損止盈,每次開倉蚁吝,平倉都會有歷史記錄,有開倉平倉方向(一般用這個)踪宠。

image.png

b.orders模式,有止損止盈妈嘹,沒有開倉平倉方向


image.png

c.positon模式柳琢,和mt4類似,暫時不用


image.png

2.獲取最近指定貨幣润脸,指定方向柬脸,平倉的歷史訂單消息 用deals模式(getLastDealsHistory)
【注意:通過先獲取deals訂單,里面的order_id,再來獲取該訂單的止損止盈毙驯,獲取不成功原因倒堕。平倉的訂單的order_id沒有止損止盈,開倉的deal訂單的order_id爆价,才有】

//+------------------------------------------------------------------+
//|                                            testHistoryScript.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.第一步獲取歷史數(shù)據(jù)范圍(一般都要寫)
   HistorySelect(0,TimeCurrent());

//2.交易類型歷史 deal
   dealsHistory();

//3.訂單類型類是 ticket (缺點:不知道是開倉還是平倉)
   ordersHistory();


//4.獲取最近的交易類型歷史訂單
   string symbol="GBPUSD";
   ENUM_DEAL_TYPE type=DEAL_TYPE_BUY;
   int magic=170507;
   double deal_price;
   datetime deal_time;
   double lots;
   getLastDealsHistory(symbol,type,deal_price,deal_time,lots,magic);

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void dealsHistory()
  {
   HistorySelect(0,TimeCurrent());
//2.1 總量
   int dealsTotal=HistoryDealsTotal();
   for(int i=0;i<dealsTotal;i++)
     {
      //2.2獲取訂單好
      int deal_ticket=HistoryDealGetTicket(i);
      if(deal_ticket>0)
        {
         datetime deal_time=HistoryDealGetInteger(deal_ticket,DEAL_TIME);
         //2.3 order模式下的id
         int order_ticket=HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
         string symbol=HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
         int deal_type=HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
         int direction=HistoryDealGetInteger(deal_ticket,DEAL_ENTRY);
         double volume=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
         double price=HistoryDealGetDouble(deal_ticket,DEAL_PRICE);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void ordersHistory()
  {
   HistorySelect(0,TimeCurrent());
   //3.1 總量
   int ordersTotal=HistoryOrdersTotal();
   for(int i=0;i<ordersTotal;i++)
     {
      int order_ticket=HistoryOrderGetTicket(i);
      if(order_ticket>0)
        {
         datetime order_time=HistoryOrderGetInteger(order_ticket,ORDER_TIME_SETUP);
         string symbol=HistoryOrderGetString(order_ticket,ORDER_SYMBOL);
         int order_type=HistoryOrderGetInteger(order_ticket,ORDER_TYPE);
         double volume=HistoryOrderGetDouble(order_ticket,ORDER_VOLUME_INITIAL);
         double price=HistoryOrderGetDouble(order_ticket,ORDER_PRICE_OPEN);
         double stopLoss=HistoryOrderGetDouble(order_ticket,ORDER_SL);
         double takeProfit=HistoryOrderGetDouble(order_ticket,ORDER_TP);
        }
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void getLastDealsHistory(string symbol,ENUM_DEAL_TYPE type,double &deal_price,datetime &deal_time,double &lots,int magic=0)
  {
   HistorySelect(0,TimeCurrent());
   int dealsTotal=HistoryDealsTotal();
   for(int i=dealsTotal-1;i>=0;i--)
     {
      int deal_ticket=HistoryDealGetTicket(i);
      if(deal_ticket>0)
        {
        //4.1平倉單out
         if(HistoryDealGetInteger(deal_ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT && HistoryDealGetString(deal_ticket,DEAL_SYMBOL)==symbol && HistoryDealGetInteger(deal_ticket,DEAL_TYPE)==type)
           {
            if(magic==0)
              {
               deal_time=HistoryDealGetInteger(deal_ticket,DEAL_TIME);
               lots=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
               deal_price=HistoryDealGetDouble(deal_ticket,DEAL_PRICE);
               break;
              }
            else
              {
               if(HistoryDealGetInteger(deal_ticket,DEAL_MAGIC)==magic)
                 {
                  deal_time=HistoryDealGetInteger(deal_ticket,DEAL_TIME);
                  lots=HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
                  deal_price=HistoryDealGetDouble(deal_ticket,DEAL_PRICE);
                  break;
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+

如果您發(fā)現(xiàn)本文對你有所幫助垦巴,如果您認(rèn)為其他人也可能受益,請把它分享出去铭段。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骤宣,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子序愚,更是在濱河造成了極大的恐慌憔披,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爸吮,死亡現(xiàn)場離奇詭異芬膝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)形娇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門锰霜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人桐早,你說我怎么就攤上這事锈遥∪沂拢” “怎么了?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵所灸,是天一觀的道長。 經(jīng)常有香客問我炫七,道長爬立,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任万哪,我火速辦了婚禮侠驯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘奕巍。我一直安慰自己吟策,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布的止。 她就那樣靜靜地躺著檩坚,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诅福。 梳的紋絲不亂的頭發(fā)上匾委,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天,我揣著相機(jī)與錄音氓润,去河邊找鬼赂乐。 笑死,一個胖子當(dāng)著我的面吹牛咖气,可吹牛的內(nèi)容都是我干的挨措。 我是一名探鬼主播,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼崩溪,長吁一口氣:“原來是場噩夢啊……” “哼浅役!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起悯舟,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤担租,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后抵怎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奋救,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年反惕,在試婚紗的時候發(fā)現(xiàn)自己被綠了尝艘。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡姿染,死狀恐怖背亥,靈堂內(nèi)的尸體忽然破棺而出秒际,到底是詐尸還是另有隱情,我是刑警寧澤狡汉,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布娄徊,位于F島的核電站,受9級特大地震影響盾戴,放射性物質(zhì)發(fā)生泄漏寄锐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一尖啡、第九天 我趴在偏房一處隱蔽的房頂上張望橄仆。 院中可真熱鬧,春花似錦衅斩、人聲如沸盆顾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽您宪。三九已至,卻和暖如春具温,著一層夾襖步出監(jiān)牢的瞬間蚕涤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工铣猩, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留揖铜,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓达皿,卻偏偏與公主長得像天吓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子峦椰,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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