跳至内容

图表性能

图表属性

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。真实图表返回falsebool 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:1bool
CHART_SCALE_PT_PER_BAR每字节指定相关测量bool
CHART_SHOW_TICKER在左上角显示交易品种报价行情。将CHART_SHOW_TICKER设置为’false’也会将CHART_SHOW_OHLC设置为’false’并禁用OHLCbool
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);
        }
     }

另见

使用图表示例