查询账户信息

大约 15 分钟

get_managed_accounts 获取管理的账号列表

TradeClient.get_managed_accounts(account=None)

说明

获取本tiger_id关联的资金账号

参数

参数名类型是否必填描述
accountstrNo账号id,选填,不传则返回所有关联的 account

返回

AccountProfile(tigeropen.trade.domain.profile.AccountProfile)对象构成的列表

每个对象的属性如下:

参数名类型描述
account综合账号:50129912,环球:U5755619,模拟账号:20191221901212121交易的资金账户,其中综合账号为5到10位数字,模拟账号为17位数字,环球账号以字母U开头
capabilityRegTMargin账户类型(CASH:现金账户, RegTMargin: Reg T 保证金账户, PMGRN: 投资组合保证金)
statusFunded账号状态,大部分场景会返回已入金(Funded)状态。状态包括: Funded(已入金), Open(已开户), Pending(待开户), Rejected(开户被拒绝), Closed(已注销)
account_typeSTANDARD账户分类, GLOBAL:环球账号;STANDARD:综合账号;PAPER:模拟账号

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

accounts = trade_client.get_managed_accounts()
# 查看第一个账户的相关属性
account1 = accounts[0]
print(account1.account)  # 账户号
print(account1.account_type)  # 账户分类(综合/模拟)
print(account1.capability)  # 账户能力(现金/保证金)

返回示例

[AccountProfile({'account': 'DU575569', 'capability': None, 'status': 'Funded'})]

get_prime_assets 获取综合/模拟账户资产信息

TradeClient.get_prime_assets(account=None, base_currency=None, consolidated=True)

说明

获取资产信息,适用于综合/模拟账户

参数

参数名类型是否必填描述
accountstrNo账户id, 如不指定, 则使用 client_config 中的默认 account
base_currencystrNo币种
consolidatedboolNo是否展示聚合Segment指标,只会聚合SEC和FUND类别资产。默认为true

返回

list

list 中的每个元素是一个 PortfolioAccount 对象。如果只有一个account,list 中只有一个元素。 PortfolioAccount 对象的结构如下。

PortfolioAccount、Segment 中的字段详细解释请参考对象信息

PortfolioAccount 对象
├── account:账户id
├── update_timestamp: 更新时间, 毫秒单位的时间戳
├── segments:分品种的账户信息,是以证券类别为 key 的 dict, 值为 Segment 对象
│   ├── 'S' 表示证券账户,value 是 Segment 对象
│   │    ├── currency: 币种, 如 USD, HKD
│   │    ├── capability: 账户类型, 保证金账户: RegTMargin, 现金账户: Cash。
│   │    ├── category: 交易品种分类 C: (Commodities 期货), S: (Securities 股票)
│   │    ├── cash_balance: 现金额。
│   │    ├── cash_available_for_trade: 可用资金,包括现金与融资额度,用作交易最大购买力参考。
│   │    ├── cash_available_for_withdrawal': 当前账号内可以出金的现金金额
│   │    ├── gross_position_value: 证券总价值
│   │    ├── equity_with_loan: 含贷款价值总权益
│   │    ├── net_liquidation: 总资产;净清算值
│   │    ├── init_margin: 初始保证金
│   │    ├── maintain_margin': 维持保证金
│   │    ├── overnight_margin: 隔夜保证金
│   │    ├── unrealized_pl: 浮动盈亏
│   │    ├── realized_pl: 已实现盈亏
│   │    ├── excess_liquidation: 当前剩余流动性
│   │    ├── overnight_liquidation: 隔夜剩余流动性
│   │    ├── buying_power: 购买力
│   │    ├── leverage: 当前使用的杠杆倍数
│   │    ├── locked_funds: 锁定资金
│   │    ├── uncollected: 在途资金
│   │    ├── currency_assets:按照交易币种区分的账户资产信息,是以币种为 key 的 dict
│   │    │   ├── 'USD' 表示美元,value 是 CurrencyAsset 对象
│   │    │   │   ├── currency: 当前的货币币种,常用货币包括: USD-美元,HKD-港币,SGD-新加坡币,CNH-人民币
│   │    │   │   ├── cash_balance': 可以交易的现金,加上已锁定部分的现金(如已购买但还未成交的股票,还包括其他一些情形也会有锁定现金情况)
│   │    │   │   ├── cash_available_for_trade': 当前账号内可以交易的现金金额
│   │    │   ├── 'HKD' 表示港币,value 是 CurrencyAsset 对象
│   │    └─  └── 'CNH' 表示人民币,value 是 CurrencyAsset 对象
│   └── 'C' 表示期货账户,value 是 Segment 对象

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

