券商官方的接口,个人账户可申请,入金门槛低,接入文档完善,技术支持好的,经过我们筛选后,只有一家符合,会编程,有基础,只是需要API接口的朋友不用看这些内容,不会写程序的朋友可能需要学习或者找人代写交易策略,这不是什么现成的自动化程序

注意哦,要么你自己会写程序,要么你找人帮你写,股票券商肯定不会帮你,再简单的需求都不会帮你写,严重违规的!接口使用过程中遇到问题可以帮你解决,交易实现过程只能你自己或自己认可的第三方来做。

上一篇说的是查询订单状态用法,用到了死循环while True,回顾一下,循环查询订单状态,获取到的返回值是一个订单组对象,迭代出要查询的订单号,判断订单状态更新后或者说完全成交后,跳出循环,执行下一步。​

while True:
    订单组 = 交易对象.query_stock_orders(账户对象)
    for 订单 in 订单组:
        if 订单.order_id == 订单号 and 订单.order_status == 56:
            break
    time.sleep(1)

之前我们下单的时候只是判断了想要买入的股票价格,如果价格到了设定的条件就执行买入,但是如果账户资金不足就会下单失败,影响策略后续的操作,或者我们想要根据当前资金的比例来决定下单量,那就要先获取账户的资产情况。

资产信息 = 交易对象.query_stock_asset(账户对象)
print('账户类型:', 资产信息.account_type,
      '资金账号:', 资产信息.account_id,
      '可用金额:', 资产信息.cash,
      '冻结金额:', 资产信息.frozen_cash,
      '持仓市值:', 资产信息.market_value,
      '总资产:', 资产信息.total_asset)

账户类型分为股票、两融、期权、期货、港股通,资金账号这个其实用不到,就是在前边设置的StockAccount('888666', 'STOCK'),可用资金和冻结资金好理解,持仓市值和总资产是随着市场变化而不断变化的。

获取了账户资产情况,可以根据资金比例决定下单量,如果下单之前需要根据当前股票已经持仓的数量和成本来确定是否执行交易,或者根据当前持仓的盈利和亏损情况,来决定是否止盈或止损,或者部分减仓。比如盈利5%就减仓一半,盈利10%就全部清仓,这些情况就要获取持仓信息。

持仓列表 = 交易对象.query_stock_positions(账户对象)
for 持仓 in 持仓列表:
    print('证券代码:', 持仓.stock_code,
          '持仓数量:', 持仓.volume,
          '可用数量:', 持仓.can_use_volume,
          '冻结数量:', 持仓.frozen_volume,
          '开仓价:', 持仓.open_price,
          '成本价:', 持仓.avg_price,
          '市值:', 持仓.market_value,
          '在途股份:', 持仓.on_road_volume,
          '昨夜拥股:', 持仓.yesterday_volume)

这个接口返回的是持仓对象的列表格式,如果没有任何持仓就返回None,列表中的项是每只股票的持仓详细信息,代码、数量、可用、冻结这些好理解。

开仓价是你首次建仓时的价格,成本价是多次买入卖出后计算得出的持仓成本价,有可能高于或低于开仓价,具体要看你补仓减仓时的数量和价格,市值也好理解,就是这只股票的当前持仓量乘以最新价,在途是成交后还没入账的部分,昨夜拥股是今天之前的持仓量,如果今天没有操作这只股票,和持仓数量是一致的。

现在,所有基础常用的接口都演示过了,掌握了这些就可以实现简单的程序化交易,避免一些人为操作的错误和情绪的影响,提高交易的速度、执行的准确性和效率。之后我们会试着分享一些基础交易策略的演示,比如均线突破,金叉买入,死叉卖出之类的,有兴趣的可以保持关注。​

还有很多不常用的接口,在你的交易策略稍微复杂的时候就会用到,新手用不到,如果你能写出完整的量化交易策略也就不会读到这里了,再次重申一下,这些内容都是基础中的基础,新手不要产生误解,以为量化交易这么简单。

即使你从头关注此系列教程,完全读懂了,也并不表示你懂量化交易了,最多就是可以实现简单的程序化交易,量化交易是非常庞大且复杂的领域,需要数学、金融、统计、计算机科学等多个学科的知识。

编程只是实现量化交易的工具,量化交易的成功与否,更多的取决于交易策略的设计。虽然Python在量化交易中有很大的优势,但其实用哪种语言不是很重要,这东西一通百通的,切换语言也不是很难,关键在于程序的逻辑。编程相对于量化交易,就像乘法口诀之于微积分,是构建复杂量化策略的基石。

量化交易除了编程技能外,金融知识是必须的,还需要数据分析和处理能力,风险管控能力,比如止损、对冲和分散投资等等,还要有敏锐的市场感知度,感受市场并持续学习和积累,你现在要做的就是先实现部分主观交易的程序化,慢慢积累和完善一套属于自己的交易策略。

好了,今天的分享就到这里,对股票量化程序自动交易感兴趣的朋友可以关注我,有任何相关问题也可以留言讨论或者私信与我交流!

----

相关文章----Python炒股自动化(简版):

python炒股自动化(0),申请券商API接口

python炒股自动化(1),量化交易接口区别

Python炒股自动化(2):获取股票实时数据和历史数据

Python炒股自动化(3):分析取回的实时数据和历史数据

Python炒股自动化(4):通过接口向交易所发送订单

Python炒股自动化(5):通过接口查询订单,查询账户资产
 

----

05-07 11:15