⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 profile.cpp

📁 股软 通达信行情接收接口, 包括美元汇率
💻 CPP
📖 第 1 页 / 共 5 页
字号:
CSPString CStProfile::GetLastActiveStrategy( )
{
	return m_strLastActiveStrategy;
}

void CStProfile::SetLastActiveStrategy( LPCTSTR lpszPath )
{
	m_strLastActiveStrategy	=	lpszPath;
}

void CStProfile::SetNetInfoShowLater( BOOL bShowLater )
{
	m_bNetInfoShow	=	bShowLater;
}

void CStProfile::SetNetInfo( LPCTSTR lpszInfo, LPCTSTR lpszInfourl )
{
	if( 0 == m_strNetInfo.Compare( lpszInfo )
		&& 0 == m_strNetInfourl.Compare( lpszInfourl ) )
		return;
	m_strNetInfo	=	lpszInfo;
	m_strNetInfourl	=	lpszInfourl;
	m_bNetInfoShow	=	TRUE;
}

void CStProfile::GetNetInfo( CSPString &strInfo, CSPString &strInfourl, int * pbShow )
{
	strInfo		=	m_strNetInfo;
	strInfourl	=	m_strNetInfourl;
	if( pbShow )
		*pbShow	=	m_bNetInfoShow;
}

void CStProfile::SetLatestver( LPCTSTR lpszLatestver )
{
	m_strLatestver	=	lpszLatestver;
}

BOOL CStProfile::HasNewVersion( )
{
#ifdef	CLKVER_OEM
	CSPString	strServerDomain = AfxGetProfile().GetMainServerDomain();
	if( 0 == strServerDomain.CompareNoCase( "www.balang.net" )
		|| 0 == strServerDomain.CompareNoCase( "balang.net" )
		|| 0 == strServerDomain.CompareNoCase( "www.zlinker.com" )
		|| 0 == strServerDomain.CompareNoCase( "zlinker.com" )
		|| 0 == strServerDomain.CompareNoCase( "www.ninebulls.com" )
		|| 0 == strServerDomain.CompareNoCase( "ninebulls.com" ) )
	{
		return FALSE;
	}
#endif

	if( !m_strLatestver.IsEmpty() )
	{
		CSPString	strMyVersion = GetVersion();
		double dLatestVer = atof(m_strLatestver);
		double dMyVer = atof(strMyVersion);
		if( dLatestVer - dMyVer > 1e-4 )
			return TRUE;
	}
	return FALSE;
}

int CStProfile::GetAutoResumeDRLimit( )
{
	if( 0 == m_nAutoResumeDRLimit || -1 == m_nAutoResumeDRLimit )
		m_nAutoResumeDRLimit	=	11;
	return m_nAutoResumeDRLimit;
}

void CStProfile::SetAutoResumeDRLimit( int nAutoResumeDRLimit )
{
	m_nAutoResumeDRLimit	=	nAutoResumeDRLimit;
}

void CStProfile::SetSListColumnsDefault( )
{
	// All Order
	m_anSListColumnsOrder.RemoveAll();
#ifdef CLKLAN_ENGLISH_US
	for( UINT i=SLH_MIN; i<=SLH_MAX; i++ )
	{
		m_anSListColumnsOrder.Add( i );
	}
#else
	m_anSListColumnsOrder.Add( SLH_NAME );
	m_anSListColumnsOrder.Add( SLH_CODE );
	for( UINT i=SLH_MIN; i<=SLH_MAX; i++ )
	{
		if( SLH_NAME != i && SLH_CODE != i )
			m_anSListColumnsOrder.Add( i );
	}
#endif
	for( int k=0; k<m_aSListColumnsUser.GetSize(); k++ )
	{
		m_anSListColumnsOrder.Add( m_aSListColumnsUser.ElementAt(k).m_nID );
	}

	// Show
	m_anSListColumnsShow.RemoveAll( );
	m_anSListColumnsShow.Copy( m_anSListColumnsOrder );
}

CSPDWordArray & CStProfile::GetSListColumnsShow( )
{
	if( m_anSListColumnsShow.GetSize() == 0 )
		SetSListColumnsDefault( );

	// Remove some dulplicate
	for( int i=m_anSListColumnsShow.GetSize()-1; i>=0; i-- )
	{
		for( int k=0; k<i; k++ )
		{
			if( m_anSListColumnsShow[i] == m_anSListColumnsShow[k] )
			{
				m_anSListColumnsShow.RemoveAt( i );
				SP_ASSERT( FALSE );
				break;
			}
		}
	}

	return m_anSListColumnsShow;
}

