成功登陸到獲得合約信息之間有時間差 [金字塔]
- 咨詢內容:
if (!g_pMainFormework->GetCTPAccountName(0, szAcc)) // 成功登陸了,賬戶值返回是對的
...
int _itotal = g_pMainFormework->GetHolding2(szAcc); // 獲得賬戶持倉合約總量, 在登錄賬戶過后一小段時間里,這個返回是0(很明顯就是在重新開金字塔鏈接服務器的時候), 然后我的初始化就錯了
所以這個有什么方法能避免這個問題嗎? 是否有標志可以知道持倉總量是真的等于0,還是服務器還沒返回? - 金字塔客服:
//得到指定的非IB外盤帳戶信息
virtual VARIANT GetAccount2(short nType, char * szAccount) = 0;參數 nType = 2
如果返回255,則表示賬戶當前尚未登錄或者登錄后尚未初始化完畢
- 用戶回復:
謝謝
- 網友回復:
幫我看看,這段程序,為什么會拿到賬戶持倉數量等于0呢? 我持倉數量是3,哪里錯了呢?
bool CQHGoods::InitInfo()
{
char szAcc[64] = { 0 };
if (!g_pMainFormework->GetCTPAccountName(0, szAcc))
return false;
if ( g_pMainFormework->GetAccount2(2,szAcc).intVal == 255 )
{
return false;
}
m_strAcc = szAcc;
m_bAccConnected = true;
Log("成功獲取登錄賬號,初始化...");
if (!g_pMainFormework->GetContract((char*)m_code.c_str(), m_wMarket, m_fMultipliter, m_fMinTick, m_fShortPercent, m_fLongPercent))
{
stringstream ss;
ss << "獲得合約信息失敗!";
Log(ss.str().c_str());
return false;
}
else
{
stringstream ss;
ss << "獲得合約信息成功!合約:" << m_code << " 市場代碼:" << m_wMarket << " 合約乘數:" << m_fMultipliter << " 最小變動單位:" << m_fMinTick << " 空頭保證金率:" << m_fShortPercent << " 多頭保證金率: " << m_fLongPercent;
Log(ss.str().c_str());
}
int _itotal = g_pMainFormework->GetHolding2(szAcc); // 持倉合約總量
stringstream ss;
ss << "持倉合約總量: " << _itotal;
Log(ss.str().c_str());} log 輸出為:
Account connected!
成功獲取登錄賬號,初始化...
獲得合約信息成功!合約:M09 市場代碼:20804 合約乘數:10 最小變動單位:1 空頭保證金率:5 多頭保證金率: 5
持倉合約總量: 0
成功監聽豆粕1609
成功獲取登錄賬號,初始化...
獲得合約信息成功!合約:Y09 市場代碼:20804 合約乘數:10 最小變動單位:2 空頭保證金率:5 多頭保證金率: 5
持倉合約總量: 0
成功監聽豆油1609
成功獲取登錄賬號,初始化...
獲得合約信息成功!合約:I09 市場代碼:20804 合約乘數:100 最小變動單位:0.5 空頭保證金率:5 多頭保證金率: 5
持倉合約總量: 0
- 網友回復:
我在一臺機器上是好的, if ( g_pMainFormework->GetAccount2(2,szAcc).intVal == 255 )
{
return false;
}
這個是能成功返回的,另一臺機器上就不行,兩臺機器都是模擬賬號,不一樣的賬號
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容