3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,进行融资融券(两融)交易需要使用专门的两融交易类函数与查询类函数。以下是实现自动化融资买入及额度查询的详细步骤与代码示例:
信用资产查询:get_margin_assert()
fin_enable_quota(融资可用额度)、fin_compact_balance(融资合约金额)等属性。最大可融资买入数量查询:get_margincash_open_amount(security, price=None)
{'600570.SS': 10000}。融资买入委托:margincash_open(security, amount, limit_price=None, market_type=None)
security:股票代码(如 '600570.SS')。amount:买入数量(正整数)。limit_price:委托限价(可选)。market_type:市价委托类型(可选,如 0-对手方最优,1-最优五档即时成交剩余转限价等)。以下策略展示了如何在盘中判断指标后,先查询信用账户额度与股票可买数量,再执行 margincash_open 融资买入:
def initialize(context):
# 设置两融标的股票
g.security = '600570.SS'
set_universe(g.security)
g.flag = False
def handle_data(context, data):
if not g.flag:
# 1. 检查股票是否在最新的融资标的列表中
margin_stocks = get_margincash_stocks()
if g.security not in margin_stocks:
log.info("%s 不在融资标的列表中" % g.security)
return
# 2. 查询信用账户资产与融资可用额度
margin_assert = get_margin_assert()
fin_enable_quota = margin_assert.get('fin_enable_quota', 0)
log.info("当前融资可用额度: %s" % fin_enable_quota)
# 3. 查询目标股票最大可融资买入数量
open_amount_dict = get_margincash_open_amount(g.security)
if open_amount_dict:
max_amount = open_amount_dict.get(g.security, 0)
log.info("%s 最大可融资买入数量: %s" % (g.security, max_amount))
# 4. 执行融资买入(以买入 100 股为例,或根据 max_amount 按需下单)
if max_amount >= 100:
# 限价下单示例
current_price = data[g.security]['close']
order_id = margincash_open(g.security, 100, limit_price=current_price)
log.info("提交融资买入订单,订单ID: %s" % order_id)
g.flag = True
limit_price 和 market_type,系统将默认采用行情快照最新价报单。get_margin_assert() 确认 fin_enable_quota(可用额度)和 enable_bail_balance(可用保证金),避免因风控不足导致柜台废单。