利用數(shù)據(jù)庫擴充金字塔的數(shù)據(jù)存放及分析能力 [金字塔]
- 咨詢內(nèi)容:
數(shù)據(jù)庫技術(shù)以其簡單的操作和優(yōu)異的跨平臺性能,早已經(jīng)廣泛應(yīng)用于各行各業(yè)中。配合金字塔強大的數(shù)據(jù)庫支持能力,一定會讓用戶如虎添翼。
金字塔中使用數(shù)據(jù)庫主要有如下兩點好處:
1、擴充數(shù)據(jù)存儲能力,雖然金字塔支持自定義數(shù)據(jù)功能,但使用數(shù)據(jù)庫操作和維護顯然要比他方便的多。
2、數(shù)據(jù)庫技術(shù)已經(jīng)是一熱門成熟技術(shù),用戶可以通過自己或很多第三方軟件來維護數(shù)據(jù),實現(xiàn)與金字塔的數(shù)據(jù)交流。采用與數(shù)據(jù)庫結(jié)合的方式,大大增強了公式系統(tǒng)的靈活性,用戶可以將一些非常復(fù)雜的計算使用外部專用的分析軟件來做,最后將分析結(jié)果放到數(shù)據(jù)庫中,再由公式系統(tǒng)來進行繪制。
公式系統(tǒng)支持如下幾個數(shù)據(jù)庫函數(shù):
? DATABASE 連接數(shù)據(jù)庫.用法:DATABASE(STRING),STRING為數(shù)據(jù)庫ADO連接字符串
例如:
(1)連接ACCESS數(shù)據(jù)庫:DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb')表示連接d:\Test.MDB數(shù)據(jù)庫文件.
(2)通過DSN數(shù)據(jù)源對任何支持ODBC的數(shù)據(jù)庫進行連接:DATABASE('Data Source=adotest;UID=sa;PWD=1234;')其中adotest是數(shù)據(jù)源名稱,sa為登陸用戶,1234為登陸密碼
(3)不通過DSN對SQL SERVER數(shù)據(jù)庫進行連接: DATABASE('driver={SQL Server};Server=127.0.0.1;DATABASE=test;UID=sa;PWD=1234')其中Server是127.0.0.1服務(wù)器的名稱或IP地址,test是數(shù)據(jù)庫的名稱
(4)不通過DSN對Oracle數(shù)據(jù)庫進行連接: DATABASE('provider=MSDAORA;Data Source=servername;User ID=sa;Password=1234;')其中servername是服務(wù)器名稱或IP地址
? DBTABLE 檢索記錄集,使用SQL語句檢索記錄集,用法:DBTABLE(SQL),SQL為檢索記錄集字符串.例如:DBTABLE('Select * From @Code@ Order By StockDate'),表示從品種代碼表中選擇全部字段數(shù)據(jù),并按照StockDate字段類型從小到達排序.StockDate為一個日期型字段,數(shù)據(jù)庫中必須要有此字段,否則系統(tǒng)將無法工作.@Code@在運行中會被系統(tǒng)替換成品種的具體品種代碼,例如SH600215。
? DBVALUE 取數(shù)據(jù)庫中數(shù)值數(shù)據(jù),用法:DBVALUE(S),S為字段名稱,數(shù)據(jù)必須為浮點類型,例如:DBVALUE('STOCKCLOSE')表示取數(shù)據(jù)庫中的STOCKCLOSE字段數(shù)據(jù).
? DBSTRING 取數(shù)據(jù)庫中字符串數(shù)據(jù),用法:DBSTRING(S),S為字段名稱,數(shù)據(jù)必須為字符類型,例如:DBVALUE('STOCKNAME')表示取數(shù)據(jù)庫中的STOCKNAME字符串數(shù)據(jù).
? DBREADTYPE 數(shù)據(jù)讀取模式,用法:DBREADTYPE(N),N取0或1,默認為0,當N=0時如果DBVALUE或者DBSTRING找不到當日數(shù)據(jù),那么取其之前數(shù)據(jù)。不然這兩個函數(shù)將返回0值。
公式示例:
//連接d:\test.mdb數(shù)據(jù)庫
DATABASE('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.mdb');
//檢索數(shù)據(jù)庫表
DBTABLE('Select * From @Code@ Order By StockDate');
//讀取STOCKCLOSE字段數(shù)據(jù)
cc:DBVALUE('STOCKCLOSE');
完整公式示例及數(shù)據(jù)庫請在 http://www.weistock.com/download/dbdemo.zip 下載,做為示例,數(shù)據(jù)庫僅包含600000品種的日線數(shù)據(jù)
為了方便用戶操作,系統(tǒng)還提供GUI的數(shù)據(jù)庫開發(fā)助手,使用該助手可以使用戶更加快捷方便的為您的公式支持數(shù)據(jù)庫。操作步驟如下:
? 在公式編輯界面上單擊“插入”菜單,然后選擇“數(shù)據(jù)庫支持”。
金字塔的表(動態(tài)顯示牌)技術(shù)也非常強大,同時也支持數(shù)據(jù)庫功能,用戶可以在表上面顯示某個數(shù)據(jù)庫的字段內(nèi)容,使用方法也非常簡單,用戶可以在表高級編輯和表頭定制這兩個地方來實現(xiàn)功能. - 金字塔客服:
金字塔的數(shù)據(jù)庫功能很棒!
提幾點建議:
1、DBTABLE(SQL)函數(shù)中的SQL語句在執(zhí)行前似乎會被自動轉(zhuǎn)換為大寫字母,這對大多數(shù)表名、字段名不區(qū)分大小寫的數(shù)據(jù)庫來說是沒有影響的,對于區(qū)分大小寫的數(shù)據(jù)庫來就要求采用大寫的表名、字段名,很不方便!
強烈建議:不要對函數(shù)中的SQL進行大小寫轉(zhuǎn)換(象ADO一樣,用戶輸入什么就傳什么)。其中@Code@可改為@CODE@或@code@或@Code。
2、"數(shù)據(jù)庫中必須要有stockdate字段"要求用戶重新構(gòu)建數(shù)據(jù)庫或?qū)ΜF(xiàn)有數(shù)據(jù)庫進行調(diào)整或在SQL中指定字段名稱,不夠靈活,而且有些ODBC驅(qū)動程序不支持"select old AS new..."命令。
建議:增加一個函數(shù)如DBTABLE2(SQL),不要求有stockdate字段,只要求SQL返回結(jié)果中第一個字段(不管字段名是什么)必須是日期型而且按從小到大排序。
3、建議:增加一個DBEXECUTE(SQL)命令,用于將SQL發(fā)送到數(shù)據(jù)庫執(zhí)行,不返回結(jié)果,類似于ADO Connection對象的Execute方法;象DATABSE()函數(shù)一樣每只證券只執(zhí)行一次。
- 用戶回復(fù):
建議很好,我們會認真采納
- 網(wǎng)友回復(fù):
謝謝回復(fù)。
- 網(wǎng)友回復(fù):
建議下次升級時修改一下DBTABLE(SQL)函數(shù),不要對DBTABLE(SQL)函數(shù)中的SQL語句進行大小寫轉(zhuǎn)換(象ADO一樣,用戶輸入什么就傳什么)。
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容