Skip to content

2. 配置HQChart显示内容

jones edited this page Nov 21, 2023 · 21 revisions

SetOption

HQChart初始化实例完成以后, 我们就可以通过SetOption配置显示内容, 如果分时图/K线图等等。

var chart=HQChart.Chart.JSChart.Init(this.$refs.kline);
var option=DefaultData.GetMinuteOption(); //配置一个分时图
chart.SetOption(option);
this.Chart=chart;

配置字段说明

Type

显示的图形类型,字符串类型,可以配置以下内容 历史K线图|历史K线图横屏|分钟走势图|分钟走势图横屏|K线训练|K线训练横屏|深度图

Windows[]

窗口指标设置, 数组, 每一组对应一个窗口指标

Index

系统指标ID/指标名称

指标按钮(h5支持)

Modify (可选)

是否显示修改指标参数按钮 (h5才有,建议在PC端页面使用)

Change(可选)

是否显示切换指标按钮 (h5才有,建议在PC端页面使用)

Close (可选)

是否显示关闭按钮 (h5才有,建议在PC端页面使用)

Overlay (可选)

是否显示叠加指标按钮 (h5才有,建议在PC端页面使用)

TitleHeight (可选)

标题高度 当标题高度<5 就不会显示指标的标题

StringFormat (可选)

标题输出格式 1=默认格式 2位小数 单位自动转化 (万 亿) 2=原始数据输出 3=整形数据输出 如果不是整形使用 DEFAULT 21=千分位分割

FloatPrecision (可选)

标题输出及刻度坐标显示小数位数(默认2) 主图 只生效指标标题数值小数位数 副图 Y轴刻度信息小数位数, 指标标题数值小数位数

TitleFont (可选)

标题字体设置,如“8px 微软雅黑”

IsShortTitle (可选)

指标标题缩写模式,只显示指标名字,隐藏指标参数. 默认false, 指标名字是MA(5,10,15) 设置true后就只显示MA 后面的参数就不显示了

动态指标

修改系统指标参数或动态执行一个指标脚本

Name

动态执行脚本名字

Script

动态执行的脚本

Args

脚本参数 (可选)

IsMainIndex

是否是主图指标, 如果是第1个指标窗口就是true,其他都是false。

KLineType

K线设置 -1=主图不显示K线(只在主图有效) 0=在副图显示K线 1=在副图显示K线(收盘价线) 2=在副图显示K线(美国线)

例子1. 自定义指标

Windows: //窗口指标
  [
     {  Name: 'MA_NEW', Script:'MA5:MA(CLOSE,5);'}, //自定义一个MA的指标 计算5日均线
     { Index: 'MACD'},
     { Index: 'RSI' }     
 ],

例子2. 自定义指标+参数

 Windows: //窗口指标
  [
     {  Name: 'MA_NEW', 
        Script:'MA5:MA(CLOSE,N);'
        Args: [{ Name: 'N', Value: 10 }]
     }, //自定义一个MA的指标 计算10日均线 (带参数)
     { Index: 'MACD'},
     { Index: 'RSI' }     
 ],

例子3. 自定义主图指标+隐藏主图K线

Windows: //窗口指标
[
    //{Index:"EMPTY"},
    {
        Name:'MA测试', Description:'均线', IsMainIndex:true,KLineType:-1,
        Args:[ { Name:'M1', Value:5}, { Name:'M2', Value:10 }, { Name:'M3', Value:20} ],
        OutName:[ {Name:'MA1',DynamicName:"MA{M1}" },  {Name:'MA2',DynamicName:"MA{M2}" },{Name:'MA3',DynamicName:"MA{M3}" }],
        Script: //脚本
            'MA1:MA(CLOSE,M1);\n\
            MA2:MA(CLOSE,M2);\n\
            MA3:MA(CLOSE,M3);'
    },
    
    {Index:"MACD", Modify:true,Change:true},
    {Index:"RSI", Modify:false,Change:false}, 
], 

例子4. 修改系统指标带参数

Windows: //窗口指标
  [
     {  Index: 'MA', 
        Args: [{ Name: 'M1', Value: 5 }, { Name: 'M2', Value: 10 }, { Name: 'M3', Value: 20 }]
     }, 
     { Index: 'MACD'},
     { Index: 'RSI' }     
 ],

指标锁

Lock

指标上锁配置(可选)

Lock.IsLocked

是否上锁

