7

KTL 一个支持C++14编辑公式的K线技术工具平台 - 第九版,数据分析工具。支持通达信日...

 6 months ago
source link: https://www.cnblogs.com/bbqzsl/p/18069131
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

KTL 一个支持C++14编辑公式的K线技术工具平台 - 第九版,数据分析工具。支持通达信日线数据。增强即时插件编程体现。

K,K线,Candle蜡烛图。

T,技术分析,工具平台

L,公式Language语言使用c++14,Lite小巧简易。

项目仓库:https://github.com/bbqz007/KTL

国内仓库:https://gitee.com/bbqz007/KTL 

CoreAnimation for Windows: https://github.com/bbqz007/xw

zqt5 一个超简单的Qt5窗口语法: https://github.com/bbqz007/zqt5

zqlite3 一个超简单的流式语法,整合封装Sqlite3 capis 与 SQL 跟 c/c++程序绑定:https://github.com/bbqz007/sqlite3zz

zgl 一个对OpenGL常规功能api重新抽象封装。https://github.com/bbqz007/zgl

KTL提供一个c++14编译平台,用户可以使用c++14编辑自定义技术指标等。

用户可以使用crt常用函数,c++标准库容器以及算法,c++14特性编程。

本文于博客园地址。

本期更新内容

  • 1. 添加数据分析工具,
    • 1.1 可以直接导入通达信日线转换到sqlite3数据库。
    • 1.2 可以自定义各种指标或公式的运算结果导出到sqlite3数据库。
    • 1.3 提供sqlite3数据库浏览器。
    • 1.4 提供sqlite3查询控制台。
    • 1.5 提供通达信日线数据浏览器。
    • 1.6 编程代码提供TdxK类,自定义加载通达信日线文件数据。
  • 2. 支持加载通达信日线文件。
    • 2.1 直接加载通达信日线day文件
    • 2.2 从通达信日线数据zip包加载日线文件
    • 2.3 每个日线文件对应一个K线图,独立应用插件如OpenGL3D视图,指标公式,画线工具等。
  • 3. 增强编程体验
    • 3.1 增强使用zqt5进行的Qt窗口编程的体验
      • 3.1.1 预置辅助代码,使用zqt5语法layout QLayout
      • 3.1.2 预置辅助代码,使用zqt5语法layout QWidgets
    • 3.2 增加使用sqlite3zz进行数据库编程的体验
      • 3.2.1 预置辅助代码,使用sqlite3zz语法,定义创建表,不用写sql。
      • 3.2.2 预置辅助代码,插入表,upsert表。不用写sql。
      • 3.2.3 预置辅助代码,更新表。不用写sql。
      • 3.2.4 预置辅助代码,查询表数据。不用写sql。
    • 3.3 添加对书签#pragma mark - 的支持
    • 3.4 从K线图加载算法系统(AlgoSys)即时插件失败,直接打KTLEditor编辑cpp源文件以及错误信息窗口,选中错误信息按回车键定位到代码编辑器错误行。
    • 3.5 KTLEditor编辑器右上角添加了菜单按钮。
    • 3.6 KTLEditor编辑器补做finder对话框,goto对话框。
  • 4. OpenGL3D视图插件,添加了两个Camera角度按钮,方便观察
  • 5. GPGPU插件,整理了glsl的代码,方便阅读。

 下面演示图。

新添加的数据分析工具,浏览通达信日线数据

665551-20240312220113603-453606299.gif

 数据分析工具,加载从通达信官网下载的日线数据包

665551-20240312220123341-72200375.gif

新添加的数据分析工具

  • 右健转换至sqlite3数据库,
  • 右健计算自定义公式结果传入数据库,这里简单以ma5为例,数据保存在lma5表,用户可以在AlgoDataTool.cpp源文件修改对应代码。
  • 通过sqlite3控制台,查询某日的日线数据与公式结果,

    select printf("%06d", a.code) as CODE, a.*, b.* from lday a left join lma5 b on a.code=b.code and a.date=b.date where a.date = 20240202

665551-20240312220133167-225638164.gif

 K线主视图通过按钮open打开通达信日线文件

665551-20240312220148483-153907223.gif

 OpenGL3D视角插件,新添加了两个Camera角度,观察更加有趣的东西。

其中CAM0是环比视角,CAM1是同比视角。

665551-20240312220158494-1250596581.gif

 每个日线文件对应一个独立的K线主视图,各自应用OpenGL3D视角插件。

665551-20240312221045482-827952266.gif

 内置代码编辑器对#pragma mark -进行书签添加。

665551-20240312233151426-192938197.gif

 代码编辑器添加了coding辅助功能。

使用者可以更加简单地使用zqt5语法进行窗口编程。

你是否想过用c++,可以像html+js般,轻松地完成一些常用的窗口界面功能的编程。

例如,html<标签,属性,属性,事件=js函数 />,  zqt5可以 (Widget对象名)[属性][属性][事件=c++lambda函数定义] 

例如,html<div><input type='text'/><input type='button' onclick=''/></div>,zqt5可以layout::begin(new QHBoxLayout)(new QLineEdit)(new QPushButton)[onclick=[]{}](layout::end)

665551-20240312233157643-506809265.gif

 6个布局相关的编程辅助代码

  • 水平布局,垂直布局
  • 带标题的水平布局,带标题的垂直布局
  • 与其它QWidget同级的水平或垂直布局,用于跟同级的其它QWidget平等参与上一层布局。
665551-20240314193730590-303105240.png

9个常用QWidget的编程辅助代码,

id是一个常用属性,可以通过findChild<>(id)函数获取,类似于html通过findElementById

onload是一个虚拟事件,用于初始其它复杂的属性。

665551-20240314193749473-1941071009.png
665551-20240314193811449-851393954.png
665551-20240314193831071-1225551342.png

代码编辑器添加了coding辅助功能。

使用者可以更加容易地应用sqlite3zz进行sqlite3编程。

sqlite3zz只有头文件,模板封装常用sqltie3 c api调用的繁杂的流程。

你是否想过只用c++基本类型就可以直接定义表结构,创建表,查询数据,更新数据,无需写SQL语句,无需记住SQL语法。

665551-20240312233204948-115247870.gif

 几种常用的sqlite3zz辅助代码。

665551-20240314194331270-648232092.png
665551-20240314194343736-1137300917.png
665551-20240314194357611-1495168086.png

<<第二版 多编译器支持,OpenMP,SIMD支持>>

<<第三版 Qt支持>>

<<第四版 zqt5语法升级,SIMD重写公式函数,性能提升>>

<<第五版 sqlite3编程支持,sqlite3zz流式语法>>

<<第六版 OpenGL编程支持,3D上帝视角>>

<<第七版 体验GPGPU>>

<<第八版 数据解析>>

<<第九版 数据分析工具,增强编程体验>>


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK