图表属性

ENUM_CHART_PROPERTY 计数标识符与使用工作图表函数参量相同。在类型属性列里的缩写r/o表示只读,不能更改,当访问某一功能时,指定额外参数修饰语是有必要的,该修饰语提供了图表窗口的数量,0是主窗口。 “属性类型”栏中的w/o缩写意味着该属性只能写入,不能接收。当访问某个属性时,必须指定额外的参数修饰符,这用来显示图表子窗口的数量。 0 意味着主窗口。

定义图表属性的函数事实上就是用来将变更命令发送给图表。如果这些函数成功执行,常见的图表事件队列就会包含该命令。当处理图表事件队列时,这些更改就会实施到图表。

因此,不要期待调用这些函数后,图表马上的视觉升级。通常,图表会在更改事件后,通过程序端自动升级 - 有新报价进来,重新调整窗口大小等等。使用ChartRedraw() 函数以便有力地更新图表。

函数ChartSetInteger()ChartGetInteger()

ENUM_CHART_PROPERTY_INTEGER

ID 描述 性质类型
CHART_SHOW 绘制价格图表。false情况下,不可绘制价格图表的任何属性并删除首行图表边界,包括时间和价格范围,快速导航条,日历事件标签,交易标签,指标和柱形图提示,指标子窗口,交易量直方图等等。 禁用绘制是使用图形资源创建自定义程序界面的理想方案。 无论CHART_SHOW属性值多少,都会始终绘制图形对象 bool
CHART_IS_OBJECT 识别“图表”(OBJ_CHART) 对象 – 图形对象返回true。真实图表返回false bool   r/o
CHART_BRING_TO_TOP 显示其他图表之上的图表 bool  
CHART_CONTEXT_MENU 启用/禁用右击访问快捷菜单。 当CHART_CONTEXT_MENU=false时,仅禁用图表快捷菜单。图表上对象的快捷菜单仍可使用。 bool  (默认为true)
CHART_CROSSHAIR_TOOL 启用/禁用中间单击访问十字光标工具。 bool  (默认为true)
CHART_MOUSE_SCROLL 使用鼠标左键水平滚动图表。如果以下属性的值设为true也可以垂直滚动:CHART_SCALEFIX, CHART_SCALEFIX_11 or CHART_SCALE_PT_PER_BAR 当CHART_MOUSE_SCROLL=false时,不可使用鼠标滚轮滚动图表。 bool
CHART_EVENT_MOUSE_WHEEL 发送鼠标滚轮事件的消息(CHARTEVENT_MOUSE_WHEEL) 到图表上的所有mql5程序 bool  (默认为true)
CHART_EVENT_MOUSE_MOVE 发送鼠标移动和鼠标点击事件的通知 (CHARTEVENT_MOUSE_MOVE) 到图表上的所有mql5程序 bool
CHART_EVENT_OBJECT_CREATE 发送创建新对象的事件通知 (CHARTEVENT_OBJECT_CREATE) 到图表上的所有mql5程序 bool
CHART_EVENT_OBJECT_DELETE 发送删除对象的事件通知 (CHARTEVENT_OBJECT_DELETE) 到图表上的所有mql5程序 bool
CHART_MODE 图表类型(蜡烛台、字节或线) enum     ENUM_CHART_MODE
CHART_FOREGROUND 背景的价格图表 bool
CHART_SHIFT 左边缩进价格图表 bool
CHART_AUTOSCROLL 自动移向图表的右边框 bool
CHART_KEYBOARD_CONTROL 可以使用键盘管理图表("Home","End","PageUp","+","-","up arrow"等)。设置为 false 的CHART_KEYBOARD_CONTROL在保留接收按下OnChartEvent()函数事件按键的能力时,禁止图表滚动和缩放。 bool
CHART_QUICK_NAVIGATION 允许图表拦截空格键和回车键来激活快速导航栏。双击鼠标或按下空格/回车键后,快速导航栏自动出现在图表底部。这可以使您快速更改交易品种,时间周期和第一可视栏日期。 bool
CHART_SCALE 测量 int        从0到5
CHART_SCALEFIX 固定标盘模式 bool
CHART_SCALEFIX_11 测量方式1:1 bool
CHART_SCALE_PT_PER_BAR 每字节指定相关测量 bool
CHART_SHOW_TICKER 在左上角显示交易品种报价行情。将CHART_SHOW_TICKER设置为'false'也会将CHART_SHOW_OHLC设置为'false'并禁用OHLC bool
CHART_SHOW_OHLC 在左上角显示OHLC值。将CHART_SHOW_OHLC设置为'true'也会将CHART_SHOW_TICKER设置为'true'并启用报价行情 bool
CHART_SHOW_BID_LINE 在图表水平线上显示出价值 bool
CHART_SHOW_ASK_LINE 在图表水平线上显示要价值 bool
CHART_SHOW_LAST_LINE 在图表水平线上显示最终值 bool
CHART_SHOW_PERIOD_SEP 在相邻周期显示垂直分离器 bool
CHART_SHOW_GRID 在图表中显示网格 bool
CHART_SHOW_VOLUMES 在图表中显示成交量 enum     ENUM_CHART_VOLUME_MODE
CHART_SHOW_OBJECT_DESCR 显示对象的文本描述 (不可用于所有对象) bool
CHART_SHOW_TRADE_HISTORY 在图表上以进/出箭头的形式显示交易历史中的交易。参见平台设置中“显示交易历史”选项说明。 bool
CHART_VISIBLE_BARS 图表上显示的字节数量 int r/o
CHART_WINDOWS_TOTAL 图表窗口总数,包括指标预览窗口 int r/o
CHART_WINDOW_IS_VISIBLE 预览窗口可见性 bool r/o   修饰符 - 子窗口号
CHART_WINDOW_HANDLE 处理图表窗口(HWND) int r/o
CHART_WINDOW_YDISTANCE 指标子窗口的上帧与主图表窗口的上帧之间的距离,沿着Y轴垂直,以像素为单位。在鼠标事件情况下,根据图表主窗口的坐标传递光标坐标,而将指标子窗口的图形对象坐标设置相对于子窗口的左上角。 需要该值是为了将主图表的绝对坐标转换为子窗口的本地坐标,以便图形对象的正确工作,该坐标设置位置相对于子窗口帧的左上角。 int r/o   修饰符 - 子窗口号
CHART_FIRST_VISIBLE_BAR 图表中第一可见字节字符。字节索引同于时序列 int r/o
CHART_WIDTH_IN_BARS 以字节转发图表 int r/o
CHART_WIDTH_IN_PIXELS 像素转发图表 int r/o
CHART_HEIGHT_IN_PIXELS 图表像素高度 int     修饰符 - 子窗口号
CHART_COLOR_BACKGROUND 图表背景颜色 color
CHART_COLOR_FOREGROUND 轴线、缩放和OHLC线的颜色 color
CHART_COLOR_GRID 网格颜色 color
CHART_COLOR_VOLUME 成交量颜色和开仓水平 color
CHART_COLOR_CHART_UP 上升字节、阴影和大型烛台整体边界的颜色 color
CHART_COLOR_CHART_DOWN 下降字节、阴影和支撑烛台的颜色 color
CHART_COLOR_CHART_LINE 折线图颜色和日语烛台躲闪颜色 color
CHART_COLOR_CANDLE_BULL 大型烛台主体颜色 color
CHART_COLOR_CANDLE_BEAR 承受烛台主体颜色 color
CHART_COLOR_BID 出价水平颜色 color
CHART_COLOR_ASK 要价水平颜色 color
CHART_COLOR_LAST 最后执行交易价格水平线颜色(Last) color
CHART_COLOR_STOP_LEVEL 停止订购水平颜色(斩仓和获利) color
CHART_SHOW_TRADE_LEVELS 在图表中显示交易水平(开仓水平、斩仓、获利和代办订单) bool
CHART_DRAG_TRADE_LEVELS 用鼠标在图表上拖拽交易水平的权限。拖拽模式默认启用(true 值) bool
CHART_SHOW_DATE_SCALE 显示图表的时间比例 bool
CHART_SHOW_PRICE_SCALE 显示图表的价格比例 bool
CHART_SHOW_ONE_CLICK 显示 "单击交易"面板在图表上 bool
CHART_IS_MAXIMIZED 图表窗口最大化 bool  r/o
CHART_IS_MINIMIZED 图表窗口最小化 bool  r/o
CHART_IS_DOCKED 图表窗口靠边。如果设置为false,图表可能被拖拽到程序端区域以外 bool
CHART_FLOAT_LEFT 相对于虚拟屏幕的没有靠边的图表窗口的左坐标 int
CHART_FLOAT_TOP 相对于虚拟屏幕的没有靠边的图表窗口的顶部坐标 int
CHART_FLOAT_RIGHT 相对于虚拟屏幕的没有靠边的图表窗口的右坐标 int
CHART_FLOAT_BOTTOM 相对于虚拟屏幕的没有靠边的图表窗口的底部坐标 int

