hikyuu2/hikyuu/hku_config.py

203 lines
6.5 KiB
C++
Raw Normal View History

2017-04-09 00:50:14 +08:00
#!/usr/bin/python
# -*- coding: utf8 -*-
# cp936
#===============================================================================
# 作者fasiondog
# 历史120100220, Added by fasiondog
#===============================================================================
import os
import sys
import shutil
usr_dir = os.path.expanduser('~')
hku_dir = usr_dir + '/.hikyuu'
if not os.path.lexists(hku_dir):
os.mkdir(hku_dir)
2017-05-07 01:27:33 +08:00
def ask_question(question, default_anwser='N'):
flag = False
x = ''
while not flag:
x = input(question)
if x == '':
x = default_anwser
flag = True if (x=='' or x=='Y' or x=='y' or x=='N' or x=='n') else False
return False if (x=='' or x=='N' or x=='n') else True
2017-04-09 00:50:14 +08:00
data_config_file = hku_dir + '/data_dir.ini'
if os.path.exists(data_config_file):
os.remove(data_config_file);
2017-07-21 01:13:51 +08:00
default_dir = "c:\stock" if sys.platform == "win32" else usr_dir + "/stock"
data_directory = input("\n请输入股票数据存放路径(默认" + default_dir + "")
2017-04-09 00:50:14 +08:00
if data_directory == '':
2017-07-21 01:13:51 +08:00
data_directory = default_dir
with open(data_config_file, 'w', encoding = 'utf-8') as conf:
2017-04-09 00:50:14 +08:00
conf.writelines(['[data_dir]\n', 'data_dir=' + data_directory])
2017-05-07 01:27:33 +08:00
import_config = """
;db -
;sql - 使
[database]
2017-07-18 02:17:20 +08:00
db = {dir}/stock.db
sql = {dir}/createdb.sql
2017-05-07 01:27:33 +08:00
;
;shsz分别指定上证
[weight]
sh = {dir}/weight/shase/weight
sz = {dir}/weight/sznse/weight
;sh = D:\LON\QLDATA\history\SHASE\weight
;sz = D:\LON\QLDATA\history\SZNSE\weight
2017-05-07 01:27:33 +08:00
;K线数据源 , dzh tdx
;
[from]
1 = tdx, {tdx}
;2 = dzh, d:\DZH5
;K线导入的目标文件
;allK线导入
;all选择为trueK线数据使
;all默认为falseA股B股
[dest]
;all = True
2017-07-18 02:17:20 +08:00
sh_day = {dir}/sh_day.h5
sz_day = {dir}/sz_day.h5
sh_5min = {dir}/sh_5min.h5
sz_5min = {dir}/sz_5min.h5
sh_1min = {dir}/sh_1min.h5
sz_1min = {dir}/sz_1min.h5
2017-05-07 01:27:33 +08:00
"""
hikyuu_config = """
[hikyuu]
2017-07-18 02:17:20 +08:00
tmpdir = {dir}/tmp
logger = {dir}/logger.properties
2017-05-07 01:27:33 +08:00
[block]
type = qianlong
2017-07-18 02:17:20 +08:00
dir = {dir}/block
2017-05-07 01:27:33 +08:00
= zsbk.ini
= hybk.ini
= dybk.ini
= gnbk.ini
self = self.ini
[preload]
day = 1
week = 0
month = 0
quarter = 0
halfyear = 0
year = 0
[baseinfo]
type = sqlite3
2017-07-18 02:17:20 +08:00
db = {dir}/stock.db
2017-05-07 01:27:33 +08:00
[kdata]
2017-05-07 01:27:33 +08:00
;type = tdx
;dir = D:\\TdxW_HuaTai\\vipdoc
2017-05-07 01:27:33 +08:00
type = hdf5
sh_day = {dir}/sh_day.h5
sh_min = {dir}/sh_1min.h5
sh_min5 = {dir}/sh_5min.h5
sz_day = {dir}/sz_day.h5
sz_min = {dir}/sz_1min.h5
sz_min5 = {dir}/sz_5min.h5
2017-05-07 01:27:33 +08:00
"""
2017-07-21 01:13:51 +08:00
tdx_default_dir = "c:\TdxW_HuaTai" if sys.platform == "win32" else usr_dir + "/.wine/driver/c/Tdx_HuaTai"
tdx_input_str = "请输入通达信安装路径(默认从" + tdx_default_dir + ""
2017-04-09 00:50:14 +08:00
if not os.path.lexists(data_directory):
shutil.copytree('config', data_directory)
os.remove(data_directory + '/__init__.py')
2017-05-07 01:27:33 +08:00
2017-04-09 00:50:14 +08:00
if sys.platform == 'win32':
2017-05-07 01:27:33 +08:00
filename = data_directory + '/hikyuu_win.ini'
2017-04-09 00:50:14 +08:00
else:
2017-05-07 01:27:33 +08:00
filename = data_directory + '/hikyuu_linux.ini'
with open(filename, 'w', encoding = 'utf-8') as f:
2017-05-07 01:27:33 +08:00
f.write(hikyuu_config.format(dir=data_directory))
2017-07-21 01:13:51 +08:00
tdx_dir = input(tdx_input_str)
2017-05-07 01:27:33 +08:00
if tdx_dir == '':
2017-07-21 01:13:51 +08:00
tdx_dir = tdx_default_dir
2017-05-07 01:27:33 +08:00
with open(data_directory + '/importdata.ini', 'w', encoding = 'utf-8') as f:
2017-05-07 01:27:33 +08:00
f.write(import_config.format(dir=data_directory, tdx=tdx_dir))
os.mkdir(data_directory + '/tmp')
2017-04-09 00:50:14 +08:00
else:
if os.path.lexists(data_directory + '/block'):
2017-05-07 01:27:33 +08:00
pass
x = ask_question("block目录已存在是否覆盖(Y/[N])")
if x:
shutil.rmtree(data_directory + '/block')
shutil.copytree('config/block', data_directory + '/block')
os.remove(data_directory + '/block/__init__.py')
else:
shutil.copytree('config/block', data_directory + '/block')
os.remove(data_directory + '/block/__init__.py')
2017-05-07 01:27:33 +08:00
2017-04-09 00:50:14 +08:00
if os.path.exists(data_directory + '/logger.properties'):
2017-05-07 01:27:33 +08:00
pass
x = ask_question("logger.properties文件已存在是否覆盖(Y/[N])")
if x:
os.remove(data_directory + '/logger.properties')
shutil.copy('config/logger.properties', data_directory + '/logger.properties')
else:
shutil.copy('config/logger.properties', data_directory + '/logger.properties')
2017-05-07 01:27:33 +08:00
2017-04-09 00:50:14 +08:00
if os.path.exists(data_directory + '/importdata.ini'):
x = ask_question("importdata.ini文件已存在是否覆盖(Y/[N])")
if x:
os.remove(data_directory + '/importdata.ini')
2017-07-21 01:13:51 +08:00
tdx_dir = input(tdx_input_str)
2017-05-07 01:27:33 +08:00
if tdx_dir == '':
2017-07-21 01:13:51 +08:00
tdx_dir = tdx_default_dir
with open(data_directory + '/importdata.ini', 'w', encoding = 'utf-8') as f:
2017-05-07 01:27:33 +08:00
f.write(import_config.format(dir=data_directory, tdx=tdx_dir))
else:
2017-07-21 01:13:51 +08:00
tdx_dir = input(tdx_input_str)
if tdx_dir == '':
2017-07-21 01:13:51 +08:00
tdx_dir = tdx_default_dir
with open(data_directory + '/importdata.ini', 'w', encoding = 'utf-8') as f:
2017-05-07 01:27:33 +08:00
f.write(import_config.format(dir=data_directory, tdx=tdx_dir))
2017-04-09 00:50:14 +08:00
if os.path.exists(data_directory + '/createdb.sql'):
2017-05-07 01:27:33 +08:00
os.remove(data_directory + '/createdb.sql')
shutil.copy('config/createdb.sql', data_directory + '/createdb.sql')
2017-04-09 00:50:14 +08:00
if sys.platform == 'win32':
hikyuu_ini = '/hikyuu_win.ini'
else:
hikyuu_ini = '/hikyuu_linux.ini'
2017-05-07 01:27:33 +08:00
filename = data_directory + hikyuu_ini
2017-04-09 00:50:14 +08:00
if os.path.exists(data_directory + hikyuu_ini):
x = ask_question(hikyuu_ini[1:] + "文件已存在是否覆盖?(Y/[N])")
if x:
2017-05-07 01:27:33 +08:00
os.remove(filename)
with open(data_directory + hikyuu_ini, 'w', encoding = 'utf-8') as f:
2017-05-07 01:27:33 +08:00
f.write(hikyuu_config.format(dir=data_directory))
else:
with open(data_directory + hikyuu_ini, 'w', encoding = 'utf-8') as f:
2017-05-07 01:27:33 +08:00
f.write(hikyuu_config.format(dir=data_directory))
if not os.path.lexists(data_directory + '/tmp'):
os.mkdir(data_directory + '/tmp')
2017-05-07 01:27:33 +08:00
#print(import_config.format(dir=data_directory))