hqchart 1.1.15375 → 1.1.15390
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/umychart.vue.js +44 -25
- package/package.json +1 -1
- package/src/jscommon/umychart.complier.js +97 -13
- package/src/jscommon/umychart.js +109 -23
- package/src/jscommon/umychart.report.js +84 -7
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +291 -44
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +291 -44
|
@@ -11216,7 +11216,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11216
11216
|
{
|
|
11217
11217
|
var item=this.OverlayChartPaint[i];
|
|
11218
11218
|
if (!item) continue;
|
|
11219
|
-
if (item.
|
|
11219
|
+
if (item.YInfoConfig.Type===0) continue;
|
|
11220
11220
|
var data=item.Data;
|
|
11221
11221
|
if (!data || !IFrameSplitOperator.IsNonEmptyArray(data.Data)) continue;
|
|
11222
11222
|
if (!IFrameSplitOperator.IsNumber(item.DrawKRange.Start) || !IFrameSplitOperator.IsNumber(item.DrawKRange.End)) continue;
|
|
@@ -11236,15 +11236,29 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11236
11236
|
|
|
11237
11237
|
var endKLine=data.Data[item.DrawKRange.End];
|
|
11238
11238
|
var value=(endKLine.Close-startKLine.Close)/startKLine.Close*100;
|
|
11239
|
-
|
|
11239
|
+
var text="";
|
|
11240
|
+
if (item.YInfoConfig.Type===3)
|
|
11241
|
+
{
|
|
11242
|
+
var dec=GetfloatPrecision(item.Symbol); //小数位数
|
|
11243
|
+
text=endKLine.Close.toFixed(dec);
|
|
11244
|
+
}
|
|
11245
|
+
else if (item.YInfoConfig.Type===4)
|
|
11246
|
+
{
|
|
11247
|
+
text=value.toFixed(2)+"%";
|
|
11248
|
+
}
|
|
11249
|
+
else
|
|
11250
|
+
{
|
|
11251
|
+
continue;
|
|
11252
|
+
}
|
|
11253
|
+
|
|
11240
11254
|
var info=new CoordinateInfo();
|
|
11241
11255
|
info.Value=endKLine.Close/item.ShowRange.FirstOverlayOpen*item.ShowRange.FirstOpen;
|
|
11242
|
-
info.Message[1]=
|
|
11256
|
+
info.Message[1]=text
|
|
11243
11257
|
info.LineType=-1;
|
|
11244
|
-
info.Type=
|
|
11258
|
+
info.Type=4; //叠加股票
|
|
11245
11259
|
info.LineColor=item.Color;
|
|
11246
11260
|
info.TextColor=g_JSChartResource.FrameLatestPrice.OverlayTextColor;
|
|
11247
|
-
if (item.Title) info.Title=item.Title;
|
|
11261
|
+
if (item.Title && item.YInfoConfig.IsShowName) info.Title=item.Title;
|
|
11248
11262
|
frame.CustomHorizontalInfo.push(info);
|
|
11249
11263
|
}
|
|
11250
11264
|
}
|
|
@@ -12718,6 +12732,13 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12718
12732
|
return false;
|
|
12719
12733
|
}
|
|
12720
12734
|
|
|
12735
|
+
this.IsHScreenModel=function()
|
|
12736
|
+
{
|
|
12737
|
+
if (this.ClassName=="KLineChartHScreenContainer" || this.ClassName=="MinuteChartHScreenContainer") return true;
|
|
12738
|
+
|
|
12739
|
+
return false;
|
|
12740
|
+
}
|
|
12741
|
+
|
|
12721
12742
|
this.UpdatePointByCursorIndex=function(type) //type 1=根据十字光标更新 2=强制取消十字光标
|
|
12722
12743
|
{
|
|
12723
12744
|
if (type==1) //根据十字光标更新
|
|
@@ -12738,8 +12759,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12738
12759
|
pt.X=null;
|
|
12739
12760
|
}
|
|
12740
12761
|
}
|
|
12741
|
-
|
|
12742
|
-
this.
|
|
12762
|
+
|
|
12763
|
+
if (this.IsHScreenModel())
|
|
12764
|
+
{
|
|
12765
|
+
this.LastPoint.X=pt.Y;
|
|
12766
|
+
this.LastPoint.Y=pt.X;
|
|
12767
|
+
}
|
|
12768
|
+
else
|
|
12769
|
+
{
|
|
12770
|
+
this.LastPoint.X=pt.X;
|
|
12771
|
+
this.LastPoint.Y=pt.Y;
|
|
12772
|
+
}
|
|
12773
|
+
|
|
12743
12774
|
}
|
|
12744
12775
|
else if (type==2)
|
|
12745
12776
|
{
|
|
@@ -12759,8 +12790,18 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
12759
12790
|
pt.Y=this.Frame.GetYFromData(close);
|
|
12760
12791
|
this.LastPoint.FrameID=0;
|
|
12761
12792
|
}
|
|
12762
|
-
|
|
12763
|
-
this.
|
|
12793
|
+
|
|
12794
|
+
if (this.IsHScreenModel())
|
|
12795
|
+
{
|
|
12796
|
+
this.LastPoint.X=pt.Y;
|
|
12797
|
+
this.LastPoint.Y=pt.X;
|
|
12798
|
+
}
|
|
12799
|
+
else
|
|
12800
|
+
{
|
|
12801
|
+
this.LastPoint.X=pt.X;
|
|
12802
|
+
this.LastPoint.Y=pt.Y;
|
|
12803
|
+
}
|
|
12804
|
+
|
|
12764
12805
|
}
|
|
12765
12806
|
}
|
|
12766
12807
|
|
|
@@ -31730,6 +31771,7 @@ function IChartPainting()
|
|
|
31730
31771
|
var xOffset=border.LeftEx+distanceWidth/2.0+g_JSChartResource.FrameLeftMargin;
|
|
31731
31772
|
var chartright=border.RightEx;
|
|
31732
31773
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
31774
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
|
|
31733
31775
|
|
|
31734
31776
|
if (isHScreen)
|
|
31735
31777
|
{
|
|
@@ -38066,13 +38108,19 @@ function ChartOverlayKLine()
|
|
|
38066
38108
|
this.CloseLineWidth=g_JSChartResource.CloseLineWidth;
|
|
38067
38109
|
this.ShowRange={ }; //K线显示范围 { Start:, End:, DataCount:, ShowCount: }
|
|
38068
38110
|
this.DrawKRange={ Start:null, End:null }; //当前屏K线的索引{ Start: , End:}
|
|
38069
|
-
this.
|
|
38111
|
+
this.YInfoConfig={ Type:0, IsShowName:false } //右侧Y轴自定刻度设置 0不显示 3=名字|最新价 4=名字|涨幅
|
|
38070
38112
|
|
|
38071
38113
|
this.SetOption=function(option)
|
|
38072
38114
|
{
|
|
38073
38115
|
if (!option) return;
|
|
38074
38116
|
if (IFrameSplitOperator.IsNumber(option.DrawType)) this.CustomDrawType=option.DrawType;
|
|
38075
|
-
if (IFrameSplitOperator.IsNumber(option.YInfoType)) this.
|
|
38117
|
+
if (IFrameSplitOperator.IsNumber(option.YInfoType)) this.YInfoConfig.Type=option.YInfoType;
|
|
38118
|
+
if (option.YInfo)
|
|
38119
|
+
{
|
|
38120
|
+
var item=option.YInfo;
|
|
38121
|
+
if (IFrameSplitOperator.IsNumber(item.Type)) this.YInfoConfig.Type=item.Type;
|
|
38122
|
+
if (IFrameSplitOperator.IsBool(item.IsShowName)) this.YInfoConfig.IsShowName=item.IsShowName;
|
|
38123
|
+
}
|
|
38076
38124
|
}
|
|
38077
38125
|
|
|
38078
38126
|
this.DrawKBar=function(firstOpen) //firstOpen 当前屏第1个显示数据
|
|
@@ -83590,6 +83638,13 @@ function JSChartResource()
|
|
|
83590
83638
|
CloseColor:"rgb(30,144,255)",
|
|
83591
83639
|
YCloseColor:"rgba(105,105,105,0.5)", //昨收线
|
|
83592
83640
|
AreaColor:'rgba(0,191,255,0.2)',
|
|
83641
|
+
|
|
83642
|
+
UpColor:"rgb(255,0,0)",
|
|
83643
|
+
UpAreaColor:"rgba(255,0,0,0.5)",
|
|
83644
|
+
DownColor:"rgb(0,128,0)",
|
|
83645
|
+
DownAreaColor:"rgba(0,128,0,0.5)",
|
|
83646
|
+
UnchangeColor:'rgb(90,90,90)',
|
|
83647
|
+
UnchangeAreaColor:'rgba(90,90,90,0.5)',
|
|
83593
83648
|
},
|
|
83594
83649
|
|
|
83595
83650
|
KLine:
|
|
@@ -84988,6 +85043,13 @@ function JSChartResource()
|
|
|
84988
85043
|
if (closeLine.CloseColor) this.Report.CloseLine.CloseColor=closeLine.CloseColor;
|
|
84989
85044
|
if (closeLine.YCloseColor) this.Report.CloseLine.YCloseColor=closeLine.YCloseColor;
|
|
84990
85045
|
if (closeLine.AreaColor) this.Report.CloseLine.AreaColor=closeLine.AreaColor;
|
|
85046
|
+
|
|
85047
|
+
if (closeLine.UpColor) this.Report.CloseLine.UpColor=closeLine.UpColor;
|
|
85048
|
+
if (closeLine.UpAreaColor) this.Report.CloseLine.UpAreaColor=closeLine.UpAreaColor;
|
|
85049
|
+
if (closeLine.DownColor) this.Report.CloseLine.DownColor=closeLine.DownColor;
|
|
85050
|
+
if (closeLine.DownAreaColor) this.Report.CloseLine.DownAreaColor=closeLine.DownAreaColor;
|
|
85051
|
+
if (closeLine.UnchangeColor) this.Report.CloseLine.UnchangeColor=closeLine.UnchangeColor;
|
|
85052
|
+
if (closeLine.UnchangeAreaColor) this.Report.CloseLine.UnchangeAreaColor=closeLine.UnchangeAreaColor;
|
|
84991
85053
|
}
|
|
84992
85054
|
|
|
84993
85055
|
if (item.KLine)
|
|
@@ -92186,8 +92248,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
92186
92248
|
{
|
|
92187
92249
|
Name:'KLineChartContainer::RequestOverlayHistoryData', //类名::
|
|
92188
92250
|
Explain:'叠加股票日K线数据',
|
|
92189
|
-
Request:
|
|
92190
|
-
|
|
92251
|
+
Request:
|
|
92252
|
+
{
|
|
92253
|
+
Url:self.KLineApiUrl,
|
|
92254
|
+
Data:
|
|
92255
|
+
{
|
|
92256
|
+
symbol: symbol, period:this.Period, count: dataCount.MaxRequestDataCount, first:{ date: firstDate },
|
|
92257
|
+
Main:{ Symbol:this.Symbol, Period:this.Period, Right:this.Right }
|
|
92258
|
+
},
|
|
92259
|
+
},
|
|
92191
92260
|
Self:this,
|
|
92192
92261
|
PreventDefault:false
|
|
92193
92262
|
};
|
|
@@ -92279,8 +92348,15 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
92279
92348
|
{
|
|
92280
92349
|
Name:'KLineChartContainer::RequestOverlayHistoryMinuteData', //类名::
|
|
92281
92350
|
Explain:'叠加股票分钟K线数据',
|
|
92282
|
-
Request:
|
|
92283
|
-
|
|
92351
|
+
Request:
|
|
92352
|
+
{
|
|
92353
|
+
Url:self.MinuteKLineApiUrl,
|
|
92354
|
+
Data:
|
|
92355
|
+
{
|
|
92356
|
+
symbol: symbol, period:this.Period, count: dataCount.MaxRequestMinuteDayCount, first:{ date: firstDate, time:firstTime },
|
|
92357
|
+
Main:{ Symbol:this.Symbol, Period:this.Period, Right:this.Right }
|
|
92358
|
+
},
|
|
92359
|
+
},
|
|
92284
92360
|
Self:this,
|
|
92285
92361
|
PreventDefault:false
|
|
92286
92362
|
};
|
|
@@ -97722,21 +97798,31 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
97722
97798
|
|
|
97723
97799
|
this.UpdatePointByCursorIndex=function()
|
|
97724
97800
|
{
|
|
97725
|
-
|
|
97801
|
+
var x=null, y=null;
|
|
97802
|
+
x=this.Frame.GetXFromIndex(this.CursorIndex);
|
|
97726
97803
|
|
|
97727
97804
|
var index=this.CursorIndex;
|
|
97728
97805
|
index=parseInt(index.toFixed(0));
|
|
97729
97806
|
var data=this.GetKData();
|
|
97730
|
-
if (data.DataOffset+index
|
|
97807
|
+
if (data.DataOffset+index<data.Data.length)
|
|
97731
97808
|
{
|
|
97732
|
-
|
|
97809
|
+
var item=data.Data[data.DataOffset+index];
|
|
97810
|
+
var close=null;
|
|
97811
|
+
if (item.Before) close=item.Before.Close;
|
|
97812
|
+
else close=item.Close;
|
|
97813
|
+
y=this.Frame.GetYFromData(close);
|
|
97733
97814
|
}
|
|
97734
|
-
var item=data.Data[data.DataOffset+index];
|
|
97735
|
-
var close=null;
|
|
97736
|
-
if (item.Before) close=item.Before.Close;
|
|
97737
|
-
else close=item.Close
|
|
97738
97815
|
|
|
97739
|
-
this.
|
|
97816
|
+
if (this.IsHScreenModel())
|
|
97817
|
+
{
|
|
97818
|
+
this.LastPoint.X=y;
|
|
97819
|
+
this.LastPoint.Y=x;
|
|
97820
|
+
}
|
|
97821
|
+
else
|
|
97822
|
+
{
|
|
97823
|
+
this.LastPoint.X=x;
|
|
97824
|
+
this.LastPoint.Y=y;
|
|
97825
|
+
}
|
|
97740
97826
|
this.LastPoint.FrameID=0;
|
|
97741
97827
|
}
|
|
97742
97828
|
|
|
@@ -111350,6 +111436,24 @@ JSComplierHelper.GetConvertValueName=function(funcName)
|
|
|
111350
111436
|
|
|
111351
111437
|
return valueName;
|
|
111352
111438
|
}
|
|
111439
|
+
|
|
111440
|
+
|
|
111441
|
+
//DYNAINFO() 转换
|
|
111442
|
+
//["DYNA_NOW",null], //DYNA_NOW 现价 DYNAINFO(7) 即时行情数据 没有现价时(比如在开盘前),返回昨收盘价
|
|
111443
|
+
//["DYNA_ZAF",null], //DYNA_ZAF 涨幅 DYNAINFO(14) 即时行情数据(沪深京早盘竞价期间使用匹配价的涨幅) 转换成幅度需要乘100
|
|
111444
|
+
//["DYNA_LB", null], //DYNA_LB DYNAINFO(17) 量比 即时行情数据
|
|
111445
|
+
//["DYNA_ZAS",null], //DYNA_ZAS DYNAINFO(24) 返回涨速 报价界面行情数据 转换成幅度需要乘100
|
|
111446
|
+
//["SELLVOL", null], //返回内盘,即DYNAINFO(22) 即时行情数据
|
|
111447
|
+
//["BUYVOL", null], //返回外盘,即DYNAINFO(21) 即时行情数据
|
|
111448
|
+
const MAP_DYNAINFO_SHORTCUT=new Map(
|
|
111449
|
+
[
|
|
111450
|
+
['DYNA_NOW', { Name:"DYNA_NOW", ID:7 } ],
|
|
111451
|
+
['DYNA_LB', { Name:"DYNA_LB", ID:17 } ],
|
|
111452
|
+
['DYNA_ZAS', { Name:"DYNA_ZAS", ID:24 } ],
|
|
111453
|
+
['SELLVOL', { Name:"SELLVOL", ID:22 }],
|
|
111454
|
+
['BUYVOL', { Name:"BUYVOL", ID:21 } ],
|
|
111455
|
+
]
|
|
111456
|
+
);
|
|
111353
111457
|
|
|
111354
111458
|
|
|
111355
111459
|
|
|
@@ -112289,6 +112393,14 @@ function Node(ErrorHandler)
|
|
|
112289
112393
|
return;
|
|
112290
112394
|
}
|
|
112291
112395
|
|
|
112396
|
+
if (MAP_DYNAINFO_SHORTCUT.has(varName))
|
|
112397
|
+
{
|
|
112398
|
+
var item=MAP_DYNAINFO_SHORTCUT.get(varName);
|
|
112399
|
+
var item={ ID:JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_SYMBOL_LATEST_DATA, Args:[item.ID], FunctionName:varName };
|
|
112400
|
+
this.Dynainfo.push(item);
|
|
112401
|
+
return;
|
|
112402
|
+
}
|
|
112403
|
+
|
|
112292
112404
|
if (varName.indexOf('#')>0)
|
|
112293
112405
|
{
|
|
112294
112406
|
var aryWrods = varName.split('#');
|
|
@@ -123044,8 +123156,10 @@ var DYNAINFO_ARGUMENT_ID=
|
|
|
123044
123156
|
CLOSE:7,
|
|
123045
123157
|
VOL:8,
|
|
123046
123158
|
AMOUNT:10,
|
|
123159
|
+
UPDOWN:12, //DYNAINFO(12) 日涨跌 即时行情数据
|
|
123047
123160
|
AMPLITUDE:13, //振幅
|
|
123048
123161
|
INCREASE:14, //涨幅
|
|
123162
|
+
|
|
123049
123163
|
EXCHANGERATE:37, //换手率
|
|
123050
123164
|
};
|
|
123051
123165
|
|
|
@@ -123224,16 +123338,18 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
123224
123338
|
let stock=data.stock[0];
|
|
123225
123339
|
if (!stock) return;
|
|
123226
123340
|
|
|
123227
|
-
if (IFrameSplitOperator.IsNumber(stock.yclose)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.YCLOSE,stock.yclose);
|
|
123228
|
-
if (IFrameSplitOperator.IsNumber(stock.open)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.OPEN,stock.open);
|
|
123229
|
-
if (IFrameSplitOperator.IsNumber(stock.high)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.HIGH,stock.high);
|
|
123230
|
-
if (IFrameSplitOperator.IsNumber(stock.low)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.LOW,stock.low);
|
|
123231
|
-
if (IFrameSplitOperator.IsNumber(stock.price)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.CLOSE,stock.price);
|
|
123232
|
-
if (IFrameSplitOperator.IsNumber(stock.vol)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.VOL,stock.vol);
|
|
123233
|
-
if (IFrameSplitOperator.IsNumber(stock.amount)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.AMOUNT,stock.amount);
|
|
123234
|
-
if (IFrameSplitOperator.IsNumber(stock.increase)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.INCREASE,stock.increase);
|
|
123235
|
-
if (IFrameSplitOperator.IsNumber(stock.exchangerate)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.EXCHANGERATE,stock.exchangerate);
|
|
123236
|
-
if (IFrameSplitOperator.IsNumber(stock.amplitude)) this.LatestData.set(DYNAINFO_ARGUMENT_ID.AMPLITUDE,stock.amplitude);
|
|
123341
|
+
if (IFrameSplitOperator.IsNumber(stock.yclose)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.YCLOSE),stock.yclose);
|
|
123342
|
+
if (IFrameSplitOperator.IsNumber(stock.open)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.OPEN),stock.open);
|
|
123343
|
+
if (IFrameSplitOperator.IsNumber(stock.high)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.HIGH),stock.high);
|
|
123344
|
+
if (IFrameSplitOperator.IsNumber(stock.low)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.LOW),stock.low);
|
|
123345
|
+
if (IFrameSplitOperator.IsNumber(stock.price)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.CLOSE),stock.price);
|
|
123346
|
+
if (IFrameSplitOperator.IsNumber(stock.vol)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.VOL),stock.vol);
|
|
123347
|
+
if (IFrameSplitOperator.IsNumber(stock.amount)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.AMOUNT),stock.amount);
|
|
123348
|
+
if (IFrameSplitOperator.IsNumber(stock.increase)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.INCREASE),stock.increase);
|
|
123349
|
+
if (IFrameSplitOperator.IsNumber(stock.exchangerate)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.EXCHANGERATE),stock.exchangerate);
|
|
123350
|
+
if (IFrameSplitOperator.IsNumber(stock.amplitude)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.AMPLITUDE),stock.amplitude);
|
|
123351
|
+
if (IFrameSplitOperator.IsNumber(stock.updown)) this.LatestData.set(this.GetLatestDataKey(DYNAINFO_ARGUMENT_ID.UPDOWN),stock.updown);
|
|
123352
|
+
|
|
123237
123353
|
|
|
123238
123354
|
/*
|
|
123239
123355
|
this.LatestData={ Symbol:stock.symbol, Name:stock.name, Date:stock.date, Time:stock.time,
|
|
@@ -123258,7 +123374,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
123258
123374
|
if (IFrameSplitOperator.IsNumber(item.value) || IFrameSplitOperator.IsString(item.value))
|
|
123259
123375
|
{
|
|
123260
123376
|
JSConsole.Complier.Log(`[JSSymbolData::RecvLatestDataVer2] symbol=${symbol} DYNAINFO(${item.id})=${item.value}.`);
|
|
123261
|
-
this.LatestData.set(item.id, item.value);
|
|
123377
|
+
this.LatestData.set(this.GetLatestDataKey(item.id), item.value);
|
|
123262
123378
|
}
|
|
123263
123379
|
|
|
123264
123380
|
}
|
|
@@ -123266,9 +123382,48 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
123266
123382
|
JSConsole.Complier.Log('[JSSymbolData::RecvLatestDataVer2]', this.LatestData);
|
|
123267
123383
|
}
|
|
123268
123384
|
|
|
123269
|
-
this.GetLatestCacheData=function(
|
|
123385
|
+
this.GetLatestCacheData=function(dataID)
|
|
123270
123386
|
{
|
|
123271
|
-
|
|
123387
|
+
var key=this.GetLatestDataKey(dataID);
|
|
123388
|
+
if (!this.LatestData.has(key)) return null;
|
|
123389
|
+
|
|
123390
|
+
var data=this.LatestData.get(key);
|
|
123391
|
+
|
|
123392
|
+
//DYNAINFO(36) 自由流通换手率(序列数据,每个周期的数据不同,使用最新的自由流通股本) 转换成幅度需要乘100 比如DYNAINFO(36)>0.25表示换手超过25%
|
|
123393
|
+
//DYNAINFO(37) 换手率(序列数据,每个周期的数据不同,使用的流通股本为最近数据) 转换成幅度需要乘100 比如DYNAINFO(37)>0.1表示换手超过10%
|
|
123394
|
+
if (dataID==37 || dataID==36)
|
|
123395
|
+
{
|
|
123396
|
+
var value=null;
|
|
123397
|
+
if (IFrameSplitOperator.IsNumber(data)) value=data;
|
|
123398
|
+
else if (IFrameSplitOperator.IsNonEmptyArray(data) && IFrameSplitOperator.IsNumber(data[0])) value=data[0];
|
|
123399
|
+
else return null;
|
|
123400
|
+
|
|
123401
|
+
if (!this.Data || !IFrameSplitOperator.IsNonEmptyArray(this.Data.Data)) return null;
|
|
123402
|
+
|
|
123403
|
+
var aryData=[];
|
|
123404
|
+
for(var i=0;i<this.Data.Data.length;++i)
|
|
123405
|
+
{
|
|
123406
|
+
var kItem=this.Data.Data[i];
|
|
123407
|
+
aryData[i]=null;
|
|
123408
|
+
if (!kItem || !IFrameSplitOperator.IsNumber(kItem.Vol)) continue;
|
|
123409
|
+
|
|
123410
|
+
aryData[i]=kItem.Vol/value*100.0;// 换手率
|
|
123411
|
+
}
|
|
123412
|
+
|
|
123413
|
+
return aryData;
|
|
123414
|
+
}
|
|
123415
|
+
|
|
123416
|
+
|
|
123417
|
+
return data;
|
|
123418
|
+
}
|
|
123419
|
+
|
|
123420
|
+
this.GetDynaCacheData=function(name)
|
|
123421
|
+
{
|
|
123422
|
+
if (MAP_DYNAINFO_SHORTCUT.has(name))
|
|
123423
|
+
{
|
|
123424
|
+
var item=MAP_DYNAINFO_SHORTCUT.get(name);
|
|
123425
|
+
return this.GetLatestCacheData(item.ID);
|
|
123426
|
+
}
|
|
123272
123427
|
|
|
123273
123428
|
return null;
|
|
123274
123429
|
}
|
|
@@ -128255,6 +128410,13 @@ function JSExecute(ast,option)
|
|
|
128255
128410
|
["TR", null], //真实波幅
|
|
128256
128411
|
["AUTOFILTER", null],
|
|
128257
128412
|
|
|
128413
|
+
["DYNA_NOW",null], //DYNA_NOW 现价 DYNAINFO(7) 即时行情数据 没有现价时(比如在开盘前),返回昨收盘价
|
|
128414
|
+
["DYNA_ZAF",null], //DYNA_ZAF 涨幅 DYNAINFO(14) 即时行情数据(沪深京早盘竞价期间使用匹配价的涨幅) 转换成幅度需要乘100
|
|
128415
|
+
["DYNA_LB", null], //DYNA_LB DYNAINFO(17) 量比 即时行情数据
|
|
128416
|
+
["DYNA_ZAS",null], //DYNA_ZAS DYNAINFO(24) 返回涨速 报价界面行情数据 转换成幅度需要乘100
|
|
128417
|
+
["SELLVOL", null], //返回内盘,即DYNAINFO(22) 即时行情数据
|
|
128418
|
+
["BUYVOL", null], //返回外盘,即DYNAINFO(21) 即时行情数据
|
|
128419
|
+
|
|
128258
128420
|
['LARGEINTRDVOL', null], //逐笔买入大单成交量,相当于L2_VOL(0,0)+L2_VOL(1,0),沪深京品种的资金流向,仅日线以上周期,用于特定版本
|
|
128259
128421
|
['LARGEOUTTRDVOL', null], //逐笔卖出大单成交量,相当于L2_VOL(0,1)+L2_VOL(1,1),沪深京品种的资金流向,仅日线以上周期,用于特定版本
|
|
128260
128422
|
["TRADENUM", null], //逐笔成交总单数,沪深京品种的资金流向,仅日线以上周期,用于特定版本
|
|
@@ -128587,6 +128749,14 @@ function JSExecute(ast,option)
|
|
|
128587
128749
|
return this.SymbolData.WEEKOFYEAR();
|
|
128588
128750
|
case "DAYSTOTODAY":
|
|
128589
128751
|
return this.SymbolData.DAYSTOTODAY();
|
|
128752
|
+
|
|
128753
|
+
case "DYNA_NOW":
|
|
128754
|
+
case "DYNA_ZAF":
|
|
128755
|
+
case "DYNA_LB":
|
|
128756
|
+
case "DYNA_ZAS":
|
|
128757
|
+
case "SELLVOL":
|
|
128758
|
+
case "BUYVOL":
|
|
128759
|
+
return this.SymbolData.GetDynaCacheData(name);
|
|
128590
128760
|
}
|
|
128591
128761
|
|
|
128592
128762
|
this.ThrowUnexpectedNode(node, '变量'+name+'不存在', name);
|
|
@@ -146987,7 +147157,15 @@ function ChartReport()
|
|
|
146987
147157
|
{
|
|
146988
147158
|
CloseColor:g_JSChartResource.Report.CloseLine.CloseColor,
|
|
146989
147159
|
YCloseColor:g_JSChartResource.Report.CloseLine.YCloseColor,
|
|
146990
|
-
AreaColor:g_JSChartResource.Report.CloseLine.AreaColor
|
|
147160
|
+
AreaColor:g_JSChartResource.Report.CloseLine.AreaColor,
|
|
147161
|
+
|
|
147162
|
+
UpColor:g_JSChartResource.Report.CloseLine.UpColor,
|
|
147163
|
+
DownColor:g_JSChartResource.Report.CloseLine.DownColor,
|
|
147164
|
+
UnchangeColor:g_JSChartResource.Report.CloseLine.UnchangeColor,
|
|
147165
|
+
|
|
147166
|
+
UpAreaColor:g_JSChartResource.Report.CloseLine.UpAreaColor,
|
|
147167
|
+
DownAreaColor:g_JSChartResource.Report.CloseLine.DownAreaColor,
|
|
147168
|
+
UnchangeAreaColor:g_JSChartResource.Report.CloseLine.UnchangeAreaColor,
|
|
146991
147169
|
}
|
|
146992
147170
|
|
|
146993
147171
|
//K线配置
|
|
@@ -147298,6 +147476,7 @@ function ChartReport()
|
|
|
147298
147476
|
else if (item.Type==REPORT_COLUMN_ID.CLOSE_LINE_ID)
|
|
147299
147477
|
{
|
|
147300
147478
|
if (IFrameSplitOperator.IsBool(item.IsDrawArea)) colItem.IsDrawArea=item.IsDrawArea;
|
|
147479
|
+
if (IFrameSplitOperator.IsNumber(item.LineColorType)) colItem.LineColorType=item.LineColorType;
|
|
147301
147480
|
}
|
|
147302
147481
|
else if(item.Type==REPORT_COLUMN_ID.TIME_ID)
|
|
147303
147482
|
{
|
|
@@ -147426,7 +147605,7 @@ function ChartReport()
|
|
|
147426
147605
|
{ Type:REPORT_COLUMN_ID.VOL_IN_ID, Title:"内盘", TextAlign:"right", TextColor:g_JSChartResource.Report.DownTextColor, Width:null, MaxText:"8888.8擎" },
|
|
147427
147606
|
{ Type:REPORT_COLUMN_ID.VOL_OUT_ID, Title:"外盘", TextAlign:"right", TextColor:g_JSChartResource.Report.UpTextColor, Width:null, MaxText:"8888.8擎" },
|
|
147428
147607
|
|
|
147429
|
-
{ Type:REPORT_COLUMN_ID.CLOSE_LINE_ID, Title:"走势", TextAlign:"center", TextColor:g_JSChartResource.Report.CloseLineColor, Width:null, MaxText:"88888.88888" },
|
|
147608
|
+
{ Type:REPORT_COLUMN_ID.CLOSE_LINE_ID, Title:"走势", TextAlign:"center", TextColor:g_JSChartResource.Report.CloseLineColor, Width:null, MaxText:"88888.88888", LineColorType:0 },
|
|
147430
147609
|
|
|
147431
147610
|
|
|
147432
147611
|
{ Type:REPORT_COLUMN_ID.BUY_VOL_ID, Title:"买量", TextAlign:"right", TextColor:g_JSChartResource.Report.FieldColor.Vol, Width:null, MaxText:"8888.8擎" },
|
|
@@ -150465,8 +150644,7 @@ function ChartReport()
|
|
|
150465
150644
|
this.Canvas.setLineDash([]);
|
|
150466
150645
|
}
|
|
150467
150646
|
|
|
150468
|
-
|
|
150469
|
-
else this.Canvas.strokeStyle=this.CloseLineConfig.CloseColor;
|
|
150647
|
+
this.Canvas.strokeStyle=this.GetCloseLineColor(lineData, column);
|
|
150470
150648
|
|
|
150471
150649
|
var bFirstPoint=true;
|
|
150472
150650
|
var ptFirst={}; //第1个点
|
|
@@ -150504,8 +150682,7 @@ function ChartReport()
|
|
|
150504
150682
|
this.Canvas.lineTo(x,yCenter);
|
|
150505
150683
|
this.Canvas.lineTo(ptFirst.X,yCenter);
|
|
150506
150684
|
this.Canvas.closePath();
|
|
150507
|
-
var areaColor=this.
|
|
150508
|
-
if (lineData.AreaColor) areaColor=lineData.AreaColor;
|
|
150685
|
+
var areaColor=this.GetCloseAreaColor(lineData, column);
|
|
150509
150686
|
this.SetFillStyle(areaColor,left,top, left,bottom);
|
|
150510
150687
|
this.Canvas.fill();
|
|
150511
150688
|
}
|
|
@@ -150514,6 +150691,48 @@ function ChartReport()
|
|
|
150514
150691
|
this.Canvas.restore();
|
|
150515
150692
|
}
|
|
150516
150693
|
|
|
150694
|
+
this.GetCloseLineColor=function(lineData, column)
|
|
150695
|
+
{
|
|
150696
|
+
var color=this.CloseLineConfig.CloseColor;
|
|
150697
|
+
if (lineData.Color)
|
|
150698
|
+
{
|
|
150699
|
+
color=lineData.Color;
|
|
150700
|
+
}
|
|
150701
|
+
else if (column.LineColorType==1)
|
|
150702
|
+
{
|
|
150703
|
+
var color= this.CloseLineConfig.UnchangeColor;
|
|
150704
|
+
if (IFrameSplitOperator.IsNumber(lineData.YClose) && IFrameSplitOperator.IsNonEmptyArray(lineData.Data) && IFrameSplitOperator.IsNumber(lineData.Data[ lineData.Data.length -1 ]))
|
|
150705
|
+
{
|
|
150706
|
+
var lastValue=lineData.Data[ lineData.Data.length -1 ];
|
|
150707
|
+
if (lastValue>lineData.YClose) color=this.CloseLineConfig.UpColor;
|
|
150708
|
+
else if (lastValue<lineData.YClose) color=this.CloseLineConfig.DownColor;
|
|
150709
|
+
}
|
|
150710
|
+
}
|
|
150711
|
+
|
|
150712
|
+
return color;
|
|
150713
|
+
}
|
|
150714
|
+
|
|
150715
|
+
this.GetCloseAreaColor=function(lineData, column)
|
|
150716
|
+
{
|
|
150717
|
+
var color=this.CloseLineConfig.AreaColor;
|
|
150718
|
+
if (lineData.AreaColor)
|
|
150719
|
+
{
|
|
150720
|
+
color=lineData.AreaColor;
|
|
150721
|
+
}
|
|
150722
|
+
else if (column.LineColorType==1)
|
|
150723
|
+
{
|
|
150724
|
+
var color= this.CloseLineConfig.UnchangeAreaColor;
|
|
150725
|
+
if (IFrameSplitOperator.IsNumber(lineData.YClose) && IFrameSplitOperator.IsNonEmptyArray(lineData.Data) && IFrameSplitOperator.IsNumber(lineData.Data[ lineData.Data.length -1 ]))
|
|
150726
|
+
{
|
|
150727
|
+
var lastValue=lineData.Data[ lineData.Data.length -1 ];
|
|
150728
|
+
if (lastValue>lineData.YClose) color=this.CloseLineConfig.UpAreaColor;
|
|
150729
|
+
else if (lastValue<lineData.YClose) color=this.CloseLineConfig.DownAreaColor;
|
|
150730
|
+
}
|
|
150731
|
+
}
|
|
150732
|
+
|
|
150733
|
+
return color;
|
|
150734
|
+
}
|
|
150735
|
+
|
|
150517
150736
|
//klineData={ Data:[ open, high, low, close ] }
|
|
150518
150737
|
this.DrawKLine=function(klineData, column, rtItem, data)
|
|
150519
150738
|
{
|
|
@@ -150583,7 +150802,31 @@ function ChartReport()
|
|
|
150583
150802
|
var distanceWidth=this.KLineConfig.DistanceWidth;
|
|
150584
150803
|
var xOffset=left;
|
|
150585
150804
|
var x, xLeft, xRight;
|
|
150805
|
+
var drawCount=0;
|
|
150586
150806
|
for(var i=0;i<aryKLine.length;++i,xOffset+=(dataWidth+distanceWidth))
|
|
150807
|
+
{
|
|
150808
|
+
xLeft=xOffset;
|
|
150809
|
+
xRight=xOffset+dataWidth;
|
|
150810
|
+
x=xLeft+(xRight-xLeft)/2;
|
|
150811
|
+
if (xRight>right) break;
|
|
150812
|
+
drawCount++;
|
|
150813
|
+
}
|
|
150814
|
+
|
|
150815
|
+
var xOffset=left;
|
|
150816
|
+
var startIndex=0;
|
|
150817
|
+
if (aryKLine.length>drawCount)
|
|
150818
|
+
{
|
|
150819
|
+
high=null,low=null;
|
|
150820
|
+
startIndex=aryKLine.length-drawCount;
|
|
150821
|
+
for(var i=startIndex;i<aryKLine.length;++i)
|
|
150822
|
+
{
|
|
150823
|
+
var item=aryKLine[i];
|
|
150824
|
+
if (high==null || high<item.High) high=item.High;
|
|
150825
|
+
if (low==null || low>item.Low) low=item.Low;
|
|
150826
|
+
}
|
|
150827
|
+
}
|
|
150828
|
+
|
|
150829
|
+
for(var i=startIndex;i<aryKLine.length;++i,xOffset+=(dataWidth+distanceWidth))
|
|
150587
150830
|
{
|
|
150588
150831
|
var item=aryKLine[i];
|
|
150589
150832
|
xLeft=xOffset;
|
|
@@ -150671,7 +150914,11 @@ function ChartReport()
|
|
|
150671
150914
|
}
|
|
150672
150915
|
else
|
|
150673
150916
|
{
|
|
150674
|
-
|
|
150917
|
+
this.Canvas.beginPath();
|
|
150918
|
+
var xBar=x;
|
|
150919
|
+
this.Canvas.moveTo(ToFixedPoint(xBar),ToFixedPoint(yBarTop));
|
|
150920
|
+
this.Canvas.lineTo(ToFixedPoint(xBar),ToFixedPoint(yBarBottom));
|
|
150921
|
+
this.Canvas.stroke();
|
|
150675
150922
|
}
|
|
150676
150923
|
}
|
|
150677
150924
|
|
|
@@ -167574,7 +167821,7 @@ function HQChartScriptWorker()
|
|
|
167574
167821
|
|
|
167575
167822
|
|
|
167576
167823
|
|
|
167577
|
-
var HQCHART_VERSION="1.1.
|
|
167824
|
+
var HQCHART_VERSION="1.1.15389";
|
|
167578
167825
|
|
|
167579
167826
|
function PrintHQChartVersion()
|
|
167580
167827
|
{
|