盘立方指标编辑器函数使用技巧集锦
本帖最后由 双面佛 于 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);
示例中,第一行代码的意思是 获取郑商所(ZCE)苹果(AP)101合约15分钟的收盘价信息,第二行代码的意思是 以郑商所(ZCE)苹果(AP)101合约15分钟的收盘价画指标线。
需要注意的一点,由于HisData函数的返回值是一个数组,所以对数组进行数学运算时,需要使用数组函数进行运行,比如,对数组求均值使用iMa函数。
static/image/hrline/line4.png
[*]如果在指标图上添加固定值的横线?
两种方法,本例以添加一条数值为20的颜色为红色的横线:
方法1:PlotHorzLine(20, Red);
这个函数中,第一个参数表示数值位置,第二个参数表示颜色。
方法2:
PlotNumeric("20", 20, Red);这个函数中,第一个参数表示这条线的名称,第二个参数表示数值,第三个参数表示线的颜色。
static/image/hrline/line2.png
另外需要注意的是,指标源码修改过之后,需要在指标编辑器中进行编译,并且编译通过才能生效。一般修改完成后,在指标编辑器按F7即可编译。详见帖子: http://www.ejia7.net/thread-176463-1-1.html
Enum_Period_Default()
周期类型_当前图表周期
这块我写进去错误无效呀
NumericArray apCloseArr = HisData(Enum_Data_Close, Enum_Period_Default, "ZCE AP 101"); Enum Enum_Period_Default() 周期类型_当前图表周期
这个函数能给个示范例子吗? 如何导入导出画线 文字等信息 请问大佬,幅图威廉指标上怎么画横线? 如何表达满足MA20上穿MA60时,开仓1手?
页:
[1]