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原始檔以及錯誤資訊視窗,選中錯誤資訊按Enter鍵定位到程式碼編輯器錯誤行。
- 3.5 KTLEditor編輯器右上角新增了選單按鈕。
- 3.6 KTLEditor編輯器補做finder對話方塊,goto對話方塊。
- 3.1 增強使用zqt5進行的Qt視窗程式設計的體驗
- 4. OpenGL3D檢視外掛,新增了兩個Camera角度按鈕,方便觀察
- 5. GPGPU外掛,整理了glsl的程式碼,方便閱讀。
下面演示圖。
新新增的資料分析工具,瀏覽通達信日線資料
資料分析工具,載入從通達信官網下載的日線資料包
新新增的資料分析工具
- 右健轉換至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輔助程式碼。
<<第二版 多編譯器支援,OpenMP,SIMD支援>>
<<第三版 Qt支援>>
<<第四版 zqt5語法升級,SIMD重寫公式函式,效能提升>>
<<第五版 sqlite3程式設計支援,sqlite3zz流式語法>>
<<第六版 OpenGL程式設計支援,3D上帝視角>>
<<第七版 體驗GPGPU>>
<<第八版 資料解析>>
<<第九版 資料分析工具,增強程式設計體驗>>