pyecharts的个人探索

本文介绍如何使用pyecharts库对股票回测数据进行可视化处理,包括K线图、指标线、买卖点的绘制,并提供了一段完整的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

探索利用pyecharts对回测数据可视化

回测数据的可视化,这里主要是两张图表:
第一,就是把K线 指标线 买卖点放在同一张图上,利用这张图表,看一下指标线,买卖点是否和自己想的一样
第二,就是把日K线,资金曲线图,K线基准图,回撤图,放在同一张图表上,通过这张图,综合看策略是否可用

K线的添加

基本就是KLine(),添加name, time, data,

kline.add("Kline", time, data,
                   is_datazoom_show=True,
                   is_datazoom_extra_show=True,
                   is_legend_show=True,
                   is_label_show=True,
                   is_more_utils=True)
其中is_datazoom_show是否显示缩放的功能,设置显示,默认不显示
下一个是y轴是否显示缩放功能
下一个是图标是否显示
下一个是K线的值是否显示,这个很重要,否则对应的时候,对应不上
下一个是右侧按钮是否显示,显示

指标线的添加

基本就是Line(),添加name, time, data,

line.add(name, time, data,
              line_width=3,
               is_datazoom_show=True,
               is_datazoom_extra_show=True,
               is_legend_show=True,
               # is_label_show=True,
               is_more_utils=True,
               mark_point=["max", "min"])
设置线宽,是否允许缩放,图例是否显示,下面label_show是指线的每个值,这个不能设置显示,否则在图上面,全是数字,看起来很乱,不设置显示,当鼠标移动到线上,依然有数值
mark_point 显示的点,可以设置最高点,最低点等

买卖点的添加

基本就是Line(),添加name, time, data,

line.add(name="long win", x_axis=[d[0], d[3]], y_axis=[d[1], d[4]],
                                           line_color="#000000",
                                           line_width=5,
                                           )
这里新设立四条线,分别是多头盈利,多头亏损,空头盈利,空头亏损,四条线
线宽设置,盈利=5,亏损=3,颜色
多头盈利: 黑色:"#000000"
多头亏损: 灰色:"#696969"
空头盈利: 纯绿:"#008000"
空头亏损: 淡绿:"#7CFC00"

完整数据

time,open,high,low,close,vol,opi,ma1,ma2