CSPDWordArray & CStProfile::GetSListColumnsOrder( )
{
	int	nRealCount = SLH_MAX-SLH_MIN+1 + m_aSListColumnsUser.GetSize();
	if( m_anSListColumnsOrder.GetSize() != nRealCount )
		SetSListColumnsDefault( );

	// Remove some dulplicate
	for( int i=m_anSListColumnsOrder.GetSize()-1; i>=0; i-- )
	{
		for( int k=0; k<i; k++ )
		{
			if( m_anSListColumnsOrder[i] == m_anSListColumnsOrder[k] )
			{
				m_anSListColumnsOrder.RemoveAt( i );
				SP_ASSERT( FALSE );
				break;
			}
		}
	}

	return m_anSListColumnsOrder;
}

CIndexContainer &CStProfile::GetSListColumnsUser( )
{
	return m_aSListColumnsUser;
}

void CStProfile::SetDiffDays( int nDays )
{
	m_nDiffDays	=	nDays;
}

int CStProfile::GetDiffDays( )
{
	if( m_nDiffDays <= 0 )
		return 1;
	return m_nDiffDays;
}

void CStProfile::SetDiffPercentDays( int nDays )
{
	m_nDiffPercentDays	=	nDays;
}

int CStProfile::GetDiffPercentDays( )
{
	if( m_nDiffPercentDays <= 0 )
		return 1;
	return m_nDiffPercentDays;
}

void CStProfile::SetScopeDays( int nDays )
{
	m_nScopeDays	=	nDays;
}

int CStProfile::GetScopeDays( )
{
	if( m_nScopeDays <= 0 )
		return 1;
	return m_nScopeDays;
}

void CStProfile::SetRatioChangeHandDays( int nDays )
{
	m_nRatioChangeHandDays	=	nDays;
}

int CStProfile::GetRatioChangeHandDays( )
{
	if( m_nRatioChangeHandDays <= 0 )
		return 5;
	return m_nRatioChangeHandDays;
}

void CStProfile::SetRatioVolumeDays( int nDays )
{
	m_nRatioVolumeDays	=	nDays;
}

int CStProfile::GetRatioVolumeDays( )
{
	if( m_nRatioVolumeDays <= 0 )
		return 5;
	return m_nRatioVolumeDays;
}

void CStProfile::SetRSDays( int nDays )
{
	m_nRSDays	=	nDays;
}

int CStProfile::GetRSDays( )
{
	if( m_nRSDays <= 0 )
		return 5;
	return m_nRSDays;
}

void CStProfile::SetYieldAverageDays( int nDays )
{
	m_nYieldAverageDays	=	nDays;
}

int CStProfile::GetYieldAverageDays( )
{
	if( m_nYieldAverageDays <= 0 )
		return 3*STKLIB_DAYS_INONEYEAR;
	return m_nYieldAverageDays;
}

int CStProfile::GetMaxDaysCalculate( )
{
	int	nMaxDays	=	GetDiffDays( );
	nMaxDays	=	max( GetDiffPercentDays( ), nMaxDays );
	nMaxDays	=	max( GetScopeDays( ), nMaxDays );
	nMaxDays	=	max( GetRatioChangeHandDays( ), nMaxDays );
	nMaxDays	=	max( GetRatioVolumeDays( ), nMaxDays );
	nMaxDays	=	max( GetRSDays( ), nMaxDays );

	SP_ASSERT( nMaxDays <= STKLIB_DAYS_CALCULATE );
	nMaxDays	=	min( STKLIB_DAYS_CALCULATE, nMaxDays );
	return nMaxDays;
}

void CStProfile::SetCurrentStock( int nStockIndex )
{
	AfxGetStockContainer().SetCurrentStock( nStockIndex );
}

void CStProfile::SetCurrentStock( const char * szCode )
{
	AfxGetStockContainer().SetCurrentStock( szCode );
}

BOOL CStProfile::GetCurrentStock( CStockInfo * pInfo )
{
	return AfxGetStockContainer().GetCurrentStock( pInfo );
}

