手机版

MQL4窗口数据处理函数(一)

阅读 :
外_汇_邦 WaiHuiBang.com
  • HideTestIndicators() – 隐藏测试指标
  • Period() – 获取图表时段
  • RefreshRates() – 刷新数据
  • Symbol() – 获取图表货币对名称
  • WindowBarsPerChart() – 获取图表中柱体总数
  • WindowExpertName() – 获取图表上程序名称
  • WindowFind() – 搜索图表上指标
  • WindowFirstVisibleBar() – 获取图表上第一个显示的柱体
  • WindowHandle() – 获取图表句柄
  • WindowIsVisible() – 图表是否可见
  • WindowOnDropped() – 获取窗口索引
  • WindowPriceMax() – 获取窗口纵坐标刻度最大值
  • WindowPriceMin() – 获取窗口纵坐标刻度最小值
  • WindowPriceOnDropped() – 获取下滑价格
  • WindowRedraw() – 重绘当前图表
  • WindowScreenShot() – 窗口图表快照
  • WindowTimeOnDropped() – 价格下滑时间
  • WindowsTotal() – 获取指标窗口数
  • WindowXOnDropped() – x轴下滑像素值
  • WindowYOnDropped() – y轴下滑像素值

 

HideTestIndicators() – 隐藏测试指标

void HideTestIndicators(bool hide)

本函数设置一个供智能交易调用的隐藏指标标志。在智能交易测试完成,打开了相应的图表,标出过的指标将不会出现在测试图表中。每个调用过的指标将首先用当前隐藏的标志标记。

特别要注意到,只有那些直接从智能交易调用的指标才可以在测试图表中画出。

参数:

hide - 如果需要隐藏指标为TRUE,否则为FALSE。

示例:

   HideTestIndicators(true);   MaCurrent=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,0);   MaPrevious=iMA(NULL,0,56,0,MODE_EMA,PRICE_CLOSE,1);   HideTestIndicators(false);

Period() – 获取图表时段

int Period()

返回当前窗口在用时段(图表周期)的分钟总数。

示例:

  Print("时间周期 ", Period());

RefreshRates() – 刷新数据

bool RefreshRates()

刷新预定义变量和序列数组中数据。当智能交易计算时间过长时,本函数可以自动更新数据。如果数据被更新,返回TRUE,否则,返回FALSE。数据不被更新的唯一原因就是他们是客户端的当前数据。

智能交易和脚本只处理它们自己的历史数据的副本。在智能交易和脚本第一次启动的时候,当前货币对数据就已经被复制过。每次钊能交易或脚本启动时,会更新最初得到的副本。在智能交易和脚本运行时,可能会收到一个或多个新的步进数据,现有数据可能会过期。