portfolio_account = trade_client.get_prime_assets(base_currency='USD')  # 可设置基准币种
print(portfolio_account)

# 查看账户属性示例
print(portfolio_account.account)   # 账户id
print(portfolio_account.segments['S'].buying_power)  # 证券账户购买力
print(portfolio_account.segments['S'].cash_balance)  # 证券账户现金值
print(portfolio_account.segments['S'].unrealized_pl)   # 浮动盈亏
print(portfolio_account.segments['S'].currency_assets['USD'].gross_position_value)  # 以美元计算的证券总价值
print(portfolio_account.segments['S'].currency_assets['HKD'].gross_position_value)  # 以港币计算的证券总价值
print(portfolio_account.segments['S'].currency_assets['HKD'].cash_balance)  # 以港币计算的现金值

print(portfolio_account.segments['C'].init_margin)  # 期货账户初始保证金
print(portfolio_account.segments['C'].maintain_margin)  # 期货账户维持保证金
print(portfolio_account.segments['C'].currency_assets['USD'].cash_balance)  # 期货账户以美元计算的现金值


返回示例

 PortfolioAccount(
  {
	'account': '1234567',
	'update_timestamp': 1638949616442,
	'segments': {
		'S': Segment({
			'currency': 'USD',
			'capability': 'RegTMargin',
			'category': 'S',
			'cash_balance': 111978.7160247,
			'cash_available_for_trade': 123905.775195,
			'cash_available_for_withdrawal': 123905.775195,
			'gross_position_value': 22113.5652986,
			'equity_with_loan': 134092.2813233,
			'net_liquidation': 135457.2802984,
			'init_margin': 9992.3764097,
			'maintain_margin': 8832.4423281,
			'overnight_margin': 11607.5876493,
			'unrealized_pl': -1121.0821891,
			'realized_pl': -3256.0,
			'excess_liquidation': 125259.8389952,
			'overnight_liquidation': 122484.693674,
			'buying_power': 495623.1007801,
			'leverage': 0.164693,
			'currency_assets': {
				'USD': CurrencyAsset({
					'currency': 'USD',
					'cash_balance': 123844.77,
					'cash_available_for_trade': 123792.77
				}),
				'HKD': CurrencyAsset({
					'currency': 'HKD',
					'cash_balance': -92554.07,
					'cash_available_for_trade': -93664.15
				}),
				'CNH': CurrencyAsset({
					'currency': 'CNH',
					'cash_balance': 0.0,
					'cash_available_for_trade': 0.0
				})
			}
		}),
		'C': Segment({
			'currency': 'USD',
			'capability': 'RegTMargin',
			'category': 'C',
			'cash_balance': 3483681.32,
			'cash_available_for_trade': 3481701.32,
			'cash_available_for_withdrawal': 3481701.32,
			'gross_position_value': 1000000.0,
			'equity_with_loan': 3481881.32,
			'net_liquidation': 3483681.32,
			'init_margin': 1980.0,
			'maintain_margin': 1800.0,
			'overnight_margin': 1800.0,
			'unrealized_pl': 932722.41,
			'realized_pl': -30.7,
			'excess_liquidation': 3481881.32,
			'overnight_liquidation': 3481881.32,
			'buying_power': 0.0,
			'leverage': 0.0,
			'currency_assets': {
				'USD': CurrencyAsset({
					'currency': 'USD',
					'cash_balance': 3483681.32,
					'cash_available_for_trade': 3483681.32
				}),
				'HKD': CurrencyAsset({
					'currency': 'HKD',
					'cash_balance': 0.0,
					'cash_available_for_trade': 0.0
				}),
				'CNH': CurrencyAsset({
					'currency': 'CNH',
					'cash_balance': 0.0,
					'cash_available_for_trade': 0.0
				})
			}
		})
	}
})

