日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

飛狐的SMA算法

 禁忌石 2012-03-17
飛狐的SMA算法
2009-08-01 2:12
關(guān)于飛狐的SMA算法,
1)最初在網(wǎng)上查到:
input:n(20,1,99),m(2,1,99);
if n<=m then EXIT;
a:=c;
y:=a;
for i=2 to datacount do
y:=(m*a+(n-m)*y)/n;
蟲sma:y,colorred;
然而,這個算法不成立!

2)正確的算法,需要用到“數(shù)組”,如:
input:n(20,1,99),m(2,1,99);
x:=c;
y[1]:=x[1];
for i=2 to datacount do
y[i]:(m*x[i]+(n-m)*y[i-1])/n;
經(jīng)測試,和飛狐原SMA(c,20,2)的算法完全一致。
只是有個很大的問題,調(diào)用該公式速度很慢,感覺有點(diǎn)"卡"。

3)如果通過DLL編程,速度就很快,如:
__declspec(dllexport) int WINAPI MYSMA(CALCINFO* pData)
{
    if ( pData->m_pfParam1 && pData->m_pfParam2 &&             
        pData->m_nParam1Start<0 &&                                
        pData->m_pfParam3==NULL )                               
    {
        float fParam1 = *pData->m_pfParam1;
        float fParam2 = *pData->m_pfParam2;

        int nPeriod = (int)fParam1;                               
        int nP2 = (int)fParam2;                                  

        if(nPeriod>0)
        {
            float fSMA;
            int i;
            pData->m_pResultBuf[0]=pData->m_pData[0].m_fClose;
            for ( i = 1; i < pData->m_nNumData; i++ )   
            {
                fSMA = pData->m_pResultBuf[i-1];
                pData->m_pResultBuf[i] = (pData->m_pData[i].m_fClose*nP2 + fSMA*(nPeriod-nP2))/nPeriod;              
            }
            return 0;       
        }
    }
    return -1;
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多