int CMA::GetSignal( int nIndex, UINT * pnCode ) { // 金叉或者死叉 int nSignal = GetForkSignal( nIndex, m_adwMADays, m_itsGoldenFork, m_itsDeadFork, pnCode ); if( ITS_ISBUY(nSignal) || ITS_ISSELL(nSignal) ) return nSignal; // 趋势 return GetTrendIntensity( nIndex, m_adwMADays, m_itsLong, m_itsShort, pnCode ); }
int CVOLUME::GetSignal( int nIndex, UINT * pnCode ) { if( pnCode ) *pnCode = ITSC_NOTHING; if( !m_pKData || nIndex < 0 || nIndex >= m_pKData->GetSize() ) return ITS_NOTHING; int nIntensity = GetTrendIntensity( nIndex, m_adwMADays, m_itsLong, m_itsShort, pnCode ); if( ITS_BUY == nIntensity && m_pKData->IsNewValue( nIndex, FALSE, ITS_DAYS_DEVIATE ) ) { // 底背离,股价创新低并且成交量趋势向上 if( pnCode ) *pnCode = ITSC_DEVIATEONBOTTOM; return m_itsDeviateOnBottom; } if( ITS_SELL == nIntensity && m_pKData->IsNewValue( nIndex, TRUE, ITS_DAYS_DEVIATE ) ) { // 顶背离,股价创新高并且成交量趋势向下 if( pnCode ) *pnCode = ITSC_DEVIATEONTOP; return m_itsDeviateOnTop; } return nIntensity; }