[增强功能] tdx下载普通合约;增加远程服务器文件访问;股票砖图支持使用1分钟生成
This commit is contained in:
parent
fb8bd779b2
commit
74d156b3ae
@ -16,7 +16,7 @@ from vnpy.data.renko.rebuild_stock import *
|
|||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
if len(sys.argv) < 4:
|
if len(sys.argv) < 4:
|
||||||
print(u'请输入三个参数 host symbol pricetick')
|
print(u'请输入三个参数 host symbol pricetick [ bar]')
|
||||||
exit()
|
exit()
|
||||||
print(sys.argv)
|
print(sys.argv)
|
||||||
host = sys.argv[1]
|
host = sys.argv[1]
|
||||||
@ -24,14 +24,24 @@ if __name__ == "__main__":
|
|||||||
setting = {
|
setting = {
|
||||||
"host": host,
|
"host": host,
|
||||||
"db_name": STOCK_RENKO_DB_NAME,
|
"db_name": STOCK_RENKO_DB_NAME,
|
||||||
"cache_folder": os.path.join(vnpy_root, 'tick_data', 'tdx', 'stock')
|
"cache_folder": os.path.join(vnpy_root, 'tick_data', 'tdx', 'stock'),
|
||||||
|
'bar_folder': os.path.join(vnpy_root,'bar_data')
|
||||||
}
|
}
|
||||||
builder = StockRenkoRebuilder(setting)
|
builder = StockRenkoRebuilder(setting)
|
||||||
|
|
||||||
symbol = sys.argv[2]
|
symbol = sys.argv[2]
|
||||||
price_tick = float(sys.argv[3])
|
price_tick = float(sys.argv[3])
|
||||||
|
if len(sys.argv) >= 5 and sys.argv[4] == 'bar':
|
||||||
|
using_bar = True
|
||||||
|
else:
|
||||||
|
using_bar = False
|
||||||
|
|
||||||
print(f'启动期货renko补全,数据库:{host}/{STOCK_RENKO_DB_NAME} 合约:{symbol}')
|
if using_bar:
|
||||||
|
print(f'启动股票bar=> renko补全,数据库:{host}/{STOCK_RENKO_DB_NAME} 合约:{symbol}')
|
||||||
|
builder.start_with_bar(symbol=symbol, price_tick=price_tick, height=['K3', 'K5', 'K10'])
|
||||||
|
|
||||||
|
else:
|
||||||
|
print(f'启动股票tick=> renko补全,数据库:{host}/{STOCK_RENKO_DB_NAME} 合约:{symbol}')
|
||||||
builder.start(symbol=symbol, price_tick=price_tick, height=['K3', 'K5', 'K10'], refill=True)
|
builder.start(symbol=symbol, price_tick=price_tick, height=['K3', 'K5', 'K10'], refill=True)
|
||||||
|
|
||||||
print(f'exit refill {symbol} renkos')
|
print(f'exit refill {symbol} renkos')
|
||||||
|
@ -35,7 +35,7 @@ stock_list = load_json('stock_list.json')
|
|||||||
|
|
||||||
symbol_dict = api_01.symbol_dict
|
symbol_dict = api_01.symbol_dict
|
||||||
|
|
||||||
# 逐一指数合约下载并更新
|
# 逐一合约下载并更新
|
||||||
for stock_code in stock_list:
|
for stock_code in stock_list:
|
||||||
market_id = get_tdx_market_code(stock_code)
|
market_id = get_tdx_market_code(stock_code)
|
||||||
if market_id == 0:
|
if market_id == 0:
|
||||||
@ -108,6 +108,5 @@ for stock_code in stock_list:
|
|||||||
|
|
||||||
print(f'更新{stock_code} {stock_name} 数据 => 文件{bar_file_path}, 最后记录:{bars[-1]}')
|
print(f'更新{stock_code} {stock_name} 数据 => 文件{bar_file_path}, 最后记录:{bars[-1]}')
|
||||||
|
|
||||||
|
|
||||||
print('更新完毕')
|
print('更新完毕')
|
||||||
os._exit(0)
|
os._exit(0)
|
||||||
|
@ -300,8 +300,13 @@ class TdxFutureData(object):
|
|||||||
if '.' in symbol:
|
if '.' in symbol:
|
||||||
symbol = symbol.split('.')[0]
|
symbol = symbol.split('.')[0]
|
||||||
tdx_symbol = symbol.upper().replace('_', '')
|
tdx_symbol = symbol.upper().replace('_', '')
|
||||||
tdx_symbol = tdx_symbol.replace('99', 'L9')
|
|
||||||
underlying_symbol = get_underlying_symbol(symbol).upper()
|
underlying_symbol = get_underlying_symbol(symbol).upper()
|
||||||
|
|
||||||
|
if '99' in tdx_symbol:
|
||||||
|
tdx_symbol = tdx_symbol.replace('99', 'L9')
|
||||||
|
else:
|
||||||
|
tdx_symbol = get_full_symbol(symbol).upper()
|
||||||
|
|
||||||
tdx_index_symbol = underlying_symbol + 'L9'
|
tdx_index_symbol = underlying_symbol + 'L9'
|
||||||
vn_exchange = self._get_vn_exchange(underlying_symbol)
|
vn_exchange = self._get_vn_exchange(underlying_symbol)
|
||||||
|
|
||||||
|
@ -1404,3 +1404,28 @@ def get_bars(csv_file: str,
|
|||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
return bars
|
return bars
|
||||||
|
|
||||||
|
|
||||||
|
def get_remote_file(remote_ip, remote_file_path, mode='rb'):
|
||||||
|
"""
|
||||||
|
获取远程服务器的文件
|
||||||
|
:param remote_ip: 服务器ip地址
|
||||||
|
:param remote_file_path:服务器上文件路径
|
||||||
|
:param mode: 打开文件目录
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
import paramiko
|
||||||
|
pkey = '/home/trade/.ssh/id_rsa'
|
||||||
|
key = paramiko.RSAKey.from_private_key_file(pkey)
|
||||||
|
paramiko.util.log_to_file('log/paramiko.log')
|
||||||
|
ssh = paramiko.SSHClient()
|
||||||
|
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||||||
|
# ssh.load_system_host_keys()
|
||||||
|
ssh.connect(remote_ip, username='trade', pkey=key)
|
||||||
|
sftp_client = ssh.open_sftp()
|
||||||
|
remote_file = sftp_client.open(remote_file_path, mode)
|
||||||
|
return remote_file
|
||||||
|
except Exception as ex:
|
||||||
|
print(u'打开远程目录异常:{}'.format(str(ex)))
|
||||||
|
return None
|
||||||
|
Loading…
Reference in New Issue
Block a user