示例:

   int ticket;   while(true)     {      ticket=OrderSend(Symbol(),OP_BUY,1.0,Ask,3,0,0,"expert comment",255,0,CLR_NONE);      if(ticket<=0)        {         int error=GetLastError();         //---- 资金不足         if(error==134) break;         //---- 等待 10 秒钟         Sleep(10000);         //---- 刷新价格数据         RefreshRates();         break;        }      else        {         OrderSelect(ticket,SELECT_BY_TICKET);         OrderPrint();         break;        }     }

Symbol() – 获取图表货币对名称

string Symbol()

返回当前窗口图表货币对名称。

示例:

   int total=OrdersTotal();   for(int pos=0;pos<total;pos++)     {      // 因为此时可能平仓或删除定单,检测选择结果!      if(OrderSelect(pos, SELECT_BY_POS)==false) continue;      if(OrderType()>OP_SELL || OrderSymbol()!=Symbol()) continue;      // 执行过程...     }

WindowBarsPerChart() – 获取图表中柱体总数

int WindowBarsPerChart()

返回当前窗口图表可见柱体(K线)总数。

示例:

// 对于可见柱工作。int bars_count=WindowBarsPerChart();int bar=WindowFirstVisibleBar();for(int i=0; i<bars_count; i++,bar--)  {   // ...  }

WindowExpertName() – 获取图表上程序名称

string WindowExpertName()

返回智能交易、脚本、自定义指标和库的名称,这取决于MQL4程序的调用。

示例:

string name=WindowExpertName();GlobalVariablesDeleteAll(name);

WindowFind() – 搜索图表上指标

int WindowFind(string name)

如果发现有名称的指标,本函数返回包含指定指标的窗口索引,否则,返回-1。

参数:

name - 指标名称。

示例:

int win_idx=WindowFind("MACD(12,26,9)");

WindowFirstVisibleBar() – 获取图表上第一个显示的柱体

int WindowFirstVisibleBar()

本函数在当前图表窗口中返回第1个显示的柱体(K线)。必须考虑到价格柱子的逆序编号,即从最后个价格到第个价格排列。在价格数组中当前柱子是最新的,索引为0,最老的柱子索引为 Bars-1。如果第一个显示的柱子编号为2或更高,但少于图表中能显示的柱子总数,这就意味着图表窗口没有完全填满,离窗口侧边还有空白。

示例:

   // 可见柱的工作   int bars_count=WindowBarsPerChart();   int bar=WindowFirstVisibleBar();   for(int i=0; i<bars_count; i++,bar--)     {      // ...     }

WindowHandle() – 获取图表句柄

int WindowHandle(string symbol, int timeframe)

返回包含特定图表的系统窗口句柄。如果图表在函数调用时还没有打开,返回为0。

参数:

symbol - 货币对名称。timeframe - 时段。可以是任意的时段枚举值,0意味着使用当前图表中时段。

示例:

  int win_handle=WindowHandle("USDX",PERIOD_H1);  if(win_handle!=0)    Print("发现带有USDX,H1 的窗口。数组将会被立即复制。");

WindowIsVisible() – 图表是否可见

bool WindowIsVisible(int index)

如果图表子窗口可见,返回TRUE,否则,返回FALSE。由于指标的可视属性可以放置在图表子窗口里,图表子窗口能被隐藏。

参数:

index - 图表子窗口索引。

示例:

  int win_handle=WindowHandle("USDX",PERIOD_H1);  if(win_handle!=0)    Print("发现带有USDX,H1 的窗口。数组将会被立即复制。");
外_汇_邦 WaiHuiBang.com
本文标题:MQL4窗口数据处理函数(一) - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49027.html

相关文章

  • MT4软件中的EA历史测试报告中的最大亏损是真实的最大亏损吗
    MT4软件中的EA历史测试报告中的最大亏损是真实的最大亏损吗

    现在很多交易外汇的人或者资管团队的人都在网络上,朋友圈晒自己的EA测试报告或者实盘交易账号交易历史记录生成的报告,和客户强调我的账户浮亏10%左右,盈利稳定等优点,但是报告中的最大亏损是真实的账户最大亏损吗?答案是...

    MQL4编程学习
  • 几种不同类型外汇EA运行原理分析

    关于EA,绝大部分人都是为了快速赚很多钱,希望通过EA达到自动赚钱的目的。不可否认,好的EA能够赚到或多或少的利润,但只你必须非常熟悉自己购买的EA的使用规则,毕竟这是开发者自己交易策略的EA化体现。试想,一个不明所以...

    MQL4编程学习
  • EA编程教程大全之常用函数

    对于每个执行的MQL4程序,一定数量的变量设定可以轻松应对图表中的价格状态:智能交易,脚本或者是客户指标。. 资料应用到可变量的模型中来。 可以由预定义的变量分开处理。 这些数据会在开启后应用 RefreshRate...

    MQL4编程学习
  • MQL4技术指标相关函数(二)

    MQL4不仅可以计算当前图表中任何指标,还可以计算任何有效的货币对/图表时段的数据。如果请求数据(货币对名称/图表时段不同于当前图表)来自其他图表,出现这种情况如果相应的图表没有在客户端内打开,数据需要...

    MQL4编程学习
  • 为MT4 EA设置启动密码的方法与MQL4代码

    预定义一个可设置的密码变量(PassWord),注意初始值必须为空。当用户加载EA时,如果输入的密码不正确,将会弹出警告窗口显示“密码不正确!”,你可以在条件语句中设置内定的密码,例如“1234myEApassword”。这段密码认证代码通常放置在iMain()最前面。...

    MQL4编程学习
你可能感兴趣