get_assets 获取账户资产信息

TradeClient.get_assets(account=None, sub_accounts=None, segment=False, market_value=False)

说明

获取账户资产信息,返回结构主要适用于环球账户,综合/模拟账号虽然也可使用此接口,但有较多字段为空,请使用 get_prime_assets 查询综合/模拟账户资产

参数

参数名类型是否必填描述
accountstrNo账户id,如不指定, 则使用 client_config 中的默认 account
sub_accountslist[str]No子账户列表,默认为None
segmentboolNo是否返回按照品种(证券、期货)分类的数据,默认 False,为True时,返回一个dict,C表示期货, S表示股票
market_valueboolNo是否返回按照币种(美元、港币、人民币)分类的数据,默认为 False
secret_keystrNo机构交易员密钥,机构用户专有,机构用户必填,需要在client_config中配置

返回

list

list 中的每个元素是一个 PortfolioAccount 对象。如果只有一个account,list 中只有一个元素。 PortfolioAccount(tigeropen.trade.domain.account.PortfolioAccount) 对象的结构如下。

Account、SecuritySegment、CommoditySegment 中的信息请参考对象信息

PortfolioAccount 对象
├── account:账户id
├── summary:当前账户的汇总统计信息。里面的值是一个 Account 对象
├── segments:分品种的账户信息,是一个dict
│   ├── 'S' 表示证券账户,value 是 SecuritySegment 对象
│   └── 'C' 表示期货账户,value 是 CommoditySegment 对象
├── market_value:分币种的账户统计信息,是一个dict
│   ├── 'USD' 表示美元,value 是 MarketValue 对象
│   ├── 'HKD' 表示港币,value 是 MarketValue 对象
└─  └── 'CNH' 表示人民币,value 是 MarketValue 对象

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

portfolio_account = trade_client.get_assets(segment=True, market_value=True)
print(portfolio_account)

# 查看第一个portfolio的属性
portfolio1 = portfolio_account[0]
print(portfolio1.account)  # 账户id
print(portfolio1.segments['S'].available_cash)  # 证券账户的可用资金
print(portfolio1.segments['S'].gross_position_value)  # 证券账户的市值
print(portfolio1.segments['C'].available_cash)  # 期货账户的可用资金(已开通期货账户才会有值)
print(portfolio1.summary.buying_power)  # 购买力
print(portfolio1.summary.cash)  # 现金

返回示例

[PortfolioAccount({'account': 'DU575569', 
                    'summary': Account({'accrued_cash': 0, 'accrued_dividend': 0, 'available_funds': 948.69, 
                                        'buying_power': 948.69, 'cash': 948.81, 'currency': 'USD', 'cushion': 0.5944, 
                                        'day_trades_remaining': 3, 'equity_with_loan': 1255.69, 'excess_liquidity': 948.81, 
                                        'gross_position_value': 647.53, 'initial_margin_requirement': 307, 
                                        'maintenance_margin_requirement': 307, 'net_liquidation': 1596.34, 
                                        'realized_pnl': 0, 'regt_equity': 1255.81, 
                                        'regt_margin': 153.5, 'sma': 3512.56, 
                                        'timestamp': 1561529631, 'unrealized_pnl': -885.36}), 

                    'segments': defaultdict(<class 'tigeropen.trade.domain.account.Account'>, 
                            {'C': CommoditySegment({'accrued_cash': 0, 'accrued_dividend': 0, 
                                                    'available_funds': 0, 'cash': 0, 'equity_with_loan': 0, 'excess_liquidity': 0, 
                                                    'initial_margin_requirement': 0, 'maintenance_margin_requirement': 0, 
                                                    'net_liquidation': 0, 'timestamp': 1544393719}), 
                            'S': SecuritySegment({'accrued_cash': 0, 'accrued_dividend': 0, 
                                                'available_funds': 120.73, 'cash': 120.73, 'equity_with_loan': 1292.04, 
                                                'excess_liquidity': 120.73, 'gross_position_value': 1171.31, 
                                                'initial_margin_requirement': 1171.31, 'leverage': 0.91, 
                                                'maintenance_margin_requirement': 1171.31, 'net_liquidation': 1292.04, 
                                                'regt_equity': 1292.04, 'regt_margin': 585.66, 'sma': 1973.39, 'timestamp': 1545206069})
                            }), 

                    'market_values': defaultdict(<class 'tigeropen.trade.domain.account.MarketValue'>, 
                            {'CNH': MarketValue({'currency': 'CNH', 'net_liquidation': 0, 'cash_balance': 0, 
                                '               stock_market_value': 0, 'option_market_value': 0, 
                                                'warrant_value': 0, 'futures_pnl': 0, 'unrealized_pnl': 0, 
                                                'realized_pnl': 0, 'exchange_rate': 0.14506, 
                                                'net_dividend': 0, 'timestamp': 1544078822}), 
                            'HKD': MarketValue({'currency': 'HKD', 'net_liquidation': 0, 'cash_balance': 0, 
                                                'stock_market_value': 0, 'option_market_value': 0, 
                                                'warrant_value': 0, 'futures_pnl': 0, 'unrealized_pnl': 0, 
                                                'realized_pnl': 0, 'exchange_rate': 0.12743, 
                                                'net_dividend': 0, 'timestamp': 1550158606}), 
                            'USD': MarketValue({'currency': 'USD', 'net_liquidation': 1596.34, 
                                                'cash_balance': 948.81, 'stock_market_value': 307, 
                                                'option_market_value': 340.53, 'warrant_value': 0, 
                                                'futures_pnl': 0, 'unrealized_pnl': -885.36, 
                                                'realized_pnl': 0, 'exchange_rate': 1, 
                                                'net_dividend': 0, 'timestamp': 1561519773})}
                            )}
                    )]