Lock.Callback

点击锁区域的触发回调函数 解锁例子:

function unlockIndex(data)
{
    console.log('[unlockIndex]' , data);
    var chart=data.HQChart;
    chart.LockIndex({IndexName:data.Data.IndexName, IsLocked:false});
}

Lock.BG

锁区域的背景颜色

Lock.TextColor

锁区域文字颜色

Lock.Text

锁区域文字显示

Lock.Font

锁区域文字字体 支持iconfont

Lock.Count

锁右边几根K线

后台API指标

API

指标后台计算配置

API.Name

指标ID/名字

API.Script

指标脚本(可选) , 如果是null,就根据指标名字查找系统指标

API.Args

指标参数(可选),如果是null, 就用默认参数

API.Url

后台指标计算api地址

例子

Windows: //窗口指标
  [
     {  Index: 'MA', 
        API: 
        { Name: 'MA', 
        Script: null, 
        Args: [{ Name: 'M1', Value: 5 }, { Name: 'M2', Value: 10 }, { Name: 'M3', Value: 20 }], 
        Url: 'http://127.0.0.1:18080/api/jsindex' }
     }, 
     { Index: 'MACD'},
     { Index: 'RSI' }     
 ],

Symbol

股票代码

IsAutoUpdate,

是自动更新数据

AutoUpdateFrequency

自动更新数据频率, 默认30s, 单位ms

IsShowRightMenu

是否显示右键菜单 (h5才有,建议在PC端页面使用)

十字光标设置

CorssCursorInfo

十字光标设置

CorssCursorInfo.Left (可选)

左边的十字光标文字输出位置 0=隐藏 1=显示在框架外 2=显示在框架内

CorssCursorInfo.Right (可选)

右边的十字光标文字输出位置 0=隐藏 1=显示在框架外 2=显示在框架内

CorssCursorInfo.Bottom (可选)

底部十字光标日期位子输出位置 0=隐藏 1=显示在框架外

CorssCursorInfo.IsShowCorss (可选)

是否显示十字线

CorssCursorInfo.VPenType (可选)

垂直线类型 0=虚线 1=实线 2=实线线段宽度和K线一样

CorssCursorInfo.HPenType (可选)

水平线类型 0=虚线 1=实线 -1=隐藏

CorssCursorInfo.IsShowClose (可选)

Y轴只能在K线收盘价移动

CorssCursorInfo.IsOnlyDrawMinute (可选)

分时图十字光标只显示在价格线上

CorssCursorInfo.DateFormatType (可选)

K线X轴日期显示格式 ,可选,缺省0。 0=YYYY-MM-DD => 2020-12-01 1=YYYY/MM/DD =>2020/12/01 2=YYYY/MM/DD/W => 2020/12/01/二 3=DD/MM/YYYY => 01/12/2020

CorssCursorInfo.PriceFormatType (可选)

主图Y轴文字 0=默认 1=千分位分割

CorssCursorInfo.DataFormatType (可选)

副图Y轴文字 0=默认 1=千分位分割

CorssCursorInfo.IsFixXLastTime (可选)

分时图十字光标X轴最右边只能移动到最新的交易时间

CorssCursorInfo.VLineType (可选)

X轴的竖线类型 0=标题栏不画竖线(默认) 1=竖线不中断

RightButton

十字光标右侧按钮配置 { Enable:true 是否开启右边按钮 }

K线配置

KLine

k线配置

KLine.DragMode

拖拽模式 0 禁止拖拽 1 数据拖拽 2 区间选择(h5才有)

KLine.Right

复权 0 不复权 1 前复权 2 后复权

KLine.Period

周期 0=日线 1=周线 2=月线 3=年线 4=1分钟 5=5分钟 6=15分钟 7=30分钟 8=60分钟 9=季线 10=分笔线 11=120分钟 12=240分钟 20001-30000 自定义分钟 40001-50000 自定义天数 30001-32000 自定义秒

KLine.MaxRequestDataCount

日线请求的最大个数 (天)

KLine.MaxRequestMinuteDayCount

1分钟K线请求最大天数

KLine.PageSize

初始一屏显示多少个K线数据

KLine.Info

信息地雷 数组类型,可以放多个, 目前支持 ["互动易","大宗交易",'龙虎榜',"调研","业绩预告","公告"]

KLine.InfoPosition

信息地雷显示位置 0=显示在K线上 1=显示底部