BOOL CStProfile::GetPrevStock( CStockInfo * pInfo )
{
	return AfxGetStockContainer().GetPrevStock( pInfo );
}

BOOL CStProfile::GetNextStock( CStockInfo * pInfo )
{
	return AfxGetStockContainer().GetNextStock( pInfo );
}

int CStProfile::GetInfoCurrentServer( )
{
	return m_nInfoCurrentServer;
}

void CStProfile::SetInfoCurrentServer( int nServer )
{
	m_nInfoCurrentServer	=	nServer;
}

void CStProfile::GetGraphTechsDefault( CSPDWordArray & anShow )
{
	// All Order
	m_anGraphTechsAll.RemoveAll();
	UINT i;
	for(  i=STT_MIN; i<=STT_MAX; i++ )
	{
		m_anGraphTechsAll.Add( i );
	}
	
	// 外挂指标
	UINT nTechUserCount = CTechUser::GetTechUserCount();
	for(  i=0; i<nTechUserCount; i++ )
	{
		m_anGraphTechsAll.Add( STT_USER_MIN+i );
	}

	// Show
	anShow.RemoveAll( );
	anShow.Add( STT_VOLUME );
	anShow.Add( STT_MACD );

	if( nTechUserCount > 0 )
	{
		anShow.RemoveAll();
		anShow.Add( STT_VOLUME );
		anShow.Add( STT_USER_MIN );
	}
}

CSPDWordArray & CStProfile::GetGraphTechsShow( )
{
	static	int count	=	0;
	count	++;
	if( m_anGraphTechsShow.GetSize() == 0 && count == 1 )
		GetGraphTechsDefault( m_anGraphTechsShow );

	// Remove some dulplicate
	for( int i=m_anGraphTechsShow.GetSize()-1; i>=0; i-- )
	{
		if( m_anGraphTechsShow[i] >= STT_KLINE_MIN && m_anGraphTechsShow[i] <= STT_KLINE_MAX )
		{
			m_anGraphTechsShow.RemoveAt( i );
			continue;
		}
		for( int k=0; k<i; k++ )
		{
			if( m_anGraphTechsShow[i] == m_anGraphTechsShow[k] )
			{
				m_anGraphTechsShow.RemoveAt( i );
				SP_ASSERT( FALSE );
				break;
			}
		}
	}

	return m_anGraphTechsShow;
}

CSPDWordArray & CStProfile::GetGraphTechsKLine( )
{
	static	int	count	=	0;
	count	++;
	if( m_anGraphTechsKLine.GetSize() == 0 && count == 1 )
		m_anGraphTechsKLine.Add( STT_MA );

	// Remove some dulplicate
	for( int i=m_anGraphTechsKLine.GetSize()-1; i>=0; i-- )
	{
		if( m_anGraphTechsKLine[i] < STT_KLINE_MIN || m_anGraphTechsKLine[i] > STT_KLINE_MAX )
		{
			m_anGraphTechsKLine.RemoveAt( i );
			continue;
		}
		for( int k=0; k<i; k++ )
		{
			if( m_anGraphTechsKLine[i] == m_anGraphTechsKLine[k] )
			{
				m_anGraphTechsKLine.RemoveAt( i );
				SP_ASSERT( FALSE );
				break;
			}
		}
	}

	return m_anGraphTechsKLine;
}

CSPDWordArray & CStProfile::GetGraphTechsAll( )
{
	int	nRealCount = STT_MAX-STT_MIN+1+CTechUser::GetTechUserCount();
	if( m_anGraphTechsAll.GetSize() != nRealCount )
		GetGraphTechsDefault( m_anGraphTechsShow );

	// Remove some dulplicate
	for( int i=m_anGraphTechsAll.GetSize()-1; i>=0; i-- )
	{
		for( int k=0; k<i; k++ )
		{
			if( m_anGraphTechsAll[i] == m_anGraphTechsAll[k] )
			{
				m_anGraphTechsAll.RemoveAt( i );
				SP_ASSERT( FALSE );
				break;
			}
		}
	}

	return m_anGraphTechsAll;
}

