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