Chart Properties
图表属性
ENUM_CHART_PROPERTY枚举类型的标识符被用作处理图表的函数的参数。在“属性类型”列中,r/o的缩写表示该属性为只读且不可更改。w/o的缩写在“属性类型”列中表示该属性为仅写且不可接收。访问某些属性时,需要指定一个额外的参数修饰符(modifier),用于指示图表子窗口的数量。0表示主窗口。
对于ChartSetInteger()和ChartGetInteger()
ENUM_CHART_PROPERTY_INTEGER
| ID | 描述 | 属性类型 |
|---|---|---|
| CHART_BRING_TO_TOP | 将图表显示在其他图表之上 | bool w/o |
| CHART_MOUSE_SCROLL | 使用左键水平滚动图表。如果设置了CHART_SCALEFIX、CHART_SCALEFIX_11或CHART_SCALE_PT_PER_BAR,则也可进行垂直滚动 | bool |
| CHART_EVENT_MOUSE_MOVE | 向图表上的所有mql4程序发送鼠标移动和鼠标点击事件通知(CHARTEVENT_MOUSE_MOVE) | bool |
| CHART_EVENT_OBJECT_CREATE | 向图表上的所有mql4程序发送新对象创建事件通知(CHARTEVENT_OBJECT_CREATE) | bool |
| CHART_EVENT_OBJECT_DELETE | 向图表上的所有mql4程序发送对象删除事件通知(CHARTEVENT_OBJECT_DELETE) | bool |
| CHART_MODE | 图表类型(蜡烛图、条形图或折线图) | enum ENUM_CHART_MODE |
| CHART_FOREGROUND | 价格图表在前景中显示 | bool |
| CHART_SHIFT | 价格图表从右侧边框缩进的模式 | bool |
| CHART_AUTOSCROLL | 自动移动到图表右侧边框的模式 | 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_OHLC | 在左上角显示OHLC值 | bool |
| CHART_SHOW_BID_LINE | 在图表中显示作为水平线的bid值 | bool |
| CHART_SHOW_ASK_LINE | 在图表中显示作为水平线的ask值 | bool |
| CHART_SHOW_LAST_LINE | 在图表中显示作为水平线的last值 | bool |
| CHART_SHOW_PERIOD_SEP | 显示相邻时期之间的垂直分隔线 | bool |
| CHART_SHOW_GRID | 在图表中显示网格 | bool |
| CHART_SHOW_VOLUMES | 在图表中显示体积 | enum ENUM_CHART_VOLUME_MODE |
| CHART_SHOW_OBJECT_DESCR | 显示对象的文本描述(并非所有对象都可用) | bool |
| CHART_VISIBLE_BARS | 图表上可显示的条形图数量 | int r/o |
| CHART_WINDOWS_TOTAL | 包括指示器子窗口在内的图表窗口总数 | int r/o |
| CHART_WINDOW_IS_VISIBLE | 子窗口的可见性 | bool r/o modifier - 子窗口编号 |
| CHART_WINDOW_HANDLE | 图表窗口句柄(HWND) | int r/o |
| CHART_WINDOW_YDISTANCE | 指示器子窗口的上边框与主图表窗口的上边框之间的垂直Y轴距离,以像素为单位。在鼠标事件发生时,光标坐标以主图表窗口的坐标为准,而指示器子窗口中的图形对象坐标则相对于子窗口的左上角设置。 此值用于将主图表的绝对坐标转换为子窗口的局部坐标,以便正确处理以子窗口左上角为基准设置的图形对象的坐标。 | int r/o modifier - 子窗口编号 |
| CHART_FIRST_VISIBLE_BAR | 图表中第一个可见条形图的编号。条形图的索引与timeseries相同。 | int r/o |
| CHART_WIDTH_IN_BARS | 以条形图表示的图表宽度 | int r/o |
| CHART_WIDTH_IN_PIXELS | 以像素表示的图表宽度 | int r/o |
| CHART_HEIGHT_IN_PIXELS | 以像素表示的图表高度 | int modifier - 子窗口编号 |
| 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 | 折线图的颜色和“Doji”日本蜡烛图的颜色 | color |
| CHART_COLOR_CANDLE_BULL | 上升蜡烛图的主体颜色 | color |
| CHART_COLOR_CANDLE_BEAR | 下降蜡烛图的主体颜色 | color |
| CHART_COLOR_BID | Bid价格水平颜色 | color |
| CHART_COLOR_ASK | 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_IS_OFFLINE | 标志,表示图表以离线模式打开 | bool r/o |
对于ChartSetDouble()和ChartGetDouble()
ENUM_CHART_PROPERTY_DOUBLE
| ID | 描述 | 属性类型 |
|---|---|---|
| CHART_SHIFT_SIZE | 零条形图从右侧边框缩进的大小,以百分比表示 | double (从10到50百分比) |
| CHART_FIXED_POSITION | 图表从左边界开始的固定位置,以百分比值表示。图表固定位置在水平时间轴上有一个小的灰色三角形标记。仅当禁用自动滚动到右侧处理tick事件时显示(参见CHART_AUTOSCROLL属性)。固定位置的条形图在放大和缩小时保持在同一位置。 | double |
| CHART_FIXED_MAX | 固定的图表最大值 | double |
| CHART_FIXED_MIN | 固定的图表最小值 | double |
| CHART_POINTS_PER_BAR | 每条形图的点数比例 | double |
| CHART_PRICE_MIN | 图表最小值 | double r/o modifier - 子窗口编号 |
| CHART_PRICE_MAX | 图表最大值 | double r/o modifier - 子窗口编号 |
对于ChartSetString()和ChartGetString()
ENUM_CHART_PROPERTY_STRING
| ID | 描述 | 属性类型 |
|---|---|---|
| CHART_COMMENT | 图表中的评论文本 | string |
示例:
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);
}
}另请参阅
最后更新于