hqchart 1.1.13409 → 1.1.13436
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.NetworkFilterTest.vue.js +3 -2
- package/lib/umychart.vue.js +24 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +34 -0
- package/src/jscommon/umychart.complier.js +54 -0
- package/src/jscommon/umychart.index.data.js +16 -0
- package/src/jscommon/umychart.js +85 -3
- package/src/jscommon/umychart.testdata/000001.sh.day.kline.js +79866 -0
- package/src/jscommon/umychart.testdata/399001.sz.day.kline.js +78515 -0
- package/src/jscommon/umychart.testdata.js +34 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +166 -7
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +34 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +156 -4
|
@@ -11,7 +11,8 @@ HQData.RequestRealtimeData(data,callback);break;case'KLineChartContainer::Reques
|
|
|
11
11
|
HQData.RequestFlowCapitalData(data,callback);break;case'KLineChartContainer::ReqeustHistoryMinuteData'://分钟全量数据下载
|
|
12
12
|
HQData.RequestHistoryMinuteData(data,callback);break;case'KLineChartContainer::RequestMinuteRealtimeData'://分钟增量数据更新
|
|
13
13
|
HQData.RequestMinuteRealtimeData(data,callback);break;case"JSSymbolData::GetVariantData"://额外的变量数据
|
|
14
|
-
HQData.RequestIndexVariantData(data,callback);break;case"JSSymbolData::GetOtherSymbolData":HQData.RequestOtherSymbolData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"JSSymbolData::GetLatestData":HQData.RequestLatestData(data,callback);break;case"
|
|
14
|
+
HQData.RequestIndexVariantData(data,callback);break;case"JSSymbolData::GetOtherSymbolData":HQData.RequestOtherSymbolData(data,callback);break;case"AnnouncementInfo::RequestData":HQData.AnnouncementInfo_RequestData(data,callback);break;case"JSSymbolData::GetLatestData":HQData.RequestLatestData(data,callback);break;case"KLineChartContainer::RequestOverlayHistoryData"://叠加股票
|
|
15
|
+
HQData.RequestOverlayHistoryData(data,callback);break;case"KLineChartContainer::RequestOverlayHistoryMinuteData":HQData.RequestOverlayHistoryMinuteData(data,callback);break;case"PforecastInfo::RequestData":HQData.PforecastInfo_RequestData(data,callback);break;case"InvestorInfo::RequestData":HQData.InvestorInfo_RequestData(data,callback);break;case"ResearchInfo::RequestData":break;case"BlockTrading::RequestData":HQData.BlockTrading_RequestData(data,callback);break;case"TradeDetail::RequestData":HQData.TradeDetail_RequestData(data,callback);break;}};HQData.RequestMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
15
16
|
var callcation=data.Request.Data.callcation;//集合竞价
|
|
16
17
|
console.log("[HQData::RequestMinuteData] Symbol="+symbol);var srcStock=MINUTE_1DAY_DATA.stock[0];var stockItem={date:srcStock.date,minute:srcStock.minute,yclose:srcStock.yclose,symbol:srcStock.symbol,name:srcStock.name};if(callcation.Before){var before=[//[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
|
|
17
18
|
[915,srcStock.yclose,0,0],[916,srcStock.yclose+0.01,0,0],[917,srcStock.yclose+0.03,0,0],[918,srcStock.yclose+0.02,0,0],[919,srcStock.yclose+0.02,0,0],[920,srcStock.yclose+0.01,0,0],[921,srcStock.yclose,0,0],[922,srcStock.yclose-0.02,0,0],[923,srcStock.yclose-0.03,0,0],[924,srcStock.yclose,0,0],[925,srcStock.yclose,0,0]];var beforeinfo={totalcount:11,ver:1.0};stockItem.before=before;stockItem.beforeinfo=beforeinfo;}var hqchartData={code:0,stock:[stockItem]};callback(hqchartData);};HQData.RequestMinuteDaysData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;//请求的股票代码
|
|
@@ -24,4 +25,4 @@ console.log("[HQData::RequestRealtimeData] Symbol="+symbol);var hqchartData=KLIN
|
|
|
24
25
|
console.log("[HQData::RequestHistoryMinuteData] Symbol="+symbol);var hqchartData=KLINE_MINUTE_DATA;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestMinuteRealtimeData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];//请求的股票代码
|
|
25
26
|
console.log("[HQData::RequestMinuteRealtimeData] Symbol="+symbol);var hqchartData=JSON.parse((0,_stringify2.default)(KLINE_1MINUTE_DATA));var kItem=hqchartData.data[0];var price=kItem[5];var value=Math.ceil(Math.random()*10)/1000*price;var bUp=Math.ceil(Math.random()*10)>=5;if(bUp)price+=value;else price-=value;kItem[5]=price;kItem[3]=Math.max(price,kItem[3]);kItem[4]=Math.min(price,kItem[4]);hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.RequestIndexVariantData=function(data,callback){var varName=data.Request.Data.VariantName;//变量名称
|
|
26
27
|
if(varName=="FROMOPEN"){var hqchartData={};//单数据
|
|
27
|
-
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};HQData.RequestOtherSymbolData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;var period=data.Request.Data.period;var right=data.Request.Data.right;var hqchartData=null;if(ChartData.IsDayPeriod(period,true))hqchartData=KLINE_DAY_DATA2;else if(ChartData.IsMinutePeriod(period,true))hqchartData=KLINE_MINUTE_DATA2;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.AnnouncementInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={releasedate:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.PforecastInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={date:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.InvestorInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_NEWSINTERACT_DATA);};HQData.BlockTrading_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_BLOCK_TRADING_DATA);};HQData.TradeDetail_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_TRADE_DETAL_DATA);};HQData.RequestLatestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];var id=data.Args[0];var value=1;switch(id){case 3:value=KLINE_1DAY_DATA.stock[0].yclose;break;case 4:value=KLINE_1DAY_DATA.stock[0].open;break;case 5:value=KLINE_1DAY_DATA.stock[0].high;break;case 6:value=KLINE_1DAY_DATA.stock[0].low;break;case 7:value=KLINE_1DAY_DATA.stock[0].price;break;case 8:value=KLINE_1DAY_DATA.stock[0].vol;break;}var hqchartData={symbol:symbol,ver:2.0,data:[{id:id,value:value}]};callback(hqchartData);};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
|
28
|
+
hqchartData.Data={Date:20230707,Value:240};hqchartData.DataType=1;callback(hqchartData);}};HQData.RequestOtherSymbolData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;var period=data.Request.Data.period;var right=data.Request.Data.right;var hqchartData=null;if(ChartData.IsDayPeriod(period,true))hqchartData=KLINE_DAY_DATA2;else if(ChartData.IsMinutePeriod(period,true))hqchartData=KLINE_MINUTE_DATA2;hqchartData.name=symbol;hqchartData.symbol=symbol;callback(hqchartData);};HQData.AnnouncementInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={releasedate:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.PforecastInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;var hqchartData={symbol:symbol,report:[]};var kData=data.HQChart.ChartPaint[0].Data;for(var i=0,j=1;i<kData.Data.length;++i){var kItem=kData.Data[i];if(i%10!=4)continue;var itemReport={date:kItem.Date,time:kItem.Time,title:"\u516C\u544A("+j+") xxxx"};hqchartData.report.push(itemReport);++j;}callback(hqchartData);};HQData.InvestorInfo_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_NEWSINTERACT_DATA);};HQData.BlockTrading_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_BLOCK_TRADING_DATA);};HQData.TradeDetail_RequestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Symbol;callback(TEST_TRADE_DETAL_DATA);};HQData.RequestLatestData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol[0];var id=data.Args[0];var value=1;switch(id){case 3:value=KLINE_1DAY_DATA.stock[0].yclose;break;case 4:value=KLINE_1DAY_DATA.stock[0].open;break;case 5:value=KLINE_1DAY_DATA.stock[0].high;break;case 6:value=KLINE_1DAY_DATA.stock[0].low;break;case 7:value=KLINE_1DAY_DATA.stock[0].price;break;case 8:value=KLINE_1DAY_DATA.stock[0].vol;break;}var hqchartData={symbol:symbol,ver:2.0,data:[{id:id,value:value}]};callback(hqchartData);};HQData.RequestOverlayHistoryData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;var hqchartData={symbol:symbol,name:symbol};if(symbol=="399001.sz")hqchartData.data=KLINE_DAY_OVERLAY_DATA2.data;else hqchartData.data=KLINE_DAY_OVERLAY_DATA.data;callback(hqchartData);};HQData.RequestOverlayHistoryMinuteData=function(data,callback){data.PreventDefault=true;var symbol=data.Request.Data.symbol;var hqchartData={symbol:symbol,name:symbol};hqchartData.data=KLINE_MINUTE_DATA2.data;callback(hqchartData);};/*暴露外部用的方法*/exports.default={HQData:HQData};
|
package/lib/umychart.vue.js
CHANGED
|
@@ -59,7 +59,8 @@ HISTORY_MINUTE_ID:103,//历史分钟 走势图
|
|
|
59
59
|
KLINE_DAY_ID:0,KLINE_WEEK_ID:1,KLINE_TWOWEEK_ID:21,KLINE_MONTH_ID:2,KLINE_QUARTER_ID:9,KLINE_YEAR_ID:3,KLINE_MINUTE_ID:4,KLINE_5_MINUTE_ID:5,KLINE_15_MINUTE_ID:6,KLINE_30_MINUTE_ID:7,KLINE_60_MINUTE_ID:8};//自定义的指标脚本
|
|
60
60
|
function CustomIndexScript(){this.DataMap=new _map2.default();//key=指标id, value=data {ID:, Name:指标名字, Description:指标描述信息 Args:参数 ......}
|
|
61
61
|
this.Get=function(id){if(!this.DataMap.has(id))return null;return this.DataMap.get(id);};this.Add=function(data){this.DataMap.set(data.ID,data);};}var g_CustomIndex=new CustomIndexScript();function JSIndexScript(){this.DataMap=new _map2.default([['MA',this.MA],['均线',this.MA],["MA4",this.MA4],["MA5",this.MA5],["MA6",this.MA6],["MA7",this.MA7],["MA8",this.MA8],['BOLL',this.BOLL],['BOLL副图',this.BOLL2],['BBI',this.BBI],['DKX',this.DKX],['MIKE',this.MIKE],['PBX',this.PBX],['ENE',this.ENE],['MACD',this.MACD],['KDJ',this.KDJ],["MACD2",this.MACD2],['VOL',this.VOL],['VOL2',this.VOL2],["VOL_OVERLAY",this.VOL_OVERLAY],['RSI',this.RSI],['BRAR',this.BRAR],['WR',this.WR],['BIAS',this.BIAS],['OBV',this.OBV],['DMI',this.DMI],['CR',this.CR],['PSY',this.PSY],['CCI',this.CCI],['DMA',this.DMA],['TRIX',this.TRIX],['VR',this.VR],['EMV',this.EMV],['ROC',this.ROC],['MTM',this.MTM],['FSL',this.FSL],['CYR',this.CYR],['MASS',this.MASS],['WAD',this.WAD],['CHO',this.CHO],['ADTM',this.ADTM],['HSL',this.HSL],['BIAS36',this.BIAS36],['BIAS_QL',this.BIAS_QL],['DPO',this.DPO],['OSC',this.OSC],['ATR',this.ATR],['NVI',this.NVI],['PVI',this.PVI],['UOS',this.UOS],['CYW',this.CYW],['LON',this.LON],['NDB',this.NDB],['SKDJ',this.SKDJ],['KD',this.KD],['FKX',this.FKX],['DKCOL',this.DKCOL],['UDL',this.UDL],['MFI',this.MFI],['LWR',this.LWR],['MARSI',this.MARSI],['CYD',this.CYD],['CYF',this.CYF],['TAPI',this.TAPI],['VMACD',this.VMACD],['QACD',this.QACD],['VPT',this.VPT],['WVAD',this.WVAD],['DBQR',this.DBQR],['JS',this.JS],['CYE',this.CYE],['QR',this.QR],['GDX',this.GDX],['JLHB',this.JLHB],['PCNT',this.PCNT],['BTX',this.BTX],['AMO',this.AMO],['VRSI',this.VRSI],['HSCOL',this.HSCOL],['DBQRV',this.DBQRV],['DBLB',this.DBLB],['ACD',this.ACD],['EXPMA',this.EXPMA],['EXPMA_S',this.EXPMA_S],['HMA',this.HMA],['LMA',this.LMA],['VMA',this.VMA],['AMV',this.AMV],['BBIBOLL',this.BBIBOLL],['ALLIGAT',this.ALLIGAT],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],['SG-XDT',this.SG_XDT],['SG-SMX',this.SG_SMX],['SG-LB',this.SG_LB],['SG-PF',this.SG_PF],['RAD',this.RAD],['SHT',this.SHT],['ZLJC',this.ZLJC],['ZLMM',this.ZLMM],['SLZT',this.SLZT],['ADVOL',this.ADVOL],['CYC',this.CYC],['CYS',this.CYS],['CYQKL',this.CYQKL],['SCR',this.SCR],['ASR',this.ASR],['SAR',this.SAR],['TJCJL',this.TJCJL],['量比',this.VOLRate],['平均K线',this.HeikinAshi],["ADL",this.ADL],["SQJZ",this.SQJZ],["XT",this.XT],["CFJT",this.CFJT],["CYX",this.CYX],["WAVE",this.WAVE],['VOL-TDX',this.VOL_TDX],['EMPTY',this.EMPTY],//什么都不显示的指标
|
|
62
|
-
['神奇九转',this.NineTurns],['EMA',this.EMA3],['EMA4',this.EMA4],['EMA5',this.EMA5],['EMA6',this.EMA6],["ICHIMOKU",this.ICHIMOKU],["CDP-STD",this.CDP_STD],["TBP-STD",this.TBP_STD],["ADX",this.ADX]
|
|
62
|
+
['神奇九转',this.NineTurns],['EMA',this.EMA3],['EMA4',this.EMA4],['EMA5',this.EMA5],['EMA6',this.EMA6],["ICHIMOKU",this.ICHIMOKU],["CDP-STD",this.CDP_STD],["TBP-STD",this.TBP_STD],["ADX",this.ADX],["持仓量",this.VOL_POSITION],//成交量+持仓量
|
|
63
|
+
//通达信特色指标
|
|
63
64
|
["散户线",this.ShareholderCount],["NXTS",this.NXTS],["FKX",this.FKX],["两融资金",this.Margin4],["ZSDB",this.ZSDB],['CJL2',this.CJL],//期货持仓量
|
|
64
65
|
['ASI',this.ASI],['DC',this.DC],['DEMA',this.DEMA],["VWAP",this.VWAP],//指南针
|
|
65
66
|
["ZNZ_CBAND",this.ZNZ_CBAND],["ZNZ_RPY2",this.ZNZ_RPY2],["ZNZ_RPY1",this.ZNZ_RPY1],['飞龙四式',this.Dragon4_Main],['飞龙四式-附图',this.Dragon4_Fig],['资金分析',this.FundsAnalysis],['融资占比',this.MarginProportion],['负面新闻',this.NewsNegative],['涨跌趋势',this.UpDownAnalyze],['北上资金',this.HK2SHSZ],['股东人数',this.ShareHolder],["两融余额",this.Margin2],["两融余额2",this.Margin3],//外包指标
|
|
@@ -868,7 +869,9 @@ DRAWKLINE(HHIGH,HOPEN,HLOW,HCLOSE);"};return data;};JSIndexScript.prototype.ADL=
|
|
|
868
869
|
MAADL:MA(ADL,M);"};return data;};JSIndexScript.prototype.EMPTY=function(){var data={Name:'',Description:'空指标',IsMainIndex:true,Args:[],Script://脚本
|
|
869
870
|
'VAR2:=C;'};return data;};JSIndexScript.prototype.CJL=function(){var data={Name:'CJL',Description:'期货持仓量',IsMainIndex:false,Args:[],Script://脚本
|
|
870
871
|
"成交量:VOL,VOLSTICK;\n\
|
|
871
|
-
持仓量:VOLINSTK,LINEOVERLAY;"};return data;};JSIndexScript.prototype.
|
|
872
|
+
持仓量:VOLINSTK,LINEOVERLAY;"};return data;};JSIndexScript.prototype.VOL_POSITION=function(){var data={Name:'持仓量',Description:'持仓量',IsMainIndex:false,Args:[],Script://脚本
|
|
873
|
+
"成交量:VOL,VOLSTICK;\n\
|
|
874
|
+
持仓量:VOLINSTK,SINGLELINE;"};return data;};JSIndexScript.prototype.ASI=function(){var data={Name:'ASI',Description:'振动升降指标',IsMainIndex:false,Args:[{Name:'N1',Value:6}],Script://脚本
|
|
872
875
|
"X_1:=REF(CLOSE,1);\n\
|
|
873
876
|
X_2:=ABS(HIGH-X_1);\n\
|
|
874
877
|
X_3:=ABS(LOW-X_1);\n\
|
|
@@ -1435,7 +1438,7 @@ ON_RCLICK_TREPORT_HEADER:125,//右键点击T型报价表头
|
|
|
1435
1438
|
ON_TREPORT_LOCAL_SORT:126,//T型报价列表本地排序
|
|
1436
1439
|
ON_CLICK_TREPORT_ROW:127,//左键点击点击T型报价列表
|
|
1437
1440
|
ON_CHANGE_INDEX:150,//切换指标
|
|
1438
|
-
ON_MENU_COMMAND:151
|
|
1441
|
+
ON_MENU_COMMAND:151,//菜单事件回调
|
|
1439
1442
|
ON_CREATE_RIGHT_MENU:152,//创建右键菜单
|
|
1440
1443
|
ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153//集合竞价指标窗口标题内容
|
|
1441
1444
|
};var JSCHART_OPERATOR_ID={OP_SCROLL_LEFT:1,//往左移动
|
|
@@ -2982,7 +2985,7 @@ if(ChartData.IsDayPeriod(period,false))return this.GetDayPeriodData(period);//if
|
|
|
2982
2985
|
if(ChartData.IsMinutePeriod(period,false))return this.GetMinutePeriodData(period);};//复权 0 不复权 1 前复权 2 后复权
|
|
2983
2986
|
this.GetRightData=function(right,option){var result=[];if(this.Data.length<=0)return result;if(option&&option.AlgorithmType==1)//使用复权因子计算
|
|
2984
2987
|
{for(var i=0;i<this.Data.length;++i){var item=this.Data[i];var seed=right==1?item.BFactor:item.AFactor;result[i]=HistoryData.CopyRight(item,seed);}return result;}if(right==1){var index=this.Data.length-1;var seed=1;//复权系数
|
|
2985
|
-
var yClose=this.Data[index].YClose;result[index]=HistoryData.Copy(this.Data[index]);for(--index;index>=0;--index){if(yClose!=this.Data[index].Close)break;var newItem=HistoryData.Copy(this.Data[index]);newItem.RightSeed=seed;result[index]=newItem;yClose=this.Data[index].YClose;}for(;index>=0;--index){var value=this.Data[index].Close;if(yClose!=value&&value!=0)seed*=yClose/value;var newItem=HistoryData.CopyRight(this.Data[index],seed);newItem.RightSeed=seed;result[index]=newItem;yClose=this.Data[index].YClose;}}else if(right==2){var index=0;var seed=1;var close=this.Data[index].Close;result[index]=HistoryData.Copy(this.Data[index]);for(++index;index<this.Data.length;++index){if(close!=this.Data[index].YClose)break;var newItem=HistoryData.Copy(this.Data[index]);newItem.RightSeed=seed;result[index]=newItem;close=this.Data[index].Close;}for(;index<this.Data.length;++index){if(close!=this.Data[index].YClose)seed*=close/this.Data[index].YClose;var newItem=HistoryData.CopyRight(this.Data[index],seed);newItem.RightSeed=seed;result[index]=newItem;close=this.Data[index].Close;}}return result;};this.GetRightDate=this.GetRightData;//叠加数据和主数据拟合,去掉主数据没有日期的数据
|
|
2988
|
+
var yClose=this.Data[index].YClose;result[index]=HistoryData.Copy(this.Data[index]);result[index].RightSeed=seed;for(--index;index>=0;--index){if(yClose!=this.Data[index].Close)break;var newItem=HistoryData.Copy(this.Data[index]);newItem.RightSeed=seed;result[index]=newItem;yClose=this.Data[index].YClose;}for(;index>=0;--index){var value=this.Data[index].Close;if(yClose!=value&&value!=0)seed*=yClose/value;var newItem=HistoryData.CopyRight(this.Data[index],seed);newItem.RightSeed=seed;result[index]=newItem;yClose=this.Data[index].YClose;}}else if(right==2){var index=0;var seed=1;var close=this.Data[index].Close;result[index]=HistoryData.Copy(this.Data[index]);result[index].RightSeed=seed;for(++index;index<this.Data.length;++index){if(close!=this.Data[index].YClose)break;var newItem=HistoryData.Copy(this.Data[index]);newItem.RightSeed=seed;result[index]=newItem;close=this.Data[index].Close;}for(;index<this.Data.length;++index){if(close!=this.Data[index].YClose)seed*=close/this.Data[index].YClose;var newItem=HistoryData.CopyRight(this.Data[index],seed);newItem.RightSeed=seed;result[index]=newItem;close=this.Data[index].Close;}}return result;};this.GetRightDate=this.GetRightData;//叠加数据和主数据拟合,去掉主数据没有日期的数据
|
|
2986
2989
|
this.GetOverlayData=function(overlayData,bApiPeriod){var result=[];for(var i=0,j=0;i<this.Data.length;){var date=this.Data[i].Date;if(j>=overlayData.length){result[i]=new HistoryData();result[i].Date=date;++i;continue;;}var overlayDate=overlayData[j].Date;if(overlayDate==date){result[i]=new HistoryData();result[i].Date=overlayData[j].Date;result[i].YClose=overlayData[j].YClose;result[i].Open=overlayData[j].Open;result[i].High=overlayData[j].High;result[i].Low=overlayData[j].Low;result[i].Close=overlayData[j].Close;result[i].Vol=overlayData[j].Vol;result[i].Amount=overlayData[j].Amount;//涨跌家数数据
|
|
2987
2990
|
result[i].Stop=overlayData[j].Stop;result[i].Up=overlayData[j].Up;result[i].Down=overlayData[j].Down;result[i].Unchanged=overlayData[j].Unchanged;++j;++i;}else if(overlayDate<date){++j;}else{result[i]=new HistoryData();result[i].Date=date;++i;}}return result;};this.GetOverlayMinuteData=function(overlayData,bApiPeriod){var result=[];for(var i=0,j=0;i<this.Data.length;){var date=this.Data[i].Date;var time=this.Data[i].Time;if(j>=overlayData.length){result[i]=new HistoryData();result[i].Date=date;result[i].Time=time;++i;continue;;}var overlayDate=overlayData[j].Date;var overlayTime=overlayData[j].Time;if(overlayDate==date&&overlayTime==time){result[i]=new HistoryData();result[i].Date=overlayData[j].Date;result[i].Time=overlayData[j].Time;result[i].YClose=overlayData[j].YClose;result[i].Open=overlayData[j].Open;result[i].High=overlayData[j].High;result[i].Low=overlayData[j].Low;result[i].Close=overlayData[j].Close;result[i].Vol=overlayData[j].Vol;result[i].Amount=overlayData[j].Amount;//涨跌家数数据
|
|
2988
2991
|
result[i].Stop=overlayData[j].Stop;result[i].Up=overlayData[j].Up;result[i].Down=overlayData[j].Down;result[i].Unchanged=overlayData[j].Unchanged;++j;++i;}else if(overlayDate<date||overlayDate==date&&overlayTime<time){++j;}else{result[i]=new HistoryData();result[i].Date=date;result[i].Time=time;++i;}}return result;};/*
|
|
@@ -3711,7 +3714,12 @@ this.DrawStraightLine=function(){var firstData=this.GetFirstVaildIndex();if(!fir
|
|
|
3711
3714
|
var bFirstPoint=true;var drawCount=0,rate=0;for(var i=firstData.DataOffset,j=firstData.Index;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(value==null){if(drawCount>0)this.Canvas.stroke();bFirstPoint=true;drawCount=0;continue;}var x=this.ChartFrame.GetXFromIndex(j);var diff=value-firstData.OverlayValue;if(firstData.OverlayValue!=0)rate=1+diff/Math.abs(firstData.OverlayValue);else rate=1+diff;var fixedValue=firstData.MainValue*rate;//var fixedValue=value/firstData.OverlayValue*firstData.MainValue;
|
|
3712
3715
|
var y=this.GetYFromData(fixedValue);if(x>chartright)break;if(bFirstPoint){this.Canvas.beginPath();if(bHScreen)this.Canvas.moveTo(y,x);//横屏坐标轴对调
|
|
3713
3716
|
else this.Canvas.moveTo(x,y);bFirstPoint=false;}else{if(bHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}++drawCount;}if(drawCount>0)this.Canvas.stroke();this.Canvas.restore();};this.GetMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={};range.Min=null;range.Max=null;var firstData=this.GetFirstVaildIndex();if(!firstData)return range;for(var i=firstData.DataOffset,j=firstData.Index;i<this.Data.Data.length&&j<xPointCount;++i,++j){var overlayValue=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(overlayValue))continue;var diff=overlayValue-firstData.OverlayValue;if(firstData.OverlayValue!=0)rate=1+diff/Math.abs(firstData.OverlayValue);else rate=1+diff;var value=firstData.MainValue*rate;//var value=overlayValue/firstData.OverlayValue*firstData.MainValue;
|
|
3714
|
-
if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};}
|
|
3717
|
+
if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};}//独立线段
|
|
3718
|
+
function ChartSingleLine(){this.newMethod=ChartLine;//派生
|
|
3719
|
+
this.newMethod();delete this.newMethod;this.ClassName='ChartSingleLine';//类名
|
|
3720
|
+
this.MaxMin=null;//当前的显示范围
|
|
3721
|
+
this.Draw=function(){this.MaxMin=null;if(!this.IsShow||this.ChartFrame.IsMinSize||!this.IsVisible)return;if(this.IsShowIndexTitleOnly())return;if(this.IsHideScriptIndex())return;if(!this.Data||!this.Data.Data)return;this.MaxMin=this.GetCurrentMaxMin();if(!this.MaxMin)return;if(!IFrameSplitOperator.IsNumber(this.MaxMin.Max)||!IFrameSplitOperator.IsNumber(this.MaxMin.Min))return;switch(this.DrawType){default:return this.DrawStraightLine();}};//获取当前页的最大最小值
|
|
3722
|
+
this.GetCurrentMaxMin=function(){var xPointCount=this.ChartFrame.XPointCount;var range={Max:null,Min:null};for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length&&j<xPointCount;++i,++j){var value=this.Data.Data[i];if(!IFrameSplitOperator.IsNumber(value))continue;if(range.Max==null)range.Max=value;if(range.Min==null)range.Min=value;if(range.Max<value)range.Max=value;if(range.Min>value)range.Min=value;}return range;};this.GetMaxMin=function(){return{Max:null,Min:null};};this.GetYFromData=function(value){var bHScreen=this.ChartFrame.IsHScreen===true;if(bHScreen){if(value<=this.MaxMin.Min)return this.ChartBorder.GetLeftEx();if(value>=this.MaxMin.Max)return this.ChartBorder.GetRightEx();var width=this.ChartBorder.GetWidthEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);return this.ChartBorder.GetLeftEx()+width;}else{if(value<=this.MaxMin.Min)return this.ChartBorder.GetBottomEx();if(value>=this.MaxMin.Max)return this.ChartBorder.GetTopEx();var height=this.ChartBorder.GetHeightEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);return this.ChartBorder.GetBottomEx()-height;}};}//彩色线段
|
|
3715
3723
|
function ChartPartLine(){this.newMethod=IChartPainting;//派生
|
|
3716
3724
|
this.newMethod();delete this.newMethod;this.ClassName='ChartPartLine';//类名
|
|
3717
3725
|
this.LineWidth;//线段宽度
|
|
@@ -3896,7 +3904,7 @@ this.Source;//原始分钟数据
|
|
|
3896
3904
|
this.PtInChart=this.PtInLine;this.DrawSelectedStatus=this.DrawLinePoint;this.PtInChart=this.PtInLine;this.DrawSelectedStatus=this.DrawLinePoint;this.DayOffset;this.LastPoint={};//最后一个点的信息 {X, Y, Data:, Value:, DateTime:YYYYMMDDHHMMSS }
|
|
3897
3905
|
this.FFMChart;//定制图形
|
|
3898
3906
|
this.DrawType=0;//0=走势图 14=定制图形
|
|
3899
|
-
this.UpdateLastPoint=function(dateTime,x,y,item){if(IFrameSplitOperator.IsNumber(this.LastPoint.DateTime)&&this.LastPoint.DateTime>dateTime)return;this.LastPoint.DateTime=dateTime;this.LastPoint.X=x;this.LastPoint.Y=y;this.LastPoint.Data=item;this.LastPoint.Value=item.Value;};this.Draw=function(){if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}this.LastPoint={};if(!this.IsShow)return;if(this.DrawType==14){if(this.FFMChart&&this.FFMChart.Draw)this.FFMChart.Draw(this);return;}var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();if(isHScreen===true)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;var minuteCount=this.ChartFrame.MinuteCount;var bottom=this.ChartBorder.
|
|
3907
|
+
this.UpdateLastPoint=function(dateTime,x,y,item){if(IFrameSplitOperator.IsNumber(this.LastPoint.DateTime)&&this.LastPoint.DateTime>dateTime)return;this.LastPoint.DateTime=dateTime;this.LastPoint.X=x;this.LastPoint.Y=y;this.LastPoint.Data=item;this.LastPoint.Value=item.Value;};this.Draw=function(){if(this.NotSupportMessage){this.DrawNotSupportmessage();return;}this.LastPoint={};if(!this.IsShow)return;if(this.DrawType==14){if(this.FFMChart&&this.FFMChart.Draw)this.FFMChart.Draw(this);return;}var isHScreen=this.ChartFrame.IsHScreen===true;var dataWidth=this.ChartFrame.DataWidth;var distanceWidth=this.ChartFrame.DistanceWidth;var chartright=this.ChartBorder.GetRight();if(isHScreen===true)chartright=this.ChartBorder.GetBottom();var xPointCount=this.ChartFrame.XPointCount;var minuteCount=this.ChartFrame.MinuteCount;var bottom=this.ChartBorder.GetBottom();var left=this.ChartBorder.GetLeft();var data=this.Data;this.DrawBeforeOpen();//盘前
|
|
3900
3908
|
this.DrawMultiDayBeforeOpen();if(this.IsShowLead)this.DrawLead();//领先指标
|
|
3901
3909
|
if(!data)return;var bFirstPoint=true;var ptFirst={};//第1个点
|
|
3902
3910
|
var drawCount=0;var pointCount=0;this.Canvas.save();if(IFrameSplitOperator.IsPlusNumber(this.LineWidth>0))this.Canvas.lineWidth=this.LineWidth;for(var i=data.DataOffset,j=0;i<data.Data.length&&j<xPointCount;++i,++j){var value=null;value=data.Data[i];++pointCount;if(value==null)continue;var x=this.ChartFrame.GetXFromIndex(j);var y=this.ChartFrame.GetYFromData(value);if(bFirstPoint){this.Canvas.strokeStyle=this.Color;this.Canvas.beginPath();if(isHScreen)this.Canvas.moveTo(y,x);else this.Canvas.moveTo(x,y);bFirstPoint=false;ptFirst={X:x,Y:y};}else{if(isHScreen)this.Canvas.lineTo(y,x);else this.Canvas.lineTo(x,y);}if(this.Source){var item=this.Source.Data[i];var dateTime=item.Date*1000000+item.Time*100;this.UpdateLastPoint(dateTime,x,y,{Value:value,Index:i,Date:item.Date,Time:item.Time,Type:0,Explain:"盘中"});}++drawCount;if(pointCount>=minuteCount)//上一天的数据和这天地数据线段要断开
|
|
@@ -11186,6 +11194,7 @@ if(item.Type==Syntax.ExpressionStatement&&item.Expression){if(item.Expression.Ty
|
|
|
11186
11194
|
{var _outVar4=item.Expression.Value;if(IFrameSplitOperator.IsString(_outVar4)&&_outVar4.indexOf("$")>0)_outVar4=this.SymbolData.GetOtherSymolCacheData({Literal:_outVar4});varName="__temp_li_"+i+"__";var type=0;if(!Array.isArray(_outVar4))_outVar4=this.SingleDataToArrayData(_outVar4);this.OutVarTable.push({Name:varName,Data:_outVar4,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.BinaryExpression){var varName="__temp_b_"+i+"__";var _outVar5=item.Expression.Out;var type=0;if(!Array.isArray(_outVar5))_outVar5=this.SingleDataToArrayData(_outVar5);this.OutVarTable.push({Name:varName,Data:_outVar5,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.LogicalExpression)//逻辑语句 如 T1 AND T2
|
|
11187
11195
|
{var varName="__temp_l_"+i+"__";var _outVar6=item.Expression.Out;var type=0;if(!Array.isArray(_outVar6))_outVar6=this.SingleDataToArrayData(_outVar6);this.OutVarTable.push({Name:varName,Data:_outVar6,Type:type,NoneName:true});}else if(item.Expression.Type==Syntax.UnaryExpression){var varName="__temp_u_"+i+"__";var varInfo={};if(this.ReadUnaryExpression(item.Expression,varInfo)){var type=0;this.OutVarTable.push({Name:varName,Data:varInfo.OutVar,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.MemberExpression)//MA.MA2
|
|
11188
11196
|
{var outVar=this.ReadMemberVariable(item.Expression);if(outVar){var type=0;var varName="__temp_di_"+i+"__";if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);this.OutVarTable.push({Name:varName,Data:outVar,Type:type,NoneName:true});}}else if(item.Expression.Type==Syntax.SequenceExpression){var _varName3=void 0;var _draw3=void 0;var color=void 0,upColor=void 0,downColor=void 0,stickType=void 0;var lineWidth=void 0;var colorStick=false;var pointDot=false;var upDownDot=false;var circleDot=false;var lineStick=false;var stick=false;var volStick=false;var lineArea=false;var stepLine=false;var isShow=true;var isExData=false;var isDotLine=false;var isOverlayLine=false;//叠加线
|
|
11197
|
+
var isSingleLine=false;//独立线段
|
|
11189
11198
|
var isNoneName=false;var isShowTitle=true;//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
|
|
11190
11199
|
//DRAWNUMBER(CLOSE>OPEN,HIGH,CLOSE),DRAWABOVE;
|
|
11191
11200
|
var isDrawAbove=false;var isDrawCenter=false;var isDrawBelow=false;//VALIGN0,VALIGN1,VALIGN2 设置文字垂直对齐方式(上中下)
|
|
@@ -11193,7 +11202,7 @@ var isDrawAbove=false;var isDrawCenter=false;var isDrawBelow=false;//VALIGN0,VAL
|
|
|
11193
11202
|
var drawAlign=-1,drawVAlign=-1;var fontSize=-1;var bgConfig=null;//背景设置
|
|
11194
11203
|
var vLineConfig=null;var isFirstDraw=null;var xOffset=null,yOffset=null;var klineType=null;for(var _j14=0;_j14<item.Expression.Expression.length;++_j14){var itemExpression=item.Expression.Expression[_j14];if(itemExpression.Type==Syntax.AssignmentExpression&&itemExpression.Operator==':'&&itemExpression.Left){if(_j14==0){_varName3=itemExpression.Left.Name;var _varValue=this.VarTable.get(_varName3);if(this.VarDrawTable.has(_varName3))//绘图函数赋值
|
|
11195
11204
|
{_draw3=this.VarDrawTable.get(_varName3);}else if(!Array.isArray(_varValue)){_varValue=this.SingleDataToArrayData(_varValue);this.VarTable.set(_varName3,_varValue);//把常量放到变量表里
|
|
11196
|
-
}}else{}}else if(itemExpression.Type==Syntax.Identifier){var _value3=itemExpression.Name;if(_value3==='COLORSTICK')colorStick=true;else if(_value3==='POINTDOT')pointDot=true;else if(_value3==='CIRCLEDOT')circleDot=true;else if(_value3==='DOTLINE')isDotLine=true;else if(_value3=="UPDOWNDOT")upDownDot=true;else if(_value3==='LINESTICK')lineStick=true;else if(_value3==='STICK')stick=true;else if(_value3==='VOLSTICK')volStick=true;else if(_value3=="LINEAREA")lineArea=true;else if(_value3==="DRAWABOVE")isDrawAbove=true;else if(_value3==="DRAWCENTER")isDrawCenter=true;else if(_value3=="DRAWBELOW")isDrawBelow=true;else if(_value3=="STEPLINE")stepLine=true;else if(_value3.indexOf('COLOR')==0)color=_value3;else if(_value3.indexOf("RGBX")==0&&_value3.length==10)color=_value3;//RGBX+“RRGGBB”
|
|
11205
|
+
}}else{}}else if(itemExpression.Type==Syntax.Identifier){var _value3=itemExpression.Name;if(_value3==='COLORSTICK')colorStick=true;else if(_value3==='POINTDOT')pointDot=true;else if(_value3==='CIRCLEDOT')circleDot=true;else if(_value3==='DOTLINE')isDotLine=true;else if(_value3=="UPDOWNDOT")upDownDot=true;else if(_value3==='LINESTICK')lineStick=true;else if(_value3==='STICK')stick=true;else if(_value3==='VOLSTICK')volStick=true;else if(_value3=="LINEAREA")lineArea=true;else if(_value3==="DRAWABOVE")isDrawAbove=true;else if(_value3==="DRAWCENTER")isDrawCenter=true;else if(_value3=="DRAWBELOW")isDrawBelow=true;else if(_value3=="STEPLINE")stepLine=true;else if(_value3=="SINGLELINE")isSingleLine=true;else if(_value3.indexOf('COLOR')==0)color=_value3;else if(_value3.indexOf("RGBX")==0&&_value3.length==10)color=_value3;//RGBX+“RRGGBB”
|
|
11197
11206
|
else if(_value3.indexOf('LINETHICK')==0)lineWidth=_value3;else if(_value3=="ALIGN0")drawAlign=0;else if(_value3=="ALIGN1")drawAlign=1;else if(_value3=="ALIGN2")drawAlign=2;else if(_value3=="VALIGN0")drawVAlign=0;else if(_value3=="VALIGN1")drawVAlign=1;else if(_value3=="VALIGN2")drawVAlign=2;else if(_value3.indexOf('NODRAW')==0)isShow=false;else if(_value3.indexOf('EXDATA')==0)isExData=true;//扩展数据, 不显示再图形里面
|
|
11198
11207
|
else if(_value3.indexOf('LINEOVERLAY')==0)isOverlayLine=true;else if(_value3.indexOf("NOTEXT")==0||_value3.indexOf("NOTITLE")==0)isShowTitle=false;//标题不显示
|
|
11199
11208
|
else if(_value3.indexOf("FONTSIZE")==0){var strFontSize=_value3.replace("FONTSIZE","");fontSize=parseInt(strFontSize);}else{if(_j14==0){_varName3=itemExpression.Name;var _varValue2=this.ReadVariable(_varName3,itemExpression);if(!Array.isArray(_varValue2))_varValue2=this.SingleDataToArrayData(_varValue2);_varName3="__temp_si_"+i+"__";isNoneName=true;this.VarTable.set(_varName3,_varValue2);//放到变量表里
|
|
@@ -11209,8 +11218,8 @@ else if(_value3.indexOf("FONTSIZE")==0){var strFontSize=_value3.replace("FONTSIZ
|
|
|
11209
11218
|
{var _outVar11=this.VarTable.get(_varName3);var _value8={Name:_varName3,Data:_outVar11,Type:5};if(color)_value8.Color=color;if(lineWidth)_value8.LineWidth=lineWidth;this.OutVarTable.push(_value8);}else if(volStick&&_varName3)//VOLSTICK 画彩色柱状线
|
|
11210
11219
|
{var _outVar12=this.VarTable.get(_varName3);var _value9={Name:_varName3,Data:_outVar12,Type:6};if(color)_value9.Color=color;if(upColor)_value9.UpColor=upColor;if(downColor)_value9.DownColor=downColor;if(lineWidth)_value9.LineWidth=lineWidth;if(IFrameSplitOperator.IsNumber(stickType))_value9.StickType=stickType;this.OutVarTable.push(_value9);}else if(lineArea&&_varName3)//LINEAREA 面积
|
|
11211
11220
|
{var _outVar13=this.VarTable.get(_varName3);var _value10={Name:_varName3,Data:_outVar13,Type:9};if(color)_value10.Color=color;if(upColor)_value10.UpColor=upColor;if(downColor)_value10.DownColor=downColor;if(lineWidth)_value10.LineWidth=lineWidth;this.OutVarTable.push(_value10);}else if(colorStick&&_varName3)//CYW: SUM(VAR4,10)/10000, COLORSTICK; 画上下柱子
|
|
11212
|
-
{var _outVar14=this.VarTable.get(_varName3);var _value11={Name:_varName3,Data:_outVar14,Color:color,Type:2};if(lineWidth)_value11.LineWidth=lineWidth;if(color)_value11.Color=color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;this.OutVarTable.push(_value11);}else if(_varName3&&color&&!_draw3){var _outVar15=this.VarTable.get(_varName3);if(!Array.isArray(_outVar15))_outVar15=this.SingleDataToArrayData(_outVar15);var _value12={Name:_varName3,Data:_outVar15,Color:color,Type:0};if(lineWidth)_value12.LineWidth=lineWidth;if(isShow==false)_value12.IsShow=false;if(isExData==true)_value12.IsExData=true;if(isDotLine==true)_value12.IsDotLine=true;if(isOverlayLine==true)_value12.IsOverlayLine=true;if(isNoneName==true)_value12.NoneName=true;if(isShowTitle==false)_value12.IsShowTitle=false;if(stepLine==true)_value12.Type=7;this.OutVarTable.push(_value12);}else if(_draw3)//画图函数
|
|
11213
|
-
{var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;if(IFrameSplitOperator.IsNumber(klineType))outVar.KLineType=klineType;this.OutVarTable.push(outVar);}else if(_varName3){var _outVar16=this.VarTable.get(_varName3);var _value13={Name:_varName3,Data:_outVar16,Type:0};if(color)_value13.Color=color;if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}}}};this.ReadUnaryExpression=function(item,varInfo){var argument=item.Argument;var outVar=null;if(argument.Type==Syntax.Literal){outVar=argument.Value;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.Identifier){var varName=argument.Name;outVar=this.ReadVariable(varName,item.Expression);if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.BinaryExpression){outVar=argument.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.CallExpression){var callItem=argument;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){return false;}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){return false;}else{outVar=callItem.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}}else{return false;}if(item.Operator=='-'){if(outVar)outVar=this.Algorithm.Subtract(0,outVar);}varInfo.OutVar=outVar;return true;};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
|
|
11221
|
+
{var _outVar14=this.VarTable.get(_varName3);var _value11={Name:_varName3,Data:_outVar14,Color:color,Type:2};if(lineWidth)_value11.LineWidth=lineWidth;if(color)_value11.Color=color;if(upColor)_value11.UpColor=upColor;if(downColor)_value11.DownColor=downColor;this.OutVarTable.push(_value11);}else if(_varName3&&color&&!_draw3){var _outVar15=this.VarTable.get(_varName3);if(!Array.isArray(_outVar15))_outVar15=this.SingleDataToArrayData(_outVar15);var _value12={Name:_varName3,Data:_outVar15,Color:color,Type:0};if(lineWidth)_value12.LineWidth=lineWidth;if(isShow==false)_value12.IsShow=false;if(isExData==true)_value12.IsExData=true;if(isDotLine==true)_value12.IsDotLine=true;if(isOverlayLine==true)_value12.IsOverlayLine=true;if(isSingleLine==true)_value12.IsSingleLine=true;if(isNoneName==true)_value12.NoneName=true;if(isShowTitle==false)_value12.IsShowTitle=false;if(stepLine==true)_value12.Type=7;this.OutVarTable.push(_value12);}else if(_draw3)//画图函数
|
|
11222
|
+
{var outVar={Name:_draw3.Name,Draw:_draw3,Type:1};if(color)outVar.Color=color;if(isDotLine==true)outVar.IsDotLine=true;if(lineWidth)outVar.LineWidth=lineWidth;if(isDrawAbove)outVar.IsDrawAbove=true;if(isDrawCenter)outVar.IsDrawCenter=true;if(isDrawBelow)outVar.IsDrawBelow=true;if(drawAlign>=0)outVar.DrawAlign=drawAlign;if(drawVAlign>=0)outVar.DrawVAlign=drawVAlign;if(fontSize>0)outVar.DrawFontSize=fontSize;if(bgConfig)outVar.Background=bgConfig;if(vLineConfig)outVar.VerticalLine=vLineConfig;if(IFrameSplitOperator.IsNumber(xOffset))outVar.XOffset=xOffset;if(IFrameSplitOperator.IsNumber(yOffset))outVar.YOffset=yOffset;if(IFrameSplitOperator.IsBool(isFirstDraw))outVar.IsFirstDraw=isFirstDraw;if(IFrameSplitOperator.IsNumber(klineType))outVar.KLineType=klineType;this.OutVarTable.push(outVar);}else if(_varName3){var _outVar16=this.VarTable.get(_varName3);var _value13={Name:_varName3,Data:_outVar16,Type:0};if(color)_value13.Color=color;if(lineWidth)_value13.LineWidth=lineWidth;if(isShow==false)_value13.IsShow=false;if(isExData==true)_value13.IsExData=true;if(isDotLine==true)_value13.IsDotLine=true;if(isOverlayLine==true)_value13.IsOverlayLine=true;if(isSingleLine==true)_value13.IsSingleLine=true;if(isShowTitle==false)_value13.IsShowTitle=false;if(stepLine==true)_value13.Type=7;this.OutVarTable.push(_value13);}}}};this.ReadUnaryExpression=function(item,varInfo){var argument=item.Argument;var outVar=null;if(argument.Type==Syntax.Literal){outVar=argument.Value;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.Identifier){var varName=argument.Name;outVar=this.ReadVariable(varName,item.Expression);if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.BinaryExpression){outVar=argument.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}else if(argument.Type==Syntax.CallExpression){var callItem=argument;if(this.Draw.IsDrawFunction(callItem.Callee.Name)){return false;}else if(callItem.Callee.Name==="IFC"&&callItem.Draw){return false;}else{outVar=callItem.Out;if(!Array.isArray(outVar))outVar=this.SingleDataToArrayData(outVar);}}else{return false;}if(item.Operator=='-'){if(outVar)outVar=this.Algorithm.Subtract(0,outVar);}varInfo.OutVar=outVar;return true;};this.GetOutIconData=function(cond,iconDraw){if(Array.isArray(cond)){for(var i=0;i<cond.length&&i<iconDraw.DrawData.length;++i){var item=cond[i];if(item<=0)iconDraw.DrawData[i]=null;}return iconDraw;}if(cond)return iconDraw;return null;};this.GetSoundEvent=function(){if(!this.GetEventCallback)return null;return this.GetEventCallback(JSCHART_EVENT_ID.ON_PLAY_SOUND);};this.Run=function(){try{var data=this.RunAST();//执行脚本
|
|
11214
11223
|
JSConsole.Complier.Log('[JSComplier.Run] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.Run] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}}catch(error){JSConsole.Complier.Log(error);if(error.Job){JSConsole.Complier.Log('[JSComplier.Run] download job and reexectue',error.Job);this.JobList.push(error.Job);this.JobList.push({ID:JS_EXECUTE_JOB_ID.JOB_RUN_SCRIPT});this.Execute();}else if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.DebugRun_End=function(){var data=this.OutVarTable;JSConsole.Complier.Log('[JSComplier.DebugRun_End] execute finish',data);if(this.IndexCtrl)this.IndexCtrl.Status=0;if(this.UpdateUICallback){JSConsole.Complier.Log('[JSComplier.DebugRun_End] invoke UpdateUICallback.');if(this.CallbackParam&&this.CallbackParam.Job&&this.CallbackParam.Job.ID==JS_EXECUTE_JOB_ID.JOB_EXECUTE_INDEX){this.UpdateUICallback(data,this.CallbackParam,this.SymbolData);}else{if(this.CallbackParam&&this.CallbackParam.Self&&this.CallbackParam.Self.ClassName==='ScriptIndexConsole')this.CallbackParam.JSExecute=this;if(this.IsUsePageData==true)this.CallbackParam.Self.IsUsePageData=true;this.UpdateUICallback(data,this.CallbackParam);}}};this.DebugRun_Next=function(debugCtrl){var _this47=this;if(debugCtrl.ExeLine<debugCtrl.LineCount){var item=this.AST.Body[debugCtrl.ExeLine];this.RunASTNode(item);++debugCtrl.ExeLine;this.DebugFilter(debugCtrl,function(){_this47.DebugRun_Next(debugCtrl);});}else{this.DebugRun_End();debugCtrl.Status=2;this.DebugFilter(debugCtrl,null);}};//debug模式
|
|
11215
11224
|
this.DebugRun=function(){var _this48=this;try{if(!this.AST)this.ThrowError();if(!this.AST.Body)this.ThrowError();var debugCtrl={LineCount:this.AST.Body.length,ExeLine:0,Self:this,Status:1};this.DebugFilter(debugCtrl,function(){_this48.DebugRun_Next(debugCtrl);});}catch(error){if(this.ErrorCallback){if(this.IndexCtrl)this.IndexCtrl.Status=0;this.ErrorCallback(error,this.CallbackParam);}}};this.VisitNode=function(node){switch(node.Type){case Syntax.SequenceExpression:this.VisitSequenceExpression(node);break;case Syntax.ExpressionStatement:this.VisitNode(node.Expression);break;case Syntax.AssignmentExpression:this.VisitAssignmentExpression(node);break;case Syntax.BinaryExpression:case Syntax.LogicalExpression:this.VisitBinaryExpression(node);break;case Syntax.CallExpression:this.VisitCallExpression(node);break;case Syntax.UnaryExpression:this.VisitUnaryExpression(node);break;}};this.VisitUnaryExpression=function(node){if(node.Operator=='-'){var tempValue=this.GetNodeValueEx(node.Argument);var value=this.Algorithm.Subtract(0,tempValue);}else{var value=node.Argument.Value;}return value;};this.VisitSequenceExpression=function(node){for(var _i130 in node.Expression){var _item18=node.Expression[_i130];this.VisitNode(_item18);}};this.GetDynamicScriptIndex=function(node,args){var dynamicName=node.Callee.Value;var aryValue=dynamicName.split(".");if(aryValue.length!=2){this.ThrowUnexpectedNode(node,'\u8C03\u7528\u6307\u6807\u683C\u5F0F\''+dynamicName+'\'\u9519\u8BEF');}var name=aryValue[0];var outName=aryValue[1];var period=null;var pos=outName.indexOf('#');if(pos!=-1){period=outName.slice(pos+1);//周期
|
|
11216
11225
|
outName=outName.slice(0,pos);}var strValue="";for(var i=0;i<args.length;++i){var value=args[i];if(strValue.length>0)strValue+=",";strValue+=''+value;}var strArgs='('+strValue+')';var key=outName+'#'+strArgs;if(period)key+='#'+period;if(!this.VarTable.has(name))return null;var indexData=this.VarTable.get(name);var value=indexData[key];return value;};//函数调用
|
|
@@ -11404,7 +11413,10 @@ if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Dat
|
|
|
11404
11413
|
if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;if(varItem.IsShowTitle===false)//NOTEXT 不绘制标题
|
|
11405
11414
|
{}else if(IFrameSplitOperator.IsString(varItem.Name)&&varItem.Name.indexOf("NOTEXT")==0)//标题中包含NOTEXT不绘制标题
|
|
11406
11415
|
{}else{if(varItem.NoneName)hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);else hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);hqChart.TitlePaint[titleIndex].Data[id].ChartClassName=line.ClassName;}this.SetChartIndexName(line);hqChart.ChartPaint.push(line);};this.CreateOverlayLine=function(hqChart,windowIndex,varItem,id,lineType){if(lineType==7)var line=new ChartStepLine();var line=new ChartSubLine();line.Canvas=hqChart.Canvas;line.DrawType=1;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine)line.IsDotLine=true;//虚线
|
|
11407
|
-
if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);hqChart.TitlePaint[titleIndex].Data[id].ChartClassName=line.ClassName;hqChart.ChartPaint.push(line);}
|
|
11416
|
+
if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);hqChart.TitlePaint[titleIndex].Data[id].ChartClassName=line.ClassName;hqChart.ChartPaint.push(line);};this.CreateSingleLine=function(hqChart,windowIndex,varItem,id,lineType){var line=new ChartSingleLine();line.Canvas=hqChart.Canvas;line.DrawType=1;line.Name=varItem.Name;line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;line.Identify=this.Guid;if(varItem.Color)line.Color=this.GetColor(varItem.Color);else line.Color=this.GetDefaultColor(id);if(varItem.LineWidth){var width=parseInt(varItem.LineWidth.replace("LINETHICK",""));if(!isNaN(width)&&width>0)line.LineWidth=width;}if(varItem.IsDotLine)line.IsDotLine=true;//虚线
|
|
11417
|
+
if(varItem.IsShow==false)line.IsShow=false;var titleIndex=windowIndex+1;line.Data.Data=varItem.Data;this.ReloadChartResource(hqChart,windowIndex,line);if(varItem.IsShowTitle===false)//NOTEXT 不绘制标题
|
|
11418
|
+
{}else if(IFrameSplitOperator.IsString(varItem.Name)&&varItem.Name.indexOf("NOTEXT")==0)//标题中包含NOTEXT不绘制标题
|
|
11419
|
+
{}else{if(varItem.NoneName)hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);else hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);this.SetTitleData(hqChart.TitlePaint[titleIndex].Data[id],line);}this.SetChartIndexName(line);hqChart.ChartPaint.push(line);};//创建柱子
|
|
11408
11420
|
this.CreateBar=function(hqChart,windowIndex,varItem,id){var bar=new ChartStickLine();bar.Canvas=hqChart.Canvas;if(varItem.Draw.Width>0)bar.Width=varItem.Draw.Width;else bar.Width=0;bar.Name=varItem.Name;bar.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;bar.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;if(varItem.Color)bar.Color=this.GetColor(varItem.Color);else bar.Color=this.GetDefaultColor(id);var titleIndex=windowIndex+1;bar.Data.Data=varItem.Draw.DrawData;bar.BarType=varItem.Draw.Type;//hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(bar.Data,varItem.Name,bar.Color);
|
|
11409
11421
|
this.SetChartIndexName(bar);hqChart.ChartPaint.push(bar);};//创建文本
|
|
11410
11422
|
this.CreateText=function(hqChart,windowIndex,varItem,id,resource){var chartText=new ChartSingleText();chartText.Canvas=hqChart.Canvas;chartText.Name=varItem.Name;chartText.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;chartText.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;chartText.ReloadResource();if(varItem.Color)chartText.Color=this.GetColor(varItem.Color);else chartText.Color=this.GetDefaultColor(id);if(varItem.IsDrawCenter===true)chartText.TextAlign='center';if(varItem.IsDrawAbove===true)chartText.Direction=1;if(varItem.IsDrawBelow===true)chartText.Direction=2;var titleIndex=windowIndex+1;if(varItem.Draw.Position)chartText.Position=varItem.Draw.Position;//赋值坐标
|
|
@@ -11473,7 +11485,7 @@ if(this.YSplitScale)hqChart.Frame.SubFrame[windowIndex].Frame.YSplitScale=this.Y
|
|
|
11473
11485
|
}
|
|
11474
11486
|
*/for(var _i135=0;_i135<this.OutVar.length;++_i135){var _item24=this.OutVar[_i135];if(_item24.IsExData===true)continue;//扩展数据不显示图形
|
|
11475
11487
|
if(_item24.Type==1000||_item24.Type==1001)continue;//数据集合, 字符串
|
|
11476
|
-
if(_item24.Type==0){if(_item24.IsOverlayLine)this.CreateOverlayLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==1){switch(_item24.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item24,_i135);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item24,_i135);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN":this.CreateFillRGN(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN2":this.CreateFillRGN2(hqChart,windowIndex,_item24,_i135);break;case"FILLTOPRGN":case"FILLBOTTOMRGN":case"FILLVERTICALRGN":this.CreateFillBGRGN(hqChart,windowIndex,_item24,_i135);break;case"FLOATRGN":this.CreateFLOATRGN(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE':case"DRAWKLINE1":this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYKLINE":this.CreateOverlayKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"DRAWGBK_DIV":this.CreateBackgroundDiv(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWNUMBER':this.CreateDrawNumber(hqChart,windowIndex,_item24,_i135);break;case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item24,_i135);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"ICON":this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item24,_i135);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item24,_i135);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWRECTREL':this.CreateRectangle(hqChart,windowIndex,_item24,_i135);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYLINE":this.CreateScriptOverlayLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWSL":this.CreateChartSlopeLine(hqChart,windowIndex,_item24,_i135);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item24,_i135);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item24,_i135);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item24,_i135);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item24,_i135);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item24,_i135);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item24,_i135);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item24,_i135);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item24,_i135);break;case"COLOR_KLINE":this.CreateColorKLine(hqChart,windowIndex,_item24,_i135);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT_LINE":this.CreateLineMultiData(hqChart,windowIndex,_item24,_i135);break;case"BUY":case"SELL":case"SELLSHORT":case"BUYSHORT":this.CreateTradeIcon(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.KLINE_TABLE:this.CreateKLineTable(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.SCATTER_PLOT:this.CreateScatterPlot(hqChart,windowIndex,_item24,_i135);break;default:{var find=g_ScriptIndexChartFactory.Get(_item24.Draw.DrawType);//外部挂接
|
|
11488
|
+
if(_item24.Type==0){if(_item24.IsOverlayLine)this.CreateOverlayLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else if(_item24.IsSingleLine)this.CreateSingleLine(hqChart,windowIndex,_item24,_i135,_item24.Type);else this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==1){switch(_item24.Draw.DrawType){case'STICKLINE':this.CreateBar(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT':this.CreateDrawTextV2(hqChart,windowIndex,_item24,_i135);break;case'SUPERDRAWTEXT':this.CreateText(hqChart,windowIndex,_item24,_i135);break;case'DRAWLINE':this.CreateStraightLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWBAND':this.CreateBand(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN":this.CreateFillRGN(hqChart,windowIndex,_item24,_i135);break;case"FILLRGN2":this.CreateFillRGN2(hqChart,windowIndex,_item24,_i135);break;case"FILLTOPRGN":case"FILLBOTTOMRGN":case"FILLVERTICALRGN":this.CreateFillBGRGN(hqChart,windowIndex,_item24,_i135);break;case"FLOATRGN":this.CreateFLOATRGN(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE':case"DRAWKLINE1":this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYKLINE":this.CreateOverlayKLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWCOLORKLINE":this.CreateDrawColorKLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWKLINE_IF':this.CreateKLine(hqChart,windowIndex,_item24,_i135);break;case'POLYLINE':this.CreatePolyLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWGBK':case"DRAWGBK2":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"DRAWGBK_DIV":this.CreateBackgroundDiv(hqChart,windowIndex,_item24,_i135);break;case'DRAWTEXT_LINE':this.CreateTextLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWNUMBER':this.CreateDrawNumber(hqChart,windowIndex,_item24,_i135);break;case"DRAWNUMBER_FIX":case'DRAWTEXT_FIX':this.CreateNumberText(hqChart,windowIndex,_item24,_i135);break;case'DRAWICON':this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"ICON":this.CreateIcon(hqChart,windowIndex,_item24,_i135);break;case"TIPICON":this.CreateTipIcon(hqChart,windowIndex,_item24,_i135);break;case'DRAWCHANNEL':this.CreateChannel(hqChart,windowIndex,_item24,_i135);break;case'PARTLINE':this.CreatePartLine(hqChart,windowIndex,_item24,_i135);break;case'DRAWRECTREL':this.CreateRectangle(hqChart,windowIndex,_item24,_i135);break;case"DRAWTEXTABS":case"DRAWTEXTREL":this.CreateDrawText(hqChart,windowIndex,_item24,_i135);break;case"DRAWOVERLAYLINE":this.CreateScriptOverlayLine(hqChart,windowIndex,_item24,_i135);break;case"DRAWSL":this.CreateChartSlopeLine(hqChart,windowIndex,_item24,_i135);break;case"VERTLINE":this.CreateChartVericaltLine(hqChart,windowIndex,_item24,_i135);break;case"HORLINE":this.CreateChartHorizontalLine(hqChart,windowIndex,_item24,_i135);break;case'MULTI_LINE':this.CreateMultiLine(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT":this.CreateMultiPoint(hqChart,windowIndex,_item24,_i135);break;case'MULTI_BAR':this.CreateMultiBar(hqChart,windowIndex,_item24,_i135);break;case'MULTI_TEXT':this.CreateMultiText(hqChart,windowIndex,_item24,_i135);break;case'MULTI_SVGICON':this.CreateMultiSVGIcon(hqChart,windowIndex,_item24,_i135);break;case"DRAWSVG":this.CreateChartDrawSVG(hqChart,windowIndex,_item24,_i135);break;case"MULTI_HTMLDOM":this.CreateMulitHtmlDom(hqChart,windowIndex,_item24,_i135);break;case"COLOR_KLINE":this.CreateColorKLine(hqChart,windowIndex,_item24,_i135);break;case"KLINE_BG":this.CreateBackgroud(hqChart,windowIndex,_item24,_i135);break;case"MULTI_POINT_LINE":this.CreateLineMultiData(hqChart,windowIndex,_item24,_i135);break;case"BUY":case"SELL":case"SELLSHORT":case"BUYSHORT":this.CreateTradeIcon(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.OVERLAY_BARS:this.CreateStackedBar(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.KLINE_TABLE:this.CreateKLineTable(hqChart,windowIndex,_item24,_i135);break;case SCRIPT_CHART_NAME.SCATTER_PLOT:this.CreateScatterPlot(hqChart,windowIndex,_item24,_i135);break;default:{var find=g_ScriptIndexChartFactory.Get(_item24.Draw.DrawType);//外部挂接
|
|
11477
11489
|
if(find&&find.CreateChartCallback)find.CreateChartCallback(hqChart,windowIndex,_item24,_i135,this);}break;}}else if(_item24.Type==2){this.CreateMACD(hqChart,windowIndex,_item24,_i135);}else if(_item24.Type==3){this.CreatePointDot(hqChart,windowIndex,_item24,_i135,hisData);}else if(_item24.Type==4){this.CreateLineStick(hqChart,windowIndex,_item24,_i135);}else if(_item24.Type==5){this.CreateStick(hqChart,windowIndex,_item24,_i135);}else if(_item24.Type==6){this.CreateVolStick(hqChart,windowIndex,_item24,_i135,hisData);}else if(_item24.Type==7){this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==8){this.CreateLine(hqChart,windowIndex,_item24,_i135,_item24.Type);}else if(_item24.Type==9){this.CreateArea(hqChart,windowIndex,_item24,_i135);}var titlePaint=hqChart.TitlePaint[windowIndex+1];if(titlePaint&&titlePaint.Data&&_i135<titlePaint.Data.length)//设置标题数值 小数位数和格式
|
|
11478
11490
|
{if(this.StringFormat>0)titlePaint.Data[_i135].StringFormat=this.StringFormat;if(this.FloatPrecision>=0)titlePaint.Data[_i135].FloatPrecision=this.FloatPrecision;if(this.OutName&&this.OutName.length>0&&this.Arguments&&this.Arguments.length>0){titlePaint.SetDynamicTitle(this.OutName,this.Arguments);}}}var titleIndex=windowIndex+1;var titlePaint=hqChart.TitlePaint[titleIndex];titlePaint.Title=this.Name;titlePaint.Identify=this.Guid;//指标ID
|
|
11479
11491
|
titlePaint.ArgumentsText=null;titlePaint.Script=this;titlePaint.IsShowMainIndexTitle=this.IsShowIndexTitle;if(!this.IsShortTitle){var indexParam='';for(var _i136=0;_i136<this.Arguments.length;++_i136){var _item25=this.Arguments[_i136];if(indexParam.length>0)indexParam+=',';indexParam+=_item25.Value.toString();}if(indexParam.length>0)titlePaint.ArgumentsText='('+indexParam+')';}if(this.TitleFont)titlePaint.Font=this.TitleFont;return true;};//给一个默认的颜色
|
|
@@ -13177,7 +13189,7 @@ hisData.Symbol=message.symbol;}var stockObj={HQDataType:HQ_DATA_TYPE.KLINE_ID,St
|
|
|
13177
13189
|
this.ExecuteScript(item,data);}this.Status=0;}};this.OnExecuteFinish=function(data,indexInfo,jsExectute,jobInfo){var message={Data:data,IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT,JobInfo:jobInfo};postMessage(message);};this.OnExecuteError=function(error,indexInfo,jobData){var message={IndexInfo:indexInfo,ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT,Error:error};postMessage(message);};}/********************************************************************************
|
|
13178
13190
|
* 版本信息输出
|
|
13179
13191
|
*
|
|
13180
|
-
*/var HQCHART_VERSION="1.1.
|
|
13192
|
+
*/var HQCHART_VERSION="1.1.13435";function PrintHQChartVersion(){var logo='\n\n*************************************************************************************************************************************************************************** \n* \n* :%@@- \n* :@@@@- \n* =@@@@ :#@@@ .:+#@@@#=: :=*@@@@@@#+-. *@@@@. \n* :@@@@@ .@@@@@ .#@@@@@@@@@@@- +@@@@@@@@@@@@@+ @@@@@ -%@@* \n* +@@@@% #@@@@# *@@@@@@@@@@@@@@%. =@@@@@@@@@@@@@@@- @@@@@ -@@@@+ \n* %@@@@* @@@@@+ .%@@@@@@@@@@@@@@@@%: #@@@@@@@@@@@@@@@% @@@@# *@@@@= \n* @@@@@= @@@@@- .%@@@@@@@*++*%@@@@@@% .%@@@@@@@%*+==+**= -@@@@+ #@@@@- \n* @@@@@. @@@@@. #@@@@@%= =@@@@@@* %@@@@@@#: *@@@@- :::. .-+*###+: ::: .+##+: -%%@@@@@%%%% \n* .@@@@@ .@@@@@. +@@@@@% .@@@@@@ *@@@@@@: %@@@@: +@@@@@%. :%@@@@@@@@@@: *@@@ :@@@@@* @@@@@@@@@@@@ \n* :@@@@@ :@@@@@ @@@@@% :@@@@@+ @@@@@@: %@@@@-@@@@@@@@@. @@@@@@@@@@@@@. :@@@%-@@@@@@.:@@@@@@@@@@@# \n* -@@@@% -@@@@@ =@@@@@. %@@@@% %@@@@@- %@@@@@@@@@@@@@@* %@@@@@@@@@@@@+ -@@@@@@@@@@# -@@@@@@@@@@@. \n* +@@@@%=========#@@@@% @@@@@# :@@@@@ .@@@@@% @@@@@@@@%@@@@@@@ -%+:. .#@@@@* +@@@@@@@%%@. .::+@@@@#:: \n* #@@@@@@@@@@@@@@@@@@@# .@@@@@ .@@@@@ :@@@@@. @@@@@@#. #@@@@@. -@@@@* #@@@@@@: *@@@@+ \n* %@@@@@@@@@@@@@@@@@@@+ :@@@@@ .@@@@@ -@@@@@ @@@@@+ @@@@@. :@@@@* @@@@@% #@@@@- \n* @@@@@@@@@@@@@@@@@@@@: :@@@@% :@@@@@ +@@@@% -@@@@+ @@@@@ -@@@@+ @@@@@. @@@@@. \n* .@@@@@@@@@@@@@@@@@@@@ :@@@@% -@@@@% *@@@@% #@@@@. @@@@@ .=*#%%%@@@@@= :@@@@# @@@@@. \n* -@@@@@:::::::::=@@@@@ :@@@@@ @@@@@* +@@@@% @@@@@ @@@@% -#@@@@@@@@@@@@: -@@@@* @@@@@ \n* =@@@@% =@@@@% .@@@@@ :@@@@@. -@@@@% @@@@@ .@@@@* +@@@@@@@@@@@@@@. =@@@@+ .@@@@@ \n* +@@@@# +@@@@# @@@@@# %@@@@% :@@@@@ .@@@@% =@@@@= -@@@@@*-:..%@@@@ +@@@@= :@@@@# \n* *@@@@* *@@@@* +@@@@@: #@@@@@+ .@@@@@@ :@@@@% *@@@@- @@@@@. @@@@% #@@@@: =@@@@+ \n* %@@@@= %@@@@+ @@@@@@- .%@@@@@# #@@@@@# :@@@@% #@@@@: @@@@% @@@@* %@@@@. #@@@@- \n* @@@@@- @@@@@= =@@@@@@#=...-*@@@@@@@: @@@@@@%=. :+**. :@@@@* %@@@@. .@@@@* *@@@@= @@@@@ %@@@@+ \n* .@@@@@: .@@@@@: *@@@@@@@@@@@@@@@@@@@# =@@@@@@@@%%%@@@@@@ +@@@@- @@@@@ .@@@@@: :%@@@@@- .@@@@% %@@@@@*+- \n* :@@@@@ :@@@@@ +@@@@@@@@@@@@@@@@@@@# =@@@@@@@@@@@@@@@@% %@@@@ @@@@@ @@@@@@@@@@@@@@@: -@@@@* *@@@@@@@@- \n* =@@@@@ -@@@@@ :@@@@@@@@@@@@@@@@@@@# :@@@@@@@@@@@@@@@% @@@@@ %@@@% #@@@@@@@@@#@@@@. +@@@@- .@@@@@@@@# \n* *@@@@# =@@@@% :#@@@@@@@#: :@@@@@= =@@@@@@@@@@@+. @@@@@ :@@@+ *@@@@@@@- %@@@ *@@@= =@@@@@@@* \n* =++++- -++++= .:::. .=*+: :-=+++=:. ****= .=+. .-++=: :+++ -+=: .-=+=:. \n* \n* \n* HQChart \n* Ver: '+HQCHART_VERSION+' \n* License: Apache License 2.0 \n* Source: https://github.com/jones2000/HQChart\n*\n************************************************************************************************************************************************************************** \n ';console.log(logo);}PrintHQChartVersion();//把给外界调用的方法暴露出来
|
|
13181
13193
|
exports.default=(_jsChartInit$jsChartS={jsChartInit:JSChart.Init,jsChartStyle:JSChart.SetStyle,// IsIndexSymbol:IsIndexSymbol,
|
|
13182
13194
|
// BaseIndex:BaseIndex,
|
|
13183
13195
|
// ChartLine:ChartLine,
|
package/package.json
CHANGED
|
@@ -48730,6 +48730,15 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
48730
48730
|
HQData.RequestLatestData(data,callback);
|
|
48731
48731
|
break;
|
|
48732
48732
|
|
|
48733
|
+
|
|
48734
|
+
case "KLineChartContainer::RequestOverlayHistoryData": //叠加股票
|
|
48735
|
+
HQData.RequestOverlayHistoryData(data, callback);
|
|
48736
|
+
break;
|
|
48737
|
+
|
|
48738
|
+
case "KLineChartContainer::RequestOverlayHistoryMinuteData":
|
|
48739
|
+
HQData.RequestOverlayHistoryMinuteData(data, callback);
|
|
48740
|
+
break;
|
|
48741
|
+
|
|
48733
48742
|
|
|
48734
48743
|
|
|
48735
48744
|
|
|
@@ -49051,3 +49060,28 @@ HQData.RequestLatestData=function(data,callback)
|
|
|
49051
49060
|
|
|
49052
49061
|
callback(hqchartData);
|
|
49053
49062
|
}
|
|
49063
|
+
|
|
49064
|
+
HQData.RequestOverlayHistoryData=function(data, callback)
|
|
49065
|
+
{
|
|
49066
|
+
data.PreventDefault=true;
|
|
49067
|
+
var symbol=data.Request.Data.symbol;
|
|
49068
|
+
var hqchartData={ symbol: symbol,name: symbol };
|
|
49069
|
+
if (symbol=="399001.sz")
|
|
49070
|
+
hqchartData.data=KLINE_DAY_OVERLAY_DATA2.data
|
|
49071
|
+
else
|
|
49072
|
+
hqchartData.data=KLINE_DAY_OVERLAY_DATA.data
|
|
49073
|
+
|
|
49074
|
+
callback(hqchartData);
|
|
49075
|
+
}
|
|
49076
|
+
|
|
49077
|
+
HQData.RequestOverlayHistoryMinuteData=function(data, callback)
|
|
49078
|
+
{
|
|
49079
|
+
data.PreventDefault=true;
|
|
49080
|
+
var symbol=data.Request.Data.symbol;
|
|
49081
|
+
var hqchartData={ symbol: symbol,name: symbol };
|
|
49082
|
+
hqchartData.data=KLINE_MINUTE_DATA2.data;
|
|
49083
|
+
|
|
49084
|
+
callback(hqchartData);
|
|
49085
|
+
}
|
|
49086
|
+
|
|
49087
|
+
|
|
@@ -17231,6 +17231,7 @@ function JSExecute(ast,option)
|
|
|
17231
17231
|
let isExData=false;
|
|
17232
17232
|
let isDotLine=false;
|
|
17233
17233
|
let isOverlayLine=false; //叠加线
|
|
17234
|
+
let isSingleLine=false; //独立线段
|
|
17234
17235
|
var isNoneName=false;
|
|
17235
17236
|
var isShowTitle=true;
|
|
17236
17237
|
//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
|
|
@@ -17287,9 +17288,11 @@ function JSExecute(ast,option)
|
|
|
17287
17288
|
else if (value==="DRAWCENTER") isDrawCenter=true;
|
|
17288
17289
|
else if (value=="DRAWBELOW") isDrawBelow=true;
|
|
17289
17290
|
else if (value=="STEPLINE") stepLine=true;
|
|
17291
|
+
else if (value=="SINGLELINE") isSingleLine=true;
|
|
17290
17292
|
else if (value.indexOf('COLOR')==0) color=value;
|
|
17291
17293
|
else if (value.indexOf("RGBX")==0 && value.length==10) color=value; //RGBX+“RRGGBB”
|
|
17292
17294
|
else if (value.indexOf('LINETHICK')==0) lineWidth=value;
|
|
17295
|
+
|
|
17293
17296
|
|
|
17294
17297
|
else if (value=="ALIGN0") drawAlign=0;
|
|
17295
17298
|
else if (value=="ALIGN1") drawAlign=1;
|
|
@@ -17538,6 +17541,7 @@ function JSExecute(ast,option)
|
|
|
17538
17541
|
if (isExData==true) value.IsExData = true;
|
|
17539
17542
|
if (isDotLine==true) value.IsDotLine=true;
|
|
17540
17543
|
if (isOverlayLine==true) value.IsOverlayLine=true;
|
|
17544
|
+
if (isSingleLine==true) value.IsSingleLine=true;
|
|
17541
17545
|
if (isNoneName==true) value.NoneName=true;
|
|
17542
17546
|
if (isShowTitle==false) value.IsShowTitle=false;
|
|
17543
17547
|
if (stepLine==true) value.Type=7;
|
|
@@ -17573,6 +17577,7 @@ function JSExecute(ast,option)
|
|
|
17573
17577
|
if (isExData==true) value.IsExData = true;
|
|
17574
17578
|
if (isDotLine==true) value.IsDotLine=true;
|
|
17575
17579
|
if (isOverlayLine==true) value.IsOverlayLine=true;
|
|
17580
|
+
if (isSingleLine==true) value.IsSingleLine=true;
|
|
17576
17581
|
if (isShowTitle==false) value.IsShowTitle=false;
|
|
17577
17582
|
if (stepLine==true) value.Type=7;
|
|
17578
17583
|
this.OutVarTable.push(value);
|
|
@@ -20400,6 +20405,54 @@ function ScriptIndex(name,script,args,option)
|
|
|
20400
20405
|
hqChart.ChartPaint.push(line);
|
|
20401
20406
|
}
|
|
20402
20407
|
|
|
20408
|
+
this.CreateSingleLine=function(hqChart,windowIndex,varItem,id,lineType)
|
|
20409
|
+
{
|
|
20410
|
+
var line=new ChartSingleLine();
|
|
20411
|
+
line.Canvas=hqChart.Canvas;
|
|
20412
|
+
line.DrawType=1;
|
|
20413
|
+
line.Name=varItem.Name;
|
|
20414
|
+
line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
20415
|
+
line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
20416
|
+
line.Identify=this.Guid;
|
|
20417
|
+
if (varItem.Color) line.Color=this.GetColor(varItem.Color);
|
|
20418
|
+
else line.Color=this.GetDefaultColor(id);
|
|
20419
|
+
|
|
20420
|
+
if (varItem.LineWidth)
|
|
20421
|
+
{
|
|
20422
|
+
let width=parseInt(varItem.LineWidth.replace("LINETHICK",""));
|
|
20423
|
+
if (!isNaN(width) && width>0) line.LineWidth=width;
|
|
20424
|
+
}
|
|
20425
|
+
|
|
20426
|
+
if (varItem.IsDotLine) line.IsDotLine=true; //虚线
|
|
20427
|
+
if (varItem.IsShow==false) line.IsShow=false;
|
|
20428
|
+
|
|
20429
|
+
let titleIndex=windowIndex+1;
|
|
20430
|
+
line.Data.Data=varItem.Data;
|
|
20431
|
+
|
|
20432
|
+
this.ReloadChartResource(hqChart,windowIndex,line);
|
|
20433
|
+
|
|
20434
|
+
if (varItem.IsShowTitle===false) //NOTEXT 不绘制标题
|
|
20435
|
+
{
|
|
20436
|
+
|
|
20437
|
+
}
|
|
20438
|
+
else if (IFrameSplitOperator.IsString(varItem.Name) && varItem.Name.indexOf("NOTEXT")==0) //标题中包含NOTEXT不绘制标题
|
|
20439
|
+
{
|
|
20440
|
+
|
|
20441
|
+
}
|
|
20442
|
+
else
|
|
20443
|
+
{
|
|
20444
|
+
if (varItem.NoneName)
|
|
20445
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);
|
|
20446
|
+
else
|
|
20447
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
20448
|
+
|
|
20449
|
+
this.SetTitleData(hqChart.TitlePaint[titleIndex].Data[id],line);
|
|
20450
|
+
}
|
|
20451
|
+
|
|
20452
|
+
this.SetChartIndexName(line);
|
|
20453
|
+
hqChart.ChartPaint.push(line);
|
|
20454
|
+
}
|
|
20455
|
+
|
|
20403
20456
|
//创建柱子
|
|
20404
20457
|
this.CreateBar=function(hqChart,windowIndex,varItem,id)
|
|
20405
20458
|
{
|
|
@@ -21704,6 +21757,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
21704
21757
|
if (item.Type==0)
|
|
21705
21758
|
{
|
|
21706
21759
|
if (item.IsOverlayLine) this.CreateOverlayLine(hqChart,windowIndex,item,i,item.Type);
|
|
21760
|
+
else if (item.IsSingleLine) this.CreateSingleLine(hqChart,windowIndex,item,i,item.Type);
|
|
21707
21761
|
else this.CreateLine(hqChart,windowIndex,item,i,item.Type);
|
|
21708
21762
|
}
|
|
21709
21763
|
else if (item.Type==1)
|
|
@@ -113,6 +113,8 @@ function JSIndexScript()
|
|
|
113
113
|
["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
|
|
114
114
|
["ADX", this.ADX],
|
|
115
115
|
|
|
116
|
+
["持仓量", this.VOL_POSITION], //成交量+持仓量
|
|
117
|
+
|
|
116
118
|
//通达信特色指标
|
|
117
119
|
["散户线", this.ShareholderCount],["NXTS", this.NXTS],["FKX", this.FKX],["两融资金", this.Margin4],
|
|
118
120
|
["ZSDB",this.ZSDB],
|
|
@@ -3351,6 +3353,20 @@ JSIndexScript.prototype.CJL = function ()
|
|
|
3351
3353
|
return data;
|
|
3352
3354
|
}
|
|
3353
3355
|
|
|
3356
|
+
JSIndexScript.prototype.VOL_POSITION=function()
|
|
3357
|
+
{
|
|
3358
|
+
let data =
|
|
3359
|
+
{
|
|
3360
|
+
Name: '持仓量', Description: '持仓量', IsMainIndex: false,
|
|
3361
|
+
Args: [],
|
|
3362
|
+
Script: //脚本
|
|
3363
|
+
"成交量:VOL,VOLSTICK;\n\
|
|
3364
|
+
持仓量:VOLINSTK,SINGLELINE;"
|
|
3365
|
+
};
|
|
3366
|
+
|
|
3367
|
+
return data;
|
|
3368
|
+
}
|
|
3369
|
+
|
|
3354
3370
|
JSIndexScript.prototype.ASI = function ()
|
|
3355
3371
|
{
|
|
3356
3372
|
let data =
|
package/src/jscommon/umychart.js
CHANGED
|
@@ -2579,7 +2579,7 @@ var JSCHART_EVENT_ID=
|
|
|
2579
2579
|
|
|
2580
2580
|
|
|
2581
2581
|
ON_CHANGE_INDEX:150, //切换指标
|
|
2582
|
-
ON_MENU_COMMAND:151,
|
|
2582
|
+
ON_MENU_COMMAND:151, //菜单事件回调
|
|
2583
2583
|
ON_CREATE_RIGHT_MENU:152, //创建右键菜单
|
|
2584
2584
|
|
|
2585
2585
|
ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
|
|
@@ -20755,6 +20755,7 @@ function ChartData()
|
|
|
20755
20755
|
var yClose=this.Data[index].YClose;
|
|
20756
20756
|
|
|
20757
20757
|
result[index]=HistoryData.Copy(this.Data[index]);
|
|
20758
|
+
result[index].RightSeed=seed;
|
|
20758
20759
|
|
|
20759
20760
|
for(--index; index>=0; --index)
|
|
20760
20761
|
{
|
|
@@ -20785,6 +20786,7 @@ function ChartData()
|
|
|
20785
20786
|
var seed=1;
|
|
20786
20787
|
var close=this.Data[index].Close;
|
|
20787
20788
|
result[index]=HistoryData.Copy(this.Data[index]);
|
|
20789
|
+
result[index].RightSeed=seed;
|
|
20788
20790
|
|
|
20789
20791
|
for(++index;index<this.Data.length;++index)
|
|
20790
20792
|
{
|
|
@@ -31114,6 +31116,86 @@ function ChartOverlayLine()
|
|
|
31114
31116
|
}
|
|
31115
31117
|
}
|
|
31116
31118
|
|
|
31119
|
+
//独立线段
|
|
31120
|
+
function ChartSingleLine()
|
|
31121
|
+
{
|
|
31122
|
+
this.newMethod=ChartLine; //派生
|
|
31123
|
+
this.newMethod();
|
|
31124
|
+
delete this.newMethod;
|
|
31125
|
+
|
|
31126
|
+
this.ClassName='ChartSingleLine'; //类名
|
|
31127
|
+
this.MaxMin=null; //当前的显示范围
|
|
31128
|
+
|
|
31129
|
+
this.Draw=function()
|
|
31130
|
+
{
|
|
31131
|
+
this.MaxMin=null;
|
|
31132
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
31133
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
31134
|
+
if (this.IsHideScriptIndex()) return;
|
|
31135
|
+
|
|
31136
|
+
if (!this.Data || !this.Data.Data) return;
|
|
31137
|
+
|
|
31138
|
+
this.MaxMin=this.GetCurrentMaxMin();
|
|
31139
|
+
if (!this.MaxMin) return;
|
|
31140
|
+
if (!IFrameSplitOperator.IsNumber(this.MaxMin.Max) || !IFrameSplitOperator.IsNumber(this.MaxMin.Min)) return;
|
|
31141
|
+
|
|
31142
|
+
switch(this.DrawType)
|
|
31143
|
+
{
|
|
31144
|
+
|
|
31145
|
+
default:
|
|
31146
|
+
return this.DrawStraightLine();
|
|
31147
|
+
}
|
|
31148
|
+
}
|
|
31149
|
+
|
|
31150
|
+
//获取当前页的最大最小值
|
|
31151
|
+
this.GetCurrentMaxMin=function()
|
|
31152
|
+
{
|
|
31153
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
31154
|
+
var range={ Max:null, Min:null };
|
|
31155
|
+
|
|
31156
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
31157
|
+
{
|
|
31158
|
+
var value=this.Data.Data[i];
|
|
31159
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
31160
|
+
|
|
31161
|
+
if (range.Max==null) range.Max=value;
|
|
31162
|
+
if (range.Min==null) range.Min=value;
|
|
31163
|
+
|
|
31164
|
+
if (range.Max<value) range.Max=value;
|
|
31165
|
+
if (range.Min>value) range.Min=value;
|
|
31166
|
+
}
|
|
31167
|
+
|
|
31168
|
+
return range;
|
|
31169
|
+
}
|
|
31170
|
+
|
|
31171
|
+
this.GetMaxMin=function()
|
|
31172
|
+
{
|
|
31173
|
+
return { Max:null, Min:null };
|
|
31174
|
+
}
|
|
31175
|
+
|
|
31176
|
+
this.GetYFromData=function(value)
|
|
31177
|
+
{
|
|
31178
|
+
var bHScreen = (this.ChartFrame.IsHScreen === true);
|
|
31179
|
+
|
|
31180
|
+
if (bHScreen)
|
|
31181
|
+
{
|
|
31182
|
+
if (value <= this.MaxMin.Min) return this.ChartBorder.GetLeftEx();
|
|
31183
|
+
if (value >= this.MaxMin.Max) return this.ChartBorder.GetRightEx();
|
|
31184
|
+
|
|
31185
|
+
var width = this.ChartBorder.GetWidthEx() * (value - this.MaxMin.Min) / (this.MaxMin.Max - this.MaxMin.Min);
|
|
31186
|
+
return this.ChartBorder.GetLeftEx() + width;
|
|
31187
|
+
}
|
|
31188
|
+
else
|
|
31189
|
+
{
|
|
31190
|
+
if(value<=this.MaxMin.Min) return this.ChartBorder.GetBottomEx();
|
|
31191
|
+
if(value>=this.MaxMin.Max) return this.ChartBorder.GetTopEx();
|
|
31192
|
+
|
|
31193
|
+
var height=this.ChartBorder.GetHeightEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);
|
|
31194
|
+
return this.ChartBorder.GetBottomEx()-height;
|
|
31195
|
+
}
|
|
31196
|
+
}
|
|
31197
|
+
}
|
|
31198
|
+
|
|
31117
31199
|
//彩色线段
|
|
31118
31200
|
function ChartPartLine()
|
|
31119
31201
|
{
|
|
@@ -34034,8 +34116,8 @@ function ChartMinutePriceLine()
|
|
|
34034
34116
|
if (isHScreen===true) chartright=this.ChartBorder.GetBottom();
|
|
34035
34117
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
34036
34118
|
var minuteCount=this.ChartFrame.MinuteCount;
|
|
34037
|
-
var bottom=this.ChartBorder.
|
|
34038
|
-
var left=this.ChartBorder.
|
|
34119
|
+
var bottom=this.ChartBorder.GetBottom();
|
|
34120
|
+
var left=this.ChartBorder.GetLeft();
|
|
34039
34121
|
var data=this.Data;
|
|
34040
34122
|
|
|
34041
34123
|
this.DrawBeforeOpen(); //盘前
|