跳转到内容

现货专用接口

现货交易类接口

order

中文名

股票买卖委托

接口说明

买卖指定数量的证券,支持股票、ETF、可转债等证券的限价或市价交易,同时支持逆回购交易。

接口定义

python
order(security, amount, limit_price=None)

注意事项

  1. 支持交易场景的逆回购交易。委托方向为卖出(amount必须为负数),逆回购最小申购金额为1000元(10张),因此本接口amount入参应大于等于10(10张),否则会导致委托失败。
  2. 回测场景,amount有最小下单数量校验,股票、ETF、LOF:100股,可转债:10张;交易场景接口不做amount校验,直接报柜台。
  3. 交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败,系统会在日志中增加提醒。
  4. 由于下述原因,回测中实际买入或者卖出的股票数量有时候可能与委托设置的不一样,针对上述内容调整,系统会在日志中增加警告信息:
  • 根据委托买入数量与价格经计算后的资金数量,大于当前可用资金。
  • 委托卖出数量大于当前可用持仓数量。
  • 每次交易股票时取整100股,交易可转债时取整10张,但是卖出所有股票时不受此限制。
  • 股票停牌、股票未上市或者退市、股票不存在。
  • 回测中每天结束时会取消所有未完成交易。

使用场景

❌研究 ✅回测 ✅交易

参数

security

  • 类型: str

证券代码,交易市场代码作为后缀,比如600570.XSHG,选填字段

amount

  • 类型: int

下单数量,正数表示买入,负数表示卖出,选填字段

limit_price

  • 类型: float|None
  • 默认值: None

买卖限价,选填字段

返回值

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = ['600570.XSHG', '000001.XSHE']
    set_universe(g.security)

def handle_data(context, data):
    # 以系统最新价委托
    order('600570.XSHG', 100)
    # 逆回购1000元
    order('131810.XSHE', -10)
    # 以39块价格下一个限价单
    order('600570.XSHG', 100, limit_price=39)

order_target

中文名

指定目标数量买卖

接口说明

该接口用于买卖股票,直到股票最终数量达到指定的amount。

接口定义

python
order_target(security, amount, limit_price=None)

使用场景

❌研究 ✅回测 ✅交易

注意事项

  1. 该函数不支持逆回购交易。

  2. 该函数在委托股票时取整100股,委托可转债时取整10张。

  3. 交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败,系统会在日志中增加提醒。

  4. 该接口的使用有场景限制,回测可以正常使用,交易谨慎使用。回测场景下撮合是引擎计算的,因此成交之后持仓信息的更新是瞬时的,但交易场景下信息的更新依赖于柜台数据的返回,无法做到瞬时同步,可能造成重复下单。具体原因如下:

  • 柜台返回持仓数据体现当日变化(由柜台配置决定):交易场景中持仓信息同步有时滞,一般在6秒左右,假如在这6秒之内连续下单两笔或更多order_target委托,由于持仓数量不会瞬时更新,会造成重复下单。
  • 柜台返回持仓数据体现当日变化(由柜台配置决定):第一笔委托未完全成交,如果不对第一笔做撤单再次order_target相同的委托目标数量,引擎不会计算包括在途的总委托数量,也会造成重复下单。
  • 柜台返回持仓数据不体现当日变化(由柜台配置决定):这种情况下持仓数量只会一天同步一次,必然会造成重复下单。
  1. 针对以上几种情况,假如要在交易场景使用该接口,首先要确定券商柜台的配置,是否实时更新持仓情况,其次需要增加订单和持仓同步的管理,来配合order_target使用。

参数

security_list

  • 类型: str

股票列表,必填字段

amount

  • 类型: int

期望的最终数量,必填字段

limit_price

  • 类型: float
  • 默认: None

买卖限价,选填字段,不填时,获取行情快照数据最新价报单

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = ['600570.XSHG', '000001.XSHE']
    set_universe(g.security)

def handle_data(context, data):
    #买卖恒生电子股票数量到100股
    order_target('600570.XSHG', 100)
    #卖出恒生电子所有股票
    if data['600570.XSHG']['close'] > 39:
        order_target('600570.XSHG', 0)

