Merge branch 'dev' of https://github.com/vnpy/vnpy into dev

This commit is contained in:
vn.py 2018-04-16 13:16:51 +08:00
commit 50277d79a5
9 changed files with 115 additions and 107 deletions

View File

@ -4,6 +4,7 @@ import urllib
import hashlib import hashlib
import json import json
import logging
import requests import requests
import hmac import hmac
import time import time
@ -374,4 +375,3 @@ class Korbit_DataApi(object):
def onOrderbooks(self, data): def onOrderbooks(self, data):
"""实时成交推送""" """实时成交推送"""
print data print data

View File

@ -1,8 +1,4 @@
{ {
"MONGO_HOST": "localhost", "MONGO_HOST": "localhost",
"MONGO_PORT": 27017, "MONGO_PORT": 27017
"SYMBOLS": ["IF1710", "IF1711", "IF1712", "IF1803",
"IH1710", "IH1711", "IH1712", "IH1803",
"IC1710", "IC1711", "IC1712", "IC1803"]
} }

View File

@ -18,7 +18,6 @@ setting = json.load(config)
MONGO_HOST = setting['MONGO_HOST'] MONGO_HOST = setting['MONGO_HOST']
MONGO_PORT = setting['MONGO_PORT'] MONGO_PORT = setting['MONGO_PORT']
SYMBOLS = setting['SYMBOLS']
mc = MongoClient(MONGO_HOST, MONGO_PORT) # Mongo连接 mc = MongoClient(MONGO_HOST, MONGO_PORT) # Mongo连接
db = mc[MINUTE_DB_NAME] # 数据库 db = mc[MINUTE_DB_NAME] # 数据库
@ -80,16 +79,16 @@ def downMinuteBarBySymbol(symbol, num):
api.subscribe_chart(symbol, 60, num, onChart) api.subscribe_chart(symbol, 60, num, onChart)
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def downloadAllMinuteBar(num): def downloadAllMinuteBar(num, symbols):
"""下载所有配置中的合约的分钟线数据""" """下载所有配置中的合约的分钟线数据"""
print '-' * 50 print '-' * 50
print u'开始下载合约分钟线数据' print u'开始下载合约分钟线数据'
print '-' * 50 print '-' * 50
# 添加下载任务 # 添加下载任务
taskList.extend(SYMBOLS) taskList.extend(symbols)
for symbol in SYMBOLS: for symbol in symbols:
downMinuteBarBySymbol(str(symbol), num) downMinuteBarBySymbol(str(symbol), num)
while True: while True:

View File

@ -2,10 +2,16 @@
""" """
立即下载数据到数据库中用于手动执行更新操作 立即下载数据到数据库中用于手动执行更新操作
注意: 请先在本机启动天勤终端 (0.8.0 以上版本) 并保持运行, 再执行本程序
""" """
from dataService import * from dataService import *
if __name__ == '__main__': if __name__ == '__main__':
downloadAllMinuteBar(1000) symbols = ["CFFEX.IF1710", "CFFEX.IF1711", "CFFEX.IF1712", "CFFEX.IF1803",
"CFFEX.IH1710", "CFFEX.IH1711", "CFFEX.IH1712", "CFFEX.IH1803",
"CFFEX.IC1710", "CFFEX.IC1711", "CFFEX.IC1712", "CFFEX.IC1803"]
downloadAllMinuteBar(1000, symbols)

View File

@ -2,6 +2,8 @@
""" """
定时服务可无人值守运行实现每日自动下载更新历史行情数据到数据库中 定时服务可无人值守运行实现每日自动下载更新历史行情数据到数据库中
注意: 请确保本程序运行时, 本机天勤终端 (0.8.0 以上版本)正在运行中
""" """
import time import time
@ -16,6 +18,10 @@ if __name__ == '__main__':
# 生成一个随机的任务下载时间,用于避免所有用户在同一时间访问数据服务器 # 生成一个随机的任务下载时间,用于避免所有用户在同一时间访问数据服务器
taskTime = datetime.time(hour=17, minute=0) taskTime = datetime.time(hour=17, minute=0)
symbols = ["CFFEX.IF1710", "CFFEX.IF1711", "CFFEX.IF1712", "CFFEX.IF1803",
"CFFEX.IH1710", "CFFEX.IH1711", "CFFEX.IH1712", "CFFEX.IH1803",
"CFFEX.IC1710", "CFFEX.IC1711", "CFFEX.IC1712", "CFFEX.IC1803"]
# 进入主循环 # 进入主循环
while True: while True:
t = datetime.datetime.now() t = datetime.datetime.now()
@ -23,7 +29,7 @@ if __name__ == '__main__':
# 每天到达任务下载时间后,执行数据下载的操作 # 每天到达任务下载时间后,执行数据下载的操作
if t.time() > taskTime and (taskCompletedDate is None or t.date() != taskCompletedDate): if t.time() > taskTime and (taskCompletedDate is None or t.date() != taskCompletedDate):
# 下载1000根分钟线数据足以覆盖过去两天的行情 # 下载1000根分钟线数据足以覆盖过去两天的行情
downloadAllMinuteBar(1000) downloadAllMinuteBar(1000, symbols)
# 更新任务完成的日期 # 更新任务完成的日期
taskCompletedDate = t.date() taskCompletedDate = t.date()

View File

@ -277,4 +277,5 @@ class TqApi(object):
def _generate_chart_id(self, ins_id, duration_seconds): def _generate_chart_id(self, ins_id, duration_seconds):
"""生成图表编号""" """生成图表编号"""
chart_id = "VN_%s_%d" % (ins_id, duration_seconds) chart_id = "VN_%s_%d" % (ins_id, duration_seconds)
chart_id = chart_id.replace(".", "_")
return chart_id return chart_id

View File

@ -1,5 +1,6 @@
# encoding: UTF-8 # encoding: UTF-8
from __future__ import print_function
from time import sleep from time import sleep
from vnrpc import RpcClient from vnrpc import RpcClient
@ -17,7 +18,7 @@ class TestClient(RpcClient):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def callback(self, topic, data): def callback(self, topic, data):
"""回调函数实现""" """回调函数实现"""
print 'client received topic:', topic, ', data:', data print('client received topic:', topic, ', data:', data)
if __name__ == '__main__': if __name__ == '__main__':
@ -29,5 +30,5 @@ if __name__ == '__main__':
tc.start() tc.start()
while 1: while 1:
print tc.add(1, 3) print(tc.add(1, 3))
sleep(2) sleep(2)

View File

@ -1,5 +1,6 @@
# encoding: UTF-8 # encoding: UTF-8
from __future__ import print_function
from time import sleep, time from time import sleep, time
from vnrpc import RpcServer from vnrpc import RpcServer
@ -19,7 +20,7 @@ class TestServer(RpcServer):
#---------------------------------------------------------------------- #----------------------------------------------------------------------
def add(self, a, b): def add(self, a, b):
"""测试函数""" """测试函数"""
print 'receiving: %s, %s' % (a,b) print('receiving: %s, %s' % (a,b))
return a + b return a + b
@ -32,6 +33,6 @@ if __name__ == '__main__':
while 1: while 1:
content = 'current server time is %s' % time() content = 'current server time is %s' % time()
print content print(content)
ts.publish('test', content) ts.publish('test', content)
sleep(2) sleep(2)

View File

@ -313,5 +313,3 @@ class RemoteException(Exception):
def __str__(self): def __str__(self):
"""输出错误信息""" """输出错误信息"""
return self.__value return self.__value