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