2019/4/1 21:45,22755,22765,22755,22755,3580,709670,22761,22770
2019/4/1 21:50,22755,22760,22745,22750,6990,709446,22757,22764.5
2019/4/1 21:55,22750,22750,22730,22745,7440,709618,22753,22761
2019/4/1 22:00,22745,22750,22735,22745,9300,709216,22751,22759
2019/4/1 22:05,22750,22755,22740,22755,4980,709352,22750,22758
2019/4/1 22:10,22755,22775,22745,22770,6522,709488,22753,22757
2019/4/1 22:15,22770,22770,22755,22765,6612,709934,22756,22756.5
2019/4/1 22:20,22765,22770,22755,22760,5836,709382,22759,22756
2019/4/1 22:25,22760,22780,22760,22770,7956,708934,22764,22757.5
2019/4/1 22:30,22770,22770,22755,22765,3282,708340,22766,22758
2019/4/1 22:35,22760,22765,22730,22740,8732,708102,22760,22756.5
2019/4/1 22:40,22740,22740,22720,22740,13314,707714,22755,22755.5
2019/4/1 22:45,22740,22750,22715,22715,8828,706792,22746,22752.5
2019/4/1 22:50,22715,22715,22695,22710,11276,705362,22734,22749
2019/4/1 22:55,22710,22725,22710,22720,6636,705914,22725,22745.5
2019/4/1 23:00,22715,22735,22710,22730,7052,706888,22723,22741.5
2019/4/1 23:05,22730,22735,22720,22725,3422,707180,22720,22737.5
2019/4/1 23:10,22725,22725,22710,22720,4060,707578,22721,22733.5
2019/4/1 23:15,22720,22735,22720,22725,5198,707616,22724,22729
2019/4/1 23:20,22725,22745,22725,22735,5632,707696,22727,22726
2019/4/1 23:25,22735,22740,22725,22730,3600,707818,22727,22725
2019/4/1 23:30,22730,22730,22710,22730,3654,707644,22728,22724
2019/4/1 23:35,22730,22730,22720,22725,1506,707320,22729,22725
2019/4/1 23:40,22725,22725,22710,22715,2784,707252,22727,22725.5
2019/4/1 23:45,22715,22715,22710,22710,1990,707366,22722,22724.5
2019/4/1 23:50,22710,22710,22700,22705,2510,707346,22717,22722
2019/4/1 23:55,22705,22710,22670,22670,8100,706002,22705,22716.5
2019/4/2 0:00,22670,22685,22635,22640,12186,703906,22688,22708.5
2019/4/2 0:05,22640,22640,22585,22590,22562,702366,22663,22695
2019/4/2 0:10,22585,22590,22555,22575,12910,702800,22636,22679
2019/4/2 0:15,22575,22575,22565,22570,3642,702958,22609,22663
2019/4/2 0:20,22570,22585,22565,22580,2884,702532,22591,22648
2019/4/2 0:25,22580,22600,22580,22595,5240,702086,22582,22635
2019/4/2 0:30,22595,22600,22565,22575,6332,700934,22579,22621
2019/4/2 0:35,22575,22585,22570,22580,3870,700226,22580,22608
2019/4/2 0:40,22580,22585,22565,22565,2346,700004,22579,22594
2019/4/2 0:45,22565,22580,22555,22580,4858,698460,22579,22585
2019/4/2 0:50,22580,22580,22570,22570,1572,698054,22574,22578
2019/4/2 0:55,22570,22580,22570,22570,3186,696362,22573,22576
2019/4/2 9:00,22585,22655,22585,22645,24272,695278,22586,22583
2019/4/2 9:05,22640,22670,22640,22655,12860,695350,22604,22591.5
2019/4/2 9:10,22650,22665,22640,22640,8400,695270,22616,22597.5
2019/4/2 9:15,22640,22650,22640,22645,4488,695244,22631,22602.5
2019/4/2 9:20,22645,22650,22625,22630,7086,694756,22643,22608
2019/4/2 9:25,22630,22635,22625,22630,4974,694608,22640,22613
2019/4/2 9:30,22635,22635,22620,22625,5746,694652,22634,22619
2019/4/2 9:35,22625,22630,22610,22620,5614,694710,22630,22623
2019/4/2 9:40,22620,22630,22615,22620,3362,694624,22625,22628
2019/4/2 9:45,22620,22630,22610,22630,3722,694590,22625,22634
2019/4/2 9:50,22630,22640,22630,22630,5010,694286,22625,22632.5
2019/4/2 9:55,22630,22670,22630,22665,8644,694200,22633,22633.5
2019/4/2 10:00,22665,22670,22630,22645,10380,694478,22638,22634
2019/4/2 10:05,22640,22660,22635,22640,3776,694634,22642,22633.5
2019/4/2 10:10,22640,22645,22610,22615,9414,695670,22639,22632
2019/4/2 10:30,22615,22615,22605,22610,9028,696790,22635,22630
2019/4/2 10:35,22610,22610,22565,22570,10402,696514,22616,22624.5
2019/4/2 10:40,22570,22580,22515,22540,19738,695566,22595,22616.5
2019/4/2 10:45,22540,22545,22500,22505,18014,695662,22568,22605
2019/4/2 10:50,22505,22505,22455,22485,26878,694298,22542,22590.5
2019/4/2 10:55,22480,22525,22475,22520,16524,691338,22524,22579.5
2019/4/2 11:00,22520,22520,22505,22505,6334,690760,22511,22563.5
2019/4/2 11:05,22505,22535,22505,22530,4752,689970,22509,22552
2019/4/2 11:10,22530,22535,22520,22525,4040,689844,22513,22540.5
2019/4/2 11:15,22525,22535,22515,22525,5348,689642,22521,22531.5
2019/4/2 11:20,22525,22535,22520,22520,4352,689300,22521,22522.5
2019/4/2 11:25,22520,22525,22505,22520,5082,688020,22524,22517.5
2019/4/2 13:30,22515,22525,22485,22520,10902,688840,22522,22515.5
2019/4/2 13:35,22520,22605,22520,22600,18032,688524,22537,22525
2019/4/2 13:40,22600,22600,22560,22560,10260,688702,22544,22532.5
2019/4/2 13:45,22560,22575,22545,22560,8442,688540,22552,22536.5
2019/4/2 13:50,22560,22570,22550,22550,5870,687882,22558,22541
2019/4/2 13:55,22555,22570,22545,22560,6040,687668,22566,22544
2019/4/2 14:00,22560,22570,22560,22565,4196,687488,22559,22548
2019/4/2 14:05,22565,22565,22540,22560,5842,686924,22559,22551.5
2019/4/2 14:10,22560,22565,22540,22550,8346,687494,22557,22554.5
2019/4/2 14:15,22550,22565,22540,22565,2556,687144,22560,22559
2019/4/2 14:20,22565,22580,22560,22580,4936,686934,22564,22565
2019/4/2 14:25,22580,22620,22580,22610,14316,686226,22573,22566
2019/4/2 14:30,22610,22610,22580,22590,7160,685336,22579,22569
2019/4/2 14:35,22595,22600,22570,22575,3750,685142,22584,22570.5
2019/4/2 14:40,22575,22580,22535,22535,5356,684690,22578,22569
2019/4/2 14:45,22540,22560,22535,22555,5098,684324,22573,22568.5
2019/4/2 14:50,22555,22595,22550,22585,7390,683168,22568,22570.5
2019/4/2 14:55,22585,22605,22585,22605,7982,681258,22571,22575
2019/4/2 21:00,22550,22550,22465,22485,27416,682312,22553,22568.5
2019/4/2 21:05,22485,22485,22445,22455,14794,683442,22537,22557.5
2019/4/2 21:10,22455,22455,22405,22415,26280,683458,22509,22541
2019/4/2 21:15,22410,22455,22410,22455,12484,683364,22483,22525.5
2019/4/2 21:20,22455,22465,22435,22435,12046,682954,22449,22510
2019/4/2 21:25,22435,22435,22420,22435,9814,683716,22439,22496
2019/4/2 21:30,22435,22445,22430,22440,6550,683614,22436,22486.5
2019/4/2 21:35,22435,22445,22415,22425,7280,683852,22438,22473.5
2019/4/2 21:40,22425,22425,22370,22380,26692,682004,22423,22453
2019/4/2 21:45,22380,22400,22375,22395,10972,682346,22415,22432
2019/4/2 21:50,22400,22400,22380,22385,6492,682944,22405,22422
2019/4/2 21:55,22385,22430,22385,22425,11558,681994,22402,22419
2019/4/2 22:00,22425,22430,22410,22430,6880,681706,22403,22420.5
2019/4/2 22:05,22430,22435,22415,22415,5948,681938,22410,22416.5
2019/4/2 22:10,22415,22415,22385,22415,9586,682812,22414,22414.5
2019/4/2 22:15,22415,22425,22405,22420,6254,682682,22421,22413
2019/4/2 22:20,22420,22425,22400,22400,8396,682158,22416,22409
2019/4/2 22:25,22400,22425,22400,22420,5720,682028,22414,22408.5
2019/4/2 22:30,22420,22425,22410,22420,5080,681902,22415,22412.5
2019/4/2 22:35,22420,22480,22420,22465,17760,680364,22425,22419.5
2019/4/2 22:40,22465,22505,22465,22480,16158,679880,22437,22429
2019/4/2 22:45,22485,22490,22445,22450,11452,680086,22447,22431.5
2019/4/2 22:50,22450,22480,22450,22480,11700,680182,22459,22436.5
2019/4/2 22:55,22480,22485,22450,22455,6542,680078,22466,22440.5
2019/4/2 23:00,22455,22460,22430,22435,9984,680768,22460,22442.5
2019/4/2 23:05,22435,22450,22435,22450,4628,680788,22454,22445.5
2019/4/2 23:10,22450,22450,22425,22435,5582,680908,22451,22449
2019/4/2 23:15,22435,22470,22430,22465,5954,680480,22448,22453.5
2019/4/2 23:20,22465,22470,22425,22435,9234,680358,22444,22455
2019/4/2 23:25,22435,22440,22425,22435,5642,680192,22444,22452
2019/4/2 23:30,22430,22445,22410,22425,9366,680234,22439,22446.5
2019/4/2 23:35,22425,22430,22400,22410,7688,680986,22434,22442.5
2019/4/2 23:40,22410,22420,22405,22410,3466,681254,22423,22435.5
2019/4/2 23:45,22415,22425,22410,22410,3726,681242,22418,22431
2019/4/2 23:50,22410,22420,22405,22415,2862,681412,22414,22429
2019/4/2 23:55,22415,22420,22395,22405,5660,681484,22410,22424.5
2019/4/3 0:00,22405,22420,22405,22415,4478,681296,22411,22422.5
2019/4/3 0:05,22415,22415,22400,22400,2636,681144,22409,22416
2019/4/3 0:10,22400,22405,22390,22400,3060,681134,22407,22412.5
2019/4/3 0:15,22400,22415,22400,22410,2116,680902,22406,22410
2019/4/3 0:20,22410,22420,22410,22415,2578,681086,22408,22409
2019/4/3 0:25,22415,22420,22415,22415,838,680902,22408,22409.5
2019/4/3 0:30,22420,22425,22415,22420,2676,680972,22412,22410.5
2019/4/3 0:35,22420,22420,22410,22410,1196,680788,22414,22410.5
2019/4/3 0:40,22410,22410,22395,22405,2574,680404,22413,22409.5
2019/4/3 0:45,22405,22410,22400,22400,1212,680176,22410,22409
2019/4/3 0:50,22400,22400,22385,22390,2228,679702,22405,22406.5
2019/4/3 0:55,22395,22415,22385,22410,4314,678102,22403,22407.5
2019/4/3 9:00,22435,22470,22430,22455,15004,677738,22412,22413
2019/4/3 9:05,22455,22455,22415,22420,6910,678230,22415,22414
2019/4/3 9:10,22420,22430,22410,22420,6180,677874,22419,22414.5
2019/4/3 9:15,22420,22420,22390,22395,11296,678598,22420,22412.5
2019/4/3 9:20,22390,22390,22370,22380,15832,677368,22414,22408.5
2019/4/3 9:25,22380,22400,22370,22370,9042,677144,22397,22404.5
2019/4/3 9:30,22370,22415,22370,22410,11502,675458,22395,22405
2019/4/3 9:35,22410,22410,22395,22405,2664,675166,22392,22405.5
2019/4/3 9:40,22400,22410,22400,22405,2610,675266,22394,22407
2019/4/3 9:45,22405,22440,22405,22430,9030,674582,22404,22409
2019/4/3 9:50,22430,22435,22420,22430,4052,674886,22416,22406.5
2019/4/3 9:55,22435,22435,22410,22410,6396,674810,22416,22405.5
2019/4/3 10:00,22415,22415,22400,22415,3450,674628,22418,22405
2019/4/3 10:05,22415,22430,22415,22425,3734,674860,22422,22408
2019/4/3 10:10,22430,22430,22390,22390,10364,675772,22414,22409
2019/4/3 10:30,22390,22395,22380,22395,11122,676062,22407,22411.5
2019/4/3 10:35,22395,22410,22395,22395,5560,675638,22404,22410
2019/4/3 10:40,22395,22400,22385,22390,5248,675630,22399,22408.5
2019/4/3 10:45,22390,22390,22355,22360,15736,673974,22386,22404
2019/4/3 10:50,22360,22385,22360,22385,6134,673354,22385,22399.5
2019/4/3 10:55,22385,22390,22375,22380,4324,673680,22382,22394.5
2019/4/3 11:00,22380,22395,22375,22385,3726,673180,22380,22392
2019/4/3 11:05,22385,22390,22380,22390,2518,673052,22380,22389.5
2019/4/3 11:10,22390,22395,22375,22380,7672,672128,22384,22385
2019/4/3 11:15,22380,22380,22370,22370,4790,671690,22381,22383
2019/4/3 11:20,22370,22380,22365,22365,4474,671092,22378,22380
2019/4/3 11:25,22365,22385,22365,22375,3918,670308,22376,22378
2019/4/3 13:30,22380,22470,22380,22470,30024,668294,22392,22386
2019/4/3 13:35,22465,22485,22460,22460,17010,667988,22408,22396
2019/4/3 13:40,22460,22490,22450,22490,10424,667108,22432,22406.5
2019/4/3 13:45,22485,22525,22475,22510,19144,667200,22461,22419.5
2019/4/3 13:50,22515,22515,22495,22500,10430,668582,22486,22431
2019/4/3 13:55,22500,22515,22500,22515,6048,668658,22495,22443.5
2019/4/3 14:00,22515,22550,22510,22545,13458,668512,22512,22460
2019/4/3 14:05,22545,22555,22535,22535,8428,669100,22521,22476.5
2019/4/3 14:10,22535,22580,22530,22570,15884,668862,22533,22497
2019/4/3 14:15,22570,22585,22565,22570,11586,668274,22547,22516.5
2019/4/3 14:20,22570,22615,22570,22575,13730,665698,22559,22527
2019/4/3 14:25,22575,22655,22575,22655,21246,665674,22581,22546.5
2019/4/3 14:30,22655,22655,22630,22645,11698,665552,22603,22562
2019/4/3 14:35,22650,22715,22650,22685,26044,666516,22626,22579.5
2019/4/3 14:40,22685,22705,22675,22685,10358,666680,22649,22598
2019/4/3 14:45,22685,22690,22635,22650,13478,665268,22664,22611.5
2019/4/3 14:50,22655,22665,22645,22660,6294,664790,22665,22623
2019/4/3 14:55,22660,22675,22650,22670,12742,662092,22670,22636.5
2019/4/3 21:00,22635,22670,22615,22630,17710,663352,22659,22642.5
2019/4/3 21:05,22625,22660,22605,22640,13216,663652,22650,22649.5
2019/4/3 21:10,22640,22685,22635,22665,9760,664246,22653,22658.5
2019/4/3 21:15,22665,22715,22665,22690,10536,665608,22659,22662
2019/4/3 21:20,22690,22690,22655,22670,8846,665524,22659,22664.5
2019/4/3 21:25,22670,22680,22665,22670,3404,665882,22667,22663
2019/4/3 21:30,22670,22695,22670,22690,5442,666362,22677,22663.5
2019/4/3 21:35,22690,22705,22690,22700,6970,666978,22684,22668.5
2019/4/3 21:40,22705,22760,22700,22755,24400,667948,22697,22678
2019/4/3 21:45,22755,22790,22745,22785,16030,670184,22720,22689.5
2019/4/3 21:50,22785,22850,22785,22835,37772,674414,22753,22710
2019/4/3 21:55,22835,22910,22830,22895,29792,674044,22794,22735.5
2019/4/3 22:00,22895,22895,22870,22875,17734,674464,22829,22756.5
2019/4/3 22:05,22875,22945,22875,22945,23972,676866,22867,22782
2019/4/3 22:10,22950,22955,22905,22910,19868,675812,22892,22806
2019/4/3 22:15,22910,22930,22905,22925,8154,676618,22910,22831.5
2019/4/3 22:20,22925,22950,22925,22940,11452,677578,22919,22856.5
2019/4/3 22:25,22940,22945,22880,22885,22038,675090,22921,22875
2019/4/3 22:30,22890,22900,22880,22890,8082,673928,22910,22888.5
2019/4/3 22:35,22890,22895,22845,22855,16308,672006,22899,22895.5
2019/4/3 22:40,22855,22880,22855,22860,8776,672900,22886,22898
2019/4/3 22:45,22860,22875,22860,22875,6478,672950,22873,22896
2019/4/3 22:50,22870,22915,22860,22915,10582,673906,22879,22900
2019/4/3 22:55,22915,22920,22900,22900,8566,674524,22881,22895.5
2019/4/3 23:00,22900,22905,22880,22900,6728,675644,22890,22894.5
2019/4/3 23:05,22900,22965,22900,22935,20704,679628,22905,22895.5
2019/4/3 23:10,22940,22950,22890,22900,11388,679688,22910,22891.5
2019/4/3 23:15,22900,22905,22890,22905,5264,679672,22908,22893.5
2019/4/3 23:20,22905,22905,22890,22900,3838,679672,22908,22894.5
2019/4/3 23:25,22900,22900,22885,22890,5546,679064,22906,22898
2019/4/3 23:30,22890,22900,22890,22895,2684,679214,22898,22901.5
2019/4/3 23:35,22895,22905,22890,22905,2490,679038,22899,22904.5
2019/4/3 23:40,22905,22905,22895,22905,1852,678918,22899,22903.5
2019/4/3 23:45,22905,22905,22900,22900,582,678658,22899,22903.5
2019/4/3 23:50,22900,22915,22900,22910,3206,678448,22903,22904.5
2019/4/3 23:55,22910,22915,22905,22905,1698,678120,22905,22901.5
2019/4/4 0:00,22905,22905,22875,22885,6888,677096,22901,22900
2019/4/4 0:05,22890,22935,22890,22930,5766,678008,22906,22902.5
2019/4/4 0:10,22930,22935,22915,22915,3696,678404,22909,22904
2019/4/4 0:15,22915,22925,22915,22920,1164,678694,22911,22907
2019/4/4 0:20,22925,22930,22920,22925,2010,679044,22915,22910
2019/4/4 0:25,22920,22930,22920,22925,1544,678918,22923,22912
2019/4/4 0:30,22925,22925,22915,22915,1422,678698,22920,22913
2019/4/4 0:35,22915,22915,22905,22915,1692,678442,22920,22914.5
2019/4/4 0:40,22915,22915,22910,22915,794,678352,22919,22915
2019/4/4 0:45,22915,22930,22915,22925,1582,678256,22919,22917
2019/4/4 0:50,22925,22930,22920,22925,1504,678244,22919,22921
2019/4/4 0:55,22925,22945,22910,22925,4836,676958,22921,22920.5
2019/4/4 9:00,22915,22915,22890,22900,10350,676990,22918,22919
2019/4/4 9:05,22900,22950,22895,22945,9822,677426,22924,22921.5
2019/4/4 9:10,22945,22970,22930,22950,9374,678890,22929,22924
2019/4/4 9:15,22950,23005,22950,23000,18420,681898,22944,22931.5
2019/4/4 9:20,23000,23010,22975,22975,8456,683132,22954,22937.5
2019/4/4 9:25,22975,22975,22950,22960,7400,683098,22966,22942
2019/4/4 9:30,22960,22980,22935,22980,8898,682560,22973,22948.5
2019/4/4 9:35,22980,22980,22940,22940,9666,682668,22971,22950
2019/4/4 9:40,22940,22955,22915,22935,15784,680464,22958,22951
2019/4/4 9:45,22935,22940,22920,22935,6344,680122,22950,22952
2019/4/4 9:50,22930,22945,22915,22925,6768,679102,22943,22954.5
2019/4/4 9:55,22925,22925,22890,22895,10236,677938,22926,22949.5
2019/4/4 10:00,22890,22910,22890,22905,4666,677552,22919,22945
2019/4/4 10:05,22905,22920,22865,22870,12288,677614,22906,22932
2019/4/4 10:10,22870,22875,22830,22835,19682,674986,22886,22918
2019/4/4 10:30,22835,22860,22830,22860,13168,675454,22873,22908
2019/4/4 10:35,22860,22865,22840,22840,10266,674510,22862,22894
2019/4/4 10:40,22840,22850,22835,22835,4906,674450,22848,22883.5
2019/4/4 10:45,22835,22845,22795,22795,13446,673742,22833,22869.5
2019/4/4 10:50,22795,22795,22760,22775,17942,671564,22821,22853.5
2019/4/4 10:55,22775,22795,22775,22785,7580,670438,22806,22839.5
2019/4/4 11:00,22785,22810,22785,22800,6096,670134,22798,22830
2019/4/4 11:05,22800,22800,22780,22780,8332,670094,22787,22817.5
2019/4/4 11:10,22780,22795,22775,22780,7614,669678,22784,22808.5
2019/4/4 11:15,22780,22790,22775,22790,5456,669688,22787,22804
2019/4/4 11:20,22790,22795,22740,22770,14510,667472,22784,22795
2019/4/4 11:25,22770,22815,22760,22810,10702,667268,22786,22792
2019/4/4 13:30,22835,22855,22820,22830,12010,667846,22796,22791.5
2019/4/4 13:35,22830,22835,22820,22835,4668,667740,22807,22795.5
2019/4/4 13:40,22830,22840,22825,22830,3816,667750,22815,22801
2019/4/4 13:45,22830,22860,22830,22855,9718,667956,22832,22808
2019/4/4 13:50,22855,22855,22815,22830,8202,667774,22836,22811
2019/4/4 13:55,22830,22860,22820,22855,6404,667556,22841,22818.5
2019/4/4 14:00,22855,22855,22830,22855,7134,666948,22845,22826
2019/4/4 14:05,22855,22855,22840,22850,3802,666650,22849,22832
2019/4/4 14:10,22850,22885,22850,22880,9780,666980,22854,22843
2019/4/4 14:15,22880,22925,22880,22905,17428,667896,22869,22852.5
2019/4/4 14:20,22905,22905,22880,22900,6314,667634,22878,22859.5
2019/4/4 14:25,22900,22900,22885,22895,4546,667388,22886,22865.5
2019/4/4 14:30,22895,22915,22865,22865,13018,668126,22889,22869
2019/4/4 14:35,22865,22875,22800,22835,24370,664660,22880,22867
2019/4/4 14:40,22835,22845,22825,22825,6742,663786,22864,22866.5
2019/4/4 14:45,22830,22870,22810,22850,13848,662406,22854,22866
2019/4/4 14:50,22850,22880,22835,22840,11368,660546,22843,22864.5
2019/4/4 14:55,22835,22860,22835,22845,11094,656222,22839,22864