order_value

中文名

指定目标价值买卖

接口说明

该接口用于买卖指定价值为value的股票。

接口定义

python
order_value(security, value, limit_price=None)

使用场景

❌研究 ✅回测 ✅交易

注意事项

  1. 该函数不支持逆回购交易。

  2. 该函数在委托股票时取整100股,委托可转债时取整10张。

  3. 交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败,系统会在日志中增加提醒。

参数

security_list

  • 类型: str

股票列表,必填字段

value

  • 类型: float

期望的股票最终价值,必填字段

limit_price

  • 类型: float
  • 默认: None

买卖限价,选填字段,不填时,获取行情快照数据最新价报单

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = ['600570.XSHG', '000001.XSHE']
    set_universe(g.security)

def handle_data(context, data):
    #买入价值为10000元的恒生电子股票
    order_value('600570.XSHG', 10000)

    if data['600570.XSHG']['close'] > 39:
        #卖出价值为10000元的恒生电子股票
        order_value('600570.XSHG', -10000)

order_target_value

中文名

指定持仓市值买卖

接口说明

该接口用于调整股票持仓市值到value价值。

接口定义

python
order_target_value(security, value, limit_price=None)

使用场景

❌研究 ✅回测 ✅交易

注意事项

  1. 该函数不支持逆回购交易。

  2. 该函数在委托股票时取整100股,委托可转债时取整10张。

  3. 交易场景如果limit_price字段不入参,系统会默认用行情快照数据最新价报单,假如行情快照获取失败会导致委托失败, 系统会在日志中增加提醒。

  4. 该接口的使用有场景限制,回测可以正常使用,交易谨慎使用。回测场景下撮合是引擎计算的,因此成交之后持仓信息的更新是瞬时的,但交易场景下信息的更新依赖于柜台数据的返回,无法做到瞬时同步,可能造成重复下单。具体原因如下:

  • 柜台返回持仓数据体现当日变化(由柜台配置决定):交易场景中持仓信息同步有时滞,一般在6秒左右,假如在这6秒之内连续下单两笔或更多order_target_value委托,由于持仓市值不会瞬时更新,会造成重复下单。
  • 柜台返回持仓数据体现当日变化(由柜台配置决定):第一笔委托未完全成交,如果不对第一笔做撤单再次order_target_value相同的委托目标金额,引擎不会计算包括在途的总委托数量,也会造成重复下单。
  • 柜台返回持仓数据不体现当日变化(由柜台配置决定):这种情况下持仓金额只会一天同步一次,必然会造成重复下单。
  1. 针对以上几种情况,假如要在交易场景使用该接口,首先要确定券商柜台的配置,是否实时更新持仓情况,其次需要增加订单和持仓同步的管理,来配合order_target_value使用。

参数

security_list

  • 类型: str

股票列表,必填字段

value

  • 类型: float

期望的股票最终价值,必填字段

limit_price

  • 类型: float
  • 默认: None

买卖限价,选填字段,不填时,获取行情快照数据最新价报单

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = ['600570.XSHG', '000001.XSHE']
    set_universe(g.security)

def handle_data(context, data):
    #买卖股票到指定价值
    order_target_value('600570.XSHG', 10000)

    #卖出当前所有恒生电子的股票
    if data['600570.XSHG']['close'] > 39:
        order_target_value('600570.XSHG', 0)

order_market

中文名

市价委托交易

接口说明

使用市价委托方式进行股票买卖交易,支持多种市价委托类型

接口定义

python
order_market(security, amount, market_type, limit_price=None)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  1. 支持逆回购交易。委托方向为卖出(amount必须为负数),逆回购最小申购金额为1000元(10张),因此本接口amount入参应大于等于10(10张),否则会导致委托失败。

  2. 不支持可转债交易。

  3. 该函数中market_type是必传字段,如不传入参数会出现报错。

  4. 该函数委托上证股票时limit_price是必传字段,如不传入参数会出现报错。

参数

