金字塔VBA常用對(duì)象使用范例 [金字塔]
- 咨詢內(nèi)容:
金字塔vba編寫策略經(jīng)常使用的對(duì)象,在編程幫助中有很多介紹,但是例子相對(duì)較少,本人經(jīng)過2年來對(duì)金字塔vba策略的編寫,積累了大量的例子,從今天開始我將不定期整理出來供大家借鑒參考,本樓將是一個(gè)目錄,供快速瀏覽。
特別常用的對(duì)象:
一、Application對(duì)象..............本頁2-3樓
二、Order對(duì)象....................7-13樓、19樓-20樓/22樓
三、MarketData對(duì)象...............36、37樓
(http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=11642&authorid=0&page=1&star=4)
四、Document對(duì)象.................39-40樓
(http://www.weistock.com/bbs/dispbbs.asp?boardid=5&Id=11642&page=1&star=4)
本目錄根據(jù)需要不斷完善
[此貼子已經(jīng)被作者于2012-6-9 16:46:57編輯過] - 金字塔客服:
一、Application對(duì)象
1、基本介紹
代表 金字塔證券分析系統(tǒng) 應(yīng)用程序。整個(gè)應(yīng)用程序運(yùn)行過程中,只有一個(gè)Application對(duì)象存在。 application.MsgOut Application.UserName
UserType:返回當(dāng)前應(yīng)用程序的版本類別 0普通版 1標(biāo)準(zhǔn)版 2專業(yè)版 3金鉆版 此屬性的應(yīng)用場(chǎng)景是根據(jù)本屬性的返回值確定是否支持你的策略,比如:普通版的不支持Order指令,那么你就可以在這里提示客戶,告知其軟件版本不支持你的策略。 dim iVer iVer=Application.UserType if iVer<2 then Application.MsgOut "你的金字塔版本不支持本程序,請(qǐng)升級(jí)賬戶" exit sub end if End Sub(3)EnginCode:返回當(dāng)前用戶計(jì)算機(jī)的機(jī)器識(shí)別碼(只讀)
此屬性的應(yīng)用場(chǎng)景是限定特定的用戶才能使用本程序,因?yàn)榻鹱炙浖诿恳慌_(tái)機(jī)上的識(shí)別碼都是不相同的,你就可以判斷客戶的本屬性是否與設(shè)定值相同,不相同就不讓他運(yùn)行。
Sub Application_VbaStart()
dim sEnginCode dim sTestCode sTestCode="35A7707C1617CBE0" '本行字符串改為你設(shè)定的識(shí)別碼 sEnginCode=Application.EnginCode if strcomp(sEnginCode,sTestCode,vbtextCompare)<>0 then Application.MsgOut "你的不是授權(quán)用戶,不能使用本程序" exit sub end if End Sub 3、Application的常用方法 IsActivateFrame方法: 使用這兩個(gè)方法可以判斷某一個(gè)框架是否已經(jīng)打開,如果沒有打開就打開,如果你的策略必須使用某一個(gè)框架上的某一個(gè)公式的指標(biāo),如果每天都要自己打開框架,或者某人不注意誤關(guān)了你的框架,代碼中自動(dòng)打開就成為必要了。 Call application.ActivateFrame("ABC") end if 上面代碼可以放在定時(shí)器過程中,每一次循環(huán)都會(huì)檢測(cè)一遍,就可以防止人為關(guān)閉了框架了。 (2)ActivateFrameWithCode方法: 這個(gè)方法是對(duì)ActivateFrame方法的擴(kuò)充,可以激活框架的同時(shí)指定品種和周期,如: Call Application.ActivateFrameWithCode("ABC","IF05","ZJ",0)將激活框架ABC,并在框架中打開IF05合約的1分鐘分析圖。 周期:0=1分鐘 1=5分鐘 2=15分鐘 3=30分鐘 4=60分鐘 5=日線 6=周線 7=月線 8=年線 9=多日線 10=分筆成交 11=多小時(shí) 12=多秒 13=多分鐘線 14=季度線 15=半年線 16=節(jié)氣線 17=3分鐘 18=10分鐘。 當(dāng) FrameName 參數(shù)為 "MainFrame" 系統(tǒng)框架周期同時(shí) Cyc 參數(shù)為 -1 時(shí),打開分時(shí)走勢(shì)界面。 (3)Settimer和killtimer方法:設(shè)置和銷毀計(jì)時(shí)器
end if
If ID=9 then
Application.msgout Cdate(time) & ",9號(hào)計(jì)時(shí)器觸發(fā)了"
end if
End Sub 4、Application的事件Start 應(yīng)用程序啟動(dòng)后發(fā)生。
寫法:
Sub Application_Start() '下面的事件都是加上 Application_ 不再贅述
'你的代碼段
End Sub
Close 應(yīng)用程序關(guān)閉時(shí)發(fā)生。
Timer 當(dāng)達(dá)到SetTimer方法所設(shè)定的定時(shí)值后發(fā)生。其參數(shù)為定時(shí)器的標(biāo)識(shí)符。(前面有例子)
VBAStart VBA宏啟動(dòng)運(yùn)行后發(fā)生。(前面有例子)
VBAEnd VBA宏停止運(yùn)行后發(fā)生
特別需要注意的地方: 1、計(jì)時(shí)器一旦設(shè)置,如果不顯式銷毀,下次啟動(dòng)vba時(shí)依然會(huì)生效的。 所以,你要記住在Application_VBAEnd事件中使用Killtimer來銷毀計(jì)時(shí)器。 2、Application_VBAStart只能有一個(gè),你不要在多個(gè)模塊中擁有多個(gè)vbastart事件,那樣系統(tǒng)就會(huì)出錯(cuò)的。 [此貼子已經(jīng)被作者于2012-5-13 8:59:51編輯過] - 網(wǎng)友回復(fù):
寫得不錯(cuò)的,繼續(xù)就好了,最后再重新進(jìn)行一下就行了
- 網(wǎng)友回復(fù): 很好,學(xué)習(xí)。
如果以上指標(biāo)公式不適用于您常用的行情軟件
或者您想改編成選股公式,以便快速選出某種形態(tài)個(gè)股的話,
- 上一篇:請(qǐng)教王峰老師
- 下一篇:沒有了!
相關(guān)文章
-
指定的模型還沒有相關(guān)內(nèi)容!