|
本帖最后由 双面佛 于 2020-8-24 09:35 编辑
盘立方自带指标编辑器的使用流程见帖子 http://www.ejia7.net/thread-176463-1-1.html
本帖主要介绍收集指标编辑器里面的一些使用技巧。
先看两个重要的函数,一个画指标线的函数:
PlotNumeric说明 | 绘制指标线 | 语法 | Numeric PlotNumeric(String Name,Numeric Number,Integer Color=-1,Integer BarsBack=0) | 参数 | Name 输出值的名称,不区分大小写;
Number 输出的数值;
Color 颜色,参见 颜色函数,默认表示使用属性设置框中的颜色;
BarsBack 从当前Bar向前回溯的Bar数,默认值为当前Bar。 | 备注 | 在当前Bar输出一个数值,输出的值用于在上层调用模块显示。返回数值型,即输入的Number。 | 示例 | 例1:PlotNumeric ("Close",Close);
绘制收盘价线
|
一个是指标线的修饰函数:
SetShapeStyle说明 | 绘制指标线 | 语法 | Bool SetShapeStyle(String Name,Integer width,Integer lineType=0,Bool bVisible=True) | 参数 | Name 要修饰的指标线名称,需要和指标线名称保持一致;
width 指标线的宽度,默认是1;
lineType 指标线的类型,0表示实线,1表示虚线类型1,2表示虚线类型2;
bVisible 指标线是否显示,默认显示。 | 备注 | 该函数用于修饰指标线,可以设置指标线的宽度、线类型、是否显示等 | 示例 | 例1:SetShapeStyle("Close",3);
把Close指标线的宽度设置为3个像素,即加粗。 |
均线一般是使用 PlotNumeric("MA"+Text(P1),MA1,0); 画出来的。这个函数里面第三个参数是来表示颜色的。
如果想加粗这条指标线,需要使用SetShapeStyle("MA"+Text(P1),3);来进行修饰。这个函数,第一个参数需要和指标线的名称保持一致,第二个参数表示指标线的宽度,默认是1个像素,如果设置成比1大的数字,看起来就是加粗了。
上面所说,指标线是使用PlotNumeric("MA"+Text(P1),MA1,0); 画出来的。这个函数里面第三个参数是来表示颜色的。你可以修改第三个参数为期货颜色函数或颜色指定值即可,比如RED, GREEN。
如上面所说,指标线是使用PlotNumeric("MA"+Text(P1),MA1); 画出来的。如果想要隐藏指标线,可以使用 SetShapeStyle("MA"+Text(P1),0, 2, false);来进行修饰。
在处理这个问题之前,我们先来了解一个函数
HisData说明 | 获取各种历史数据数组 | 语法 | NumericArray HisData(Enum type,Enum period, Integer interval, String Symbol="",Integer maxLength=100) | 参数 | Type 指定历史数据的种类,参见:历史数据种类
Period 指定周期类型,参见: 周期类型
interval 周期数, 如:5分钟线,周期数就是5;50秒线,周期数为50
Symbol 指定合约代码,为空,表示获取当前合约的历史数据
maxLength 指定返回历史数据数组的最大长度
| 备注 | 无 | 示例 | 无 |
补充: Type,历史数据的种类:
历史数据种类Enum Enum_Data_Close()
| 返回收盘价枚举值
| Enum Enum_Data_Open()
| 返回开盘价枚举值
| Enum Enum_Data_High()
| 返回最高价枚举值
| Enum Enum_Data_Low()
| 返回最低价枚举值
| Enum Enum_Data_Median()
| 返回中间价枚举值 (高+低)/2
| Enum Enum_Data_Typical()
| 返回标准价枚举值 (高+低+收)/3
| Enum Enum_Data_Weighted()
| 返回加权收盘价枚举值 (高+低+开+收)/4
| Enum Enum_Data_Vol()
| 返回成交量枚举值
| Enum Enum_Data_Opi()
| 返回持仓量枚举值
| Enum Enum_Data_Time()
| 返回K线时间枚举值
|
Period 周期类型Enum Enum_Period_Default()
| 周期类型_当前图表周期
| Enum Enum_Period_Tick()
| 周期类型_分笔
| Enum Enum_Period_Dyna()
| 周期类型_分时
| Enum Enum_Period_Second()
| 周期类型_秒线
| Enum Enum_Period_Min()
| 周期类型_分钟
| Enum Enum_Period_Hour()
| 周期类型_小时
| Enum Enum_Period_Day()
| 周期类型_日线
| Enum Enum_Period_Week()
| 周期类型_周线
| Enum Enum_Period_Month()
| 周期类型_月线
| Enum Enum_Period_Year()
| 周期类型_年线
|
所有跨合约跨周期获取数据都是使用这个函数。举例说明:
NumericArray apMi15CloseArr = HisData(Enum_Data_Close, Enum_Period_Min, 15, "ZCE AP 101"); PlotNumeric("apMi15", apMi15CloseArr[0]);
示例中,第一行代码的意思是 获取郑商所(ZCE)苹果(AP)101合约15分钟的收盘价信息,第二行代码的意思是 以郑商所(ZCE)苹果(AP)101合约15分钟的收盘价画指标线。
需要注意的一点,由于HisData函数的返回值是一个数组,所以对数组进行数学运算时,需要使用数组函数进行运行,比如,对数组求均值使用iMa函数。
两种方法,本例以添加一条数值为20的颜色为红色的横线:
方法1:
这个函数中,第一个参数表示数值位置,第二个参数表示颜色。
方法2:
- PlotNumeric("20", 20, Red);
复制代码 这个函数中,第一个参数表示这条线的名称,第二个参数表示数值,第三个参数表示线的颜色。
另外需要注意的是,指标源码修改过之后,需要在指标编辑器中进行编译,并且编译通过才能生效。一般修改完成后,在指标编辑器按F7即可编译。详见帖子: http://www.ejia7.net/thread-176463-1-1.html
|
|