亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? commfuns.cpp

?? 股票軟件
?? CPP
字號:
// strings.cpp : implementation file
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1997 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

#include	"StdAfx.h"
#include	"CommFuns.h"
#include	"math.h"

BOOL CalculateYieldYear( CKData & kday, double * paverage, double * pstddev, long ldays, int nDayCurrent )
{
	if( -1 != nDayCurrent && nDayCurrent >= kday.GetSize() )
		return FALSE;

	int	nDayCount		=	0;
	double	yieldSum = 0., yieldSquareSum = 0.;
	if( -1 == nDayCurrent )
		nDayCurrent	=	kday.GetSize()-1;
	int	nDayEnd = ( -1 == ldays ? 0 : nDayCurrent-ldays );
	if( nDayEnd - STKLIB_DAYS_INONEYEAR < 0 )
		return FALSE;
	for( int nDay = nDayCurrent; nDay >= nDayEnd; nDay -- )
	{
		int	nDayLast	=	nDay - STKLIB_DAYS_INONEYEAR;
		if( nDayLast < 0 )
			break;

		if( kday.MaindataAt(nDayLast) > 1e-4 )
		{
			nDayCount	++;
			double	yieldNow	=	(double( kday.MaindataAt(nDay) - kday.MaindataAt(nDayLast) )) / kday.MaindataAt(nDayLast);
			yieldSum	+=	yieldNow;
			yieldSquareSum	+=	yieldNow*yieldNow;
		}
	}
	if( nDayCount > 0 &&
		nDayCount >= (-1 == ldays ? STKLIB_DAYS_INONEYEAR : ldays-STKLIB_DAYS_INONEYEAR) )
	{
		double	average	=	yieldSum / nDayCount;
		if( kday.MaindataAt(nDayEnd) > 1e-4 )	// HERE!!!, reset average directly!!!
		{
			average	= (double)kday.MaindataAt(nDayCurrent) / kday.MaindataAt(nDayEnd);
			double dYearCount = ((double)nDayCount) / STKLIB_DAYS_INONEYEAR;
			average = pow( (double)10, (double)log10(fabs(average))/dYearCount ) - 1;
		}

		if( paverage )
			*paverage	=	average;
		if( pstddev )
		{
			*pstddev		=	yieldSquareSum / nDayCount - ((yieldSum / nDayCount)*(yieldSum / nDayCount));
			if( *pstddev > 0 )
				*pstddev	=	sqrt( *pstddev );
		}
		return TRUE;
	}

	return FALSE;
}

BOOL CalculateYieldDay( CKData & kday, double * paverage, double * pstddev, long ldays, int nDayCurrent )
{
	if( -1 != nDayCurrent && nDayCurrent >= kday.GetSize() )
		return FALSE;

	int	nDayCount		=	0;
	double	yieldSum = 0., yieldSquareSum = 0.;
	if( -1 == nDayCurrent )
		nDayCurrent	=	kday.GetSize()-1;
	int	nDayEnd = ( -1 == ldays ? 0 : nDayCurrent-ldays );
	if( nDayEnd - 1 < 0 )
		return FALSE;
	for( int nDay = nDayCurrent; nDay >= nDayEnd; nDay -- )
	{
		int	nDayLast	=	nDay - 1;
		if( nDayLast < 0 )
			break;

		if( kday.MaindataAt(nDayLast) > 1e-4 )
		{
			nDayCount	++;
			double	yieldNow	=	(double( kday.MaindataAt(nDay) - kday.MaindataAt(nDayLast) )) / kday.MaindataAt(nDayLast);
			yieldSum	+=	yieldNow;
			yieldSquareSum	+=	yieldNow*yieldNow;
		}
	}
	if( nDayCount > 0 &&
		nDayCount >= (-1 == ldays ? STKLIB_DAYS_INONEYEAR : ldays) )
	{
		double	average	=	yieldSum / nDayCount;
		if( kday.MaindataAt(nDayEnd) > 1e-4 )	// HERE!!!, reset average directly!!!
		{
			average	= (double)kday.MaindataAt(nDayCurrent) / kday.MaindataAt(nDayEnd);
			average = pow( (double)10, (double)log10(fabs(average))/nDayCount ) - 1;
		}

		if( paverage )
			*paverage	=	average;
		if( pstddev )
		{
			*pstddev		=	yieldSquareSum / nDayCount - ((yieldSum / nDayCount)*(yieldSum / nDayCount));
			if( *pstddev > 0 )
				*pstddev	=	sqrt( *pstddev );
		}
		return TRUE;
	}

	return FALSE;
}

