智能交易网,程序化交易,自动交易,量化交易

 找回密码
 注册

QQ登录

只需一步,快速开始

手机短信登录

参加MT4智能交易编程培训,7课免费在线试听MT4指标,EA代写,或EA指标加密账户远程验证服务 最完善商业MT4跟单系统(0.1秒极速响应不漏单)
为论坛做贡献有奖学金,奖学金可直接换真钱 扫本站微信公 众号部分视频课程指标EA免费得智能交易网MT4操盘神器,扫公众号免费得
查看: 994|回复: 2

無法獲取指定magic歷史訂單的獲利

[复制链接]
发表于 2018-3-15 20:21:47 | 显示全部楼层 |阅读模式
本帖最后由 waynelin923 于 2018-3-15 20:25 编辑

老師您好
我想要獲取歷史訂單中最近的一張指定magic的獲利,但遇到以下問題,無法完成,
您在41講有講解遍歷歷史單或取最近一張歷史單信息的課程,
我依著一起敲代碼實驗,但是我發現從Deal歷史模式下,有profit的單子只有趨向為out的單子,但趨向為out的單子無法獲得magic(如下圖)
只有趨向為in的單子能夠獲得magic,但卻無法得知獲利

3

3


Image 006.png

1

1


2

2


想請問同學或老師有沒有什麼方法能夠做到?



回复

使用道具 举报

发表于 2018-3-18 13:23:32 | 显示全部楼层
确实啊,MT4方便的要死,MT5麻烦的要死,这种反人性的设计。
你试试,通过out单子,找到他in单子的信息
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-19 11:33:10 | 显示全部楼层
本帖最后由 waynelin923 于 2018-3-19 14:51 编辑

謝謝老師

double gethistoryProfit(int magic,int type)
{
   //初始化
   int OrderMagic=0;
   double profit=0;
   int OrderID=0;
   
   HistorySelect(0,TimeCurrent());
   int dealstotal=HistoryDealsTotal();
   for(int i=dealstotal-1;i>=0;i--)
   {
      ulong dealticket=HistoryDealGetTicket(i);
      if(dealticket>0)
      {
         if(HistoryDealGetInteger(dealticket,DEAL_ENTRY)==DEAL_ENTRY_OUT && HistoryDealGetInteger(dealticket,DEAL_TYPE)==type)
         {
            profit=HistoryDealGetDouble(dealticket,DEAL_PROFIT);
            OrderID=HistoryDealGetInteger(dealticket,DEAL_POSITION_ID);      
            OrderMagic=HistoryOrderGetInteger(OrderID,ORDER_MAGIC);  
            if(OrderMagic==magic) break;  //找到Magic後跳出循環
         }   
      }
           
   }
   
   return(profit);
}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|sitemap|智能交易网,程序化交易,自动交易,量化交易 ( 苏ICP备08108698号,苏州智德金网络科技股份有限公司版权所有 )

GMT+8, 2019-11-13 13:27 , Processed in 0.078571 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表