通达信下单接口如何执行量化策略?

在量化市场上,有很多交易系统就是通过执行量化策略来进行盈利,比如像通达信下单接口系统,其中就包括开仓、买入、止盈、止损方法与策略执行主函数等,那么执行这些策略呢?

想要了解清楚这个问题也很简单,通过通达信下单接口系统的开发文档来进行研究,如下:

(1)通达信接口API 功能概述

名称

功能

基本函数

Init

API 初始化

Deinit

API 反初始化

Logon

登录交易账户

Logoff

登出交易账户

QueryData

查询各类交易数据

QueryHistoryData

查询各类历史数据

SendOrder

委托下单

CancelOrder

委托撤单

GetQuote

获取五档报价

Repay

融资融券账户直接还款

GetExpireDate

查询 API 授权到期日期

单账户批量函数

QueryDatas

单账户批量查询各类交易数据

SendOrders

单账户批量下单

CancelOrders

单账户批量撤单

GetQuotes

单账户批量获取五档报价

多账户批量函数

QueryMultiAccountsDatas

多账户批量查询各类交易数据

SendMultiAccountsOrders

多账户批量下单

CancelMultiAccountsOrders

多账户批量撤单

GetMultiAccountsQuotes

多账户批量获取五档报价

(2)查询各类交易数据:

签名

void QueryData(int

ClientId, int Category,

char* Result, char*

ErrorInfo);

功能

查询各类交易数据

参数

ClientId

客户端 Id

Category

查询信息类别

0: 资金, 1: 股份, 2: 当日委托, 3: 当日成交, 4: 可撤单,

5: 股东代码, 6: 融资余额, 7: 融券余额, 8: 可融证券,

9: 各券商不同, 10-11: 无, 12: 可申购新股查询, 13: 新股申购额度查询,

14: 配号查询, 15: 中签查询

Result

查询结果, 需要分配 1024*1024 字节的空间

格式请参阅[Result 格式]

ErrorInfo

错误信息, 需要分配 256 字节的空间

返回值

无, 查询成功与否通过 ErrorInfo 是否为空字符串来判断

签名

void QueryDatas(int ClientId, int Category[], int Count, char* Result[], char* ErrorInfo[]);

功能

单账户批量查询各类交易数据, 通过下标区分每项查询

参数

ClientId

客户端 Id

Category[]

查询信息类别数组, 具体含义请参阅[查询信息类别]

Count

查询项数, 即数组长度

Result[]

查询结果数组, 每项结果需要分配 1024*1024 字节的空间

格式请参阅[Result 格式]

ErrorInfo[]

错误信息数组, 每项错误信息需要分配 256 字节的空间

返回值

无, 第 i 项查询成功与否通过 ErrorInfo[i]是否为空字符串来判断

(3)多账户批量查询各类交易数据:

签名

void QueryMultiAccountsDatas(int ClientId[], int Category[], int Count,

char* Result[], char* ErrorInfo[]);

功能

多账户批量查询各类交易数据, 通过下标区分每项查询

参数

ClientId[]

客户端 Id 数组

Category[]

查询信息类别数组, 具体含义请参阅[查询信息类别]

Count

查询项数, 即数组长度

Result[]

查询结果数组, 每项结果需要分配 1024*1024 字节的空间

格式请参阅[Result 格式]

ErrorInfo[]

错误信息数组, 每项错误信息需要分配 256 字节的空间

返回值

无, 第 i 项查询成功与否通过 ErrorInfo[i]是否为空字符串来判断

(4)通达信下单接口系统执行量化策略主程序如下:

1)股票交易接口进行股票量化策略类输入:

class StockStrategy:
    df = None
    open_offset_num = 5
    buy_in_offset_num = 0
    stop_win_offset_num = 0
    stop_lose_num = 0
    price_list = []
    price_stop_lose = []
    flag_buy_in = False
    need_sell_out = False
    stop_lose_rate = 3
 
    2)初始化策略类StockStrategy:
    def __init__(self, df: pd.DataFrame) -> None:
        self.df = df
 
3) 设置止损模块和止损比例:

    def set_stop_lose_rate(self, slr) -> None:
        self.stop_lose_rate = slr
 
    # 其中设置偏移量包括开仓偏移、买入偏移和止盈偏移,如需修改止损量,需重写set_stop_lose_num(self, date)方法
    def set_offset_num(self, oon: int, bion: int, swon: int) -> None:
        if oon is not None:
            self.open_offset_num = oon  # 开仓偏移量
        if bion is not None:
            self.buy_in_offset_num = bion  # 买入偏移量
        if swon is not None:
            self.stop_win_offset_num = swon  # 卖出偏移量
 
  4)最后股票自动交易下单接口返回买卖结果:
    def get_buy_sell_list(self) -> list:
        return self.stock_strategy_main()

执行示例:

猜你喜欢

转载自blog.csdn.net/Q_121463726/article/details/128324946
今日推荐