您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

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  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容