KLine.IsShowTooltip

是否显示tooltip, 这个tooltio是数据在K线上显示tooltip是一个div, (h5才有,建议在PC端页面使用)

KLine.DrawType

K线类型 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图 5=订单流 6=完全空心K线柱子

KLine.FirstShowDate

首屏显示的起始日期 格式 yyyymmdd 20180401

KLine.ZoomType

1=以十字光标为中心缩放, 如果左或右边数据不过,适当调整中心的位置

KLine.DataWidth

初始一屏显示的K线宽度。K线个数有K线宽度内部计算得到。 注意: PageSize / DataWidth 只能设置一模式

KLine.IsShowMaxMinPrice

K线上是否显示最大最小值

KLine.RightSpaceCount

最后数据和右边框空白间距,空白的宽度=RightSpaceCount*k线宽度

KLine.KLineDoubleClick

是否启动双击K线弹出内置分时对话框. 默认是开启

KLine.RightFormula

内置复权算法类型, 0=简单复权, 1=使用复权系数(复权因子)计算复权。缺省为0 ** 只有在IsApiPeriod=false的时候才会使用前端计算复权, 否在都是后台计算复权**

周期设置

IsApiPeriod

周期和复权数据是否全部使用api获取, 默认周期和复权是本地计算的 (false=周期数据是前端合并, true=周期和复权数据都使用后台api数据)

周期说明 1分钟K线和日K为原始数据, 其他周期数据都是可以通过原始数据合并得到。 合并周期可以在前端完成也可以在后台完成。hqchart对这2种模式都是支持的。

前端合并周期数据模式, 设置IsApiPeriod=false, 这样周期数据都是通过1分钟K线或日K数据由hqchart前端内置合并完成。切换周期除了1分钟K线和日K会触发数据请求, 其他周期切换不会触发数据请求。 后台合并数据模式. 设置IsApiPeriod=true, 前端不做合并操作, 直接使用后台的数据,每次切换周期都会请求后台周期数据。

K线缩放开启/关闭

EnableZoomUpDown

是否允许手势/键盘/鼠标缩放 { Touch:true/false, Mouse:true/false, Keyboard:true/false, Wheel:true/false }

K线Ctrl+(left/right)快速移动步长

CtrlMoveStep

默认移动5个数据,

K线标题设置

KLineTitle

标题设置

KLineTitle.IsShowName

是否显示股票名称

KLineTitle.IsShowSettingInfo

是否显示周期/复权

KLineTitle.TextSpace

标题文字间距 默认一个空格的间距(只支持小程序,app)

SplashTitle

数据下载提示信息文字.

DayCount

分时显示天数 1=当天分时图 2=2日分时图 3=3日分时图, 最多10天, 多日分时图就设置这个变量

分时图标题设置

MinuteTitle

标题设置

MinuteTitle.IsShowName

是否显示品种名称 默认是显示

MinuteTitle.IsShowTime

标题是否显示时间

MinuteTitle.IsShowDate

标题是否显示日期, 默认不显示

MinuteTitle.IsTitleShowLatestData

十字/手势不在K线图上,标题显示最新一个数据, 默认false

MinuteTitle.IsAlwaysShowLastData

标题栏总是显示最新一条的分时图数据, 默认false

MinuteTitle.TextSpace

标题文字间距 默认一个空格的间距 (只支持小程序,app)

分时图线段设置

MinuteLine

MinuteLine.IsDrawAreaPrice

价格图是否使用面积图, 下图是没有使用面积图显示价格

MinuteLine.IsShowAveragePrice

是否显示均线

MinuteLine.SplitType

y轴最大最小计算方式 0=默认 以前收盘为中轴上下最大最小值分割 1=根据涨跌停值分割 通过MARKET_SUFFIX_NAME.GetLimitPriceRange()计算涨跌停价格 2=根据实际数据最大最大值分割

分时图区间选择

EnableSelectRect

是否启动分时图区间选择 默认false

分时图左右键移动十字贯标,是否支持集合竞价区域移动

EnableNewIndex

默认 false

边框四周间距设置

Border

边框间距设置

Border.Left

左间距

Border.Right

右间距

Border.Bottom

底部间距

Border.Top

顶部间距

Border.AutoLeft, Border.AutoRight

根据刻度文字自适应左边或右边边框间距 {Blank: 留白宽度, MinWidth:最小宽度 } 这个设置必须是Left>10 或者Right>10才有效, 只支持刻度在边框外部显示的模式

