手机版

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轴下滑像素值

 

WindowOnDropped() – 获取窗口索引

int WindowOnDropped()

返回应用了智能交易、自定义指标和脚本的窗口索引。只有智能交易、自定义指标或脚本被鼠标拖到窗口上,这个值才是有效的。

注:对于那些被初始化函数调用的自定义指标(通过init()函数调用),此索引没有被定义。

返回的索引就是运行自定义指标的窗口编号(0一图表主菜单,指标子窗口从1开始编号)。在自定义指标运行期间,它可以自己创建新的子窗口,并且这个子窗口的编号和那些真正用鼠标把指标拖过去应用的窗口是不同的。

参见 WindowXOnDropped(),  WindowYOnDropped()

示例:

if(WindowOnDropped()!=0)  {   Print("指标'MyIndicator'必须应用到主图表窗口!");   return(false);  }

WindowPriceMax() – 获取窗口纵坐标刻度最大值

double WindowPriceMax(void index)

返回当前图表指定的子窗口纵坐标刻度的最大值(0-图表主窗口,指标子窗口编号从1开始)。如果子窗口索引没有指定,将返回主图表窗口价格刻度的最大值。

参见WindowPriceMin(), WindowFirstVisibleBar(), WindowBarsPerChart()。

参数:

index - 图表子窗口索引(0-图表主窗口)。

示例:

double   top=WindowPriceMax();double   bottom=WindowPriceMin();datetime left=Time[WindowFirstVisibleBar()];int      right_bound=WindowFirstVisibleBar()-WindowBarsPerChart();if(right_bound<0) right_bound=0;datetime right=Time[right_bound]+Period()*60;//----ObjectCreate("Padding_rect",OBJ_RECTANGLE,0,left,top,right,bottom);ObjectSet("Padding_rect",OBJPROP_BACK,true);ObjectSet("Padding_rect",OBJPROP_COLOR,Blue);WindowRedraw();

WindowPriceMin() – 获取窗口纵坐标刻度最小值

double WindowPriceMin(void index)

返回当前图表指定的子窗口纵坐标刻度的最小值(0-图表主窗口,指标子窗口编号从1开始)。如果子窗口索引没有指定,将返回主图表窗口价格刻度的最小值。

参见 WindowPriceMax(), WindowFirstVisibleBar(), WindowBarsPerChart()。

参数:

index - 图表子窗口索引(0-图表主窗口)。

示例:

double   top=WindowPriceMax();double   bottom=WindowPriceMin();datetime left=Time[WindowFirstVisibleBar()];int      right_bound=WindowFirstVisibleBar()-WindowBarsPerChart();if(right_bound<0) right_bound=0;datetime right=Time[right_bound]+Period()*60;//----ObjectCreate("Padding_rect",OBJ_RECTANGLE,0,left,top,right,bottom);ObjectSet("Padding_rect",OBJPROP_BACK,true);ObjectSet("Padding_rect",OBJPROP_COLOR,Blue);WindowRedraw();

WindowPriceOnDropped() – 获取下滑价格

double WindowPriceOnDropped()

返回图表点的智能交易或脚本价格下滑价格。只有智能交易、自定义指标或脚本被鼠标拖到窗口上,这个值才是有效的。

注:对于自定义指标,这个值是不确定的。

示例:

  double   drop_price=WindowPriceOnDropped();  datetime drop_time=WindowTimeOnDropped();  //---- 可能未指定 (zero)  if(drop_time>0)    {     ObjectCreate("价格下滑水平", OBJ_HLINE, 0, drop_price);     ObjectCreate("下滑时间", OBJ_VLINE, 0, drop_time);    }

WindowRedraw() – 重绘当前图表

void WindowRedraw()

强制重画当前图表。在货币对属性改变之后,通常会应用本函数。

示例:

  //---- 设置货币对新属性  ObjectMove(object_name1, 0, Time[index], price);  ObjectSet(object_name1, OBJPROP_ANGLE, angle*2);  ObjectSet(object_name1, OBJPROP_FONTSIZE, fontsize);  ObjectSet(line_name, OBJPROP_TIME2, time2);  ObjectSet(line_name, OBJPROP_ANGLE, line_angle);  //---- 现在重画  WindowRedraw();

WindowScreenShot() – 窗口图表快照

bool WindowScreenShot(string filename, int size_x,                       int size_y, void start_bar,                       void chart_scale, void chart_mode)

以GIF文件形式保存当前图表图像。如果失败,返回FALSE,想要得到详细的错误信息,请调用 GetLastError() 函数。

屏幕快照保存在terminal_dir/experts/files (terminal_dir/tester/files 测试情况下)目录或其子目录中。

参数:

filename    - 保存屏幕快照的文件名称。 size_x      - 屏幕宽度(像素)。 size_y      - 屏幕高度(像素)。 start_bar   - 屏幕快照中第一个可见柱子。如果价格值设定为0,当前第个可见柱子将被除去。如果价格值未设置或为负值,图表尾部图像将会生成。 chart_scale - 屏幕快照图表的水平刻度。范围可以从0到5,如果没有值或设为负值,将直接使用当前图表刻度。 chart_mode  - 图表显示模式。可以采用下列值:              CHART_BAR   (以柱体形式显示)              CHART_CANDLE (以K线形式显示)              CHART_LINE   (以收盘价线显示)。                如果没有值或设为负值,图表会以当前模式显示。 

示例:

  int lasterror=0;  //----测试模式下平仓  if(IsTesting() && ExtTradesCounter<TradesTotal())    {     //---- 使用 WindowScreenShot 进行检测     if(!WindowScreenShot("shots//tester"+ExtShotsCounter+".gif",640,480))        lasterror=GetLastError();     else ExtShotsCounter++;     ExtTradesCounter=TradesTotal();    }

WindowTimeOnDropped() – 价格下滑时间

datetime WindowTimeOnDropped()

返回图表点的智能交易或脚本价格下滑时间部分。只有智能交易、自定义指标或脚本被鼠标拖到窗口上,这个值才是有效的。

注:对于自定义指标,这个值是不确定的。

示例:

  double   drop_price=WindowPriceOnDropped();  datetime drop_time=WindowTimeOnDropped();  //---- 可能未指定 (zero)  if(drop_time>0)    {     ObjectCreate("Dropped price line", OBJ_HLINE, 0, drop_price);     ObjectCreate("Dropped time line", OBJ_VLINE, 0, drop_time);    }

WindowsTotal() – 获取指标窗口数

int WindowsTotal()

返回在图表中指标窗口数(包括主图表)。

示例:

Print("窗口数 = ", WindowsTotal()); 

WindowXOnDropped() – x轴下滑像素值

int WindowXOnDropped()

在图表窗口的客户区域点,应用了智能交易或脚本,当鼠标拖动时,返回X轴上的下滑点像素值。当以映像点x轴智能交易或脚本下滑时,返回价格值。

只有在智能交易或脚本应用鼠标技术(”拖曳”)的情况下,这个值是准确的。

参见WindowYOnDropped(), WindowOnDropped()

示例:

Print("智能交易下滑点 x=",WindowXOnDropped()," y=",WindowYOnDropped());

WindowYOnDropped() – y轴下滑像素值

int WindowYOnDropped()

在图表窗口的客户区域点,应用了智能交易或脚本,当鼠标拖动时,返回Y轴上的下滑点像素值。当以映像点Y轴智能交易或脚本下滑时,返回价格值。

只有在智能交易或脚本应用鼠标技术(”拖曳”)的情况下,这个值是准确的。

参见 WindowXOnDropped(), WindowPriceOnDropped(), WindowOnDropped()

示例:

Print("智能交易下滑点 x=",WindowXOnDropped()," y=",WindowYOnDropped());
外_汇_邦 WaiHuiBang.com
本文标题:MQL4窗口数据处理函数(二) - MT4平台MQL4编程学习
本文地址:https://www.waihuibang.com/fxschool/autotrading/mql4/49026.html

相关文章

  • 在MT4 build600+ 中使用509编辑器的方法

    MT4升级到600版本以后,语言系统完全是MQL5架构了,面对新的编辑器和指令系统,许多人一时会感觉不习惯,特别是暂时对中文的支持不好,如果能用老版本的编辑器就好了。 经简单尝试,我是这么来解决的。将509版编辑器及编译程...

    MQL4编程学习
  • EA智能交易外汇的优势

    在金融交易市场,外汇越来越被人所关注,他的稳定,低风险高回报及交易时间和买卖的自由度赢得了广大投资者的亲睐,然后个人自主交易即手动交易即使是在外汇市场也是存在很大的弊端,目前前华尔街60%以上的交易都是由程序化...

    MQL4编程学习
  • 关于金融智能(EA)交易的使用

      我们经过编写评测、逆向分析、反编译千款智能交易EA后,发现评测及使用金融智能EA需要注意以下几点:   EA的视觉偏差:   人体通过视觉所观测的事物是立体化、多样化的,能达到“所见即所得”的状态,而计算机语言...

    MQL4编程学习
  • MQL4数学和三角函数(一)

    MathAbs() &#8211; 求绝对值 MathArccos() &#8211; 求反余弦 MathArcsin() &#8211; 求反正弦 MathArctan() &#8211; 求反正切 MathCeil() &#8211; 取最小整数 MathCos() &#8211; 求余弦 MathExp() &#8211;...

    MQL4编程学习
  • 自定义函数 平所有持仓单(含挂单)

    void CloseAllOrder()//平掉所有仓位包括挂单 { int tick[200]; PingFlag=0; int j=0; for(int i=0;i<OrdersTotal();i++) { OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if(OrderSymbo...

    MQL4编程学习
你可能感兴趣