BOOL CStProfile::IsGraphTechShow( UINT nTech )
{
	SP_ASSERT( (nTech >= STT_MIN && nTech <= STT_MAX) || nTech >= STT_USER_MIN );

	CSPDWordArray	& anTech	=	GetGraphTechsShow( );
	CSPDWordArray	& anKLine	=	GetGraphTechsKLine( );

	int k;

	for(  k=0; k<anTech.GetSize(); k++ )
	{
		if( anTech[k] == nTech )
			return TRUE;
	}
	for(  k=0; k<anKLine.GetSize(); k++ )
	{
		if( anKLine[k] == nTech )
			return TRUE;
	}
	return FALSE;
}

void CStProfile::ToggleGraphViewTech( UINT nTech )
{
	SP_ASSERT( (nTech >= STT_MIN && nTech <= STT_MAX) || nTech >= STT_USER_MIN );

	if( nTech >= STT_KLINE_MIN && nTech <= STT_KLINE_MAX )
	{
		BOOL	bHas	=	FALSE;
		CSPDWordArray	& anKLine	=	GetGraphTechsKLine( );
		for( int k=anKLine.GetSize()-1; k>=0; k-- )
		{
			if( anKLine[k] == nTech )
			{
				anKLine.RemoveAt(k);
				bHas	=	TRUE;
			}
		}
		if( !bHas )
			anKLine.InsertAt( 0, nTech );
	}
	else
	{
		BOOL	bHas	=	FALSE;
		CSPDWordArray	& anShow	=	GetGraphTechsShow( );
		for( int k=anShow.GetSize()-1; k>=0; k-- )
		{
			if( anShow[k] == nTech )
			{
				anShow.RemoveAt(k);
				bHas	=	TRUE;
			}
		}
		if( !bHas )
			anShow.Add( nTech );
	}
}

void CStProfile::ShowGraphViewTech( UINT nTech )
{
	SP_ASSERT( (nTech >= STT_MIN && nTech <= STT_MAX) || nTech >= STT_USER_MIN );

	if( nTech >= STT_KLINE_MIN && nTech <= STT_KLINE_MAX )
	{
		CSPDWordArray	& anKLine	=	GetGraphTechsKLine( );
		for( int k=anKLine.GetSize()-1; k>=0; k-- )
		{
			if( anKLine[k] == nTech )
			{
				anKLine.RemoveAt(k);
				anKLine.Add( nTech );
				return;
			}
		}
		if( anKLine.GetSize() > 0 )
			anKLine.SetAt( 0, nTech );
		else
			anKLine.Add( nTech );
	}
	else
	{
		CSPDWordArray	& anShow	=	GetGraphTechsShow( );
		for( int k=anShow.GetSize()-1; k>=0; k-- )
		{
			if( anShow[k] == nTech )
			{
				anShow.RemoveAt(k);
				anShow.Add( nTech );
				return;
			}
		}
		if( anShow.GetSize() >= 2 )
			anShow.SetAt( anShow.GetSize()-1, nTech );
		else
			anShow.Add( nTech );
	}
}

int CStProfile::GetGraphKFormat( )
{
	if( m_nGraphKFormat < CKData::formatMin
		|| m_nGraphKFormat > CKData::formatMax )
		m_nGraphKFormat	=	CKData::formatOriginal;

	return m_nGraphKFormat;
}

void CStProfile::SetGraphKFormat( int kformat )
{
	m_nGraphKFormat	=	kformat;
}

int CStProfile::GetGraphMaindataType( )
{
	if( m_nGraphMaindataType < CKData::mdtypeMin
		|| m_nGraphMaindataType > CKData::mdtypeMax )
		m_nGraphMaindataType	=	CKData::mdtypeClose;

	return m_nGraphMaindataType;
}

void CStProfile::SetGraphMaindataType( int maindatatype )
{
	m_nGraphMaindataType	=	maindatatype;
}

DWORD CStProfile::GetAutoResumeDRBegin( )
{
	if( 0 == m_dwAutoResumeDRBegin || -1 == m_dwAutoResumeDRBegin )
		m_dwAutoResumeDRBegin	=	STKLIB_AUTORESUMEDR_DATEBEGIN;
	return m_dwAutoResumeDRBegin;
}

void CStProfile::SetAutoResumeDRBegin( DWORD dateBegin )
{
	m_dwAutoResumeDRBegin	=	dateBegin;
}

BOOL CStProfile::IsValidFont( LPLOGFONT pLogFont )
{
	SP_ASSERT( pLogFont );
	if( NULL == pLogFont )
		return FALSE;
	for( int i=0; i<sizeof(LOGFONT); i++ )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -