查看: 8715|回复: 4
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1
 楼主| 发表于 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[0]);

示例中,第一行代码的意思是 获取郑商所(ZCE)苹果(AP)101合约15分钟的收盘价信息,第二行代码的意思是 以郑商所(ZCE)苹果(AP)101合约15分钟的收盘价画指标线。


需要注意的一点,由于HisData函数的返回值是一个数组,所以对数组进行数学运算时,需要使用数组函数进行运行,比如,对数组求均值使用iMa函数。





  • 如果在指标图上添加固定值的横线?
两种方法,本例以添加一条数值为20的颜色为红色的横线:
方法1:
  1. PlotHorzLine(20, Red);
复制代码

这个函数中,第一个参数表示数值位置,第二个参数表示颜色。

方法2:
  1. PlotNumeric("20", 20, Red);
复制代码
这个函数中,第一个参数表示这条线的名称,第二个参数表示数值,第三个参数表示线的颜色。




另外需要注意的是,指标源码修改过之后,需要在指标编辑器中进行编译,并且编译通过才能生效。一般修改完成后,在指标编辑器按F7即可编译。详见帖子: http://www.ejia7.net/thread-176463-1-1.html









2
发表于 2021-5-13 14:10:57 | 只看该作者
Enum_Period_Default()
周期类型_当前图表周期
这块我写进去错误无效呀
NumericArray apCloseArr = HisData(Enum_Data_Close, Enum_Period_Default, "ZCE AP 101");
回复 支持 反对

使用道具 举报

3
发表于 2021-5-14 18:18:59 | 只看该作者
Enum Enum_Period_Default()    周期类型_当前图表周期
这个函数能给个示范例子吗?
回复 支持 反对

使用道具 举报

4
发表于 2024-1-29 21:21:40 | 只看该作者
如何导入导出画线 文字等信息
回复 支持 反对

使用道具 举报

5
发表于 2024-3-13 23:33:10 | 只看该作者
请问大佬,幅图威廉指标上怎么画横线?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号