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

📄 drawtech.cpp

📁 股软 通达信行情接收接口, 包括美元汇率
💻 CPP
📖 第 1 页 / 共 5 页
字号:
void CStockGraph::DrawTechPVI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.pvi.AttachParameters( AfxGetProfile().GetTechParameters().pvi );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.pvi.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil2(	pDC, rect, bDrawTitle, dMin, dMax, STT_PVI, &(m_techparam.pvi), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					"PVI", "MA");
}

void CStockGraph::DrawTechVR( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.vr.AttachParameters( AfxGetProfile().GetTechParameters().vr );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.vr.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_VR, &(m_techparam.vr), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechVROC( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.vroc.AttachParameters( AfxGetProfile().GetTechParameters().vroc );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.vroc.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil2(	pDC, rect, bDrawTitle, dMin, dMax, STT_VROC, &(m_techparam.vroc), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					"VROC", "MA" );
}

void CStockGraph::DrawTechOBV( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.obv.AttachParameters( AfxGetProfile().GetTechParameters().obv );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.obv.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 3, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_OBV, &(m_techparam.obv), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechMOBV( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.mobv.AttachParameters( AfxGetProfile().GetTechParameters().mobv );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.mobv.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 3, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil3(	pDC, rect, bDrawTitle, dMin, dMax, STT_MOBV, &(m_techparam.mobv), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					AfxGetProfile().GetColor(CColorClass::clrLine3),
					"SHT", "MED", "LNG" );
}

void CStockGraph::DrawTechMFI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.mfi.AttachParameters( AfxGetProfile().GetTechParameters().mfi );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.mfi.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_MFI, &(m_techparam.mfi), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechVMACD( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.vmacd.AttachParameters( AfxGetProfile().GetTechParameters().vmacd );

	DrawTechMACD( pDC, rect, bDrawTitle, STT_VMACD, &(m_techparam.vmacd) );
}

void CStockGraph::DrawTechWVAD( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.wvad.AttachParameters( AfxGetProfile().GetTechParameters().wvad );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.wvad.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 3, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_WVAD, &(m_techparam.wvad), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechEMV( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.emv.AttachParameters( AfxGetProfile().GetTechParameters().emv );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.emv.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 2 ) )
		return;
	
	DrawTechUtil2(	pDC, rect, bDrawTitle, dMin, dMax, STT_EMV, &(m_techparam.emv), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					"EMV", "MA" );
}

void CStockGraph::DrawTechVRSI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.vrsi.AttachParameters( AfxGetProfile().GetTechParameters().vrsi );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.vrsi.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_VRSI, &(m_techparam.vrsi), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechNVRSI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.nvrsi.AttachParameters( AfxGetProfile().GetTechParameters().nvrsi );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.nvrsi.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_NVRSI, &(m_techparam.nvrsi), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechAD( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.ad.AttachParameters( AfxGetProfile().GetTechParameters().ad );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.ad.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_AD, &(m_techparam.ad), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechCI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.ci.AttachParameters( AfxGetProfile().GetTechParameters().ci );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.ci.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_CI, &(m_techparam.ci), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechKDJ( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.kdj.AttachParameters( AfxGetProfile().GetTechParameters().kdj );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.kdj.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil3(	pDC, rect, bDrawTitle, dMin, dMax, STT_KDJ, &(m_techparam.kdj), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					AfxGetProfile().GetColor(CColorClass::clrLine3),
					"K", "D", "J" );
}

void CStockGraph::DrawTechR( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.r.AttachParameters( AfxGetProfile().GetTechParameters().r );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.r.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_R, &(m_techparam.r), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechRSI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.rsi.AttachParameters( AfxGetProfile().GetTechParameters().rsi );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.rsi.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil(	pDC, rect, bDrawTitle, dMin, dMax, STT_RSI, &(m_techparam.rsi), &kdata, m_techparam.rsi.m_adwDays );
}

void CStockGraph::DrawTechBIAS( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.bias.AttachParameters( AfxGetProfile().GetTechParameters().bias );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.bias.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 2 ) )
		return;
	
	DrawTechUtil1(	pDC, rect, bDrawTitle, dMin, dMax, STT_BIAS, &(m_techparam.bias), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1), drawtechtype_line );
}

void CStockGraph::DrawTechMTM( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.mtm.AttachParameters( AfxGetProfile().GetTechParameters().mtm );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.mtm.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil2(	pDC, rect, bDrawTitle, dMin, dMax, STT_MTM, &(m_techparam.mtm), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					"MTM", "MA" );
}

void CStockGraph::DrawTechDMI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.dmi.AttachParameters( AfxGetProfile().GetTechParameters().dmi );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.dmi.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil4(	pDC, rect, bDrawTitle, dMin, dMax, STT_DMI, &(m_techparam.dmi), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					AfxGetProfile().GetColor(CColorClass::clrLine3),
					AfxGetProfile().GetColor(CColorClass::clrLine4),
					"+DI", "-DI", "ADX", "ADXR" );
}

void CStockGraph::DrawTechROC( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.roc.AttachParameters( AfxGetProfile().GetTechParameters().roc );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.roc.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil2(	pDC, rect, bDrawTitle, dMin, dMax, STT_ROC, &(m_techparam.roc), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					"ROC", "MA" );
}

void CStockGraph::DrawTechCCI( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.cci.AttachParameters( AfxGetProfile().GetTechParameters().cci );

	double	dMin = 0, dMax = 0;
	if( !m_techparam.cci.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;
	
	DrawTechUtil2(	pDC, rect, bDrawTitle, dMin, dMax, STT_CCI, &(m_techparam.cci), &kdata,
					AfxGetProfile().GetColor(CColorClass::clrLine1),
					AfxGetProfile().GetColor(CColorClass::clrLine2),
					"CCI", "MA" );
}

void CStockGraph::DrawTechCV( CDC * pDC, CRect rect, BOOL bDrawTitle )
{
	CHECK_NODATATODRAW
	DECLARE_COLOR_DEFINATION
	COLORREF	clrLine1	=	AfxGetProfile().GetColor(CColorClass::clrLine1);

	CKData	& kdata	=	m_CurStock.GetKData(m_nCurKType);
	m_techparam.cv.AttachParameters( AfxGetProfile().GetTechParameters().cv );

	// Get Min Max
	double	dMin = 0, dMax = 0;
	if( !m_techparam.cv.GetMinMaxInfo( m_nIndexStart, m_nIndexEnd, &dMin, &dMax )
		|| !DrawAxis( pDC, rect, m_nHeightSubtitle, 5, dMin, dMax, FALSE, TRUE, 0 ) )
		return;

	// Draw Title
	if( bDrawTitle )
	{
		DrawTechTitle( pDC, rect.left+5, rect.top+1,AfxGetSTTShortName(STT_CV), TA_LEFT | TA_TOP, 14, clrBK, clrTitle );
		
		CFont	* pOldFont	=	AfxSelectDCFont( pDC, 12 );
		pDC->SetBkColor( clrBK );
		int	nIndexParam	=	( m_nIndexCurrent >= 0 ? m_nIndexCurrent : kdata.GetSize()-1 );
		double	dParam = dMin;
		CString	strText;
		if( m_techparam.cv.Calculate( &dParam, nIndexParam, FALSE ) )
		{
			strText.Format( "%s  %.2f", (LPCTSTR)(AfxGetSTTShortName(STT_CV)), dParam );
			pDC->SetTextColor( clrLine1 );

⌨️ 快捷键说明

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