py中使用麦语言指标可视化
- HQChart H5可视化页面
- HQchart py麦语言执行器
- 例子: 计算MA(5,10,15) 显示在图形上
- 步骤1:拷贝HQChart h5页面
- 步骤2: 在umychart_python 目录下创建一个demo.py文件
- pandas 数据格式转换
- HQChart代码地址
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
- 2
- 3
步骤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()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
这样一个指标就完成了,执行以后会自动生成一个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
- 2
- 3
- 4
- 5
- 6
- 7
- Serires 时间序列如下图 一个输出变量对应一个时间序列
- DataFrame 格式如下图
如果还有问题可以加交流QQ群: 950092318
HQChart代码地址
地址:https://github.com/jones2000/HQChart