函数 ChartSetDouble()ChartGetDouble()

ENUM_CHART_PROPERTY_DOUBLE

ID 描述 性质类型
CHART_SHIFT_SIZE 大小在右边百分比边界从零字节缩进 double (10%-50%)
CHART_FIXED_POSITION 图表以百分比定位左边界的位置。在水平时间轴用小的灰白三角形标记定位的图表。只有在禁止进入订单号时图表自动滚到右侧它才会显示 (见 CHART_AUTOSCROLL property)。放大缩小时,定位的柱保留原位。 双精度
CHART_FIXED_MAX 固定图表最大值 双精度
CHART_FIXED_MIN 固定图表最小值 双精度
CHART_POINTS_PER_BAR 测量相关的每个字节 双精度
CHART_PRICE_MIN 图表最小值 double r/o   修饰符 - 子窗口号
CHART_PRICE_MAX 图表最大值 double r/o   修饰符 - 子窗口号

ChartSetString()ChartGetString() 函数

ENUM_CHART_PROPERTY_STRING

ID 描述 性质类型
CHART_COMMENT 图表中的评论文本 string
CHART_EXPERT_NAME 在指定chart_id 图表上运行的EA交易的名称 string r/o
CHART_SCRIPT_NAME 在指定chart_id 图表上运行的脚本名称 string r/o

