量化交易系统开发代码部署方案丨合约量化系统开发技术成熟源码流程

简介: 量化交易系统开发代码部署方案丨合约量化系统开发技术成熟源码流程

回调函数其实就是在一个函数里面调用了另一个函数,而调用哪个函数是由调用回调函数的人决定,举个简单例子:

int add(int a,int b)
{

return a+b;

}
int sub(int a,int b)
{

return a-b;

}
typedef int (*pfunc)(int a,int b);
int func_callback(pfunc p,int a,int b)
{

return(*p)(a,b);

}
void main(void)
{

func_callback(add,1,2);//return 3
func_callback(sub,2,1);//return 1

}
复制
这里的func_callback就是回调函数,它的执行结果根据传进来的函数指针p的实际指向函数不同而不同,即传入加法add得到的是加法计算,传入减法sub得到的是减法计算结果。

回调函数的使用使得上层调用时仅需要同一个接口(func_callback)即可,而根据传入的参数不同而调用到不同的底层结果。

例如add和sub是操作系统或BSP提供的一个功能。我们希望上层应用在调用时具有拓展性,即如果底层新增了新的功能例如乘除法(mul,div),我们无需修改上层应用的接口,仅需在传入参数时增加新的参数(mul,div)即可。这样底层提供的API具有了通用性,应用层无需修改调用api的接口即可增加新的使用方式。

回调函数还有一个很好用的功能是和表驱动法结合:

表驱动法
表驱动法顾名思义就是类似数据库查表的方式实现功能,简单地说,将程序中的分支判断变为查表操作,简单例子:

char getCharfromHex(unsigned char ucNum)
{

char ucNumChar = 0;
if(ucNum < 10)
{
    ucNumChar = ucNum + '0';
}
else if(ucNum == 10)
{
    ucNumChar = 'A';
}
else if(ucNum == 11)
{
    ucNumChar = 'B';
}
else if(ucNum == 12)
{
    ucNumChar = 'C';
}
else if(ucNum == 13)
{
    ucNumChar = 'D';
}
else if(ucNum == 14)
{
    ucNumChar = 'E';
}
else if(ucNum == 15)
{
    ucNumChar = 'F';
}
else
{
    return 0;    
}
return ucNumChar;

}
复制
上面的操作是将一个16进制数变为ASCII表示的字符,如果使用表驱动,则可以实现为:

CHAR aNumChars[] = {'0', '1', '2', /3~9/'A', 'B', 'C', 'D', 'E', 'F'};
CHAR ucNumChar = aNumChars[ucNum % sizeof(aNumChars)];
复制
这样一个较多的if else或者switch case语句变为简单的查表操作。

使用表驱动法,则可以将很多功能接口进行排列后按查表方式进行执行,当功能接口较多时能够比switch语句更加简洁。

由表驱动和回调函数组成的通用功能接口
首先将对外的功能进行一个排列,构造一个功能接口表,并对功能接口编码(dispatch.h):

typedef enum {

ChipCheck = 0x41,
DataTrans = 0x01,
/*others*/
DataSave = 0x77,

} FunctionCode_t;
复制
根据功能函数的格式,声明一个函数指针(dispatch.h):

typedef u32 (pFunc)(u8 cmd_in, u8 *cmd_out);
复制
实现功能函数,注意功能函数的接口尽量保持一致,可以通过传入一个通用的结构体或指针数组方式,具体功能处理上的区别接口内部对数据进行细分处理。

头文件(dispatch.h):

u32 func_ChipCheck(u8 cmd_in, u8 cmd_out);
u32 func_DataTrans(u8 cmd_in, u8 cmd_out);
u32 func_DataSave(u8 cmd_in, u8 cmd_out);

相关文章
|
10月前
|
区块链 存储 数据库
量化合约跟单系统开发源码部署|量化交易系统开发(成熟案例)
在去中心化架构下,没有中心化机构的垄断,每个节点都是独立的
|
10月前
|
机器人
量化交易丨交易所系统开发策略规则/逻辑方案/成熟技术/开发案例/源码部署
  “量化交易”有两层含义,一种是从狭义上的讲法,中指量化交易的内容,将交易的条件转变为程序的意思,自动下单。二是从广义上讲,是指系统交易的方法,一个整合交易的系统,按照一系列的交易条件,智能化的辅助决策系统体系,把丰富的从业经验与交易条件相符合,交易过程管理好风险控制。
|
8月前
|
机器学习/深度学习 数据采集 监控
合约量化系统开发策略详细丨合约量化系统开发规则指南/成熟技术/案例设计/方案项目/源码功能
合约量化系统的开发策略指的是设计和实现用于执行自动化交易的策略的方法和原则
|
10月前
|
存储 安全 区块链
秒合约系统开发|量化合约跟单系统开发(成熟源码)案例
但是也只是在非常具体的情况下。可扩展性问题使得它并不能被广泛的应用
|
10月前
|
安全 API
永续合约丨交易所系统开发步骤详细/案例规则/成熟技术/方案介绍/需求分析/源码程序
The price of a perpetual contract is generated by trading between the long and short sides on the exchange, determined based on market supply and demand and the trader's commission price. The exchange will match buying and selling orders based on the entrustment of both long and short parties to mee
|
11月前
|
存储 机器人 大数据
量化交易机器人系统开发(开发策略)及案例丨数字货币区块链交易所系统开发详细项目/方案设计/开发逻辑/源码版
  区块链的核心技术之一就是公开且透明的交易信息。一般情况下,在区块链内产生、流转和存储的信息是对所有节点用户开放的,其高度的透明化也使得区块内的所有人都能够查看数据的所有相关信息同时使用其应用。因此,区块链技术在信息共享与数据交换领域具有一定的优势。
|
算法 机器人 区块链
数字货币量化机器人系统开发(项目案例)/功能说明/逻辑方案/源码平台
  简单地说,量化交易机器人就是能够自动执行交易策略的交易软件。它借助于计算机技术和数学模型,对市场行情进行分析预测,并根据程序设定的规则和条件自动执行交易策略,完成交易操作。Compared with traditional manual trading,quantitative trading robots have faster trading speed,lower transaction costs,and higher trading efficiency.
|
人工智能 算法 PyTorch
量化合约系统开发(成熟技术)丨合约量化系统开发(项目策略)及源码详解
  人工智能(Artificial Intelligence,简称AI)是指计算机系统在完成类似人类智力所需的任务时所表现出来的能力。它是一种复杂的技术,通过将大量的数据输入到算法中进行学习,不断调整和改进自己的算法,从而不断优化其性能。
|
人工智能
量化合约系统开发(案例项目)丨合约量化系统开发(方案成熟)
 Artificial intelligence(AI)refers to the ability of computer systems to perform tasks similar to human intelligence.It is a complex technology,which constantly adjusts and improves its own algorithm by inputting a large amount of data into the algorithm for learning,so as to continuously optimize i
|
存储 5G
量化合约系统开发(策略源码)丨合约量化系统开发(成熟项目)
 With the continuous progress of information technology and communication technology,we have entered the era of intelligent industry.In this era,the application of various intelligent technologies is driving the upgrading and transformation of industry,and new generation information technologies suc