自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天山老妖

量化IT技术

  • 博客(371)
  • 资源 (9)
  • 收藏
  • 关注

原创 高频交易低延迟技术

高频交易(High Frequency Trading)是指从极为短暂的市场变化(市场的微观特性)中寻求获利的程序化交易,如某种证券买入价和卖出价差价的微小变化,或者某只股票在不同交易所之间的微小价差。HFT高频交易。

2023-12-14 11:24:12 3502 1

原创 高频交易低延迟技术直播预告

直播平台:小红书。

2025-01-25 09:29:01 164

原创 SSH远程登录无响应解决

原因:VPN虚拟网卡MTU大于远程服务器网络的MTU。SSH密钥交换阶段一次发送的数据一般大于 1500 字节,因此至少填满了一个MTU;通过VPN虚拟网卡发出密钥交换信息,因为大于远程服务器网络的MTU,而被丢弃。现象:使用VPN连接某台服务器,VPN连接成功,telnet 22端口正常,说明网络链路正常,SSH服务正常。但SSH登录时一直卡住。解决方案:将VPN虚拟网卡的MTU设置为1200后,不会超过远程服务器网络设定的MTU,因此可以正常交换密钥。

2024-12-31 16:02:00 332

原创 Strategy模块

Strategy类是用户开发回测策略的基类,定义了一系列的回调函数,用户可以继承Strategy类并重写回调函数,在回调函数内编写具体的交易逻辑。自定义Strategy的流程:继承Strategy定义类:定义类及相关参数(params参数都会转化为属性直接访问),用于更改交易策略中变量/参数的值,可用于参数调优。params = (__init__函数初始化数据:必选,定义构建策略买卖信号所需的数据和指标,在其中声明的任何指标都会在next()方法调用之前进行计算。

2024-12-07 17:41:58 1171

原创 DataFeed模块

Backtrader中Feeds模块提供了灵活的数据加载和处理功能,支持多种数据源和格式,可以添加一个或者多个股票数据。Feed是一个数据源对象,负责向策略提供时间序列数据,如股票的开盘价、收盘价、成交量等。每个Feed对象代表一个数据源,可以是本地的CSV文件,也可以是实时的股票数据。GenericCSVData:用于加载通用的CSV格式数据。YahooFinanceData:用于从Yahoo Finance下载数据。PandasData:用于从Pandas DataFrame加载数据。

2024-12-07 17:40:36 931

原创 Cerebro核心模块

Cerebro是backtrader的核心控制系统,构建了策略回测的基础框架,具体细节则在组件内部实现。收集所有的输入(data feeds),执行者(strategies),观测者(Observers)、评价者(Analyzers)以及文档(Writers),保证系统在任何时候都正常运行。执行回测或者实时数据输入以及交易。返回结果。画图。

2024-11-30 12:16:12 727

原创 BackTrader核心特性

Lines是BackTrader中一个非常重要的概念,每个Strategy、Indicator、Analyzer、Observer实例都会包括一个或多个line,每个line是一系列数据,如Open(开盘价), High(最高价), Low(最低价), Close(收盘价), Volume(成交量), OpenInterest(持仓量,没有则设置为0)等。BackTrader中,不仅输入的数据是数据源,任何indicator(指标)以及任何对输入数据的操作(加,减,比较,求和,求平均等)结果均为数据源。

2024-11-30 12:13:55 1093

原创 CRTP静态多态

CRTP(Curiously Recurring Template Pattern,奇异递归模板模式)是C++的一种设计模式,特点是利用模板和继承,在基类关联派生类模板参数,来实现静态多态性,不需要使用虚函数实现多态特性。定义一个模板基类Shape,接收一个派生类作为模板参数。public:Shape基类中,area方法内部调用了派生类的computeArea方法,用static_cast可以确保在编译时进行类型检查。定义两个派生类Circle和Rectangle。

2024-10-28 08:43:54 307

原创 BackTrader快速入门

品种多:股票、期货、期权、外汇、数字货币;周期全:Ticks级、秒级、分钟级、日度、周度、月度、年度;速度快:pandas矢量运算、多策略并行运算;组件多:内置Ta-lib技术指标库、PyFlio分析模块、plot绘图模块、参数自动优化等;扩展灵活:可以随意搭配组件扩展开发,支持pyflio、empyrica分析模块库、alphalens多因子分析模块库等;可以集成TensorFlow、PyTorch和Keras等机器学习、神经网络分析模块。社区活跃、帮助文档齐全。

2024-10-28 08:37:28 1995

原创 多进程并行量化回测框架

【代码】多进程并行量化回测框架。

2024-10-15 08:28:23 292

原创 百亿私募也要去白嫖高频交易低延迟技术?

2024年5月28日通过腾讯会议远程面试了一家技术比较菜的百亿私募(面试官包括老板和技术负责人),中间巴拉巴拉了一堆项目经历,面试官仔细询问了高频交易系统的低延迟优化问题,把《高频交易低延迟技术之剑诀纲要》中部分内容给他们讲了一遍,从低延迟日志库到高性能哈希表,他们似乎了解不多,技术负责人还记了笔记(有听到用笔记录的声音),三天后主动询问结果,HR回复没有通过。量化IT技术在此郑重声明,高频交易低延迟技术并不需要白嫖,优化路径都是公开的,高频交易低延迟技术之剑诀纲要如下:

2024-06-01 11:51:25 706

原创 C++高频交易低延迟技术性能测试

哈希表:日志组件:SolarFlare X2522低延迟网卡性能测试:内存分配策略:无锁队列性能对比:字符串格式化:

2024-05-07 08:00:00 1101

原创 StrikeBoarder量化打板交易系统

StrikeBoarder量化打板交易系统是专为打板族设计的程序化打板交易系统,计划支持自动算法打板和手动打板,对接券商极速交易柜台,拥有低延迟的极速性能,让打板不再慢人一步。各位打板的老铁们有什么打板功能的建议可以留言评论区或私信博主。

2024-05-07 08:00:00 1453 4

原创 期货柜台订单处理

CTP:盛立REM:

2024-05-06 09:18:59 477

原创 股票柜台订单处理

XTP:

2024-05-06 09:15:44 436

原创 QuantFabric组件架构设计

XTrader:XWatcher:XServer:XMonitor:

2024-05-06 09:05:05 559

原创 十大经典排序算法

堆排序如果要求升序则建立大顶堆,降序则建立小顶堆,堆顶元素为最大或者最小的元素,将堆顶元素与最后一个位置的元素交换,再将剩余元素还原成大小顶堆,每一趟都会选出一个未排序中的最大或者最小值放到最终位置。基数排序是对桶排序的升级版,从低位开始将待排序的数按照低位的值放到相应的编号为0~9的桶中。堆排序包括建堆和排序两个操作,建堆过程的时间复杂度是O(n),排序过程的时间复杂度是O(nlogn),所以堆排序整体的时间复杂度是O(nlogn)。大顶堆是每个节点都大于等于其子树节点的堆,根是最大值,用于升序排序。

2024-02-29 17:01:17 998

原创 C++11智能指针

weak_ptr指针通常不单独使用,只能和shared_ptr类型指针搭配使用。std::weak_ptr是C++11引入的一个不拥有所有权的智能指针,与std::shared_ptr配合使用,主要用于解决循环引用问题、观察std::shared_ptr对象而不影响引用计数,以及在需要时提供对底层资源的访问。shared_ptr的类型转换应该使用专门用于shared_ptr类型转换的接口,如果使用一般的static_cast进行的转换将会导致转换后的指针无法再被shared_ptr对象正确管理。

2024-02-29 16:49:35 1091

原创 数据结构——查找算法

当查找某一元素的时候,首先通过哈希函数计算其哈希地址,然后比较该地址的值是否等于目标值,如果相等则查找结束,否则利用处理冲突的方法确定新的地址,再进行比较。如果哈希地址为空,则查找失败。分块查找(索引顺序查找)是对顺序查找的一种改进,是一种介于顺序查找和二分查找之间的查找算法,分块查找的基本思想是:首先查找索引表,可用二分查找或顺序查找,然后在确定的块中进行顺序查找。块内查找的操作采用顺序查找的方式。分块查找要求表中每个块之间是有序的,即前块中最大关键字必须小于后块中的最小关键字,但块内元素的排列可无序。

2024-02-29 16:40:28 2164

原创 HFTrader高频交易系统架构

HFTrader机构版:对于拥有Colo托管交易服务器完整使用权限的交易机构、团队或个人用户,HFTrader高频交易系统由XMonitor监控客户端、XServer中间件、XWatcher监控组件、HFTrader交易组件四个组件构成。HFTrader轻量版:对于只拥有Colo托管交易服务器部分资源(如只能使用2个CPU)使用权限的个人用户(通常只有一个交易账户),HFTrader高频交易系统由XMonitor监控客户端、XServer中间件、HFTrader交易组件三个组件构成。

2023-03-27 21:04:37 3497

原创 Linux开发环境——CentOS7安装Qt5.12.12

【代码】Linux开发环境——CentOS7安装Qt5.12.12。

2022-10-10 20:38:43 11022 1

原创 Linux开发环境——VSCode远程开发

注意:不要升级VSCode客户端,由于升级VSCode版本可能会导致VSCode客户端与运行在Linux服务器器的vscode-server服务端不兼容,并且由于下载升级vscode-server需要通过国际网络,因此可能很容易导致VSCode客户端升级后连接vscode-server服务端一直处于失败状态。

2022-10-10 20:32:53 4338

原创 Linux开发环境——SSH工具

【代码】Linux开发环境——SSH工具。

2022-10-10 20:28:18 5455

原创 QuantFabric量化交易系统开源发布

QuantFabric是基于Linux/C++开发的中高频量化交易系统,支持中金所、郑商所、大商所、上期所、上海国际能源中心的期货业务品种交易,支持上交所、深交所的股票、债券品种交易。

2022-10-04 12:03:12 5241 2

原创 Hello CTP(一)——期货业务

穿透式监管基于证监会《关于进一步加强期货经营机构客户交易终端信息采集有关事项的公告》及期货市场监控中心《期货公司客户交易终端信息采集及接入认证技术规范》,监控中心为了方便监管,需采集所有通过期货公司入场交易客户的本地终端信息。所有在监控中心报备的柜台(期货公司交易平台)API都要提供终端信息采集功能,如CTP、易达、金仕达、闪策、易盛。使用柜台API开发的终端,如快期等会采集客户使用电脑的相关信息。采集信息包括IP、MAC、操作系统版本、硬盘序列号、系统分区等。

2022-09-07 18:20:35 5622 1

原创 QtCreator插件开发(四)——QtCreator编辑器

一、HTML编辑器核心类和接口简介1、HTML编辑器简介QtCreator最基本的功能是一个文本编辑器。QtCreator还提供了编辑UI文件、QRC文件、PRO/PRI文件以及EXE/DLL/SO文件的功能。HTML编辑器插件将使QtCreator能够从本地文件系统中加载HTML文件,并且能够查看和编辑。为了支持新的编辑器类型,需要:A、实现一个插件类(实现Core::IPlugin接口),暴露出一个“编辑器工厂”。B、实现“编辑器工厂”,即Core::IEditorFactory

2022-04-14 20:16:49 2685 1

原创 QtCreator插件开发(八)——QtCreator工程类型

一、QtCreator工程类型简介1、QtCreator工程类型简介QtCreator中,新的工程类型将出现在“文件 -> 新建”菜单项中,可以通过打开的选择工程类型的对话框来找到所需要的工程。二、Core::IWizard接口QtCreator提供了Core::IWizard接口,用于实现添加新的工程类型。Core::IWizard接口在src/plugins/coreplugin/dialogs/iwizard.h中声明:classCORE_EXPORTIWiz...

2022-04-14 20:16:17 1676

原创 QtCreator插件开发(七)——QtCreator过滤器

一、QtCreator过滤器简介1、QtCreator过滤器简介QtCreator的查找对话框允许用户使用文本或者正则表达式进行搜索。点击“编辑-查找/替换-高级查找”即可打开查找对话框。查找对话框:在查找对话框中,“范围”和“文件模式”两项都是可以扩展的。可以利用插件,向范围下拉框添加更多项目,每次都可以依据选择的下拉项 不同,读取不同的配置文件。在QtCreator中,范围下拉框中的每一项都叫做“查找过滤器(find filter)”。2、Find::IFindF..

2022-04-14 20:00:31 1679 2

原创 QtCreator插件开发(六)——QtCreator选项页

一、QtCreator选项页简介QtCreator中的选项对话框用于设置QtCreator的各种参数。QtCreator是一个插件加载器,用于加载各个插件,选项对话框可以用于设置各种插件的参数。QtCreator核心插件暴露出一个接口Core::IOptionsPage。Core::IOptionsPage接口的声明在 plugins/coreplugin/dialogs/ioptionspage.h文件。classCORE_EXPORTIOptionsPage:publicQObj...

2022-04-14 19:48:38 1490

原创 QtCreator插件开发(五)——QtCreator导航器实例

一、QtCreator导航器简介导航器位于QtCreator的左侧,可以查看项目、文件、书签等内容。边侧栏side bar则是导航器中的一个组件。红色方框中的就是导航器,而红色短线标示出的是用于选择导航器的下拉框。另外,Qt Creator可以将导航器分成几个部分,正如图中所示,在“项目”下面还有一个“打开文档”面板。二、创建QtCreator导航器1、Core::INavigationWidgetFactoryCore::INavigationWidgetFactory是QtCr.

2022-04-14 19:41:56 1722

原创 QtCreator插件开发(三)——QtCreator架构

一、QtCreator架构简介QtCreator的核心就是一个插件加载器,其所有功能都是通过插件实现的。QtCreator架构如下:QtCreator的核心功能由Core Plugin (Core::ICore)实现。插件管理器(ExtensionSystem::PluginManager)对插件协作提供了简单方式,允许插件为其他插件扩展提供钩子。PluginManager负责插件的加载,管理,销毁等工作。Core插件是QtCreator最基础的插件,提供了向界面增加菜单等功能。.

2022-04-13 22:49:03 3974 2

原创 QtCreator插件开发(二)——QtCreator菜单和菜单项

一、QtCreator菜单栏简介1、QtCreator菜单简介QtCreator菜单栏如下:QtCreator默认菜单包括“文件”、“编辑”、“工具”、“窗体”、“帮助”。“构建”、“调试”、“分析”由插件提供,不是QtCreator的默认菜单。在“帮助”菜单中的“关于插件”对话框中将所有可以取消的插件取消后重启QtCreator,得到QtCreator默认菜单如下:2、Core::ActionManager简介QtCreator主程序仅仅是一个插件加载器。QtCreat..

2022-04-13 22:33:33 3146

原创 QtCreator插件开发(一)——QtCreator插件实例

本文将使用QtCreator-2.8.1版本进行插件开发,由于QtCreator-2.8.1的插件机制进行了部分更改,因此将根据QtCreator-2.8.1插件机制为基础撰写本文。一、QtCreator源码编译1、构建目录的创建QtCreator工程的源码编译推荐在独立工作目录进行,避免源码被污染。在QtCreator工程的根目录下创建build目录。2、生成工程MakeFile文件在build目录下使用命令行运行:qmake ../qtcreator.pro -recursi.

2022-04-13 22:21:14 4496

原创 QtCreator源码分析(三)——QtCreator源码结构分析

一、QtCreator源码目录简介QtCreator-2.8.1包含5000多个文件,代码行数超过了110万行。源码目录如下:bin: 生成Linux平台shell脚本。dist: 安装文件配置信息和版本更新记录。doc: 生成doxygen文档的配置文件。lib:Qt组件相关的QML文件qbs:QBS 配置文件。QBS,即Qt Build Suite,是一种跨平台的编译工具,目的是将高层的项目描述(使用类似 QML 的语言)转换成底层的编译描述(供make 等工具...

2022-04-13 22:11:53 4842 3

原创 QtCreator源码分析(二)——QtCreator插件架构

一、插件架构简介插件架构即微核架构,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布,将软件的复杂度限制在了单个的插件之中,比较适用与需求不定或是业务容易发生变化的软件设计。1、核心系统核心系统包含两部分功能:最小功能集合,提供给各个插件模块使用,也就是插件如何使用核心系统的功能进行功能扩展。插件模块的生命周期管理。2、插件模块插件模块用于增强或扩展核心系统以产生额外的业.

2022-04-13 21:45:36 3607 1

原创 QtCreator源码分析(一)——QtCreator源码简介

一、QtCreator简介QtCreator是设计精巧的插件式系统,QtCreator的核心是一个插件管理器,其所有功能都是使用插件完成。在启动时,QtCreator会首先加载一个名为coreplugin的插件,coreplugin插件提供了Qt Creator最基本的功能和扩展点,其余的插件都是直接或间接依赖于coreplugin插件提供的机制,一步步扩充QtCreator的功能,最终将其变成一个功能完整的IDE。针对QtCreator的插件机制设计,QtCreator源码分析将关注重点放在插件管理器

2022-04-13 21:36:22 4062 5

原创 Hello Log4Qt——Log4Qt日志输出重定向源码解析

一、Appender简介1、Appender简介Appender是所有Appender的抽象类,是对记录日志形式的抽象。Log4Qt(Qt4版本)中Appender继承体系如下:2、Appender接口virtualFilter*filter()const=0;virtualQStringname()const=0;virtualLayout*layout()const=0;virtualboolrequiresLayout()const...

2022-04-13 20:34:41 1503 2

原创 Hello Log4Qt——Log4Qt日志格式化源码解析

一、Layout1、Layout简介Log4Qt提供了多种Layout对象,用于格式化日志输出,指定日志级别、线程名称、Logger名称、日期时间等信息。Layout类是Log4Qt API中的抽象类。PatternLayout:根据一个模式字符串输出日志事件;SimpleLayout:输出日志事件的级别和消息;TTCCLayout:输出日志事件的时间、线程名称、Logger名称和嵌套的诊断上下文信息。PatternLayout和TTCCLayout通过PatternF.

2022-04-13 20:16:36 1077

原创 Hello Qt——Qt自定义标题栏

一、Qt自定义标题栏简介QWidget及其子类窗体组件的标题栏受操作系统的控制,即标题栏的界面风格与操作系统的主题风格相同,工程实践中需要开发者自行定义,达到美化应用程序界面的目的。二、Qt自定义标题栏实现1、自定义标题栏的功能自定义标题栏需要完成功能如下:(1)自定义标题栏需要包含最小化按钮、最大化按钮、关闭按钮、标题标签、图标标签等图形元素。(2)标题栏的拖拽。(3)鼠标双击标题栏实现窗体的最大化、最小化。2、自定义标题栏的界面布局自定义标题栏的界面布局如下:

2022-03-07 00:08:30 7200 1

原创 Hello Qt——Qt日志信息处理

一、Qt日志功能简介Qt有Debug、Warning、Critical、Fatal四种级别的调试信息。qDebug:调试信息qWarning:警告信息qCritical:严重错误qFatal:致命错误Qt4提供了qInstallMsgHandler(Qt5:qInstallMessageHandler)对qDebug、qWarning、qCritical、qFatal等函数输出信息的重定向处理。qInstallMsgHandler是一个回调函数,由qDebug、qWarnng、q

2022-03-07 00:07:58 1163

C++语言学习教程

C++语言学习教程主要根据狄泰学院的C++语言深度进阶课程学习而来

2018-09-11

Git版本控制系统-工程开发实践

Git版本控制系统-工程开发实践主要根据Git官方参考手册Git Pro学习而来

2018-09-11

QtCreator插件开发

QtCreator开源项目开发人员的发布的文档,内含插件开发技术

2018-04-04

嵌入式汇编学习

嵌入式 ARM 汇编 体系架构

2017-04-04

嵌入式C语言

本文主要讲述嵌入式C语言的学习

2017-04-04

嵌入式开发换件搭建

主要讲述了嵌入式linux开发环境的搭建

2017-04-04

RHEL6.8开发环境搭建

本文讲述了基于 RHEL 6.8 操作系统搭建开发环境, 主要安装了 GCC 4.9.3、 Qt 5.7、 Apache 2.4.25、 MySQL 5.6.35。 本文同时适用于在 Linux 主机无互联网环境下搭建开发环境, 只需要将所需安装包下载 后拷贝到 Linux 主机即可。

2017-04-04

基于gSoap的webservice开发

使用QT5.6基于GSOAP的webservice开发,使用DIME进行文件传输,含服务端和客户端

2017-03-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除