security

  • 类型: str

股票代码,必填字段

amount

  • 类型: int

交易数量,正数表示买入,负数表示卖出,必填字段

market_type

  • 类型: int

市价委托类型,上证股票支持参数0、1、2、4,深证股票支持参数0、2、3、4、5,必填字段

limit_price

  • 类型: float
  • 默认: None

保护限价,选填字段,委托上证股票时必传参数

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = "600570.XSHG"
    set_universe(g.security)

def before_trading_start(context, data):
    g.flag = False

def handle_data(context, data):
    if not g.flag:
        # 以35保护限价按对手方最优价格买入100股
        order_market(g.security, 100, 0, 35)
        # 以35保护限价按最优五档即时成交剩余转限价买入100股
        order_market(g.security, 100, 1, 35)
        # 以35保护限价按本方最优价格买入100股
        order_market(g.security, 100, 2, 35)
        # 以35保护限价按最优五档即时成交剩余撤销买入100股
        order_market(g.security, 100, 4, 35)

        # 按对手方最优价格买入100股
        order_market("000001.XSHE", 100, 0)
        # 按本方最优价格买入100股
        order_market("000001.XSHE", 100, 2)
        # 按即时成交剩余撤销买入100股
        order_market("000001.XSHE", 100, 3)
        # 按最优五档即时成交剩余撤销买入100股
        order_market("000001.XSHE", 100, 4)
        # 按全额成交或撤单买入100股
        order_market("000001.XSHE", 100, 5)
        g.flag = True

after_trading_order

中文名

盘后固定价委托(股票)

接口说明

该接口用于盘后固定价委托申报。

接口定义

python
after_trading_order(security, amount, entrust_price)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  • 对接ATP柜台不支持该函数。

参数

security_list

  • 类型: str

股票列表,必填字段

amount

  • 类型: int

交易数量,正数表示买入,负数表示卖出,必填字段

entrust_price

  • 类型: float

委托价格,必填字段

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = "300001.XSHE"
    set_universe(g.security)
    # 15:00-15:30期间使用run_daily进行盘后固定价委托
    run_daily(context, order_test, time="15:15")
    g.flag = False

def order_test(context):
    snapshot = get_snapshot(g.security)
    if snapshot is not None:
        last_px = snapshot[g.security].get("last_px", 0)
        if last_px > 0:
            after_trading_order(g.security, 200, float(last_px))

def handle_data(context, data):
    if not g.flag:
        snapshot = get_snapshot(g.security)
        if snapshot is not None:
            last_px = snapshot[g.security].get("last_px", 0)
            if last_px > 0:
                after_trading_order(g.security, 200, float(last_px))
                g.flag = True

after_trading_cancel_order

中文名

盘后固定价委托撤单(股票)

接口说明

该接口用于盘后固定价委托取消订单,根据Order对象或order_id取消订单。

接口定义

python
after_trading_cancel_order(order_param)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  • 对接ATP柜台不支持该函数。

参数

order_param

  • 类型: Order/str

Order对象或者order_id

返回

None

示例

python
import time

def initialize(context):
    g.security = "300001.XSHE"
    set_universe(g.security)
    # 15:00-15:30期间使用run_daily进行盘后固定价委托、盘后固定价委托撤单
    run_daily(context, order_test, time="15:15")
    g.flag = False

def order_test(context):
    snapshot = get_snapshot(g.security)
    if snapshot is not None:
        last_px = snapshot[g.security].get("last_px", 0)
        if last_px > 0:
            order_id = after_trading_order(g.security, 200, float(last_px))
            time.sleep(5)
            after_trading_cancel_order(order_id)


def handle_data(context, data):
    if not g.flag:
        snapshot = get_snapshot(g.security)
        if snapshot is not None:
            last_px = snapshot[g.security].get("last_px", 0)
            if last_px > 0:
                order_id = after_trading_order(g.security, 200, float(last_px))
                time.sleep(5)
                after_trading_cancel_order(order_id)
                g.flag = True

etf_basket_order

中文名

ETF成分券篮子下单

接口说明

