[求助]請教金字塔的VBA窗體開發模式 [金字塔]
- 咨詢內容:
請教各位大牛,如何在金字塔系統下開發比較復雜的VBA窗體GUI來管理后臺多線程算法。簡單一點說就是單個策略,單個賬戶,但是后臺算法是需要多線程來控制的。在這樣的需求下,請問我應該如何使用金字塔來完成開發?
考古了一些論壇的帖子,發現有兩個方法
第一
在金字塔框架下開發,因為我的捕捉交易信號的線程是依賴的金字塔的公式系統,希望能通過走金字塔來實現獲取一些修改過的指標數據,不想通過VBA來實現指標的計算,怕影響效率。
第二
好像有金字塔人建議在VB模式下開發程序,然后以ActiveX DLL動態鏈接進來。但是不知道是怎么連接過來的(預警嗎?),特別是在登陸賬戶通過金字塔設置好了(非VBA登陸賬戶,貌似不支持此功能)后,怎么將金字塔和我設計的VBA程序連接起來?我比較困惑。而且通過這種方法,還能訪問金字塔內部的指標數據嗎?
萬分感謝有開發金字塔VBA的大牛給我一些建議和指導
CJ
- 金字塔客服:
VBA不支持多線程,但是你可以通過定時器的方式,通過定義不同的定時器,來實現多線程方式的運行。
通過VBA來控制公式系統的運行,效率方式并不會得到提高,反而會下降,如果你是在不追求速度的情況,可以考慮使用STKINDI函數來控制公式的運行,取到計算結果后,用VBA再來下單,
示例
Set Formula = marketdata.STKINDI("if08","zj","ma(5,10,20,60)",0,0) '調用中金所IF08合約的1分鐘的MA移動平均線指標,參數依次是5,10,20,60
mgbox Formula.GetBufData("ma3",924) '顯示第925根k線上的MA3指標線數值 - 用戶回復:
以下是引用王鋒在2012-1-11 13:05:22的發言:
VBA不支持多線程,但是你可以通過定時器的方式,通過定義不同的定時器,來實現多線程方式的運行。
能否給個鏈接,舉例來說明一下。
通過VBA來控制公式系統的運行,效率方式并不會得到提高,反而會下降,如果你是在不追求速度的情況,可以考慮使用STKINDI函數來控制公式的運行,取到計算結果后,用VBA再來下單,
示例
Set Formula = marketdata.STKINDI("if08","zj","ma(5,10,20,60)",0,0) '調用中金所IF08合約的1分鐘的MA移動平均線指標,參數依次是5,10,20,60
mgbox Formula.GetBufData("ma3",924) '顯示第925根k線上的MA3指標線數值不知道怎么講,我的信號只要求每1分鐘(或者每5、15分鐘)級別輪詢一次,需要的數據也就是前一個K線的(high,low,close,open,一條我設定的MA數據,和一個我修改過的公式指標內的兩個小指標數據) 就OK了, 然后發信號給我前臺的GUI,GUI再根據上面一些按鈕的設置,判斷要不要開始委托,判斷信號我希望在1到2秒就完了,因為委托到成交也需要2到3秒鐘時間。委托也不是個簡單開倉,而是分獲利了結和開新倉的(兩者內部邏輯不同),而且還要手動修改委托價格。開完新倉成交以后, 止損和止盈要馬上開始運行,直到或者虧損退出或者盈利退出。根據我提供的需求,斑竹你覺得我應該如何設計比較合適?
[此貼子已經被作者于2012-1-11 14:44:20編輯過] - 網友回復:
我覺得我給你的例子完全可以說明問題,目前明顯你是對VBA一竅不通,建議你書店里買本VBA的書先自學一下,等開發時遇到實際問題再來發帖請教,或者我們幫你有償進行開發
- 網友回復:
這個需求不需要多線程,使用定時器或者使用價格訂閱方式就可以實現,公示系統提供信號,VBA根據信號來實現開平倉和止盈止損管理。
- 上一篇:多個賬戶
- 下一篇:這個 C++ 函數為什么不會輸出圖線?/////…
相關文章
-
沒有相關內容