一种通过HTTP方式可部署在Linux服务器的股票交易接口探索

一种通过HTTP方式可部署在Linux服务器的股票交易接口探索,支持逆回购、两融账户

先来来演示怎么采用Python通过HTTP方式,对已经部署到Ubuntu服务器上交易接口进行操作:

import requests

# API URL
url = 'http://192.168.1.5:9527/Api/Trade'
header = {
    'User-Agent': 'Mozilla/4.0',
}

# 初始化交易接口
response = requests.post(f"{url}/TradeInit").json()
if response['code'] == 0 and '初始化完成' in response['msg']:
    # 连接交易服务器
    response = requests.post(f"{url}/Connect").json()
    if response['code'] == 0 and '已连接' in response['msg']:
        # 登录券商账户
        form_data = {
            'account': '123321',    # 券商账号
            'password': '123456',   # 密码
            'qsid': '90',           # 券商ID
            'wtid': '711',          # 营业部ID
            'islr': '0',            # 是否两融 0普通 1两融
            'type': '0',            # 登陆类型 0资金账号 1 客户号
        }
        response = requests.post(f"{url}/Login", data=form_data).json()
        if response['code'] == 0 and '登录成功' in response['msg']:
            token = response['data']['Token']
            # 查询资金股份
            body = {
                'account': '123321',    # 券商账号
                'token':token
            }
            response = requests.post(f'{url}/GetBalance', data=body, headers=header).json()
            print(response)

            # 查询持仓
            form_data = {
                'account': '123321',    # 券商账号
                'token':token
            }
            response = requests.post(f"{url}/GetPosition", data=form_data).json()
            if response['code'] == 0:
                print(response)
        else:
            print(f'登录失败:{response}')
    else:
        print(f'连接服务器失败:{response}')
else:
    print(f'初始化失败:{response}')

执行成功后得到返回查询的数据,每个查询的响应速度基本控制在200ms内,这个速度是非常快的,是界面操作无法相比的:
在这里插入图片描述

获取证券五档行情报价

URLApi/Trade/StockQuotes
功能查询证券五档报价
参数1account资金账户号
参数2token账户会话Token
参数3code证券代码
返回值
查询000001五档报价
返回数据:
买盘卖盘中所示数据结构,根据索引起始位置0为一档报价,位置1为二档报价以此类推。
{
    "data": {
        "股票代码": "000001",
        "股票名称": "平安银行",
        "现价": "10.30",
        "涨停": "11.31",
        "跌停": "9.25",
        "买盘": "[[10.29,4648.0],[10.28,3836.0],[10.27,3308.0],[10.26,4895.0],[10.25,8222.0]]",
        "卖盘": "[[10.3,108.0],[10.31,3190.0],[10.32,4292.0],[10.33,5006.0],[10.34,3511.0]]"
    },
    "count": 7,
    "code": 0,
    "msg": ""
}

获取持仓

URLApi/Trade/GetPosition
功能查询证券五档报价
参数1account资金账户号
参数2token账户会话Token
返回值

获取资金股份

URLApi/Trade/GetBalance
功能查询证券五档报价
参数1account资金账户号
参数2token账户会话Token
返回值

概述

在当前的股票交易市场中,自动化交易技术主要服务于专业投资机构,而针对普通投资者的自动化交易解决方案相对匮乏。以下是对现有自动化交易解决方案的分析和对理想方案的展望:

  1. 专业服务与门槛:部分证券公司提供的自动化交易API服务,虽然允许投资机构通过支付费用实现自动化交易,但通常要求将交易服务器部署在指定位置,这增加了操作的复杂性和成本。

  2. 高端交易平台的局限性:一些高端交易平台如QMT/Ptrader等,尽管提供自动化交易功能,但往往设有较高的资金门槛(如100万元起),并且操作的灵活性有限,这使得大多数普通投资者难以满足条件。

  3. 个人投资者的替代方案:由于上述限制,许多个人投资者转而采用半自动化的交易方法,如通过界面控制模拟操作。例如,使用Python的easytrader库进行自动化交易,尽管它在散户量化交易中广泛使用,但存在稳定性问题,且不能在服务器上稳定运行。此外,easytrader主要用于操作同花顺界面,经常会遇到验证码弹出的问题,处理起来并不稳定,导致失败率较高。

  4. 系统依赖性与远程操作的挑战:目前大多数自动化交易解决方案依赖于Windows操作系统,并且需要在可视化窗口环境下运行。尝试将这些解决方案部署到云服务器进行远程操作时,会遇到诸多限制,如远程控制界面不能关闭,否则会导致easytrader失效。

  5. 虚拟机与券商限制:此外,大多数券商对虚拟机操作有限制,这进一步阻碍了软件在云服务器上的部署和运行。

  6. DLL交易接口的专业性与成本:虽然存在通过DLL接口实现交易的方法,这种方法可以避免交易界面的需求,但它们通常需要更高级的编程技能,并且伴随着高昂的年费成本。

  7. 系统兼容性与性能问题:大多数DLL交易接口基于Windows系统,特别是Win32的Dll,这在资源占用和运行效率上存在不足。同时,Win32的DLL在Linux系统中不兼容,限制了跨平台部署的可能性。

理想方案的展望:鉴于上述挑战,市场迫切需要一种新的自动化交易解决方案,该方案应具备以下特点:

  • 低资源占用:能够在资源消耗较低的环境下运行,提高运行效率。
  • 快速响应:能够提供快速的交易执行和市场响应能力。
  • 跨平台兼容性:能够在不同的操作系统上运行,包括但不限于Windows和Linux,以满足不同用户的需求。
  • 易于使用:提供用户友好的界面和简化的操作流程,降低技术门槛。
  • 成本效益:以合理的成本提供高质量的服务,使普通投资者也能享受到自动化交易的便利。

综上所述,开发一种新的自动化交易解决方案,旨在克服现有技术的局限性,为普通投资者提供更高效、稳定且易于使用的交易工具,将是行业发展的重要方向。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaoYuanTech

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值