Order開多單有反應,開空單卻沒有,奇怪! [金字塔]
- 咨詢內容:
Call Order.Buy(1,1,0,0,"IF07","ZJ","",0) '市價開多單
Call Order.BuyShort(1,1,0,0,"IF07","ZJ","",0) '市價開空單
這兩個指令,一個是開多單,一個是開空單,使用CTP平臺,開多單指令正常執行,非交易時間可以看到“該席位未處于交易狀態”,開空單指令卻沒有反應,交易時間開多單每次都能執行,開空單卻經常不執行。
同樣的代碼,在模擬賬戶下,都可以執行,交易狀態都有提示,實在是令人費解。
這段代碼使用了好長時間了,我都沒有發現這個問題,這兩天才發現的。
不知道是不是金字塔程序升級后留下的問題?
另外:CTP賬號下,訂單狀態和模擬賬號也不相同,主要是Aspect和Kaiping這兩個返回值,不同平臺返回的值不一樣,對于做VBA后臺交易,要判斷持倉變化情況,經常在某一個平臺可以使用的代碼,到了另一個平臺就出現問題,程序并不出錯,可是結果不對。
建議:將CTP、金士達、IB不同的賬號交易時返回的結果統一一下,以便于做VBA后臺交易。
- 金字塔客服:
建義打開下單日志,看看BuyShort指令是否已經發送到服務器
Aspect和Kaiping這兩個返回值應該是一樣的吧,你看到哪些地方不一樣了?
- 用戶回復:
VBA后臺交易哪有下單日志呢,從交易狀態小窗口就可以看到,沒有發送到服務器的。
多單就發送了。我在開空單的指令前后分別放上Application.msgout指令顯示信息,都顯示了,說明指令是執行了,可是就不送到服務器。
Aspect返回的值是統一的,就是Kaiping的值,不同的平臺不一樣。
模擬賬號平倉時,kaiping在兩條記錄里分別有2、3兩個值,而在Ctp平臺下,平昨為1,平今為2,IB平臺我沒有賬號,沒有測試。
Status返回值也不相同,模擬賬號上返回submitted,filled,CTP上返回submitted,filled,tradeing.
同樣的代碼,在股指上可以正常提取持倉信息,而在RB上,平倉之后持倉信息不會更新,需要再次單擊刷新持倉才可以。
搞得人都要瘋了。
- 網友回復:
今天用
Call Order.BuyShort(1,1,0,0,"IF07","ZJ","",0) '市價開空單
單獨這一條語句測試,沒有出現過異常
- 網友回復:
不知道什么時候出現問題,經常是你要測試的時候,好用,可是用于實盤就掉鏈子,我是用VBA做的管理持倉的,比如:設定好回撤3點止盈,可是有時能執行,有時不能執行,導致我該賺到的錢沒有賺到。
相關文章
-
沒有相關內容