123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- from threading import Thread
- import asyncio
- from EmQuantAPI import *
- import traceback
- from SotckHistData import SotckHistData
- from StockHkHistData import StockHkHistData
- from StockUsaHistData import StockUsaHistData
- from BondHistData import BondHistData
- from FundHistData import FundHistData
- from ForexHistData import ForexHistData
- from TempIndexHistData import TempIndexHistData
- from IndexHistData import IndexHistData
- def mainCallback(quantdata):
- print ("mainCallback",str(quantdata))
- #登录掉线或者 登陆数达到上线(即登录被踢下线) 这时所有的服务都会停止
- if str(quantdata.ErrorCode) == "10001011" or str(quantdata.ErrorCode) == "10001009":
- print ("Your account is disconnect. You can force login automatically here if you need.")
- #行情登录验证失败(每次连接行情服务器时需要登录验证)或者行情流量验证失败时,会取消所有订阅,用户需根据具体情况处理
- elif str(quantdata.ErrorCode) == "10001021" or str(quantdata.ErrorCode) == "10001022":
- print ("Your all csq subscribe have stopped.")
- #行情服务器断线自动重连连续6次失败(1分钟左右)不过重连尝试还会继续进行直到成功为止,遇到这种情况需要确认两边的网络状况
- elif str(quantdata.ErrorCode) == "10002009":
- print ("Your all csq subscribe have stopped, reconnect 6 times fail.")
- # 行情订阅遇到一些错误(这些错误会导致重连,错误原因通过日志输出,统一转换成EQERR_QUOTE_RECONNECT在这里通知),正自动重连并重新订阅,可以做个监控
- elif str(quantdata.ErrorCode) == "10002012":
- print ("csq subscribe break on some error, reconnect and request automatically.")
- # 资讯服务器断线自动重连连续6次失败(1分钟左右)不过重连尝试还会继续进行直到成功为止,遇到这种情况需要确认两边的网络状况
- elif str(quantdata.ErrorCode) == "10002014":
- print ("Your all cnq subscribe have stopped, reconnect 6 times fail.")
- # 资讯订阅遇到一些错误(这些错误会导致重连,错误原因通过日志输出,统一转换成EQERR_INFO_RECONNECT在这里通知),正自动重连并重新订阅,可以做个监控
- elif str(quantdata.ErrorCode) == "10002013":
- print ("cnq subscribe break on some error, reconnect and request automatically.")
- # 资讯登录验证失败(每次连接资讯服务器时需要登录验证)或者资讯流量验证失败时,会取消所有订阅,用户需根据具体情况处理
- elif str(quantdata.ErrorCode) == "10001024" or str(quantdata.ErrorCode) == "10001025":
- print("Your all cnq subscribe have stopped.")
- else:
- pass
- # 获取股票历史数据
- # async def getStockHist():
- # sotckHistData = SotckHistData()
- # sotckHistData.toGet()
-
- # # 获取港股历史数据
- # async def getStockHkHist():
- # stockHkHistData = StockHkHistData()
- # stockHkHistData.toGet()
- # # 获取美股历史数据
- # async def getStockUsaHist():
- # stockUsaHistData = StockUsaHistData()
- # stockUsaHistData.toGet()
- # 每天执行一次 运行时间在每天停盘之后到第二天开盘之前就行
- try:
- #调用登录函数(激活后使用,不需要用户名密码)
- # loginResult = c.start("LoginMode=SXDL,PhoneNumber=15387568630", '', mainCallback)
- loginResult = c.start("ForceLogin=1", '', mainCallback)
- if(loginResult.ErrorCode != 0):
- print("login in fail")
- exit()
- # asyncio.run(main())
- tempIndexHistData = TempIndexHistData()
- tempIndexHistData.toGet1()
- tempIndexHistData.toGet2()
- tempIndexHistData.toGet3()
- #tempIndexHistData.toGet4()
- tempIndexHistData.toGet5()
- # 获取股票历史数据
- sotckHistData = SotckHistData()
- sotckHistData.toGet()
- # 获取债券历史数据
- bondHistData = BondHistData()
- bondHistData.toGet()
- # # 获取美股历史数据
- # stockUsaHistData = StockUsaHistData()
- # stockUsaHistData.toGet()
- # # 获取港股历史数据
- # stockHkHistData = StockHkHistData()
- # stockHkHistData.toGet()
- # # 获取基金历史数据
- # fundHistData = FundHistData()
- # fundHistData.toGet()
- # # 获取外汇历史数据
- # forexHistData = ForexHistData()
- # forexHistData.toGet()
- # 获取指数历史数据
- # indexHistData = IndexHistData()
- # indexHistData.toGet()
-
- except Exception as ee:
- print("error >>>",ee)
- #退出
- data = logoutResult = c.stop()
- traceback.print_exc()
- else:
- print("demo end")
|