该接口用于ETF成分券篮子下单。

接口定义

python
etf_basket_order(etf_code ,amount, price_style=None, position=True, info=None)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  • 对接jz_ufx、ATP、云订柜台不支持该函数。

参数

etf_code

  • 类型: str

单支ETF代码,必填字段

amount

  • 类型: int

下单篮子份数, 正数表示买入, 负数表示卖出,必填字段

price_style

  • 类型: str
  • 默认: None

设定委托价位,可传入’B1’、’B2’、’B3’、’B4’、’B5’、’S1’、’S2’、’S3’、’S4’、’S5’、’new’,分别为买一~买五、卖一~卖五、最新价,选填字段,默认为最新价

position

  • 类型: bool
  • 默认: True

仅在篮子买入时使用。申购是否使用持仓替代,True为使用,该情况下篮子股票买入时使用已有的持仓部分;False为不使用,选填字段,默认使用持仓替代

info

  • 默认: None

  • 类型: Mapping[str, Mapping[str, Union[int, float]]]

成份股信息。key为成分股代码,values为dict类型,包含的成分股信息字段作为key,选填字段:

  • cash_replace_flag -- 设定现金替代标志,1为替代,0为不替代,仅允许替代状态的标的传入有效,否则无效,如不传入info或不传入该字段信息系统默认为成分股不做现金替代
  • position_replace_flag -- 设定持仓替代标志,1为替代,0为不替代,如不传入info或不传入该字段信息按position参数的设定进行计算
  • limit_price -- 设定委托价格,如不传入info或不传入该字段信息按price_style参数的设定进行计算

返回

dict[str:str]:

  • 创建订单成功,正常返回一个dict类型字段, key为股票代码,values为Order对象的id
  • 失败则返回空dict{}
md
{
    '600010.SS': '34e6733d26c14056b2096cafdec253b2',
    '600028.SS': '4299f7ad527842dd89f2a04cef48b935',
    '600030.SS': '1729b80b107d408d882a39814fef667d',
    '600031.SS': 'c17f28961d1248f0b914c62f2e44cd13',
    '600036.SS': 'ea7274a4e06349308f552d60181bbec8',
    '600048.SS': 'bd69c204a653483e975d2914c5fe5705',
    '600104.SS': 'ac8a890df68c453fb93333e19f58be91',
    '600111.SS': '9c9c5f604c2d43d396c811189699f072'
}

示例

python
def initialize(context):
    g.security = get_Ashares()
    set_universe(g.security)

def handle_data(context, data):
    #ETF成分券篮子下单
    etf_basket_order('510050.SS' ,1, price_style='S3',position=True)
    stock_info = {'600000.SS':{'cash_replace_flag':1,'position_replace_flag':1,'limit_price':12}}
    etf_basket_order('510050.SS' ,1, price_style='S2',position=False, info=stock_info)

etf_purchase_redemption

中文名

ETF基金申赎接口

接口说明

该接口用于单只ETF基金申赎。

接口定义

python
etf_purchase_redemption(etf_code,amount,limit_price=None)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  • 对接jz_ufx、ATP、云订柜台不支持该函数。

参数

etf_code

  • 类型: str

单支ETF代码,必填字段

amount

  • 类型: int

基金申赎数量, 正数表示申购, 负数表示赎回,必填字段

limit_price

  • 类型: float
  • 默认: None

买卖限价,选填字段,不填时,获取行情快照数据最新价报单

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = '510050.XSHG'
    set_universe(g.security)

def handle_data(context, data):
    #ETF申购
    etf_purchase_redemption('510050.XSHG',900000)
    #ETF赎回
    etf_purchase_redemption('510050.XSHG',-900000,limit_price = 2.9995)

monetary_fund_purchase_redemption

中文名

货币基金申赎

接口说明

该接口用于单只货币基金申赎。

接口定义

python
monetary_fund_purchase_redemption(fund_code, purchase_value=None, redemption_amount=None)

使用场景

❌研究 ❌回测 ✅交易

参数

fund_code

  • 类型: str