Border: //边框
{
     Left:30,         //左边间距
     Right:30,       //右边间距
     Bottom:25,      //底部间距
     Top:25,         //顶部间距

     AutoLeft:{ Blank:10, MinWidth:30 },
     AutoRight:{ Blank:10, MinWidth:30 },
 }

Language

UI语言 英文 'EN' 中文:'CN' 繁体:'TC'

指标框设置

Frame[]

指标窗口设置,数组

SplitCount

窗口Y轴刻度个数

IsShowLeftText

是否显示左边的刻度

IsShowRightText

是否显示右边刻度

Height

窗口高度比值

SplitType

Y轴刻度风格方式 0=自动分割(会自动调整最大最小), 1=根据当前屏最大最小值平均分割

ClientBGColor

客户区域背景颜色

EnableRemoveZero

所有Y轴显示刻度如果小数位后面是0, 就抹去0。 默认是开启的 如刻度 [10.00, 15.00, 20.00] 抹零以后显示为[10, 15, 20]

MinYDistance

Y轴刻度文字与刻度文字的最小间距, 小于这个间距隐藏后面的刻度文字

BorderLine

边框线显示控制 (1=上 2=下 4=左 8=右) 如果要下和右边框 BorderLine=2|8

TopSpace,BottomSpace

顶部留白和底部留白, K线图默认上下都留白的。

IsShowIndexTitle

是否显示指标标题信息, 默认是true

自定义Y轴刻度

Custom

数组类型可以存放多组自定刻度信息
Type:类型 0=最新价格刻度(只有K线图支持,8347版本号以后的支持分时图) 1=固定价格刻度(分时,K线图都支持)
Position: 文字显示位置 ‘left’,‘right’ (默认:right)
FloatPrecision 显示小数位数,只支持K线,Type==0, 缺省跟品种的小数位数保持一致 (ver>=8742)
IsShowLine: 是否显示刻度虚线 (默认:true)
LineType 线段类型, 0=直线 2=虚线 -1=不画线 (默认2)
CountDown:true/false 是否启用K线倒计时
Data: 自定义刻度信息, 数据类型,(当Type=1时才才需要填)
{
Value:刻度Y轴价格 ,
Text:显示文本(可以缺省,缺省就使用Value的值输出), 10257版本以后支持多行文字输出
Color:线段及文字背景色, TextColor:文字颜色
}
DateTime 显示时间格式“HH:MM", 只有在Type=0, 并且是分钟K线的情况下有效

