Skip to content

Commit 4e7aa8a

Browse files
committed
feat: 回退技术指标series参数
1 parent c400536 commit 4e7aa8a

File tree

10 files changed

+43
-4
lines changed

10 files changed

+43
-4
lines changed

src/component/technicalindicator/TechnicalIndicator.js

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,29 @@ export const TechnicalIndicatorPlotType = {
2424
CIRCLE: 'circle'
2525
}
2626

27+
/**
28+
* 系列
29+
*/
30+
export const TechnicalIndicatorSeries = {
31+
PRICE: 'price',
32+
VOLUME: 'volume',
33+
NORMAL: 'normal'
34+
}
35+
2736
export default class TechnicalIndicator {
2837
constructor ({
29-
name, calcParams, plots, precision,
38+
name, series, calcParams, plots, precision,
3039
shouldCheckParamCount, shouldOhlc, shouldFormatBigNumber,
3140
minValue, maxValue, styles
3241
}) {
3342
// 指标名
3443
this.name = name || ''
44+
// 系列
45+
this.series = Object.values(TechnicalIndicatorSeries).indexOf(series) !== -1 ? series : TechnicalIndicatorSeries.NORMAL
3546
// 精度
3647
this.precision = isNumber(precision) && precision >= 0 ? precision : 4
48+
// 精度设置标识
49+
this._precisionFlag = false
3750
// 计算参数
3851
this.calcParams = isArray(calcParams) ? calcParams : []
3952
// 数据信息
@@ -63,14 +76,28 @@ export default class TechnicalIndicator {
6376
})
6477
}
6578

66-
setPrecision (precision) {
67-
if (isNumber(precision) && precision >= 0) {
79+
/**
80+
* 设置精度
81+
* @param precision
82+
* @param flag
83+
* @returns
84+
*/
85+
setPrecision (precision, flag) {
86+
if (isNumber(precision) && precision >= 0 && (!flag || (flag && !this._precisionFlag))) {
6887
this.precision = parseInt(precision, 10)
88+
if (!flag) {
89+
this._precisionFlag = true
90+
}
6991
return true
7092
}
7193
return false
7294
}
7395

96+
/**
97+
* 设置计算参数
98+
* @param params
99+
* @returns
100+
*/
74101
setCalcParams (params) {
75102
if (!isArray(params)) {
76103
return false

src/data/ChartData.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,7 @@ export default class ChartData {
120120
setPriceVolumePrecision (pricePrecision, volumePrecision) {
121121
this._pricePrecision = pricePrecision
122122
this._volumePrecision = volumePrecision
123+
this._technicalIndicatorStore.setSeriesPrecision(pricePrecision, volumePrecision)
123124
}
124125

125126
/**

src/data/store/TechnicalIndicatorStore.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,12 @@ export default class TechnicalIndicatorStore {
7777
/**
7878
* 获取指标信息
7979
* @param tech
80-
* @return {{ calcParams, precision, name, shouldCheckParamCount, shouldOhlc, shouldFormatBigNumber, styles }}
80+
* @return {{ calcParams, series, precision, name, shouldCheckParamCount, shouldOhlc, shouldFormatBigNumber, styles }}
8181
*/
8282
_createTechInfo (tech) {
8383
return {
8484
name: tech.name,
85+
series: tech.series,
8586
calcParams: tech.calcParams,
8687
shouldCheckParamCount: tech.shouldCheckParamCount,
8788
shouldOhlc: tech.shouldOhlc,
@@ -111,6 +112,7 @@ export default class TechnicalIndicatorStore {
111112
/**
112113
* 创建一个新的技术指标
113114
* @param name
115+
* @param series
114116
* @param calcParams
115117
* @param plots
116118
* @param precision

src/extension/technicalindicator/directionalmovement/averagePrice.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
*/
1818
export default {
1919
name: 'AVP',
20+
series: 'price',
21+
precision: 2,
2022
plots: [
2123
{ key: 'avp', title: 'AVP: ', type: 'line' }
2224
],

src/extension/technicalindicator/directionalmovement/bullAndBearIndex.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
*/
2020
export default {
2121
name: 'BBI',
22+
series: 'price',
23+
precision: 2,
2224
calcParams: [3, 6, 12, 24],
2325
shouldCheckParamCount: true,
2426
shouldOhlc: true,

src/extension/technicalindicator/directionalmovement/exponentialMovingAverage.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818
export default {
1919
name: 'EMA',
20+
series: 'price',
2021
calcParams: [6, 12, 20],
2122
precision: 2,
2223
shouldCheckParamCount: false,

src/extension/technicalindicator/directionalmovement/movingAverage.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818
export default {
1919
name: 'MA',
20+
series: 'price',
2021
calcParams: [5, 10, 30, 60],
2122
precision: 2,
2223
shouldCheckParamCount: false,

src/extension/technicalindicator/directionalmovement/simpleMovingAverage.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
*/
1818
export default {
1919
name: 'SMA',
20+
series: 'price',
2021
calcParams: [12, 2],
2122
precision: 2,
2223
plots: [

src/extension/technicalindicator/volatility/stopAndReverse.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
export default {
1616
name: 'SAR',
17+
series: 'price',
1718
calcParams: [2, 2, 20],
1819
precision: 2,
1920
shouldOhlc: true,

src/extension/technicalindicator/volume/volume.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
export default {
1616
name: 'VOL',
17+
series: 'volume',
1718
calcParams: [5, 10, 20],
1819
shouldCheckParamCount: false,
1920
shouldFormatBigNumber: true,

0 commit comments

Comments
 (0)