单支货币基金代码,必填字段

purchase_value

  • 类型: int
  • 默认: None

申购资金,入参必须为正值,选填字段,与redemption_amount选其一传值

redemption_amount

  • 类型: int
  • 默认: None

赎回数量,入参必须为正值,选填字段,与purchase_value选其一传值

返回

str|None:

  • 创建订单成功,则返回订单编号。对应Order对象中的id
  • 创建订单失败,返回None

示例

python
def initialize(context):
    g.security = '519888.XSHG'
    set_universe(g.security)

def handle_data(context, data):
    # 货币基金申购1000元
    monetary_fund_purchase_redemption(g.security, purchase_value=1000)
    # 货币基金赎回1份
    monetary_fund_purchase_redemption(g.security, redemption_amount=1)

ipo_stocks_order

中文名

新股一键申购

接口说明

该接口用于一键申购当日全部新股。

接口定义

python
ipo_stocks_order(submarket_type=None, black_stocks=None)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  1. 对接jz_ufx不支持该函数

  2. 申购黑名单的股票代码必须为申购代码,代码可以是6位数(不带尾缀),也可以带尾缀入参,比如:black_stocks='787001'或black_stocks='787001.SS'。

参数

submarket_type

  • 类型: int

[申购代码所属市场]{},选填字段,不传时默认申购全部新股

black_stocks

  • 类型: str/list

黑名单股票,可以是单个股票或者股票列表,传入的黑名单股票将不做申购,选填字段,不传时默认申购全部新股

返回

dict[str:dict[str:str,str:int,str:float],...]:

  • 返回dict类型,包含委托代码、委托编号、委托状态(委托失败为0,委托成功为1)、委托数量等信息
md
{'732116.SS': {'entrust_no': '205001', 'entrust_status': 1, 'redemption_amount': 1000}, '732100.SS': {'entrust_no': '205002', 'entrust_status': 1, 'redemption_amount': 2000}}

示例

python
import time
def initialize(context):
    g.security = "600570.SS"
    set_universe(g.security)
    g.flag = False

def before_trading_start(context, data):
    g.flag = False

def handle_data(context, data):
    if not g.flag:
        # 上证普通代码
        log.info("申购上证普通代码:")
        ipo_stocks_order(submarket_type=0)
        time.sleep(5)
        # 上证科创板代码
        log.info("申购上证科创板代码:")
        ipo_stocks_order(submarket_type=1)
        time.sleep(5)
        # 深证普通代码
        log.info("申购深证普通代码:")
        ipo_stocks_order(submarket_type=2)
        time.sleep(5)
        # 深证创业板代码
        log.info("申购深证创业板代码:")
        ipo_stocks_order(submarket_type=3)
        time.sleep(5)
        # 可转债代码
        log.info("申购可转债代码:")
        ipo_stocks_order(submarket_type=4)
        time.sleep(5)
        g.flag = True

neeq_ipo_stocks_order

中文名

北交所新股申购(股票)

接口说明

该接口用于申购当日北交所新股。

接口定义

python
neeq_ipo_stocks_order(order_info)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  1. 不支持两融账户申购北交所新股。

参数

order_info

  • 类型: dict[str:int,str:int,...]

委托信息(dict类型),key为申购代码(str),value为申购数量(int),如:

md
{"889913.NEEQ":1000, "889920.NEEQ":2000}

返回

dict[str:dict[str:str,str:int,str:float],...]:

  • 返回dict类型,包含委托代码、委托编号、委托状态(委托失败为0,委托成功为1)、委托数量等信息
md
{
    '889913.NEEQ': {
        'entrust_no': '206001',
        'entrust_status': 1,
        'redemption_amount': 800
    },
    '889920.NEEQ': {
        'entrust_no': '206002',
        'entrust_status': 1,
        'redemption_amount': 1000
    }
}

示例

python
def initialize(context):
    g.flag = False

def before_trading_start(context, data):
    g.flag = False

