双面佛 发表于 2020-6-15 17:05:43

盘立方指标编辑器函数使用技巧集锦

本帖最后由 双面佛 于 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




aht111 发表于 2021-5-13 14:10:57

Enum_Period_Default()
周期类型_当前图表周期
这块我写进去错误无效呀
NumericArray apCloseArr = HisData(Enum_Data_Close, Enum_Period_Default, "ZCE AP 101");

aht111 发表于 2021-5-14 18:18:59

Enum Enum_Period_Default()    周期类型_当前图表周期
这个函数能给个示范例子吗?

sun135246 发表于 2024-1-29 21:21:40

如何导入导出画线 文字等信息

xyf800223 发表于 2024-3-13 23:33:10

请问大佬,幅图威廉指标上怎么画横线?

爬爬小鳄鱼 发表于 2024-5-19 14:00:50

如何表达满足MA20上穿MA60时,开仓1手?
页: [1]
查看完整版本: 盘立方指标编辑器函数使用技巧集锦