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