get_positions 获取持仓数据

TradeClient.get_positions(account=None, sec_type=SecurityType.STK, currency=Currency.ALL, market=Market.ALL, symbol=None, sub_accounts=None, expiry=None, strike=None, put_call=None)

说明

获取账户的持仓信息

参数

参数名类型是否必填描述
accountstrNo账户id,如不指定, 则使用 client_config 中的默认 account
sec_typeSecurityTypeNo交易品种,包括 STK/OPT/FUT 等, 默认 STK, 可以从 tigeropen.common.consts.SecurityType 下导入
currencyCurrencyNo币种,包括 ALL/USD/HKD/CNH 等, 默认 ALL, 可以从 tigeropen.common.consts.Currency 下导入
marketMarketNo市场,包括 ALL/US/HK/CN 等, 默认 ALL, 可以从 tigeropen.common.consts.Market 下导入
symbolstrNo证券代码
expirystrNo过期日(适用于期权)。 形式 'yyyyMMdd', 比如 '220121'
strikefloatNo行权价(适用于期权)。如 100.5
put_callstrNo看涨或看跌(适用于期权)。'PUT' 或 'CALL'
sub_accountlist[str]No子账户列表
secret_keystrNo机构交易员密钥,机构用户专有,需要在client_config中配置,个人开发者无需关注

返回

持仓对象列表, 类型:list

结构如下:

每个元素是一个 Position 对象。Position(tigeropen.trade.domain.position.Position)对象有如下的属性:

参数名类型描述
accountstr所属账户
contractContract合约对象,tigeropen.trade.domain.contract.Contract
quantityint持仓数量
average_costfloat持仓成本
average_cost_by_averagefloat均价成本
market_pricefloat最新价格
market_valuefloat市值
realized_pnlfloat已实现盈亏
realized_pnl_by_averagefloat均价成本已实现盈亏
unrealized_pnlfloat浮动盈亏
unrealized_pnl_by_averagefloat均价成本浮动盈亏
unrealized_pnl_percentfloat浮动盈亏率
unrealized_pnl_percent_by_averagefloat均价成本浮动盈亏率
salable_qtyfloat可卖数量

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import SecurityType, Currency, Market
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

positions = trade_client.get_positions(sec_type=SecurityType.STK, currency=Currency.ALL, market=Market.ALL)