完整代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*- 
"""
创建回测数据可视化

"""
from pyecharts import Kline, Bar, Line, EffectScatter, Overlap


class backtest_visualization():

    def __init__(self):
        self.overlap = Overlap(width=1500, height=800,)
        self.kline = Kline()

        self.bar = Bar()
        self.bar.use_theme("vintage")

        self.line = Line()
        self.line_long_win = Line()
        self.line_long_loss = Line()
        self.line_short_win = Line()
        self.line_short_loss = Line()

        self.time = []

    def kline_add(self, time, data):
        """将时间以及开收低高收四个价格添加进来
        这个只允许添加一次
        data = [[],[]]
        time = []
        """
        self.time = time
        self.kline.add("Kline", time, data,
                       is_datazoom_show=True,
                       is_datazoom_extra_show=True,
                       is_legend_show=True,
                       is_label_show=True,
                       is_more_utils=True,
                       line_color="#000000")

    def bar_add(self, name, data):
        """将bar的数据添加进来主要是成交量"""

        self.bar.add(name, self.time, data, yaxis_max=5 * max(data))


    def line_add(self, name, data):
        """将line的数据添加进来,这里是指标"""
        self.line.add(name, self.time, data,
                      line_width=3,
                      is_datazoom_show=True,
                      is_datazoom_extra_show=True,
                      is_legend_show=True,
                      # is_label_show=True,
                      is_more_utils=True,
                      mark_point=["max", "min"])

    def buy_sell_point_add(self, data):
        """将买卖点的数据添加进来
        data = [[买时间 买价格 买数量 卖时间 卖价格 卖数量, 方向, 盈亏情况]]
        盈利为正,亏损为负
        """
        for d in data:
            # 多头
            if d[6] == 1:
                # 多头盈利
                if d[7] > 0:
                    self.line_long_win.add(name="long win", x_axis=[d[0], d[3]], y_axis=[d[1], d[4]],
                                           line_color="#000000",
                                           line_width=5,)

                # 多头亏损
                else:
                    self.line_long_loss.add(name="long loss", x_axis=[d[0], d[3]], y_axis=[d[1], d[4]],
                                            line_color="#696969",
                                            line_width=3,)

            # 空头
            elif d[6] == -1:
                # 空头盈利
                if d[7] > 0:
                    self.line_short_win.add(name="short win", x_axis=[d[0], d[3]], y_axis=[d[1], d[4]],
                                            line_color="#008000",
                                            line_width=5,)

                # 空头亏损
                else:
                    self.line_short_loss.add(name="short loss", x_axis=[d[0], d[3]], y_axis=[d[1], d[4]],
                                             line_color="#7CFC00",
                                             line_width=3,)



    def render(self, path="while_test.html"):
        overlap = self.overlap
        overlap.add(self.kline)
        overlap.add(self.line)

        overlap.add(self.line_long_win)
        overlap.add(self.line_long_loss)
        overlap.add(self.line_short_win)
        overlap.add(self.line_short_loss)

        overlap.render(path=path)
        print("Done")


