Loading ...

python的MACD双坐标轴,现在改了一些语法但是还是不能正常运行,错误主要来自Chart对象,应该怎么继续改呢

Author: a410999923, Created: 2019-12-31 13:21:25, Updated:

import json chart = { ‘__isStock’: True, ‘title’: { ‘text’: '测试API :Chart({…}) ’ }, ‘yAxis’: { ‘plotLines’: [{ ‘value’: 4520, ‘color’: ‘red’, ‘width’: 2, ‘label’: { ‘text’: ‘line1’, ‘align’: ‘center’ }, }, { ‘value’: 4500, ‘color’: ‘green’, ‘width’: 2, ‘label’: { ‘text’: ‘line2’, ‘align’: ‘center’ }, }] }, ‘series’: [{ ‘type’: ‘candlestick’, ‘name’: ‘当前周期’, ‘id’: ‘primary’, ‘data’: [] }] }

preTime = 0

def main(): global chart # 记得 引用全局 Log(exchange.GetAccount()) exchange.SetContractType(‘rb000’) exchange.SetRate(1) records = None ChartObj = Chart(chart) #ChartObj = ext.GetCfg()

records = exchange.GetRecords()
while((records is None) or len(records) < 30):
    records = exchange.GetRecords()
    LogStatus("records.length:", len(records))
    Sleep(1000)

ext.PlotRecords(records, 'OK期货');
ext.PlotLine('dif', 0, records[len(records) - 1].Time)
ext.PlotLine('dea', 0, records[len(records) - 1].Time)
chart = ext.PlotLine('macd', 0, records[len(records)- 1].Time)

# 修改指标线 坐标轴Y轴
for key in ChartObj.series:
    if(ChartObj.series[key].name == 'dif' or ChartObj.series[key].name == 'dea' or ChartObj.series[key].name == 'macd'):
        ChartObj.series[key].yAxis = 1
    

chart.update(ChartObj)
chart.reset()
while(true):
    records = exchange.GetRecords()
    if(len(records) > 50):
        ext.PlotRecords(records, 'OK期货')
        MACD = TA.MACD(records)
        dif = MACD[0]
        dea = MACD[1]
        macd = MACD[2]
        if preTime != records[records.length - 1].Time:
            ext.PlotLine('dif', dif[dif.length - 2], records[records.length - 2].Time)
            ext.PlotLine('dea', dea[dea.length - 2], records[records.length - 2].Time)
            ext.PlotLine('macd', macd[macd.length - 2], records[records.length - 2].Time)
            
            ext.PlotLine('dif', dif[dif.length - 1], records[records.length - 1].Time)
            ext.PlotLine('dea', dea[dea.length - 1], records[records.length - 1].Time)
            ext.PlotLine('macd', macd[macd.length - 1], records[records.length - 1].Time)
            
            preTime = records[records.length - 1].Time
        else:
            ext.PlotLine('dif', dif[dif.length - 1], records[records.length - 1].Time)
            ext.PlotLine('dea', dea[dea.length - 1], records[records.length - 1].Time)
            ext.PlotLine('macd', macd[macd.length - 1], records[records.length - 1].Time)
        
    LogStatus("records.length:", records.length, records[records.length - 1])
    Sleep(1000)

More

小草 错误信息贴出来