C++逐K線的例子,在框架情況下會相互影響 [金字塔]
-
咨詢內(nèi)容:
__declspec(dllexport) int WINAPI RUNMODE() { return 1; }
__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData) {if(pData->m_pfParam1 && pData->m_pfParam2) { //對于逐K線模式,由于傳遞數(shù)據(jù)都是數(shù)值,因此需要一個數(shù)組用來保存?zhèn)鬟f過來的參數(shù),用來計(jì)算. //本例只是簡單演示這個用法,如果用戶在公式多次調(diào)用了接口,則會出現(xiàn)重復(fù)使用該變量導(dǎo)致計(jì)算出錯 //因此要根據(jù)情況做幾個這種全局靜態(tài)變量用于保存各種數(shù)據(jù)。 static std::vector<double> arMaData; //第一個周期初始化數(shù)據(jù) if(pData->m_dwBarpos == 0) { arMaData.clear(); } double dbData = *pData->m_pfParam1;
//防止使用僅刷最后K線的反復(fù)刷新問題 if(arMaData.size() >= pData->m_nNumData) arMaData[arMaData.size()-1] = dbData; //僅僅更新最后一個數(shù)據(jù) else arMaData.push_back(dbData);
DWORD dwCyc = (DWORD) *pData->m_pfParam2; if(pData->m_dwBarpos < dwCyc-1) { //對于未到計(jì)算周期,返回?zé)o效數(shù)據(jù) return -1; }
//先累加 float fAdd = 0; for(DWORD i = pData->m_dwBarpos-(dwCyc-1); i <= pData->m_dwBarpos; i++) { fAdd += arMaData[i]; }
*pData->m_pResultBuf = fAdd / dwCyc; } return 1; }
在沒有行情況的時候,我用橡膠螺紋兩個品種,顯示返回的值是正常的,但有行情況的時候兩個窗口的值會跳動,最后變成一個值。但是兩個品種是不相同不可能顯示同一個值。說明相互之間存在調(diào)用。?
-
金字塔客服:
是不是選擇了dll的內(nèi)存駐留模式了?
?
- 用戶回復(fù): 不是,選擇不選擇都會出現(xiàn),我試了。要有行情的時候看才會出現(xiàn),沒行情況的時候顯示是正常值。
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 511411198 進(jìn)行 有償 編寫!(不貴!點(diǎn)擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容