def handle_data(context, data):
    if not g.flag:
        # 获取北交所新股申购标的
        info = get_ipo_stocks()
        stock_list = info['北交所代码']
        # 创建北交所新股申购委托信息
        order_info = {}
        for stock in stock_list:
            order_info[stock] = 1000
        # 北交所新股申购
        neeq_ipo_stocks_order(order_info)
        g.flag = True

现货查询类接口

get_etf_list

中文名

获取ETF代码

接口说明

该接口用于获取柜台返回的可申赎ETF代码列表和可交易ETF代码列表。

接口定义

python
get_etf_list(qry_type=None, date=None)

使用场景

✅研究 ✅回测 ✅交易

注意事项

  1. 当qry_type入参为'redeem'时,仅支持交易场景使用,且仅支持获取交易日当日的数据,在此场景下date入参无效;

  2. 对接jz_ufx、ATP、云订柜台不支持;

参数

qry_type

  • 类型: str
  • 默认: None

查询类型,'redeem'-可申赎标的查询、'trade'-可交易标的查询,选填字段,默认值为'redeem'

date

  • 类型: str
  • 默认: None

查询日期,支持的日期格式为YYYYmmdd,选填字段,不传时默认获取的是当前交易日的数据

返回

list[str,...]:

  • 正常返回一个list类型对象,包含所有ETF代码
  • 异常返回空list,如[]
md
['510010.SS', '510020.SS', '510030.SS', '510050.SS', '510060.SS', '510180.SS', '510300.SS', '510310.SS', '510330.SS', '511800.SS', '511810.SS', '511820.SS', '511830.SS', '511880.SS', '511990.SS', '512010.SS', '512510.SS', '159001.SZ', '159003.SZ', '159005.SZ', '159901.SZ', '159903.SZ', '159905.SZ', '159906.SZ', '159909.SZ', '159910.SZ', '159919.SZ', '159923.SZ', '159923.SZ', '159924.SZ', '159925.SZ', '159927.SZ', '159928.SZ', '159929.SZ']

示例

python
def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 获取可申赎ETF代码列表
    etf_code_list = get_etf_list()
    log.info('可申赎ETF列表为%s' % etf_code_list)
    # 获取可交易ETF代码列表
    etf_code_list = get_etf_list(qry_type='trade')
    log.info('可交易ETF列表为%s' % etf_code_list)

get_etf_info

中文名

获取ETF信息

接口说明

该接口用于获取单支或者多支ETF的信息。

接口定义

python
get_etf_info(etf_code)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  • 对接jz_ufx、ATP、云订柜台不支持该函数

参数

etf_code

  • 类型: list[str]/str

  • 单支ETF代码或者一个ETF代码的list,必填字段

返回

dict[str:dict[...]]:

  • 正常返回一个dict类型字段,包含每只ETF信息,key为ETF代码,values为包含etf信息的dict
  • 异常返回空dict,如{}
md
{
    '510020.XSHG': {
        'nav_percu': 206601.39,
        'redeem_max': 0.0,
        'nav_pre': 0.207,
        'report_unit': 1000000,
        'max_cash_ratio': 0.4,
        'cash_balance': -813.75,
        'etf_redemption_code': '510021',
        'pre_cash_component': 598.39,
        'allot_max': 0.0,
        'publish': 1
    }
}

返回结果字段介绍:
    etf_redemption_code -- 申赎代码(str:str);
    publish -- 是否需要发布IOPV(str:int), 1-需要发布,0-不需要发布;
    report_unit -- 最小申购、赎回单位(str:int);
    cash_balance -- 现金差额(str:float);
    max_cash_ratio -- 现金替代比例上限(str:float);
    pre_cash_component -- T-1日申购基准单位现金余额(str:float);
    nav_percu -- T-1日申购基准单位净值(str:float);
    nav_pre -- T-1日基金单位净值(str:float);
    allot_max -- 申购上限(str:float);
    redeem_max -- 赎回上限(str:float);

示例

python
def initialize(context):
    g.security = '600570.XSHG'
    set_universe(g.security)