# 查看持仓属性
print(len(positions))  # 持仓标的数
# 第一个持仓合约
position1 = positions[0]
print(position1.contract.symbol)  # 合约代码, 如 AAPL,CL2303
print(position1.contract.sec_type)  # 合约类型, 如 STK, FUT
print(position1.contract.multiplier)  # 合约手数
print(position1.average_cost)  # 持仓成本
print(position1.quantity)  # 持仓数量
# 第二个持仓标的
position2 = positions[1]
print(position2.unrealized_pnl)  # 浮动盈亏
print(position2.market_value) # 持仓市值

返回示例

[contract: BABA/STK/USD, quantity: 1, average_cost: 178.99, market_price: 176.77,
contract: BIDU/STK/USD, quantity: 3, average_cost: 265.4633, market_price: 153.45,
contract: SPY/STK/USD, quantity: 7, average_cost: 284.9243, market_price: 284.97]

get_analytics_asset 获取历史资产分析

TradeClient.get_analytics_asset(account=None, start_date=None, end_date=None, seg_type=None, sub_account=None)

说明

获取账户的历史资产分析

参数

参数名类型是否必填描述
accountstrno账户id,如不指定, 则使用 client_config 中的默认 account
start_datestrno起始日期, 格式 yyyy-MM-dd, 如 '2022-01-01'。如不传则使用end_date往前30天的日期
end_datestrno截止日期, 格式 yyyy-MM-dd, 如 '2022-02-01'。如不传则使用当前日期
seg_typeSegmentTypeno账户划分类型, 可选值有: SegmentType.SEC 代表证券; SegmentType.FUT 代表期货, 可以从 tigeropen.common.consts.SegmentType 下导入
currencyCurrencyno币种,包括 ALL/USD/HKD/CNH 等, 可以从 tigeropen.common.consts.Currency 下导入
sub_accountstrno子账户(仅适用于机构账户), 若传该字段,则返回该子账户的资产
secret_keystrno机构交易员密钥,机构用户专有,需要在client_config中配置,个人开发者不要指定

返回

dict

summary 对应值为资产分析汇总,类型 dict, 各字段含义:

参数名类型描述
pnlfloat盈亏金额
pnl_percentagefloat收益率
annualized_returnfloat年化收益率(推算)
over_user_percentagefloat超过用户的百分比 overUserPercentage%

history 对应值为历史资产列表,每项为dict,各字段含义:

参数名类型描述
dateint日期时间戳,单位毫秒
pnlfloat与上一日比的盈亏金额
pnl_percentagefloat与上一日比的收益率
assetfloat总资产金额
cash_balancefloat现金余额
gross_position_valuefloat市值
depositfloat入金金额
withdrawalfloat出金金额

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

result = trade_client.get_analytics_asset(start_date='2021-12-01', end_date='2021-12-07', seg_type=SegmentType.SEC)

# 查看属性
print(result['summary']['pnl'])  # 盈亏金额
print(result['summary']['pnl_percentage'])  # 盈亏比例
for data in result['history']:  # 历史资产
    print(data['date'])  # 历史资产日期
    print(data['pnl'])  # 盈亏

返回示例

{'summary': {'pnl': 691.18, 'pnl_percentage': 0.0, 'annualized_return': 0.0, 'over_user_percentage': 0.0}, 
 'history': [{'date': 1638334800000, 'asset': 48827609.65, 'pnl': 0.0, 'pnl_percentage': 0.0, 'cash_balance': 48811698.59, 'gross_position_value': 15911.06, 'deposit': 0.0, 'withdrawal': 0.0, 'dt': '2021-12-01'},
             {'date': 1638421200000, 'asset': 48827687.69, 'pnl': 78.04, 'pnl_percentage': 0.0, 'cash_balance': 48811698.59, 'gross_position_value': 15989.1, 'deposit': 0.0, 'withdrawal': 0.0, 'dt': '2021-12-02'},
             {'date': 1638507600000, 'asset': 48827583.18, 'pnl': -26.47, 'pnl_percentage': 0.0, 'cash_balance': 48811698.59, 'gross_position_value': 15884.58, 'deposit': 0.0, 'withdrawal': 0.0, 'dt': '2021-12-03'}, 
             {'date': 1638766800000, 'asset': 48827804.28, 'pnl': 194.63, 'pnl_percentage': 0.0, 'cash_balance': 48811698.59, 'gross_position_value': 16105.68, 'deposit': 0.0, 'withdrawal': 0.0, 'dt': '2021-12-06'}, 
             {'date': 1638853200000, 'asset': 48828300.83, 'pnl': 691.18, 'pnl_percentage': 0.0, 'cash_balance': 48811723.0, 'gross_position_value': 16577.82, 'deposit': 0.0, 'withdrawal': 0.0, 'dt': '2021-12-07'}]}