BOOL CalculateBeiteYear( CKData & kday, CKData &kdayMain,
					double market_yield_average, double market_yield_d,
					double	* pbeite, long ldays, int nDayCurrent )
{
	if( -1 != nDayCurrent && nDayCurrent >= kday.GetSize() )
		return FALSE;
	if( kday.GetSize() == 0 || kdayMain.GetSize() == 0 )
		return FALSE;

	double	yield_average = 0., yield_d = 0.;
	if( !CalculateYieldYear( kday, &yield_average, &yield_d, ldays, nDayCurrent ) )
		return FALSE;

	int	nDayCount		=	0;
	double	sum	=	0.;

	// kday Index
	if( -1 == nDayCurrent )
		nDayCurrent	=	kday.GetSize()-1;
	int	nDayEnd = ( -1 == ldays ? 0 : nDayCurrent-ldays );
	if( nDayEnd - STKLIB_DAYS_INONEYEAR < 0 )
		return FALSE;

	// kdayMain Index
	int	nDayCurrentMain	=	kdayMain.GetSize()-(kday.GetSize()-nDayCurrent);
	if( nDayCurrentMain < 0 || nDayCurrentMain >= kdayMain.GetSize() )
		return FALSE;
	if( kday.ElementAt(nDayCurrent).m_date != kdayMain.ElementAt(nDayCurrentMain).m_date )
	{
		int k;
		for( k=kdayMain.GetSize()-1; k>=0 ; k-- )
		{
			if( kday.ElementAt(nDayCurrent).m_date == kdayMain.ElementAt(k).m_date )
			{
				nDayCurrentMain	=	k;
				break;
			}
		}
		if( k < 0 )
			return FALSE;
	}
	int	nDayEndMain = ( -1 == ldays ? 0 : nDayCurrentMain-ldays );
	if( nDayEndMain < 0 )
		return FALSE;

	// Begin Calculate
	int	nCountAdjust	=	0;
	for( int nDay = nDayCurrent; nDay >= nDayEnd ; nDay -- )
	{
		int	nDayLast	=	nDay - STKLIB_DAYS_INONEYEAR;
		int	nDayMain	=	nDayCurrentMain-(nDayCurrent-nDay);
		int nDayMainLast	= nDayMain - STKLIB_DAYS_INONEYEAR;
		if( nDayMainLast < 0 || nDayMain >= kdayMain.GetSize() || nDayLast < 0 || nDay >= kday.GetSize() )
			break;

		// SP_ASSERT( kday.ElementAt(nDay).m_date == kdayMain.ElementAt(nDayMain).m_date );
		if( kday.ElementAt(nDay).m_date < kdayMain.ElementAt(nDayMain).m_date )
		{
			nCountAdjust	++;
			if( nCountAdjust >= 5 )
				break;
			nDayCurrentMain --;
			continue;
		}
		if( kday.ElementAt(nDay).m_date > kdayMain.ElementAt(nDayMain).m_date )
		{
			nCountAdjust	++;
			if( nCountAdjust >= 5 )
				break;
			nDayCurrentMain ++;
			continue;
		}

		if( kday.MaindataAt(nDayLast) > 1e-4 && kdayMain.MaindataAt(nDayMainLast) > 1e-4 )
		{
			nDayCount	++;
			double	yieldNow	=	(double( kday.MaindataAt(nDay) - kday.MaindataAt(nDayLast) )) / kday.MaindataAt(nDayLast);
			double	yieldNowMain=	(double( kdayMain.MaindataAt(nDayMain) - kdayMain.MaindataAt(nDayMainLast) )) / kdayMain.MaindataAt(nDayMainLast);
			sum	+=	(yieldNow-yield_average) * (yieldNowMain-market_yield_average);
		}
	}
	if( nDayCount > 0 &&
		nDayCount+nCountAdjust >= (-1 == ldays ? STKLIB_DAYS_INONEYEAR : ldays-STKLIB_DAYS_INONEYEAR) )
	{
		if( pbeite )
			*pbeite	=	( sum / nDayCount) / (market_yield_d*market_yield_d);
		return TRUE;
	}

	return	FALSE;
}