示例:

   int chartMode=ChartGetInteger(0,CHART_MODE);

   switch(chartMode)

     {

      case(CHART_BARS):    Print("CHART_BARS");   break;

      case(CHART_CANDLES): Print("CHART_CANDLES");break;

      default:Print("CHART_LINE");

     }

   bool shifted=ChartGetInteger(0,CHART_SHIFT);

   if(shifted) Print("CHART_SHIFT = true");

   else Print("CHART_SHIFT = false");

   bool autoscroll=ChartGetInteger(0,CHART_AUTOSCROLL);

   if(autoscroll) Print("CHART_AUTOSCROLL = true");

   else Print("CHART_AUTOSCROLL = false");

   int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);

   Print("CHART_WINDOW_HANDLE = ",chartHandle);

   int windows=ChartGetInteger(0,CHART_WINDOWS_TOTAL);

   Print("CHART_WINDOWS_TOTAL = ",windows);

   if(windows>1)

     {

      for(int i=0;i<windows;i++)

        {

         int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,i);

         double priceMin=ChartGetDouble(0,CHART_PRICE_MIN,i);

         double priceMax=ChartGetDouble(0,CHART_PRICE_MAX,i);

         Print(i+": CHART_HEIGHT_IN_PIXELS = ",height," pixels");

         Print(i+": CHART_PRICE_MIN = ",priceMin);

         Print(i+": CHART_PRICE_MAX = ",priceMax);

        }

     }

另见

使用图表示例