C++逐K线的例子,在框架情况下会相互影响 [金字塔]
-
咨询内容:
__declspec(dllexport) int WINAPI RUNMODE() { return 1; }
__declspec(dllexport) int WINAPI MYMACLOSE(CALCINFO* pData) {if(pData->m_pfParam1 && pData->m_pfParam2) { //对于逐K线模式,由于传递数据都是数值,因此需要一个数组用来保存传递过来的参数,用来计算. //本例只是简单演示这个用法,如果用户在公式多次调用了接口,则会出现重复使用该变量导致计算出错 //因此要根据情况做几个这种全局静态变量用于保存各种数据。 static std::vector<double> arMaData; //第一个周期初始化数据 if(pData->m_dwBarpos == 0) { arMaData.clear(); } double dbData = *pData->m_pfParam1;
//防止使用仅刷最后K线的反复刷新问题 if(arMaData.size() >= pData->m_nNumData) arMaData[arMaData.size()-1] = dbData; //仅仅更新最后一个数据 else arMaData.push_back(dbData);
DWORD dwCyc = (DWORD) *pData->m_pfParam2; if(pData->m_dwBarpos < dwCyc-1) { //对于未到计算周期,返回无效数据 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; }
在没有行情况的时候,我用橡胶螺纹两个品种,显示返回的值是正常的,但有行情况的时候两个窗口的值会跳动,最后变成一个值。但是两个品种是不相同不可能显示同一个值。说明相互之间存在调用。 -
金字塔客服:
是不是选择了dll的内存驻留模式了?
- 用户回复: 不是,选择不选择都会出现,我试了。要有行情的时候看才会出现,没行情况的时候显示是正常值。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容