BOOL CalculateBeiteDay( CKData & kday, CKData &kdayMain,
					double market_yield_average, double market_yield_d,
					double	* pbeite, long ldays, int nDayCurrent )
{
	if( -1 != nDayCurrent && nDayCurrent >= kday.GetSize() )
		return FALSE;
	if( kday.GetSize() == 0 || kdayMain.GetSize() == 0 )
		return FALSE;

	double	yield_average = 0., yield_d = 0.;
	if( !CalculateYieldDay( kday, &yield_average, &yield_d, ldays, nDayCurrent ) )
		return FALSE;

	int	nDayCount	=	0;
	double	sum	=	0.;

	// kday Index
	if( -1 == nDayCurrent )
		nDayCurrent	=	kday.GetSize()-1;
	int	nDayEnd = ( -1 == ldays ? 0 : nDayCurrent-ldays );
	if( nDayEnd -1 < 0 )
		return FALSE;

	// kdayMain Index
	int	nDayCurrentMain	=	kdayMain.GetSize()-(kday.GetSize()-nDayCurrent);
	if( nDayCurrentMain < 0 || nDayCurrentMain >= kdayMain.GetSize() )
		return FALSE;
	if( kday.ElementAt(nDayCurrent).m_date != kdayMain.ElementAt(nDayCurrentMain).m_date )
	{
		int k;
		for( k=kdayMain.GetSize()-1; k>=0 ; k-- )
		{
			if( kday.ElementAt(nDayCurrent).m_date == kdayMain.ElementAt(k).m_date )
			{
				nDayCurrentMain	=	k;
				break;
			}
		}
		if( k < 0 )
			return FALSE;
	}
	int	nDayEndMain = ( -1 == ldays ? 0 : nDayCurrentMain-ldays );
	if( nDayEndMain < 0 )
		return FALSE;

	// Begin Calculate
	int	nCountAdjust	=	0;
	for( int nDay = nDayCurrent; nDay >= nDayEnd; nDay -- )
	{
		int	nDayLast	=	nDay - 1;
		int	nDayMain	=	nDayCurrentMain-(nDayCurrent-nDay);
		int nDayMainLast	= nDayMain-1;
		if( nDayMainLast < 0 || nDayMain >= kdayMain.GetSize() || nDayLast < 0 || nDay >= kday.GetSize() )
			break;

		// SP_ASSERT( kday.ElementAt(nDay).m_date == kdayMain.ElementAt(nDayMain).m_date );
		if( kday.ElementAt(nDay).m_date < kdayMain.ElementAt(nDayMain).m_date )
		{
			nCountAdjust	++;
			if( nCountAdjust >= 5 )
				break;
			nDayCurrentMain --;
			continue;
		}
		if( kday.ElementAt(nDay).m_date > kdayMain.ElementAt(nDayMain).m_date )
		{
			nCountAdjust	++;
			if( nCountAdjust >= 5 )
				break;
			nDayCurrentMain ++;
			continue;
		}

		if( kday.MaindataAt(nDayLast) > 1e-4 && kdayMain.MaindataAt(nDayMainLast) > 1e-4 )
		{
			nDayCount	++;
			double	yieldNow	=	(double( kday.MaindataAt(nDay) - kday.MaindataAt(nDayLast) )) / kday.MaindataAt(nDayLast);
			double	yieldNowMain=	(double( kdayMain.MaindataAt(nDayMain) - kdayMain.MaindataAt(nDayMainLast) )) / kdayMain.MaindataAt(nDayMainLast);
			sum	+=	(yieldNow-yield_average) * (yieldNowMain-market_yield_average);
		}
	}
	if( nDayCount > 0 &&
		nDayCount+nCountAdjust >= (-1 == ldays ? STKLIB_DAYS_INONEYEAR : ldays) )
	{
		if( pbeite )
			*pbeite	=	( sum / nDayCount) / (market_yield_d*market_yield_d);
		return TRUE;
	}

	return	FALSE;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青娱乐精品视频| 欧美性大战久久久| 久久精品免费观看| 亚洲欧洲精品一区二区三区| 久久精品一二三| 欧美电影免费观看高清完整版在 | 欧美日韩大陆一区二区| 91在线视频免费观看| 国产成人鲁色资源国产91色综| 蜜臀国产一区二区三区在线播放| 性做久久久久久久久| 不卡的av网站| 国产美女视频91| 国产剧情一区二区| 粉嫩一区二区三区性色av| 国产精品123| 成人爱爱电影网址| 粉嫩嫩av羞羞动漫久久久| 成人av免费观看| 成人avav影音| 色狠狠色噜噜噜综合网| 欧美日韩专区在线| 91麻豆精品久久久久蜜臀| 欧美精选一区二区| 久久中文字幕电影| 国产午夜精品久久久久久免费视 | jiyouzz国产精品久久| 91免费观看视频在线| 91视视频在线直接观看在线看网页在线看| 国产精品美女久久久久久久久久久| 国产网红主播福利一区二区| 亚洲欧洲日本在线| 亚洲一级不卡视频| 热久久久久久久| 成人福利视频网站| 91免费看`日韩一区二区| 99天天综合性| 99国产精品视频免费观看| 色乱码一区二区三区88| 亚洲激情中文1区| 亚洲在线免费播放| 久久99九九99精品| bt欧美亚洲午夜电影天堂| 色94色欧美sute亚洲线路一ni| 欧美精品九九99久久| 日韩精品一区二区在线| 久久久久久久久伊人| 国产农村妇女精品| 午夜不卡av免费| 国产精品主播直播| 一本一道久久a久久精品综合蜜臀| 欧美精品久久久久久久久老牛影院| 日韩欧美国产系列| 亚洲欧洲精品一区二区三区不卡| 日韩va亚洲va欧美va久久| 国产成人免费在线| 在线视频亚洲一区| 国产三级精品视频| 亚洲6080在线| 国产69精品久久久久777| 欧美日韩国产大片| 国产午夜精品美女毛片视频| 亚洲一区二三区| 免费高清成人在线| 成人18精品视频| 7777女厕盗摄久久久| 久久噜噜亚洲综合| 日韩av不卡一区二区| 成人在线视频一区| 欧美偷拍一区二区| 国产精品高潮久久久久无| 婷婷国产在线综合| 99久免费精品视频在线观看| 2017欧美狠狠色| 亚洲成人免费看| 成人黄色在线网站| 日韩精品中文字幕一区| 久久精品男人天堂av| 日韩va欧美va亚洲va久久| 99久久国产综合精品女不卡| 日韩欧美国产一区在线观看| 亚洲chinese男男1069| 波多野结衣中文一区| 91精品国产麻豆国产自产在线 | 中文字幕在线不卡| 2022国产精品视频| 精品久久久久一区| 婷婷成人激情在线网| 欧美成人一区二区三区在线观看| 亚洲女厕所小便bbb| www.日本不卡| 欧美一区二区私人影院日本| 亚洲色欲色欲www| 国产精品99久久久久久久女警 | 久久久99免费| 六月丁香综合在线视频| 欧美专区日韩专区| 亚洲人吸女人奶水| 99精品视频一区| 中文在线资源观看网站视频免费不卡| 日本不卡一二三| 国产精品一二三四区| 久久青草国产手机看片福利盒子| 三级久久三级久久| 欧美日韩免费观看一区三区| 亚洲一本大道在线| 欧美在线999| 亚洲专区一二三| 欧美日韩国产乱码电影| 亚洲国产中文字幕| 欧美三级电影在线看| 在线观看亚洲一区| 亚洲免费高清视频在线| av高清久久久| 制服丝袜中文字幕一区| 三级一区在线视频先锋| 欧美日韩日日摸| 亚洲成av人片一区二区梦乃| 欧美日韩午夜在线视频| 亚洲国产一二三| 精品视频资源站| 性欧美大战久久久久久久久| 日本精品视频一区二区| 亚洲综合色成人| 国产精品自拍网站| 欧美韩日一区二区三区四区| 成人免费不卡视频| 亚洲精品日产精品乱码不卡| 欧美性猛片xxxx免费看久爱| 亚洲一区二区三区视频在线播放| 亚洲自拍与偷拍| 日韩视频在线一区二区| 久久99久国产精品黄毛片色诱| 2021久久国产精品不只是精品| 久久91精品久久久久久秒播| 中文字幕av资源一区| 99国产精品久久久久久久久久| 一区二区三区四区亚洲| 欧美久久久久免费| 欧美va亚洲va国产综合| 国产自产视频一区二区三区| 精品国产自在久精品国产| av资源站一区| 亚洲一区国产视频| 91精品国产91久久综合桃花| 日韩精品一级中文字幕精品视频免费观看 | 亚洲精品国久久99热| 欧美日韩高清在线| 精品一区二区三区免费毛片爱 | 欧美激情在线一区二区三区| 国产suv精品一区二区三区| 欧美国产精品久久| 色呦呦国产精品| 午夜精品免费在线| 91精品国产综合久久蜜臀| 久久疯狂做爰流白浆xx| 国产视频在线观看一区二区三区| 99久久99久久精品国产片果冻 | 亚洲三级电影网站| 91麻豆精品久久久久蜜臀| 国产精品一线二线三线| 中文字幕五月欧美| 91精品在线观看入口| 丰满亚洲少妇av| 亚洲3atv精品一区二区三区| 精品盗摄一区二区三区| av电影一区二区| 日韩精品1区2区3区| 欧美国产综合一区二区| 欧美日韩亚洲综合一区| 国产综合色视频| 亚洲一二三区在线观看| 久久午夜羞羞影院免费观看| 一本一本大道香蕉久在线精品| 老司机精品视频一区二区三区| 国产精品乱码妇女bbbb| 欧美精品日韩一区| 99久久精品免费看国产| 国产在线播放一区三区四| 日韩高清在线观看| 国产精品亚洲专一区二区三区| 久久99蜜桃精品| 亚洲欧洲精品一区二区三区| 久久久久99精品一区| 日韩视频免费直播| 欧美日韩国产欧美日美国产精品| 99久久免费视频.com| 高清日韩电视剧大全免费| 久久狠狠亚洲综合| 免费成人在线视频观看| 五月天久久比比资源色| 亚洲国产精品久久久久秋霞影院| 中文字幕一区二区在线播放| 欧美激情综合五月色丁香小说| 欧美草草影院在线视频| 欧美一区二区三区视频免费 | 一区二区三区欧美激情| 国产精品久久久久一区二区三区| 久久精品网站免费观看| 欧美精品一区二区在线观看|