HQChart使用教程16-py中使用麦语言指标可视化

151 篇文章 33 订阅
11 篇文章 3 订阅

HQChart H5可视化页面

HQChart 支持指标数据可视化显示, 只需要传入指标数据, 就可以在H5页面中显示。支持数据左右拖拽,缩放,十字光标等一般行情K线图有的功能。

HQchart py麦语言执行器

支持在py中执行麦语言脚本,执行器包含基础的行情数据,及基本的指标函数

例子: 计算MA(5,10,15) 显示在图形上

MA1:MA(CLOSE,M1);
MA2:MA(CLOSE,M2);
MA3:MA(CLOSE,M3);

步骤1:拷贝HQChart h5页面

把 webhqchart.demo\jscommon 目录下的文件及文件夹拷贝到 umychart_python\hqchart 目录下
在这里插入图片描述

步骤2: 在umychart_python 目录下创建一个demo.py文件

    import sys
    import codecs
    import webbrowser
    from umychart_complier_jscomplier import ScriptIndexConsole, ScriptIndexItem, SymbolOption, RequestOption, HQ_DATA_TYPE, ArgumentItem
    from umychart_webtemplate import *
    def Test_ScriptIndexConsole():

    # 创建脚本, 及参数
    scpritInfo=ScriptIndexItem(name='我的MA指标', id=888888,
        script='MA1:MA(CLOSE,M1);\n'    # 指标脚本代码
            'MA2:MA(CLOSE,M2);\n'
            'MA3:MA(CLOSE,M3);',
        args=[ ArgumentItem(name='M1', value=5), ArgumentItem(name='M2', value=10), ArgumentItem(name='M3', value=20) ] # 参数
        )

    indexConsole = ScriptIndexConsole(scpritInfo)

    option = SymbolOption(
        symbol='000001.sz',
        right=1, # 复权 0 不复权 1 前复权 2 后复权
        period=0, # 周期 0=日线 1=周线 2=月线 3=年线 4=1分钟 5=5分钟 6=15分钟 7=30分钟 8=60分钟
        request=RequestOption(maxDataCount=500,maxMinuteDayCount=3)
        )
    result=indexConsole.ExecuteScript(option) # 执行指标

    if result.Error :
        return

    print('run successfully.')
    jsonData=result.ToJson()
    varName='jsonData'  # 数据变量名字
    
    HQChartOption= """g_KLineOption={
            Symbol:'%(symbol)s',    //股票代码
            Right:%(right)d,        //复权
            Period:%(period)d,      //周期

            Windows:
            [
                {   Modify:false,Change:false, 
                    Local: 
                    { 
                        Data:%(varName)s,   //py执行以后的json数据
                        Type:'LocalJsonDataIndex' ,
                        Name:'%(name)s',    //指标名字
                        Args:[              //指标参数
                            { Name: '%(arg1)s', Value: %(argvalue1)d },
                            { Name: '%(arg2)s', Value: %(argvalue2)d },
                            { Name: '%(arg3)s', Value: %(argvalue3)d }]
                    }
                },
                //{Index:"VOL", Modify:false,Change:false},
            ]
        } 
        """ %{"symbol":option.Symbol,'right':option.Right, 'period':option.Period, 'varName':varName, 'name':scpritInfo.Name,
            'arg1':scpritInfo.Arguments[0].Name, 'argvalue1': scpritInfo.Arguments[0].Value,
            'arg2':scpritInfo.Arguments[1].Name, 'argvalue2': scpritInfo.Arguments[1].Value,
            'arg3':scpritInfo.Arguments[2].Name, 'argvalue3': scpritInfo.Arguments[2].Value }

    localJsonData= varName + '=' + jsonData + '\n'
    filePath='data.html'
    # 生成图形化页面
    with codecs.open(filePath,'w',"utf-8") as file:
        file.write(HTML_PART1)
        file.write(localJsonData)
        file.write(HQChartOption)
        file.write(HTML_PART_END)
        file.close()
    webbrowser.open(filePath,new = 1)
Test_ScriptIndexConsole()

这样一个指标就完成了,执行以后会自动生成一个data.html的h5K线图页面。 效果如下
在这里插入图片描述

pandas 数据格式转换

指标结果支持转化为pandas Series 或 DataFrame格式, 方便后续进行后续的计算

from umychart_complier_pandas_help import JSComplierPandasHelper

...... 计算指标 返回指标结果result

JSComplierPandasHelper.ToDateTimeSeries(result)    # 转化为pandas Series 数据格式

JSComplierPandasHelper.ToDataFrame(result)      # 转化为pandas DataFrame 数据格式
  1. Serires 时间序列如下图 一个输出变量对应一个时间序列
    在这里插入图片描述
    在这里插入图片描述
  2. DataFrame 格式如下图
    在这里插入图片描述

如果还有问题可以加交流QQ群: 950092318

HQChart代码地址

地址:https://github.com/jones2000/HQChart

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HQChart

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值