KTL 一個支持C++14編輯公式的K線技術工具平臺 - 第九版,通達信日線數據分析工具,技術指標輕松寫sqlite3轉csv。OpenGL3D新視角。增強Qt編程體驗。
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對話框。
- 3.1 增強使用zqt5進行的Qt窗口編程的體驗
- 4. OpenGL3D視圖插件,添加了兩個Camera角度按鈕,方便觀察
- 5. GPGPU插件,整理了glsl的代碼,方便閱讀。
下面演示圖。
新添加的數據分析工具,瀏覽通達信日線數據
數據分析工具,加載從通達信官網下載的日線數據包
使用數據分析工具將日線轉換到sqlite3數據庫
- 右健轉換至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
K線主視圖通過按鈕open打開通達信日線文件
OpenGL3D視角插件,新添加了兩個Camera角度,觀察更加有趣的東西。
其中CAM0是環比視角,CAM1是同比視角。
每個日線文件對應一個獨立的K線主視圖,各自應用OpenGL3D視角插件。
內置代碼編輯器對#pragma mark -進行書簽添加。
代碼編輯器添加了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)
6個布局相關的編程輔助代碼
- 水平布局,垂直布局
- 帶標題的水平布局,帶標題的垂直布局
- 與其它QWidget同級的水平或垂直布局,用于跟同級的其它QWidget平等參與上一層布局。
9個常用QWidget的編程輔助代碼,
id是一個常用屬性,可以通過findChild<>(id)函數獲取,類似于html通過findElementById
onload是一個虛擬事件,用于初始其它復雜的屬性。
代碼編輯器添加了coding輔助功能。
使用者可以更加容易地應用sqlite3zz進行sqlite3編程。
sqlite3zz只有頭文件,模板封裝常用sqltie3 c api調用的繁雜的流程。
你是否想過只用c++基本類型就可以直接定義表結構,創建表,查詢數據,更新數據,無需寫SQL語句,無需記住SQL語法。
幾種常用的sqlite3zz輔助代碼。
20240406 補充:如何將sqlite3導出csv文件。
>sqlite3 c:/sqlite/chinook.db sqlite> .headers on sqlite> .mode csv sqlite> .output data.csv sqlite> SELECT customerid, ...> firstname, ...> lastname, ...> company ...> FROM customers; sqlite> .quit
<<第四版 zqt5語法升級,SIMD重寫公式函數,性能提升>>