@8btc/finance-assistant-mcp 0.0.20 → 0.0.21
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/dist/index.cjs +218 -196
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1832,10 +1832,7 @@ const renderBacktestDaily = (rawData) => {
|
|
|
1832
1832
|
],
|
|
1833
1833
|
yAxis: [
|
|
1834
1834
|
{
|
|
1835
|
-
scale: true
|
|
1836
|
-
splitArea: {
|
|
1837
|
-
show: true
|
|
1838
|
-
}
|
|
1835
|
+
scale: true
|
|
1839
1836
|
}
|
|
1840
1837
|
],
|
|
1841
1838
|
series: [
|
|
@@ -1847,7 +1844,8 @@ const renderBacktestDaily = (rawData) => {
|
|
|
1847
1844
|
showSymbol: false,
|
|
1848
1845
|
lineStyle: {
|
|
1849
1846
|
// type: "dashed",
|
|
1850
|
-
opacity: 1
|
|
1847
|
+
opacity: 1,
|
|
1848
|
+
width: 1
|
|
1851
1849
|
// dashOffset: 9,
|
|
1852
1850
|
}
|
|
1853
1851
|
},
|
|
@@ -1858,7 +1856,8 @@ const renderBacktestDaily = (rawData) => {
|
|
|
1858
1856
|
smooth: true,
|
|
1859
1857
|
showSymbol: false,
|
|
1860
1858
|
lineStyle: {
|
|
1861
|
-
opacity: 1
|
|
1859
|
+
opacity: 1,
|
|
1860
|
+
width: 1
|
|
1862
1861
|
}
|
|
1863
1862
|
}
|
|
1864
1863
|
]
|
|
@@ -1966,10 +1965,7 @@ const renderMonthlyIncome = (rawData) => {
|
|
|
1966
1965
|
],
|
|
1967
1966
|
yAxis: [
|
|
1968
1967
|
{
|
|
1969
|
-
scale: true
|
|
1970
|
-
splitArea: {
|
|
1971
|
-
show: true
|
|
1972
|
-
}
|
|
1968
|
+
scale: true
|
|
1973
1969
|
}
|
|
1974
1970
|
],
|
|
1975
1971
|
series: [
|
|
@@ -2903,8 +2899,8 @@ const renderAmount = (rawData) => {
|
|
|
2903
2899
|
// need to specify height and width
|
|
2904
2900
|
height: 184
|
|
2905
2901
|
});
|
|
2906
|
-
const upColor = "#
|
|
2907
|
-
const downColor = "#
|
|
2902
|
+
const upColor = "#cc2f3c";
|
|
2903
|
+
const downColor = "#06806b";
|
|
2908
2904
|
const data0 = generateData$b(rawData);
|
|
2909
2905
|
const option = {
|
|
2910
2906
|
animation: false,
|
|
@@ -3026,15 +3022,17 @@ const renderATR = (rawData) => {
|
|
|
3026
3022
|
axisLine: { onZero: false },
|
|
3027
3023
|
splitLine: { show: false },
|
|
3028
3024
|
min: "dataMin",
|
|
3029
|
-
max: "dataMax"
|
|
3025
|
+
max: "dataMax",
|
|
3026
|
+
axisLabel: {
|
|
3027
|
+
formatter: (value) => {
|
|
3028
|
+
return dayjs(value).format("MM/DD");
|
|
3029
|
+
}
|
|
3030
|
+
}
|
|
3030
3031
|
}
|
|
3031
3032
|
],
|
|
3032
3033
|
yAxis: [
|
|
3033
3034
|
{
|
|
3034
|
-
scale: true
|
|
3035
|
-
splitArea: {
|
|
3036
|
-
show: true
|
|
3037
|
-
}
|
|
3035
|
+
scale: true
|
|
3038
3036
|
}
|
|
3039
3037
|
],
|
|
3040
3038
|
series: [
|
|
@@ -3045,7 +3043,8 @@ const renderATR = (rawData) => {
|
|
|
3045
3043
|
smooth: true,
|
|
3046
3044
|
showSymbol: false,
|
|
3047
3045
|
lineStyle: {
|
|
3048
|
-
opacity: 1
|
|
3046
|
+
opacity: 1,
|
|
3047
|
+
width: 1
|
|
3049
3048
|
}
|
|
3050
3049
|
}
|
|
3051
3050
|
]
|
|
@@ -3113,15 +3112,17 @@ const renderBOLL = (rawData) => {
|
|
|
3113
3112
|
axisLine: { onZero: false },
|
|
3114
3113
|
splitLine: { show: false },
|
|
3115
3114
|
min: "dataMin",
|
|
3116
|
-
max: "dataMax"
|
|
3115
|
+
max: "dataMax",
|
|
3116
|
+
axisLabel: {
|
|
3117
|
+
formatter: (value) => {
|
|
3118
|
+
return dayjs(value).format("MM/DD");
|
|
3119
|
+
}
|
|
3120
|
+
}
|
|
3117
3121
|
}
|
|
3118
3122
|
],
|
|
3119
3123
|
yAxis: [
|
|
3120
3124
|
{
|
|
3121
|
-
scale: true
|
|
3122
|
-
splitArea: {
|
|
3123
|
-
show: true
|
|
3124
|
-
}
|
|
3125
|
+
scale: true
|
|
3125
3126
|
}
|
|
3126
3127
|
],
|
|
3127
3128
|
series: [
|
|
@@ -3132,7 +3133,8 @@ const renderBOLL = (rawData) => {
|
|
|
3132
3133
|
smooth: true,
|
|
3133
3134
|
showSymbol: false,
|
|
3134
3135
|
lineStyle: {
|
|
3135
|
-
opacity: 1
|
|
3136
|
+
opacity: 1,
|
|
3137
|
+
width: 1
|
|
3136
3138
|
}
|
|
3137
3139
|
},
|
|
3138
3140
|
{
|
|
@@ -3142,7 +3144,8 @@ const renderBOLL = (rawData) => {
|
|
|
3142
3144
|
smooth: true,
|
|
3143
3145
|
showSymbol: false,
|
|
3144
3146
|
lineStyle: {
|
|
3145
|
-
opacity: 1
|
|
3147
|
+
opacity: 1,
|
|
3148
|
+
width: 1
|
|
3146
3149
|
}
|
|
3147
3150
|
},
|
|
3148
3151
|
{
|
|
@@ -3152,7 +3155,8 @@ const renderBOLL = (rawData) => {
|
|
|
3152
3155
|
smooth: true,
|
|
3153
3156
|
showSymbol: false,
|
|
3154
3157
|
lineStyle: {
|
|
3155
|
-
opacity: 1
|
|
3158
|
+
opacity: 1,
|
|
3159
|
+
width: 1
|
|
3156
3160
|
}
|
|
3157
3161
|
}
|
|
3158
3162
|
]
|
|
@@ -3184,8 +3188,8 @@ const renderBuyLgAmount = (rawData) => {
|
|
|
3184
3188
|
// need to specify height and width
|
|
3185
3189
|
height: 184
|
|
3186
3190
|
});
|
|
3187
|
-
const upColor = "#
|
|
3188
|
-
const downColor = "#
|
|
3191
|
+
const upColor = "#cc2f3c";
|
|
3192
|
+
const downColor = "#06806b";
|
|
3189
3193
|
const data0 = generateData$8(rawData);
|
|
3190
3194
|
const option = {
|
|
3191
3195
|
animation: false,
|
|
@@ -3312,15 +3316,17 @@ const renderKDJ = (rawData) => {
|
|
|
3312
3316
|
axisLine: { onZero: false },
|
|
3313
3317
|
splitLine: { show: false },
|
|
3314
3318
|
min: "dataMin",
|
|
3315
|
-
max: "dataMax"
|
|
3319
|
+
max: "dataMax",
|
|
3320
|
+
axisLabel: {
|
|
3321
|
+
formatter: (value) => {
|
|
3322
|
+
return dayjs(value).format("MM/DD");
|
|
3323
|
+
}
|
|
3324
|
+
}
|
|
3316
3325
|
}
|
|
3317
3326
|
],
|
|
3318
3327
|
yAxis: [
|
|
3319
3328
|
{
|
|
3320
|
-
scale: true
|
|
3321
|
-
splitArea: {
|
|
3322
|
-
show: true
|
|
3323
|
-
}
|
|
3329
|
+
scale: true
|
|
3324
3330
|
}
|
|
3325
3331
|
],
|
|
3326
3332
|
series: [
|
|
@@ -3331,7 +3337,8 @@ const renderKDJ = (rawData) => {
|
|
|
3331
3337
|
smooth: true,
|
|
3332
3338
|
showSymbol: false,
|
|
3333
3339
|
lineStyle: {
|
|
3334
|
-
opacity: 1
|
|
3340
|
+
opacity: 1,
|
|
3341
|
+
width: 1
|
|
3335
3342
|
}
|
|
3336
3343
|
},
|
|
3337
3344
|
{
|
|
@@ -3341,7 +3348,8 @@ const renderKDJ = (rawData) => {
|
|
|
3341
3348
|
smooth: true,
|
|
3342
3349
|
showSymbol: false,
|
|
3343
3350
|
lineStyle: {
|
|
3344
|
-
opacity: 1
|
|
3351
|
+
opacity: 1,
|
|
3352
|
+
width: 1
|
|
3345
3353
|
}
|
|
3346
3354
|
},
|
|
3347
3355
|
{
|
|
@@ -3351,7 +3359,8 @@ const renderKDJ = (rawData) => {
|
|
|
3351
3359
|
smooth: true,
|
|
3352
3360
|
showSymbol: false,
|
|
3353
3361
|
lineStyle: {
|
|
3354
|
-
opacity: 1
|
|
3362
|
+
opacity: 1,
|
|
3363
|
+
width: 1
|
|
3355
3364
|
},
|
|
3356
3365
|
markLine: {
|
|
3357
3366
|
symbol: ["none", "none"],
|
|
@@ -3414,10 +3423,8 @@ const renderKlineChart = (datas) => {
|
|
|
3414
3423
|
// need to specify height and width
|
|
3415
3424
|
height: 284
|
|
3416
3425
|
});
|
|
3417
|
-
const upColor = "#
|
|
3418
|
-
const
|
|
3419
|
-
const downColor = "#00da3c";
|
|
3420
|
-
const downBorderColor = "#008F28";
|
|
3426
|
+
const upColor = "#cc2f3c";
|
|
3427
|
+
const downColor = "#06806b";
|
|
3421
3428
|
const data0 = generateData$6(datas);
|
|
3422
3429
|
const option = {
|
|
3423
3430
|
animation: false,
|
|
@@ -3428,7 +3435,7 @@ const renderKlineChart = (datas) => {
|
|
|
3428
3435
|
}
|
|
3429
3436
|
},
|
|
3430
3437
|
legend: {
|
|
3431
|
-
|
|
3438
|
+
data: ["MA5", "MA10", "MA20", "MA60", "MA250"],
|
|
3432
3439
|
top: 20
|
|
3433
3440
|
},
|
|
3434
3441
|
visualMap: {
|
|
@@ -3458,7 +3465,7 @@ const renderKlineChart = (datas) => {
|
|
|
3458
3465
|
right: "8%",
|
|
3459
3466
|
// top: '0%',
|
|
3460
3467
|
bottom: "8%",
|
|
3461
|
-
height: "
|
|
3468
|
+
height: "15%"
|
|
3462
3469
|
}
|
|
3463
3470
|
],
|
|
3464
3471
|
xAxis: [
|
|
@@ -3469,7 +3476,12 @@ const renderKlineChart = (datas) => {
|
|
|
3469
3476
|
axisLine: { onZero: false },
|
|
3470
3477
|
splitLine: { show: false },
|
|
3471
3478
|
min: "dataMin",
|
|
3472
|
-
max: "dataMax"
|
|
3479
|
+
max: "dataMax",
|
|
3480
|
+
axisLabel: {
|
|
3481
|
+
formatter: (value) => {
|
|
3482
|
+
return dayjs(value).format("MM/DD");
|
|
3483
|
+
}
|
|
3484
|
+
}
|
|
3473
3485
|
},
|
|
3474
3486
|
{
|
|
3475
3487
|
type: "category",
|
|
@@ -3488,7 +3500,7 @@ const renderKlineChart = (datas) => {
|
|
|
3488
3500
|
{
|
|
3489
3501
|
scale: true,
|
|
3490
3502
|
splitArea: {
|
|
3491
|
-
show:
|
|
3503
|
+
show: false
|
|
3492
3504
|
}
|
|
3493
3505
|
},
|
|
3494
3506
|
{
|
|
@@ -3508,9 +3520,7 @@ const renderKlineChart = (datas) => {
|
|
|
3508
3520
|
data: data0.values,
|
|
3509
3521
|
itemStyle: {
|
|
3510
3522
|
color: upColor,
|
|
3511
|
-
color0: downColor
|
|
3512
|
-
borderColor: upBorderColor,
|
|
3513
|
-
borderColor0: downBorderColor
|
|
3523
|
+
color0: downColor
|
|
3514
3524
|
},
|
|
3515
3525
|
markLine: {
|
|
3516
3526
|
symbol: ["none", "none"],
|
|
@@ -3535,7 +3545,7 @@ const renderKlineChart = (datas) => {
|
|
|
3535
3545
|
smooth: true,
|
|
3536
3546
|
showSymbol: false,
|
|
3537
3547
|
lineStyle: {
|
|
3538
|
-
|
|
3548
|
+
width: 1
|
|
3539
3549
|
}
|
|
3540
3550
|
},
|
|
3541
3551
|
{
|
|
@@ -3545,7 +3555,7 @@ const renderKlineChart = (datas) => {
|
|
|
3545
3555
|
smooth: true,
|
|
3546
3556
|
showSymbol: false,
|
|
3547
3557
|
lineStyle: {
|
|
3548
|
-
|
|
3558
|
+
width: 1
|
|
3549
3559
|
}
|
|
3550
3560
|
},
|
|
3551
3561
|
{
|
|
@@ -3555,7 +3565,7 @@ const renderKlineChart = (datas) => {
|
|
|
3555
3565
|
smooth: true,
|
|
3556
3566
|
showSymbol: false,
|
|
3557
3567
|
lineStyle: {
|
|
3558
|
-
|
|
3568
|
+
width: 1
|
|
3559
3569
|
}
|
|
3560
3570
|
},
|
|
3561
3571
|
{
|
|
@@ -3565,7 +3575,7 @@ const renderKlineChart = (datas) => {
|
|
|
3565
3575
|
smooth: true,
|
|
3566
3576
|
showSymbol: false,
|
|
3567
3577
|
lineStyle: {
|
|
3568
|
-
|
|
3578
|
+
width: 1
|
|
3569
3579
|
}
|
|
3570
3580
|
},
|
|
3571
3581
|
{
|
|
@@ -3575,18 +3585,18 @@ const renderKlineChart = (datas) => {
|
|
|
3575
3585
|
smooth: true,
|
|
3576
3586
|
showSymbol: false,
|
|
3577
3587
|
lineStyle: {
|
|
3578
|
-
|
|
3588
|
+
width: 1
|
|
3579
3589
|
}
|
|
3580
3590
|
},
|
|
3581
3591
|
{
|
|
3582
|
-
name: "
|
|
3592
|
+
name: "成交量",
|
|
3583
3593
|
type: "bar",
|
|
3584
3594
|
xAxisIndex: 1,
|
|
3585
3595
|
yAxisIndex: 1,
|
|
3586
3596
|
data: data0.volumes,
|
|
3587
3597
|
zlevel: 0,
|
|
3588
3598
|
itemStyle: {
|
|
3589
|
-
opacity: 0.
|
|
3599
|
+
opacity: 0.7
|
|
3590
3600
|
}
|
|
3591
3601
|
}
|
|
3592
3602
|
]
|
|
@@ -3611,7 +3621,7 @@ const generateData$5 = (rawData) => {
|
|
|
3611
3621
|
volumes
|
|
3612
3622
|
};
|
|
3613
3623
|
};
|
|
3614
|
-
const renderKlineSupportChart = (datas,
|
|
3624
|
+
const renderKlineSupportChart = (datas, data) => {
|
|
3615
3625
|
const chart = echarts__namespace.init(null, null, {
|
|
3616
3626
|
renderer: "svg",
|
|
3617
3627
|
// must use SVG mode
|
|
@@ -3621,10 +3631,8 @@ const renderKlineSupportChart = (datas, markData) => {
|
|
|
3621
3631
|
// need to specify height and width
|
|
3622
3632
|
height: 284
|
|
3623
3633
|
});
|
|
3624
|
-
const upColor = "#
|
|
3625
|
-
const
|
|
3626
|
-
const downColor = "#00da3c";
|
|
3627
|
-
const downBorderColor = "#008F28";
|
|
3634
|
+
const upColor = "#cc2f3c";
|
|
3635
|
+
const downColor = "#06806b";
|
|
3628
3636
|
const data0 = generateData$5(datas);
|
|
3629
3637
|
const option = {
|
|
3630
3638
|
animation: false,
|
|
@@ -3635,36 +3643,12 @@ const renderKlineSupportChart = (datas, markData) => {
|
|
|
3635
3643
|
}
|
|
3636
3644
|
},
|
|
3637
3645
|
legend: {
|
|
3638
|
-
|
|
3639
|
-
|
|
3640
|
-
name: "短期支撑",
|
|
3641
|
-
itemStyle: {
|
|
3642
|
-
color: "rgba(255,255,0,1)",
|
|
3643
|
-
borderColor: "rgba(255,255,0,1)"
|
|
3644
|
-
}
|
|
3645
|
-
},
|
|
3646
|
-
{
|
|
3647
|
-
name: "中期支撑",
|
|
3648
|
-
itemStyle: {
|
|
3649
|
-
color: "rgba(255,0,255,1)",
|
|
3650
|
-
borderColor: "rgba(255,0,255,1)",
|
|
3651
|
-
opacity: 1
|
|
3652
|
-
}
|
|
3653
|
-
},
|
|
3654
|
-
{
|
|
3655
|
-
name: "长期支撑",
|
|
3656
|
-
itemStyle: {
|
|
3657
|
-
color: "rgba(0,255,255,1)",
|
|
3658
|
-
borderColor: "rgba(0,255,255,1)",
|
|
3659
|
-
opacity: 1
|
|
3660
|
-
}
|
|
3661
|
-
}
|
|
3662
|
-
],
|
|
3663
|
-
top: 20
|
|
3646
|
+
top: 20,
|
|
3647
|
+
show: false
|
|
3664
3648
|
},
|
|
3665
3649
|
visualMap: {
|
|
3666
3650
|
show: false,
|
|
3667
|
-
seriesIndex:
|
|
3651
|
+
seriesIndex: 1,
|
|
3668
3652
|
dimension: 2,
|
|
3669
3653
|
pieces: [
|
|
3670
3654
|
{
|
|
@@ -3689,7 +3673,7 @@ const renderKlineSupportChart = (datas, markData) => {
|
|
|
3689
3673
|
right: "8%",
|
|
3690
3674
|
// top: '0%',
|
|
3691
3675
|
bottom: "8%",
|
|
3692
|
-
height: "
|
|
3676
|
+
height: "15%"
|
|
3693
3677
|
}
|
|
3694
3678
|
],
|
|
3695
3679
|
xAxis: [
|
|
@@ -3705,10 +3689,7 @@ const renderKlineSupportChart = (datas, markData) => {
|
|
|
3705
3689
|
],
|
|
3706
3690
|
yAxis: [
|
|
3707
3691
|
{
|
|
3708
|
-
scale: true
|
|
3709
|
-
splitArea: {
|
|
3710
|
-
show: true
|
|
3711
|
-
}
|
|
3692
|
+
scale: true
|
|
3712
3693
|
},
|
|
3713
3694
|
{
|
|
3714
3695
|
scale: true,
|
|
@@ -3727,51 +3708,20 @@ const renderKlineSupportChart = (datas, markData) => {
|
|
|
3727
3708
|
data: data0.values,
|
|
3728
3709
|
itemStyle: {
|
|
3729
3710
|
color: upColor,
|
|
3730
|
-
color0: downColor
|
|
3731
|
-
borderColor: upBorderColor,
|
|
3732
|
-
borderColor0: downBorderColor
|
|
3733
|
-
},
|
|
3734
|
-
markArea: {
|
|
3735
|
-
data: [
|
|
3736
|
-
[{ yAxis: markData.resistance_s }, { yAxis: markData.support_s }]
|
|
3737
|
-
],
|
|
3738
|
-
itemStyle: {
|
|
3739
|
-
opacity: 0.3,
|
|
3740
|
-
color: "rgba(255,255,0,1)"
|
|
3741
|
-
}
|
|
3742
|
-
}
|
|
3743
|
-
},
|
|
3744
|
-
{
|
|
3745
|
-
name: "中期支撑",
|
|
3746
|
-
type: "candlestick",
|
|
3747
|
-
data: data0.values,
|
|
3748
|
-
itemStyle: {
|
|
3749
|
-
opacity: 0
|
|
3711
|
+
color0: downColor
|
|
3750
3712
|
},
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
[{ yAxis: markData.resistance_m }, { yAxis: markData.support_m }]
|
|
3754
|
-
],
|
|
3755
|
-
itemStyle: {
|
|
3756
|
-
opacity: 0.3,
|
|
3757
|
-
color: "rgba(255,0,255,1)"
|
|
3758
|
-
}
|
|
3759
|
-
}
|
|
3760
|
-
},
|
|
3761
|
-
{
|
|
3762
|
-
name: "长期支撑",
|
|
3763
|
-
type: "candlestick",
|
|
3764
|
-
data: data0.values,
|
|
3765
|
-
itemStyle: {
|
|
3766
|
-
opacity: 0
|
|
3767
|
-
},
|
|
3768
|
-
markArea: {
|
|
3713
|
+
markLine: {
|
|
3714
|
+
symbol: ["none", "none"],
|
|
3769
3715
|
data: [
|
|
3770
|
-
|
|
3716
|
+
{
|
|
3717
|
+
yAxis: data.resistance,
|
|
3718
|
+
name: "短期压力位"
|
|
3719
|
+
},
|
|
3720
|
+
{ yAxis: data.support, name: "短期支撑位" }
|
|
3771
3721
|
],
|
|
3772
3722
|
itemStyle: {
|
|
3773
|
-
opacity:
|
|
3774
|
-
color:
|
|
3723
|
+
opacity: 1,
|
|
3724
|
+
color: upColor
|
|
3775
3725
|
}
|
|
3776
3726
|
}
|
|
3777
3727
|
},
|
|
@@ -3783,7 +3733,7 @@ const renderKlineSupportChart = (datas, markData) => {
|
|
|
3783
3733
|
data: data0.volumes,
|
|
3784
3734
|
zlevel: 0,
|
|
3785
3735
|
itemStyle: {
|
|
3786
|
-
opacity: 0.
|
|
3736
|
+
opacity: 0.7
|
|
3787
3737
|
}
|
|
3788
3738
|
}
|
|
3789
3739
|
]
|
|
@@ -3857,15 +3807,17 @@ const renderMa = (rawData) => {
|
|
|
3857
3807
|
axisLine: { onZero: false },
|
|
3858
3808
|
splitLine: { show: false },
|
|
3859
3809
|
min: "dataMin",
|
|
3860
|
-
max: "dataMax"
|
|
3810
|
+
max: "dataMax",
|
|
3811
|
+
axisLabel: {
|
|
3812
|
+
formatter: (value) => {
|
|
3813
|
+
return dayjs(value).format("MM/DD");
|
|
3814
|
+
}
|
|
3815
|
+
}
|
|
3861
3816
|
}
|
|
3862
3817
|
],
|
|
3863
3818
|
yAxis: [
|
|
3864
3819
|
{
|
|
3865
|
-
scale: true
|
|
3866
|
-
splitArea: {
|
|
3867
|
-
show: true
|
|
3868
|
-
}
|
|
3820
|
+
scale: true
|
|
3869
3821
|
}
|
|
3870
3822
|
],
|
|
3871
3823
|
series: [
|
|
@@ -3876,7 +3828,8 @@ const renderMa = (rawData) => {
|
|
|
3876
3828
|
smooth: true,
|
|
3877
3829
|
showSymbol: false,
|
|
3878
3830
|
lineStyle: {
|
|
3879
|
-
opacity: 1
|
|
3831
|
+
opacity: 1,
|
|
3832
|
+
width: 1
|
|
3880
3833
|
}
|
|
3881
3834
|
},
|
|
3882
3835
|
{
|
|
@@ -3886,7 +3839,8 @@ const renderMa = (rawData) => {
|
|
|
3886
3839
|
smooth: true,
|
|
3887
3840
|
showSymbol: false,
|
|
3888
3841
|
lineStyle: {
|
|
3889
|
-
opacity: 1
|
|
3842
|
+
opacity: 1,
|
|
3843
|
+
width: 1
|
|
3890
3844
|
}
|
|
3891
3845
|
},
|
|
3892
3846
|
{
|
|
@@ -3896,7 +3850,8 @@ const renderMa = (rawData) => {
|
|
|
3896
3850
|
smooth: true,
|
|
3897
3851
|
showSymbol: false,
|
|
3898
3852
|
lineStyle: {
|
|
3899
|
-
opacity: 1
|
|
3853
|
+
opacity: 1,
|
|
3854
|
+
width: 1
|
|
3900
3855
|
}
|
|
3901
3856
|
},
|
|
3902
3857
|
{
|
|
@@ -3906,7 +3861,8 @@ const renderMa = (rawData) => {
|
|
|
3906
3861
|
smooth: true,
|
|
3907
3862
|
showSymbol: false,
|
|
3908
3863
|
lineStyle: {
|
|
3909
|
-
opacity: 1
|
|
3864
|
+
opacity: 1,
|
|
3865
|
+
width: 1
|
|
3910
3866
|
}
|
|
3911
3867
|
},
|
|
3912
3868
|
{
|
|
@@ -3916,7 +3872,8 @@ const renderMa = (rawData) => {
|
|
|
3916
3872
|
smooth: true,
|
|
3917
3873
|
showSymbol: false,
|
|
3918
3874
|
lineStyle: {
|
|
3919
|
-
opacity: 1
|
|
3875
|
+
opacity: 1,
|
|
3876
|
+
width: 1
|
|
3920
3877
|
}
|
|
3921
3878
|
}
|
|
3922
3879
|
]
|
|
@@ -3954,8 +3911,8 @@ const renderMacd = (rawData) => {
|
|
|
3954
3911
|
// need to specify height and width
|
|
3955
3912
|
height: 284
|
|
3956
3913
|
});
|
|
3957
|
-
const upColor = "#
|
|
3958
|
-
const downColor = "#
|
|
3914
|
+
const upColor = "#cc2f3c";
|
|
3915
|
+
const downColor = "#06806b";
|
|
3959
3916
|
const data0 = generateData$3(rawData);
|
|
3960
3917
|
const option = {
|
|
3961
3918
|
animation: false,
|
|
@@ -4001,15 +3958,17 @@ const renderMacd = (rawData) => {
|
|
|
4001
3958
|
axisLine: { onZero: false },
|
|
4002
3959
|
splitLine: { show: false },
|
|
4003
3960
|
min: "dataMin",
|
|
4004
|
-
max: "dataMax"
|
|
3961
|
+
max: "dataMax",
|
|
3962
|
+
axisLabel: {
|
|
3963
|
+
formatter: (value) => {
|
|
3964
|
+
return dayjs(value).format("MM/DD");
|
|
3965
|
+
}
|
|
3966
|
+
}
|
|
4005
3967
|
}
|
|
4006
3968
|
],
|
|
4007
3969
|
yAxis: [
|
|
4008
3970
|
{
|
|
4009
|
-
scale: true
|
|
4010
|
-
splitArea: {
|
|
4011
|
-
show: true
|
|
4012
|
-
}
|
|
3971
|
+
scale: true
|
|
4013
3972
|
}
|
|
4014
3973
|
],
|
|
4015
3974
|
series: [
|
|
@@ -4020,7 +3979,8 @@ const renderMacd = (rawData) => {
|
|
|
4020
3979
|
smooth: true,
|
|
4021
3980
|
showSymbol: false,
|
|
4022
3981
|
lineStyle: {
|
|
4023
|
-
opacity: 1
|
|
3982
|
+
opacity: 1,
|
|
3983
|
+
width: 1
|
|
4024
3984
|
}
|
|
4025
3985
|
},
|
|
4026
3986
|
{
|
|
@@ -4030,7 +3990,8 @@ const renderMacd = (rawData) => {
|
|
|
4030
3990
|
smooth: true,
|
|
4031
3991
|
showSymbol: false,
|
|
4032
3992
|
lineStyle: {
|
|
4033
|
-
opacity: 1
|
|
3993
|
+
opacity: 1,
|
|
3994
|
+
width: 1
|
|
4034
3995
|
}
|
|
4035
3996
|
},
|
|
4036
3997
|
{
|
|
@@ -4070,8 +4031,8 @@ const renderNetAmount = (rawData) => {
|
|
|
4070
4031
|
// need to specify height and width
|
|
4071
4032
|
height: 184
|
|
4072
4033
|
});
|
|
4073
|
-
const upColor = "#
|
|
4074
|
-
const downColor = "#
|
|
4034
|
+
const upColor = "#cc2f3c";
|
|
4035
|
+
const downColor = "#06806b";
|
|
4075
4036
|
const data0 = generateData$2(rawData);
|
|
4076
4037
|
const option = {
|
|
4077
4038
|
animation: false,
|
|
@@ -4193,15 +4154,17 @@ const renderRSI = (rawData) => {
|
|
|
4193
4154
|
xAxis: [
|
|
4194
4155
|
{
|
|
4195
4156
|
type: "category",
|
|
4196
|
-
data: data0.categoryData
|
|
4157
|
+
data: data0.categoryData,
|
|
4158
|
+
axisLabel: {
|
|
4159
|
+
formatter: (value) => {
|
|
4160
|
+
return dayjs(value).format("MM/DD");
|
|
4161
|
+
}
|
|
4162
|
+
}
|
|
4197
4163
|
}
|
|
4198
4164
|
],
|
|
4199
4165
|
yAxis: [
|
|
4200
4166
|
{
|
|
4201
4167
|
scale: true,
|
|
4202
|
-
splitArea: {
|
|
4203
|
-
show: true
|
|
4204
|
-
},
|
|
4205
4168
|
min: 0,
|
|
4206
4169
|
max: 100
|
|
4207
4170
|
}
|
|
@@ -4214,7 +4177,8 @@ const renderRSI = (rawData) => {
|
|
|
4214
4177
|
smooth: true,
|
|
4215
4178
|
showSymbol: false,
|
|
4216
4179
|
lineStyle: {
|
|
4217
|
-
opacity: 1
|
|
4180
|
+
opacity: 1,
|
|
4181
|
+
width: 1
|
|
4218
4182
|
}
|
|
4219
4183
|
},
|
|
4220
4184
|
{
|
|
@@ -4224,7 +4188,8 @@ const renderRSI = (rawData) => {
|
|
|
4224
4188
|
smooth: true,
|
|
4225
4189
|
showSymbol: false,
|
|
4226
4190
|
lineStyle: {
|
|
4227
|
-
opacity: 1
|
|
4191
|
+
opacity: 1,
|
|
4192
|
+
width: 1
|
|
4228
4193
|
}
|
|
4229
4194
|
},
|
|
4230
4195
|
{
|
|
@@ -4234,7 +4199,8 @@ const renderRSI = (rawData) => {
|
|
|
4234
4199
|
smooth: true,
|
|
4235
4200
|
showSymbol: false,
|
|
4236
4201
|
lineStyle: {
|
|
4237
|
-
opacity: 1
|
|
4202
|
+
opacity: 1,
|
|
4203
|
+
width: 1
|
|
4238
4204
|
}
|
|
4239
4205
|
}
|
|
4240
4206
|
]
|
|
@@ -4266,8 +4232,8 @@ const renderVOL = (rawData) => {
|
|
|
4266
4232
|
// need to specify height and width
|
|
4267
4233
|
height: 184
|
|
4268
4234
|
});
|
|
4269
|
-
const upColor = "#
|
|
4270
|
-
const downColor = "#
|
|
4235
|
+
const upColor = "#cc2f3c";
|
|
4236
|
+
const downColor = "#06806b";
|
|
4271
4237
|
const data0 = generateData(rawData);
|
|
4272
4238
|
const option = {
|
|
4273
4239
|
animation: false,
|
|
@@ -4529,7 +4495,7 @@ function PriceTable({ data }) {
|
|
|
4529
4495
|
{ label: "最低", value: data.kline_indicator.low },
|
|
4530
4496
|
{
|
|
4531
4497
|
label: "换手率",
|
|
4532
|
-
value: `${formatNumberToUnit(data.kline_indicator.turn_over
|
|
4498
|
+
value: `${formatNumberToUnit(data.kline_indicator.turn_over)}%`
|
|
4533
4499
|
},
|
|
4534
4500
|
{ label: "成交额", value: formatNumberToUnit(data.kline_indicator.amount) },
|
|
4535
4501
|
{
|
|
@@ -4558,8 +4524,6 @@ function PriceTable({ data }) {
|
|
|
4558
4524
|
}
|
|
4559
4525
|
function Chapter2({ data, chartSvg }) {
|
|
4560
4526
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "chapterPage", children: [
|
|
4561
|
-
/* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { index: 2, title: "价格与成交概览" }),
|
|
4562
|
-
/* @__PURE__ */ jsxRuntime.jsx(PriceTable, { data }),
|
|
4563
4527
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4564
4528
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4565
4529
|
"div",
|
|
@@ -4580,6 +4544,8 @@ function Chapter2({ data, chartSvg }) {
|
|
|
4580
4544
|
")日K线图"
|
|
4581
4545
|
] })
|
|
4582
4546
|
] }),
|
|
4547
|
+
/* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { index: 2, title: "价格与成交概览" }),
|
|
4548
|
+
/* @__PURE__ */ jsxRuntime.jsx(PriceTable, { data }),
|
|
4583
4549
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "indentP", children: data.kline_indicator.kline_summary })
|
|
4584
4550
|
] });
|
|
4585
4551
|
}
|
|
@@ -4720,7 +4686,6 @@ function Chapter5({ data, atrSvg, bollSvg }) {
|
|
|
4720
4686
|
")ATR"
|
|
4721
4687
|
] })
|
|
4722
4688
|
] }),
|
|
4723
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "indentP", children: data.volatility_indicator.bb_summary }),
|
|
4724
4689
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4725
4690
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4726
4691
|
"div",
|
|
@@ -4741,6 +4706,7 @@ function Chapter5({ data, atrSvg, bollSvg }) {
|
|
|
4741
4706
|
")布林带"
|
|
4742
4707
|
] })
|
|
4743
4708
|
] }),
|
|
4709
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "indentP", children: data.volatility_indicator.bb_summary }),
|
|
4744
4710
|
/* @__PURE__ */ jsxRuntime.jsx(Warn, { content: data.volatility_indicator.risk_tips })
|
|
4745
4711
|
] });
|
|
4746
4712
|
}
|
|
@@ -4837,7 +4803,12 @@ function Chapter6({
|
|
|
4837
4803
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "indentP", children: data.volume_indicator.retail_sentiment })
|
|
4838
4804
|
] });
|
|
4839
4805
|
}
|
|
4840
|
-
function Chapter7({
|
|
4806
|
+
function Chapter7({
|
|
4807
|
+
data,
|
|
4808
|
+
shortSvg,
|
|
4809
|
+
intermediateSvg,
|
|
4810
|
+
longSvg
|
|
4811
|
+
}) {
|
|
4841
4812
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "chapterPage", children: [
|
|
4842
4813
|
/* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { index: 7, title: "形态分析与关键价位" }),
|
|
4843
4814
|
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "indentP", children: data.pattern_analysis.pattern_analysis_summary }),
|
|
@@ -4853,6 +4824,26 @@ function Chapter7({ data, klineSupportSvg }) {
|
|
|
4853
4824
|
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: data.pattern_analysis.short_term.short_support })
|
|
4854
4825
|
] }),
|
|
4855
4826
|
/* @__PURE__ */ jsxRuntime.jsx("li", { children: data.pattern_analysis.short_term.pattern_desc })
|
|
4827
|
+
] }),
|
|
4828
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4829
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4830
|
+
"div",
|
|
4831
|
+
{
|
|
4832
|
+
className: "w-[651px] h-[284px]",
|
|
4833
|
+
dangerouslySetInnerHTML: {
|
|
4834
|
+
__html: shortSvg
|
|
4835
|
+
}
|
|
4836
|
+
}
|
|
4837
|
+
),
|
|
4838
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "figcaption", children: [
|
|
4839
|
+
"图7-1 ",
|
|
4840
|
+
data.name,
|
|
4841
|
+
"(",
|
|
4842
|
+
data.code,
|
|
4843
|
+
".",
|
|
4844
|
+
data.market,
|
|
4845
|
+
") 短期支撑位与压力位"
|
|
4846
|
+
] })
|
|
4856
4847
|
] })
|
|
4857
4848
|
] }),
|
|
4858
4849
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -4867,6 +4858,26 @@ function Chapter7({ data, klineSupportSvg }) {
|
|
|
4867
4858
|
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: data.pattern_analysis.intermediate_term.support })
|
|
4868
4859
|
] }),
|
|
4869
4860
|
/* @__PURE__ */ jsxRuntime.jsx("li", { children: data.pattern_analysis.intermediate_term.pattern_desc })
|
|
4861
|
+
] }),
|
|
4862
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4863
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4864
|
+
"div",
|
|
4865
|
+
{
|
|
4866
|
+
className: "w-[651px] h-[284px]",
|
|
4867
|
+
dangerouslySetInnerHTML: {
|
|
4868
|
+
__html: intermediateSvg
|
|
4869
|
+
}
|
|
4870
|
+
}
|
|
4871
|
+
),
|
|
4872
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "figcaption", children: [
|
|
4873
|
+
"图7-2 ",
|
|
4874
|
+
data.name,
|
|
4875
|
+
"(",
|
|
4876
|
+
data.code,
|
|
4877
|
+
".",
|
|
4878
|
+
data.market,
|
|
4879
|
+
") 中期支撑位与压力位"
|
|
4880
|
+
] })
|
|
4870
4881
|
] })
|
|
4871
4882
|
] }),
|
|
4872
4883
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
@@ -4881,27 +4892,26 @@ function Chapter7({ data, klineSupportSvg }) {
|
|
|
4881
4892
|
/* @__PURE__ */ jsxRuntime.jsx("strong", { children: data.pattern_analysis.long_term.support })
|
|
4882
4893
|
] }),
|
|
4883
4894
|
/* @__PURE__ */ jsxRuntime.jsx("li", { children: data.pattern_analysis.long_term.pattern_desc })
|
|
4884
|
-
] })
|
|
4885
|
-
|
|
4886
|
-
|
|
4887
|
-
|
|
4888
|
-
|
|
4889
|
-
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
__html: klineSupportSvg
|
|
4895
|
+
] }),
|
|
4896
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
4897
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
4898
|
+
"div",
|
|
4899
|
+
{
|
|
4900
|
+
className: "w-[651px] h-[284px]",
|
|
4901
|
+
dangerouslySetInnerHTML: {
|
|
4902
|
+
__html: longSvg
|
|
4903
|
+
}
|
|
4894
4904
|
}
|
|
4895
|
-
|
|
4896
|
-
|
|
4897
|
-
|
|
4898
|
-
|
|
4899
|
-
|
|
4900
|
-
|
|
4901
|
-
|
|
4902
|
-
|
|
4903
|
-
|
|
4904
|
-
|
|
4905
|
+
),
|
|
4906
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "figcaption", children: [
|
|
4907
|
+
"图7-3 ",
|
|
4908
|
+
data.name,
|
|
4909
|
+
"(",
|
|
4910
|
+
data.code,
|
|
4911
|
+
".",
|
|
4912
|
+
data.market,
|
|
4913
|
+
") 长期支撑位与压力位"
|
|
4914
|
+
] })
|
|
4905
4915
|
] })
|
|
4906
4916
|
] }),
|
|
4907
4917
|
/* @__PURE__ */ jsxRuntime.jsx(SectionHeader, { index: 8, title: "重要声明" }),
|
|
@@ -5039,16 +5049,28 @@ const renderChapter6 = (data) => {
|
|
|
5039
5049
|
return renderFullHtml(seg);
|
|
5040
5050
|
};
|
|
5041
5051
|
const renderChapter7 = (data) => {
|
|
5042
|
-
const
|
|
5043
|
-
|
|
5044
|
-
|
|
5045
|
-
|
|
5046
|
-
|
|
5047
|
-
|
|
5048
|
-
|
|
5052
|
+
const shortSvg = renderKlineSupportChart(data.kline_daily, {
|
|
5053
|
+
resistance: data.pattern_analysis.short_term.short_resistance,
|
|
5054
|
+
support: data.pattern_analysis.short_term.short_support
|
|
5055
|
+
});
|
|
5056
|
+
const intermediateSvg = renderKlineSupportChart(data.kline_daily, {
|
|
5057
|
+
resistance: data.pattern_analysis.intermediate_term.resistance,
|
|
5058
|
+
support: data.pattern_analysis.intermediate_term.support
|
|
5059
|
+
});
|
|
5060
|
+
const longSvg = renderKlineSupportChart(data.kline_daily, {
|
|
5061
|
+
resistance: data.pattern_analysis.long_term.resistance,
|
|
5062
|
+
support: data.pattern_analysis.long_term.support
|
|
5049
5063
|
});
|
|
5050
5064
|
const seg = ReactDOMServer.renderToString(
|
|
5051
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5065
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
5066
|
+
Chapter7,
|
|
5067
|
+
{
|
|
5068
|
+
data,
|
|
5069
|
+
shortSvg,
|
|
5070
|
+
intermediateSvg,
|
|
5071
|
+
longSvg
|
|
5072
|
+
}
|
|
5073
|
+
)
|
|
5052
5074
|
);
|
|
5053
5075
|
return renderFullHtml(seg);
|
|
5054
5076
|
};
|