get_segment_fund_available 获取可转出资金

TradeClient.get_segment_fund_available(from_segment=None, currency=Noone)

说明

获取账户对应segment下的可以转出的资金(综合/模拟账号)

参数

参数类型是否必填描述
from_segmentstrNo转出segment, FUT或SEC
currencystrNo转出币种,USD或HKD

返回

List[SegmentFundAvailableItem] 获取各Segment可以转出资金金额的列表。每一项为 tigeropen.trade.domain.account.SegmentFundAvailableItem

SegmentFundAvailableItem说明:

名称类型说明
from_segmentstring转出segment, FUT或SEC
currencystring转出币种,USD或HKD
amountfloat可转资金,单位:元

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import SecurityType, Currency, Market
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

available = trade_client.get_segment_fund_available(from_segment='SEC', currency='HKD')
print(available)

# 获取金额
print(available[0].amount)

返回示例

[SegmentFundAvailableItem({'from_segment': 'SEC', 'currency': 'HKD', 'amount': 718859.79})]

transfer_segment_fund 账号内部资金转账

TradeClient.transfer_segment_fund(from_segment, to_segment, amount, currency)

说明

对账户不同segment下的资金转账,如证券segment转期货segment (适用于综合或模拟账号)

参数

参数类型是否必填描述
from_segmentstrYes转出segment, FUT或SEC
to_segmentstrYes转入segment, FUT或SEC,必须与from_segment不同
currencystrYes转出币种,USD或HKD
amountfloatYes转账金额,单位:对应币种的元

返回

tigeropen.trade.domain.account.SegmentFundItem

SegmentFundItem说明:

名称类型说明
idint转账记录ID
from_segmentstr转出segment, FUT或SEC
to_segmentstr转入segment, FUT或SEC
currencystr转出币种,USD或HKD
amountfloat转账金额,单位:元
statusstr状态(NEW/PROC/SUCC/FAIL/CANC)
status_descstr状态描述(已提交/处理中/已到账/转账失败/已取消)
messagestr失败信息
settled_atint到账时间戳
updated_atint更新时间戳
created_atint创建时间戳

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import SecurityType, Currency, Market
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

res = trade_client.transfer_segment_fund(from_segment='SEC', to_segment='FUT', amount=100, currency='USD')
print(res)

返回示例

SegmentFundItem({'id': 30322815980011520, 'from_segment': 'SEC', 'to_segment': 'FUT', 'currency': 'USD',
 'amount': 100.0, 'status': 'NEW', 'status_desc': '已提交', 'message': None, 'settled_at': None,
  'updated_at': 1680243926131, 'created_at': 1680243926131})

cancel_segment_fund 取消账户内部资金转账

TradeClient.cancel_segment_fund

说明

取消提交的资金转账. (适用于综合/模拟) 如果转账已经成功无法取消,可以交换segment反向转回来。

参数

参数类型是否必填描述
idintYes转账记录id

返回tigeropen.trade.domain.account.SegmentFundItem

SegmentFundItem说明:

名称类型说明
idint转账记录ID
from_segmentstr转出segment, FUT或SEC
to_segmentstr转入segment, FUT或SEC
currencystr转出币种,USD或HKD
amountfloat转账金额,单位:元
statusstr状态(NEW/PROC/SUCC/FAIL/CANC)
status_descstr状态描述(已提交/处理中/已到账/转账失败/已取消)
messagestr失败信息
settled_atint到账时间戳
updated_atint更新时间戳
created_atint创建时间戳

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import SecurityType, Currency, Market
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)

res = trade_client.cancel_segment_fund(id='请求转账的id')
print(res)

返回示例

SegmentFundItem({'id': 30322815980011520, 'from_segment': 'SEC', 'to_segment': 'FUT', 'currency': 'USD',
 'amount': 100.0, 'status': 'CANC', 'message': None, 'settled_at': None, 'updated_at': 1680243926131, 'created_at': 1680243926131})

get_segment_fund_history 账号内部资金转账历史记录查询

TradeClient.get_segment_fund_history

说明

查询账号segment间的历史转账记录。按时间倒序排列。 (适用于综合/模拟账户)

参数

参数类型是否必填描述
limitintNo返回最近转账记录数。默认为100,最大500

返回tigeropen.trade.domain.account.SegmentFundItem

SegmentFundItem说明:

名称类型说明
idint转账记录ID
from_segmentstr转出segment, FUT或SEC
to_segmentstr转入segment, FUT或SEC
currencystr转出币种,USD或HKD
amountfloat转账金额,单位:元
statusstr状态(NEW/PROC/SUCC/FAIL/CANC)
status_descstr状态描述(已提交/处理中/已到账/转账失败/已取消)
messagestr失败信息
settled_atint到账时间戳
updated_atint更新时间戳
created_atint创建时间戳

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import SecurityType, Currency, Market
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)
history = trade_client.get_segment_fund_history()
print(history)

返回示例

[SegmentFundItem({'id': 16256385456537600, 'from_segment': 'SEC', 'to_segment': 'FUT', 'currency': 'USD', 
'amount': 100000.0, 'status': 'SUCC', 'status_desc': '已到账', 'message': None,
 'settled_at': 1572925581000, 'updated_at': 1572925578000, 'created_at': 1572925578000}), 
 SegmentFundItem({'id': 16256377863667712, 'from_segment': 'SEC', 'to_segment': 'FUT', 'currency': 'USD', 
 'amount': 100000.0, 'status': 'SUCC', 'status_desc': '已到账', 'message': None,
  'settled_at': 1572925525000, 'updated_at': 1572925520000, 'created_at': 1572925520000}), 
  SegmentFundItem({'id': 15554843128627200, 'from_segment': 'SEC', 'to_segment': 'FUT', 'currency': 'USD',
   'amount': 100000.0, 'status': 'SUCC', 'status_desc': '已到账', 'message': None, 'settled_at': 1567573240000, 
   'updated_at': 1567573235000, 'created_at': 1567573235000}), 
   SegmentFundItem({'id': 14039478715026432, 'from_segment': 'SEC', 'to_segment': 'FUT', 'currency': 'USD', 'amount': 10000.0, 'status': 'SUCC', 'status_desc': '已到账', 'message': None, 'settled_at': 1556011922000, 'updated_at': 1556011922000, 'created_at': 1556011922000})]

get_estimate_tradable_quantity 获取最大可交易数量

TradeClient.get_estimate_tradable_quantity

说明

查询账户下的对某个标的的最大可买卖数量,支持股票、期权,暂不支持期货。

参数

Order对象 (tigeropen.trade.domain.order.Order)

可用 tigeropen.common.util.order_utils 下的工具函数,如 limit_order(), market_order(), 根据您需要的具体订单类型和参数,在本地生成订单对象。创建方法详见Order对象-构建方法部分

只支持限价单或止损单;暂不支持期货。

返回tigeropen.trade.domain.position.TradableQuantityItem 对象,属性如下:

字段类型说明
tradable_quantityfloat现金可买卖数量(如action为buy,返回为可买数量,反之为可卖数量)
financing_quantityfloat融资融券可买卖数量(现金账号没有)
position_quantityfloat持仓数量
tradable_position_quantityfloat持仓可交易数量

示例

from tigeropen.trade.trade_client import TradeClient
from tigeropen.tiger_open_config import get_client_config
from tigeropen.common.consts import SecurityType, Currency, Market
client_config = get_client_config(private_key_path='私钥路径', tiger_id='your tiger id', account='your account')
trade_client = TradeClient(client_config)


contract = stock_contract(symbol='MSFT', currency='USD')
order = limit_order(account=client_config.account, contract=contract, action='BUY', limit_price=50, quantity=1)
res = trade_client.get_estimate_tradable_quantity(order)
print(res)

返回示例

TradableQuantityItem<{'tradable_quantity': 28921.0, 'financing_quantity': 52657.0, 'position_quantity': 0.0, 'tradable_position_quantity': 0}>
上次编辑于: