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

  • 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);
  }
Back to Top

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();
Back to Top

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();
Back to Top

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);
    }
Back to Top

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();
Back to Top

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();
    }
Back to Top

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);
    }
Back to Top

WindowsTotal() – 获取指标窗口数

int WindowsTotal()

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

示例:

Print("窗口数 = ", WindowsTotal()); 
Back to Top

WindowXOnDropped() – x轴下滑像素值

int WindowXOnDropped()

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

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

参见WindowYOnDropped(), WindowOnDropped()

示例:

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

WindowYOnDropped() – y轴下滑像素值

int WindowYOnDropped()

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

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

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

示例:

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

 

 


MyFxtop迈投-靠谱的外汇跟单社区,免费跟随高手做交易!

 

免责声明:本文系转载自网络,如有侵犯,请联系我们立即删除,另:本文仅代表作者个人观点,与迈投财经无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。

風險提示

MyFxtops邁投所列信息僅供參考,不構成投資建議,也不代表任何形式的推薦或者誘導行為。MyFxtops邁投非外匯經紀商,不接觸妳的任何資金。 MYFXTOPS不保證客戶盈利,不承擔任何責任。從事外彙和差價合約等金融產品的槓桿交易具有高風險,損失有可能超過本金,請量力而行,入市前需充分了解潛在的風險。過去的交易成績並不代表以後的交易成績。依據各地區法律法規,MyFxtops邁投不向中國大陸、美國、加拿大、朝鮮居民提供服務。

邁投公眾號

聯繫我們

客服QQ:981617007
Email: service@myfxtop.com

MyFxtops 邁投