[增强功能] 增加本地代理
This commit is contained in:
parent
6ddcbf7b0c
commit
08175de6d0
@ -28,9 +28,11 @@ from vnpy.data.tdx.tdx_common import (
|
|||||||
PERIOD_MAPPING,
|
PERIOD_MAPPING,
|
||||||
get_tdx_market_code,
|
get_tdx_market_code,
|
||||||
get_cache_config,
|
get_cache_config,
|
||||||
|
get_cache_json,
|
||||||
save_cache_config,
|
save_cache_config,
|
||||||
get_stock_type,
|
get_stock_type,
|
||||||
TDX_STOCK_CONFIG)
|
TDX_STOCK_CONFIG,
|
||||||
|
TDX_PROXY_CONFIG)
|
||||||
|
|
||||||
# 每个周期包含多少分钟
|
# 每个周期包含多少分钟
|
||||||
NUM_MINUTE_MAPPING = {}
|
NUM_MINUTE_MAPPING = {}
|
||||||
@ -64,16 +66,28 @@ RQ_TDX_STOCK_MARKET_MAP = {v: k for k, v in TDX_RQ_STOCK_MARKET_MAP.items()}
|
|||||||
|
|
||||||
class TdxStockData(object):
|
class TdxStockData(object):
|
||||||
|
|
||||||
def __init__(self, strategy=None):
|
def __init__(self, strategy=None, proxy_ip="", proxy_port=0):
|
||||||
"""
|
"""
|
||||||
构造函数
|
构造函数
|
||||||
:param strategy: 上层策略,主要用与使用write_log()
|
:param strategy: 上层策略,主要用与使用write_log()
|
||||||
"""
|
"""
|
||||||
self.api = None
|
self.strategy = strategy
|
||||||
|
|
||||||
|
self.proxy_ip = proxy_ip
|
||||||
|
self.proxy_port = proxy_port
|
||||||
|
|
||||||
|
if self.proxy_port == 0 and len(self.proxy_ip)==0:
|
||||||
|
proxy_config = get_cache_json(TDX_PROXY_CONFIG)
|
||||||
|
proxy_ip = proxy_config.get('proxy_ip', '')
|
||||||
|
proxy_port = proxy_config.get('proxy_port', 0)
|
||||||
|
if len(proxy_ip) > 0 and proxy_port > 0:
|
||||||
|
self.proxy_ip = proxy_ip
|
||||||
|
self.proxy_port = proxy_port
|
||||||
|
self.write_log(f'使用vnpy/data/tdx/{TDX_PROXY_CONFIG}的proxy:{proxy_ip}:{proxy_port}')
|
||||||
|
|
||||||
|
self.api = None
|
||||||
self.connection_status = False # 连接状态
|
self.connection_status = False # 连接状态
|
||||||
|
|
||||||
self.strategy = strategy
|
|
||||||
self.best_ip = None
|
self.best_ip = None
|
||||||
self.symbol_market_dict = {} # tdx合约与tdx市场的字典
|
self.symbol_market_dict = {} # tdx合约与tdx市场的字典
|
||||||
|
|
||||||
@ -116,7 +130,7 @@ class TdxStockData(object):
|
|||||||
|
|
||||||
if len(self.best_ip) == 0:
|
if len(self.best_ip) == 0:
|
||||||
from pytdx.util.best_ip import select_best_ip
|
from pytdx.util.best_ip import select_best_ip
|
||||||
self.best_ip = select_best_ip()
|
self.best_ip = select_best_ip(_type='socket', proxy_ip=self.proxy_ip, proxy_port=self.proxy_port)
|
||||||
self.config.update({'best_ip': self.best_ip})
|
self.config.update({'best_ip': self.best_ip})
|
||||||
save_cache_config(self.config, TDX_STOCK_CONFIG)
|
save_cache_config(self.config, TDX_STOCK_CONFIG)
|
||||||
|
|
||||||
@ -282,7 +296,8 @@ class TdxStockData(object):
|
|||||||
axis=1)
|
axis=1)
|
||||||
data = data.rename(
|
data = data.rename(
|
||||||
index=str,
|
index=str,
|
||||||
columns={'amount': 'volume'})
|
columns={'vol': 'volume'})
|
||||||
|
|
||||||
if len(data) == 0:
|
if len(data) == 0:
|
||||||
print('{} Handling {}, len2={}..., continue'.format(
|
print('{} Handling {}, len2={}..., continue'.format(
|
||||||
str(datetime.now()), tdx_code, len(data)))
|
str(datetime.now()), tdx_code, len(data)))
|
||||||
@ -452,16 +467,16 @@ class TdxStockData(object):
|
|||||||
if is_today:
|
if is_today:
|
||||||
# 获取当前交易日得交易记录
|
# 获取当前交易日得交易记录
|
||||||
_res = self.api.get_transaction_data(
|
_res = self.api.get_transaction_data(
|
||||||
market=self.symbol_market_dict[symbol],
|
market=self.symbol_market_dict[tdx_code],
|
||||||
code=symbol,
|
code=tdx_code,
|
||||||
start=_pos,
|
start=_pos,
|
||||||
count=q_size)
|
count=q_size)
|
||||||
else:
|
else:
|
||||||
# 获取历史交易记录
|
# 获取历史交易记录
|
||||||
_res = self.api.get_history_transaction_data(
|
_res = self.api.get_history_transaction_data(
|
||||||
market=self.symbol_market_dict[symbol],
|
market=self.symbol_market_dict[tdx_code],
|
||||||
date=trading_date,
|
date=trading_date,
|
||||||
code=symbol,
|
code=tdx_code,
|
||||||
start=_pos,
|
start=_pos,
|
||||||
count=q_size)
|
count=q_size)
|
||||||
last_dt = None
|
last_dt = None
|
||||||
|
Loading…
Reference in New Issue
Block a user