def handle_data(context, data):
    #ETF信息
    etf_info = get_etf_info('510020.XSHG')
    log.info(etf_info)
    etfs_info = get_etf_info(['510020.XSHG','510050.XSHG'])
    log.info(etfs_info)

get_etf_stock_list

中文名

获取ETF成分券列表

接口说明

该接口用于获取目标ETF的成分券列表。

接口定义

python
get_etf_stock_list(etf_code)

使用场景

❌研究 ❌回测 ✅交易

参数

etf_code

  • 类型: str

  • 单支ETF代码,必填字段

返回

list[str,...]:

  • 正常返回一个list类型字段,包含每只etf代码所对应的成分股
  • 异常返回空list,如[]
md
['600000.SS', '600010.SS', '600016.SS']

示例

python
def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def before_trading_start(context, data):
    #ETF成分券列表
    stock_list = get_etf_stock_list('510020.SS')
    log.info(stock_list)

def handle_data(context, data):
    pass

get_etf_stock_info

中文名

获取ETF成分券信息

接口说明

该接口用于获取ETF成分券信息。

接口定义

python
get_etf_stock_info(etf_code,security)

使用场景

❌研究 ❌回测 ✅交易

注意事项

  • 对接jz_ufx、ATP、云订柜台不支持该函数

参数

etf_code

  • 类型: str

  • 单支ETF代码,必填字段

security

  • 类型: list[str]/str

  • 单只股票代码或者一个由多只股票代码组成的列表,必填字段

返回

dict[str:dict[...]:

  • 正常返回一个dict类型字段,包含每只etf代码中成分股的信息
  • 异常返回空dict,如{}
md
{
    '600000.XSHG': {
        'cash_replace_flag': '1',
        'replace_ratio': 0.1,
        'is_open': 1,
        'code_num': 4700.0,
        'replace_balance': 0.0
    }
}

    code_num -- 成分券数量(str:float);
    cash_replace_flag -- 现金替代标志(str:str);
    replace_ratio -- 保证金率(溢价比率),允许现金替代标的此字段有效(str:float);
    replace_balance -- 替代金额,必须现金替代标的此字段有效(str:float);
    is_open -- 停牌标志,0-停牌,1-非停牌(str:int);

示例

python
def initialize(context):
    g.security = '600570.XSHG'
    set_universe(g.security)

def handle_data(context, data):
    #ETF成分券信息
    stock_info = get_etf_stock_info('510050.XSHG','600000.XSHG')
    log.info(stock_info)
    stocks_info = get_etf_stock_info('510050.XSHG',['600000.XSHG','600036.XSHG'])
    log.info(stocks_info)

get_ipo_stocks

中文名

获取当日IPO申购标的

接口说明

该接口用于获取当日IPO申购标的信息。

接口定义

python
get_ipo_stocks()

使用场景

❌研究 ❌回测 ✅交易

返回

{str:[],str:[],...}:

  • 正常返回一个dict类型对象,key为各个分类市场,value为市场对应的申购代码列表
  • 异常返回空dict,如{}
md
{'深证普通代码': ['002952.SZ', '072318.SZ'], '深证创业板代码': ['300765.SZ'], '上证普通代码': ['732116.SS', '732136.SS', '732367.SS', '732378.SS', '732380.SS', '732616.SS', '780086.SS', '780211.SS', '780860.SS', '718001.SS', '783012.SS', '783127.SS'], '可转债代码': ['718001.SS', '783012.SS', '783127.SS', '072318.SZ'], '上证科创板代码': ['787006.SS'], '北交所代码': ['889113.NEEQ']}

分类市场明细如下:
    上证普通代码;
    上证科创板代码;
    深证普通代码;
    深证创业板代码;
    可转债代码;
    北交所代码;

示例

python
def initialize(context):
    g.security = '600570.SS'
    set_universe(g.security)

def handle_data(context, data):
    # 当日可转债IPO申购标的
    ipo_stocks = get_ipo_stocks().get('可转债代码')
    log.info('可转债IPO申购标的列表为%s' % ipo_stocks)

说明

接口支持的业务范围以及支持在引擎的哪些流程函数中调用,详见 接口列表