if __name__ == "__main__":
    import pandas as pd
    file = "data.csv"
    da = pd.read_csv(file)

    # 根据成交量进行筛选
    da['vol'] = da['vol'].apply(lambda vol: vol if vol > 0 else 0)
    # 根据时间进行转换成list
    time = da["time"].apply(lambda x: str(x)).tolist()
    data = da.apply(lambda record: [record['open'], record['close'], record['low'], record['high']],
                            axis=1).tolist()
    kline = Kline()
    kline.add("kline", time, data)
    kline.render("t.html")



    vol = da['vol'].tolist()
    ma1 = da["ma1"].tolist()
    ma2 = da["ma2"].tolist()

    bv = backtest_visualization()
    bv.kline_add(time, data)
    bv.bar_add("vol", vol)
    bv.line_add("ma1", ma1)
    bv.line_add("ma2", ma2)
    #0买时间 1买价格 2买数量 3卖时间 4卖价格 5卖数量, 6方向, 7盈亏情况
    buy=[[time[106], data[106][3], 1, time[120], data[120][3], 1, 1, -1],
         [time[110], data[110][3], 1, time[180], data[180][3], 1, 1, 1],
         [time[65], data[65][3], 1, time[130], data[130][3], 1, -1, 1],
         [time[120], data[120][2], 1, time[150], data[150][3], 1, -1, -1]
         ]

    bv.buy_sell_point_add(buy)
    bv.render()
    pass





效果图:

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目Value
电脑$1600
手机$12
导管$1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文本居中第二列文本居右第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值