例子1. 显示K线图最新价格刻度, 显示在左边
var option=
 {
      Type:'历史K线图',
     ......
     Frame:  //子框架设置 
     [
          {   
              SplitCount:5,			//最多输出5个分隔线
              
              IsShowLeftText:false, 	//不显示左边刻度文字
              IsShowRightText:true,    	//显示右边刻度文字                      
              Custom:
              [
                  { 
                      Type:0,
                      Position:'left',
                  }
              ]
          },
 }
例子2. 在K线上15.55, 17.55价格位置增加刻度
var option=
 {
      Type:'历史K线图',
     ......
     Frame:  //子框架设置 (Height 窗口高度比例值)
     [
          {   
              SplitCount:5,			//最多输出5个分隔线
              //Height:4,
              IsShowLeftText:false, 	//不显示左边刻度文字
              IsShowRightText:true,    	//显示右边刻度文字                      
              Custom:
              [
                 { 
                    Type:1, 
                    Position:'left',IsShowLine:true,
                    Data:
                    [
                        {
                            Value:15.55,
                            Color:'rgb(255,185,255)', TextColor:'rgb(255,255,255)',    //Color:线段及文字背景色 TextColor:文字颜色
                        }
                        {
                            Value:17.55,
                            Color:'rgb(255,185,0)', TextColor:'rgb(255,255,255)',    //Color:线段及文字背景色 TextColor:文字颜色
                                        }
                    ] 
                },
              ]
          },
 }
例子3. 显示最新价格刻度,并且在15.55, 17.55价格位置增加刻度 显示 止损和止盈
var option=
 {
      Type:'历史K线图',
     ......
     Frame:  //子框架设置 (Height 窗口高度比例值)
     [
          {   
              SplitCount:5,			//最多输出5个分隔线
              //Height:4,
              IsShowLeftText:false, 	//不显示左边刻度文字
              IsShowRightText:true,    	//显示右边刻度文字                      
              Custom:
              [
                  { 
                      Type:0,
                      Position:'right',
                  },
                  { 
                      Type:1, 
                      Position:'left',IsShowLine:true,
                      Data:
                      [
                          {
                              Value:15.55,
                              Text:'止损线',  //Text:显示文本
                              Color:'rgb(255,185,255)', TextColor:'rgb(255,255,255)',    //Color:线段及文字背景色 TextColor:文字颜色
                          },
                          {
                              Value:17.55,
                              Text:'止盈线',  //Text:显示文本
                              Color:'rgb(255,185,0)', TextColor:'rgb(255,255,255)',    //Color:线段及文字背景色 TextColor:文字颜色
                          }
                      ] 
                  }
              ]
          },
 }

叠加品种

Overlay[]

叠加股票 数组, 支持叠加多个股票. h5支持叠加多个品种, 小程序/app只支持叠加1个品种

Symbol

叠加股票代码

DrawType (可选)

叠加股票K线图 类型 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子。 默认跟主图K线类型一致。

Color (可选)

线段颜色,不填随机选一个颜色

例子

var option=
{
	Type:'历史K线图',
	......
	
	Overlay:
    [
        {Symbol:'000001.sh', DrawType:0},   
        {Symbol:'002415.sz', DrawType:1}
    ]
    .........
}

扩展图形设置

ExtendChart[]

扩张图形 数组类型 目前支持

Name

扩展图形名称 'KLineTooltip' K线图tooltip 'MinuteTooltip' 分时图tooltip '画图工具' 画图工具 '筹码分布' { Name:'筹码分布', ShowType:1, IsShowX:true , ShowXCount:3, Width:250 }

叠加指标

OverlayIndex[]

叠加指标 数组 可以叠加多个指标

Index

指标名称/ID

Windows

叠加到对应的窗口索引 0开始

IsShareY

是否和主图指标公用Y轴 (默认是false, 独立Y轴坐标)

IsCalculateYMaxMin

共享Y轴时,叠加指标的数据是否影响共享Y轴最大最小值,默认true

OverlayIndexFrameWidth

每个子坐标的间距

ShowRightText

是否显示右侧子坐标, 可以缺省, 默认true

Args

指标参数 Name:变量名 Value:数值 如:Args:[ { Name:‘M1’, Value:20}, { Name:‘M2’, Value:30} ]

API

远程API指标 { Name:指标名称,Script:指标脚本(可选),Args:指标参数 }

例子

第1个指标窗口 配置1个后台(多线段指标)指标,一个MACD指标, 一个动态指标)

OverlayIndex:
[
     {
         Index:'多线段指标', Windows:0 ,
         API: 
         {
             Name:'多线段指标',
             Script:null,
             Args:null, 
             Url:'http://127.0.0.1:18080/api/jsindex' 
         }, 
         ShowRightText:true
     },
     {Index:'MACD', Windows:0 },
     {Windows:0, IndexName:"指标ID", Name:"自定义指标", Script:"T:MA(O,20);", Identify:"guid_66990"}
     //{Index:'MA', Windows:1 }
 ],  //叠加指标

手机端页面设置

CorssCursorTouchEnd

手离开屏幕十字光标自动隐藏 true/false

IsClickShowCorssCursor

手势点击出现十字光标 true/false

EnableScrollUpDown

手势上下允许滚动页面 true/false

事件注册

EventCallback[]

注册事件数组,可以同时注册多个事件,回调函数格式同上一样

 this.Option= 
 {
     Type:'历史K线图',   //创建图形类型
     EventCallback:
     [
         {
             event:事件ID
             callback:回调函数 
         }
         .....
     ],
     ..........

EnableSelectRect

是否允许弹出区间统计框

IsDrawPictureXY

是否显示选中的画图图形的X,Y轴信息

图形选中

SelectedChart

指标图形选中, 默认是禁止的 EnableSelected 是否开启选中状态 EnableMoveOn 鼠标在图形上是否显示手的形状

拖拽指标图形

EnableIndexChartDrag

是否启动拖拽指标图形, 默认关闭

指标栏按钮风格设置

ToolbarButtonStyle

0=使用div按钮 1=使用canvas绘图按钮,新功能的按钮都使用这个 (默认0)

Clone this wiki locally