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

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

?? techkline.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
		&& VALID_ITS(m_itsBuy) && VALID_ITS(m_itsSell) );
}

void CSAR::Clear( )
{
	CTechnique::Clear( );
}

BOOL CSAR::CalculateSAR( double * pValue, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );

	if( m_nInitDays > nIndex + 1 )
		return FALSE;

	double	dResult	=	0;
	if( bUseLast && pValue && nIndex > 0 && !m_bTurn )
	{
		KDATA	kd	=	m_pKData->ElementAt(nIndex-1);
		if( m_bCurUp )
		{
			dResult	=	(*pValue) + m_dCurAF * (kd.m_fHigh - (*pValue) );
			if( kd.m_fHigh > m_dCurHigh )
			{
				m_dCurHigh	=	kd.m_fHigh;
				m_dCurAF	=	m_dCurAF + m_dAFStep;
				if( m_dCurAF > m_dAFMax )
					m_dCurAF	=	m_dAFMax;
			}
			if( m_pKData->ElementAt(nIndex).m_fLow < dResult )
				m_bTurn		=	TRUE;
		}
		else
		{
			dResult	=	(*pValue) - m_dCurAF * ((*pValue) - kd.m_fLow );
			if( kd.m_fLow < m_dCurLow )
			{
				m_dCurLow	=	kd.m_fLow;
				m_dCurAF	=	m_dCurAF + m_dAFStep;
				if( m_dCurAF > m_dAFMax )
					m_dCurAF	=	m_dAFMax;
			}
			if( m_pKData->ElementAt(nIndex).m_fHigh > dResult )
				m_bTurn		=	TRUE;
		}
	}
	else
	{
		for( int k=nIndex; k>=nIndex-m_nInitDays+1; k-- )
		{
			KDATA	kd	=	m_pKData->ElementAt(k);
			if( nIndex == k )
			{
				m_dCurHigh	=	kd.m_fHigh;
				m_dCurLow	=	kd.m_fLow;
			}
			else if( kd.m_fHigh > m_dCurHigh )
				m_dCurHigh	=	kd.m_fHigh;
			else if( kd.m_fLow < m_dCurLow )
				m_dCurLow	=	kd.m_fLow;
		}
		if( m_bTurn )
			m_bCurUp	=	! m_bCurUp;
		else
			m_bCurUp	=	m_bFirstUp;
		m_bTurn		=	FALSE;
		m_dCurAF	=	m_dAFStep;
		if( m_bCurUp )
			dResult	=	m_dCurLow;
		else
			dResult	=	m_dCurHigh;
	}

	if( pValue )
		*pValue	=	dResult;
	return TRUE;
}

int CSAR::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;
	Clear( );
	double dValue;
	if( !Calculate( &dValue, nIndex, FALSE ) )
		return ITS_NOTHING;

	if( m_bTurn && !m_bCurUp )
	{	// 反轉向上
		if( pnCode )	*pnCode	=	ITSC_LONG;
		return m_itsBuy;
	}
	if( m_bTurn && m_bCurUp )
	{	// 反轉向下
		if( pnCode )	*pnCode	=	ITSC_SHORT;
		return m_itsSell;
	}
	return	ITS_NOTHING;
}

BOOL CSAR::GetMinMaxInfo(int nStart, int nEnd,
				   double *pdMin, double *pdMax )
{
	return AfxGetMinMaxInfo1( nStart, nEnd, pdMin, pdMax, this );
}

/***
	計算SAR值
	先選定時間,判斷價格是在上漲還是在下跌。
	若是看漲,則進場第一天的SAR必須是近期內的最低價,是看跌 則進場第一天的SAR必須是近期內的最高價。
	本處為缺省定義為看漲。

	進場第二天的SAR則為第一天的最高價(看漲時)或最低價(看跌時)與第一天的SAR的差距乘上調整系數,
	再加上第一天的SAR就可求得。
	按逐步遞推的方法,每日的SAR可歸納如下: SAR(N)= SAR(N-1)+ AF * [ EP(N-1)-SAR(N-1)]
	其中SAR(N)為第N日的SAR值,AF是調整系數,EP為極點價
	
	第一個調整系數AF為0.02,若每隔一天的最高價比前一天的最高價還高,則AF遞增0.02,若未創新高,
則AF沿用前一天的數值,但調整系數最高不超過0.2。
	若是買進期間,計算出某日的SAR比當日或前一日的最低價還高,則應以當日或者前一日的最低價為某日之SAR,
賣出期間也對應服從類似原則。
*/
BOOL CSAR::Calculate( double * pValue, int nIndex, BOOL bUseLast )
{
	if( LoadFromCache( nIndex, pValue ) )
		return TRUE;

	if( bUseLast && pValue && nIndex > 0 )
	{
		if( CalculateSAR( pValue, nIndex, bUseLast ) )
		{
			StoreToCache( nIndex, pValue );
			return TRUE;
		}
		return FALSE;
	}
	else
	{
		double	dResult;
		BOOL	bHasLast	=	FALSE;
		for( int k=0; k<=nIndex; k++ )
		{
			if( CalculateSAR( &dResult, k, bHasLast ) )
			{
				bHasLast	=	TRUE;
				StoreToCache( k, &dResult );
			}
		}
		if( !bHasLast )
			return FALSE;
		if( pValue )
			*pValue	=	dResult;
		return TRUE;
	}
}

//////////////////////////////////////////////////////////////////////
//	CDJ
CStock		CDJ::m_stockSha;
CStock		CDJ::m_stockSzn;
CSPString	CDJ::m_strCodeOrg;
CDJ::CDJ( )
{
	SetDefaultParameters( );
}

CDJ::CDJ( CKData * pKData )
	: CTechnique( pKData )
{
	SetDefaultParameters( );
}

CDJ::~CDJ()
{
	Clear( );
}

void CDJ::SetDefaultParameters( )
{
	m_strCodeSha	=	STKLIB_CODE_MAIN;
	m_strCodeSzn	=	STKLIB_CODE_MAINSZN;
}

void CDJ::AttachParameters( CDJ & src )
{
	m_strCodeSha	=	src.m_strCodeSha;
	m_strCodeSzn	=	src.m_strCodeSzn;
}

BOOL CDJ::IsValidParameters( )
{
	return ( m_strCodeSha.GetLength() > 0 && m_strCodeSzn.GetLength() > 0 );
}

void CDJ::Clear( )
{
	CTechnique::Clear( );
}

/***
	K線疊加圖,準備疊加K線的數據
*/
BOOL CDJ::PrepareStockData(CStDatabase * pDatabase, const char * szCodeOrg,
						   int nCurKType, int nCurKFormat, int nCurMaindataType,
						   DWORD dwAutoResumeDRBegin, int nAutoResumeDRLimit )
{
	SP_ASSERT( pDatabase );

	// bReload and kdayMain
	BOOL	bReload	=	(NULL!=szCodeOrg && 0!=strncmp(szCodeOrg,m_strCodeOrg,m_strCodeOrg.GetLength()) );
	m_strCodeOrg	=	szCodeOrg;

	// m_stockSha
	m_stockSha.SetStockCode( CStock::marketSHSE, m_strCodeSha );
	AfxPrepareStockData( pDatabase, m_stockSha, nCurKType, nCurKFormat, nCurMaindataType, FALSE, bReload );

	// m_stockSzn
	m_stockSzn.SetStockCode( CStock::marketSZSE, m_strCodeSzn );
	AfxPrepareStockData( pDatabase, m_stockSzn, nCurKType, nCurKFormat, nCurMaindataType, FALSE, bReload );
	
	return TRUE;
}

//////////////////////////////////////////////////////////////////////
//	CCW
CCW::CCW( )
{
	SetDefaultParameters( );
}

CCW::CCW( CKData * pKData )
	: CTechnique( pKData )
{
	SetDefaultParameters( );
}

CCW::~CCW()
{
	Clear( );
}

void CCW::SetDefaultParameters( )
{
	m_dChangeHand	=	1.5;
}

void CCW::AttachParameters( CCW & src )
{
	m_dChangeHand	=	src.m_dChangeHand;
}

BOOL CCW::IsValidParameters( )
{
	return ( m_dChangeHand > 0 );
}

void CCW::Clear( )
{
	CTechnique::Clear( );
}

/***
	根據換手率m_dChangeHand和終止日,計算起始日
*/
BOOL CCW::GetRange( int & nStart, int & nEnd, CStockInfo & info )
{
	if( !m_pKData || m_pKData->GetSize() <= 0 )
		return FALSE;
	if( nEnd < 0 || nEnd >= m_pKData->GetSize() )
		nEnd	=	m_pKData->GetSize()-1;
	
	BOOL	bIndex = FALSE;
	double	dShareCurrency = 0;
	if( !info.GetShareCurrency( &dShareCurrency ) || dShareCurrency < 1e+6 )
		bIndex	=	TRUE;

	if( bIndex )
		dShareCurrency	=	100 * m_dChangeHand;
	else
		dShareCurrency	*=	m_dChangeHand;

	double	dVol	=	0;
	int k;
	for( k=nEnd; k>=0; k-- )
	{
		if( bIndex )
			dVol	+=	1;
		else
			dVol	+=	m_pKData->ElementAt(k).m_fVolume;

		if( dVol > dShareCurrency )
			break;
	}
	nStart	=	k;
	if( nStart < 0 )
		nStart	=	0;
	return TRUE;
}

BOOL CCW::GetMinMaxInfo(int nStart, int nEnd, double dMinPrice, double dMaxPrice, double dStep,
				double *pdMinVolume, double *pdMaxVolume )
{
	STT_ASSERT_GETMINMAXINFO( m_pKData, nStart, nEnd );
	if( dMinPrice >= dMaxPrice || dStep < 1e-4 )
		return FALSE;

	double	dMinVolume = 0, dMaxVolume = 0, dVolume = 0;
	BOOL	bFirst	=	TRUE;
	for( double dPrice = dMinPrice; dPrice < dMaxPrice; dPrice += dStep )
	{
		if( CalculateCW( &dVolume, nStart, nEnd, dPrice, dStep ) )
		{
			if( bFirst || dVolume < dMinVolume )	dMinVolume	=	dVolume;
			if( bFirst || dVolume > dMaxVolume )	dMaxVolume	=	dVolume;
			bFirst	=	FALSE;
		}
	}

	dMinVolume	-=	fabs(dMinVolume)*0.01;
	dMaxVolume	+=	fabs(dMaxVolume)*0.01;
	if( dMaxVolume - dMinVolume < 3 )
		dMaxVolume	=	dMinVolume + 3;
	if( pdMinVolume )		*pdMinVolume	=	dMinVolume;
	if( pdMaxVolume )		*pdMaxVolume	=	dMaxVolume;

	return !bFirst;
}

/***
	籌碼分布圖,計算價格區間包括dPrice的日線的成交量
*/
BOOL CCW::CalculateCW( double *pdVolume, int nStart, int nEnd, double dPrice, double dStep )
{
	STT_ASSERT_GETMINMAXINFO( m_pKData, nStart, nEnd );

	double	dVolume	=	0;
	for( int k=nStart; k<=nEnd; k++ )
	{
		KDATA	kd	=	m_pKData->ElementAt(k);
		if( kd.m_fHigh-kd.m_fLow > 1e-4
			&& kd.m_fLow < dPrice && kd.m_fHigh > dPrice )
		{
			// 均勻分布 dVolAve
			double	dVolAve = kd.m_fVolume;
			if( dStep < kd.m_fHigh-kd.m_fLow )
				dVolAve	=	kd.m_fVolume * dStep / (kd.m_fHigh-kd.m_fLow);

			// 三角分布
			double	dFactor	=	min(dPrice-kd.m_fLow, kd.m_fHigh-dPrice);
			dVolume	+=	dVolAve * dFactor * 4 / (kd.m_fHigh-kd.m_fLow);
		}
	}
	
	if( pdVolume )
		*pdVolume	=	dVolume;
	return TRUE;
}

/***
	籌碼分布圖計算,計算籌碼分布
*/
BOOL CCW::CalculateCW(	int nStart, int nEnd, CStockInfo & info, double dStep,
						CSPDWordArray & adwPrice, CSPDWordArray & adwVolume,
						double * pdMinVolume, double * pdMaxVolume, double * pdTotalVolume, double * pdVolPercent )
{
	STT_ASSERT_GETMINMAXINFO( m_pKData, nStart, nEnd );
	if( dStep < 1e-4 )
		return FALSE;

	float dMinPrice = 0, dMaxPrice = 0;
	if( !m_pKData->GetMinMaxInfo( nStart, nEnd, &dMinPrice, &dMaxPrice ) )
		return FALSE;

	// Calculate
	int nMaxCount = (int)((dMaxPrice-dMinPrice)/dStep) + 10;
	adwPrice.SetSize( 0, nMaxCount );
	adwVolume.SetSize( 0, nMaxCount );
	double	dMinVolume = 0, dMaxVolume = 0, dTotalVolume = 0, dVolume = 0;
	BOOL	bFirst	=	TRUE;
	for( double dPrice = dMinPrice; dPrice < dMaxPrice; dPrice += dStep )
	{
		if( CalculateCW( &dVolume, nStart, nEnd, dPrice, dStep ) )
		{
			if( bFirst || dVolume < dMinVolume )	dMinVolume	=	dVolume;
			if( bFirst || dVolume > dMaxVolume )	dMaxVolume	=	dVolume;
			adwPrice.Add( DWORD(dPrice * 1000) );
			adwVolume.Add( DWORD(dVolume) );
			dTotalVolume	+=	dVolume;
			bFirst	=	FALSE;
		}
	}

	// Return
	// Min Max
	dMinVolume	-=	fabs(dMinVolume)*0.01;
	dMaxVolume	+=	fabs(dMaxVolume)*0.01;
	if( dMaxVolume - dMinVolume < 3 )
		dMaxVolume	=	dMinVolume + 3;
	if( pdMinVolume )	*pdMinVolume	=	dMinVolume;
	if( pdMaxVolume )	*pdMaxVolume	=	dMaxVolume;
	if( pdTotalVolume )	*pdTotalVolume	=	dTotalVolume;

	// VolPercent
	double dVolPercent = 1.0;
	double	dShareCurrency = 0;
	if( (!info.GetShareCurrency( &dShareCurrency ) || dShareCurrency < 1e+6) && nEnd-nStart+1 > 0 )
		dShareCurrency	=	dTotalVolume * 100 / (nEnd-nStart+1);
	if( dShareCurrency > 1e-4 )
		dVolPercent	=	dTotalVolume / (dShareCurrency*m_dChangeHand);
	if( dVolPercent > 1.0 )		dVolPercent	=	1.0;
	if( dVolPercent < 0.0 )		dVolPercent	=	0.0;
	if( pdVolPercent )	*pdVolPercent	=	dVolPercent;

	return adwPrice.GetSize() > 0;
}

/***
	籌碼分布圖計算,計算最近nDays天內的籌碼分布
*/
BOOL CCW::CalculateRecentCW(int nEnd, int nDays, CStockInfo & info, double dStep,
						CSPDWordArray & adwPrice, CSPDWordArray & adwVolume,
						double * pdMinVolume, double * pdMaxVolume, double * pdTotalVolume, double * pdVolPercent )
{
	// Prepare
	if( !m_pKData || m_pKData->GetSize() <= 0 )
		return FALSE;
	if( nEnd < 0 || nEnd >= m_pKData->GetSize() )
		nEnd	=	m_pKData->GetSize()-1;
	int	nStart = nEnd - nDays + 1;
	if( nStart < 0 || nStart >= m_pKData->GetSize() )
		return FALSE;

	return CalculateCW( nStart, nEnd, info, dStep, adwPrice, adwVolume, pdMinVolume, pdMaxVolume, pdTotalVolume, pdVolPercent );
}

/***
	籌碼分布圖計算,計算nDays天前內的籌碼分布
*/
BOOL CCW::CalculatePastCW(int nEnd, int nDays, CStockInfo & info, double dStep,
						CSPDWordArray & adwPrice, CSPDWordArray & adwVolume,
						double * pdMinVolume, double * pdMaxVolume, double * pdTotalVolume, double * pdVolPercent )
{
	// Prepare
	if( !m_pKData || m_pKData->GetSize() <= 0 )
		return FALSE;
	if( nEnd < 0 || nEnd >= m_pKData->GetSize() )
		nEnd	=	m_pKData->GetSize()-1;
	int	nStart = nEnd - nDays;
	if( nStart < 0 || nStart >= m_pKData->GetSize() )
		return FALSE;

	nEnd = nStart;
	if( !GetRange( nStart, nEnd, info ) )
		return FALSE;

	BOOL bOK = CalculateCW( nStart, nEnd, info, dStep, adwPrice, adwVolume, pdMinVolume, pdMaxVolume, pdTotalVolume, pdVolPercent );

	// TotalVolumeRecent
	double dTotalVolumeRecent = 0;
	for( int k=nEnd+1; k<=nEnd+nDays && k<m_pKData->GetSize(); k ++ )
		dTotalVolumeRecent	+=	m_pKData->ElementAt(k).m_fVolume;

	// VolPercent
	double dVolPercent = 1.0;
	double	dShareCurrency = 0;
	if( (!info.GetShareCurrency( &dShareCurrency ) || dShareCurrency < 1e+6) && nDays > 0 )
		dShareCurrency	=	dTotalVolumeRecent * 100 / nDays;
	if( dShareCurrency > 1e-4 )
		dVolPercent	=	dTotalVolumeRecent / (dShareCurrency*m_dChangeHand);
	dVolPercent	=	1.0 - dVolPercent;
	if( dVolPercent > 1.0 )		dVolPercent	=	1.0;
	if( dVolPercent < 0.0 )		dVolPercent	=	0.0;
	if( pdVolPercent )	*pdVolPercent	=	dVolPercent;

	return bOK;
}

/***
	籌碼分布圖統計,獲利比例統計
*/
BOOL CCW::StatGainPercent( double *pdGainPercent, CSPDWordArray &adwPrice, CSPDWordArray &adwVolume, double dPriceSel )
{
	double dTotalVolume = 0;
	double dGainVolume = 0;
	for( int k=0; k<adwPrice.GetSize() && k<adwVolume.GetSize(); k++ )
	{
		dTotalVolume	+=	adwVolume[k];
		if( adwPrice[k] * 0.001 <= dPriceSel )
			dGainVolume	+=	adwVolume[k];
	}

	double dGainPercent = 0;
	if( dTotalVolume > 1e-4 )
		dGainPercent	=	dGainVolume / dTotalVolume;

	if( pdGainPercent )	*pdGainPercent = dGainPercent;
	return TRUE;
}

/***
	籌碼分布圖統計,平均成本統計
*/
BOOL CCW::StatCostAverage( double *pdCostAve, CSPDWordArray &adwPrice, CSPDWordArray &adwVolume )
{
	double dTotalVolume = 0;
	double dTotalCost = 0;
	for( int k=0; k<adwPrice.GetSize() && k<adwVolume.GetSize(); k++ )
	{
		dTotalVolume	+=	adwVolume[k];
		dTotalCost		+=	0.001 * adwPrice[k] * adwVolume[k];
	}

	double dCostAve = 0;
	if( dTotalVolume > 1e-4 )
		dCostAve	=	dTotalCost / dTotalVolume;

	if( pdCostAve )	*pdCostAve = dCostAve;
	return TRUE;
}
	
/***
	籌碼分布圖統計,集中度統計
*/
BOOL CCW::StatMass( double *pdLower, double *pdUpper, double *pdMassPrice, CSPDWordArray &adwPrice, CSPDWordArray &adwVolume, double dMassVol )
{
	if( adwPrice.GetSize() != adwVolume.GetSize() || dMassVol < 0 || dMassVol > 1 )
		return FALSE;

	double dTotalVolume = 0;
	for( int k=0; k<adwPrice.GetSize() && k<adwVolume.GetSize(); k++ )
		dTotalVolume	+=	adwVolume[k];

	if( dTotalVolume > 1e-4 )
	{
		double dUpperVolume = dTotalVolume * (1-dMassVol) * 0.5;
		double dLowerVolume = dUpperVolume;
		int nLower = 0, nUpper = adwPrice.GetSize()-1;

		int k;
		for( k=0; k<adwPrice.GetSize(); k++ )
		{
			dLowerVolume -= (double)adwVolume[k];
			if( dLowerVolume < 0 )
				break;
		}
		nLower	=	k;

		for( k=adwPrice.GetSize()-1; k>=0; k-- )
		{
			dUpperVolume -= (double)adwVolume[k];
			if( dUpperVolume < 0 )
				break;
		}
		nUpper	=	k;
		
		if( nLower < 0 || nLower > nUpper || nUpper >= adwPrice.GetSize() )
			return FALSE;

		double dLower = 0.001 * adwPrice[nLower];
		double dUpper = 0.001 * adwPrice[nUpper];
		if( pdLower )	*pdLower	=	dLower;
		if( pdUpper )	*pdUpper	=	dUpper;
		if( pdMassPrice && adwPrice.GetSize() >= 2 )
		{
			double dPriceRange = 0.001 * ((double)adwPrice[adwPrice.GetSize()-1] - (double)adwPrice[0]);
			if( dPriceRange > 1e-4 )
				*pdMassPrice	=	(dUpper-dLower)/dPriceRange;
			if( *pdMassPrice < 0 )	*pdMassPrice	=	0;
			if( *pdMassPrice > 1 )	*pdMassPrice	=	1;
		}
	}

	return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品乱码久久久久| 久久国产精品72免费观看| 不卡电影一区二区三区| 欧美国产成人在线| 在线观看视频一区二区| 日韩精品亚洲专区| 国产精品久久久久久久久搜平片| 色综合久久99| 国产成人精品综合在线观看| 亚洲乱码国产乱码精品精的特点 | eeuss鲁一区二区三区| 亚洲欧美日韩久久| 精品久久久久久久久久久久包黑料 | 日本欧美在线看| 最近日韩中文字幕| 国产亚洲欧美色| 日韩欧美在线一区二区三区| 高清beeg欧美| 国产在线精品不卡| 亚洲成av人片在www色猫咪| 欧美国产日韩a欧美在线观看| 欧美专区在线观看一区| 9久草视频在线视频精品| 九色porny丨国产精品| 日本亚洲免费观看| 日韩av在线免费观看不卡| 一区二区三区中文在线| 亚洲欧美激情小说另类| 国产精品九色蝌蚪自拍| 日本一区二区不卡视频| 久久人人97超碰com| 久久久精品免费免费| 久久久精品国产免大香伊| 久久久久高清精品| 国产精品久久久久久久蜜臀| 国产精品电影一区二区三区| 欧美国产亚洲另类动漫| 亚洲女子a中天字幕| 亚洲成人一区在线| 日韩av一二三| 成人免费黄色大片| 色88888久久久久久影院野外| 欧美丝袜自拍制服另类| 91精品国产综合久久精品性色| 91精品国产色综合久久不卡蜜臀| 日韩免费在线观看| 亚洲人成网站精品片在线观看| 亚洲一区在线电影| 99久精品国产| 欧美精选一区二区| 国产精品你懂的在线| 亚洲一区电影777| 国产精品香蕉一区二区三区| 91福利视频在线| 久久精品网站免费观看| 偷拍一区二区三区| 成人中文字幕合集| 日韩欧美成人午夜| 亚洲一区二区偷拍精品| 国产91精品精华液一区二区三区 | av中文字幕在线不卡| 日韩三区在线观看| 日本在线播放一区二区三区| 99国产精品国产精品毛片| 欧美成人精品高清在线播放 | 自拍偷在线精品自拍偷无码专区| 蜜臀99久久精品久久久久久软件| 色中色一区二区| 中文字幕亚洲欧美在线不卡| 国产麻豆精品一区二区| 久久伊人蜜桃av一区二区| 日日夜夜免费精品视频| 欧美美女网站色| 日韩电影在线观看一区| 欧美人与禽zozo性伦| 免费在线看成人av| 欧美成人精品3d动漫h| 国产美女在线精品| 亚洲欧洲av在线| 91黄色小视频| 麻豆精品视频在线观看免费| 日韩视频一区在线观看| 久久99最新地址| 国产精品成人一区二区三区夜夜夜| 国产乱码精品一区二区三| 国产精品久久久久久久久图文区| 99热国产精品| 偷拍亚洲欧洲综合| 国产精品大尺度| 欧美一区二视频| 99久久久久久99| 免费日韩伦理电影| 自拍偷拍欧美激情| 日韩一区二区三区视频| 91在线porny国产在线看| 五月天激情小说综合| 亚洲欧洲一区二区在线播放| 欧美日韩国产综合一区二区三区| 国精产品一区一区三区mba视频 | 亚洲最大的成人av| 精品日韩在线一区| 日韩一区二区三区四区五区六区| 国产成人在线影院| 看电视剧不卡顿的网站| 亚洲自拍偷拍网站| 亚洲精品高清在线观看| 日本一区二区三区电影| 亚洲精品一区二区三区四区高清 | 美女视频黄久久| 日韩高清在线一区| 亚洲成人av在线电影| 亚洲精品亚洲人成人网在线播放| 精品国产欧美一区二区| 日韩欧美123| 精品入口麻豆88视频| 久久老女人爱爱| 国产色产综合色产在线视频| 久久这里只有精品首页| 久久免费电影网| 日本一区二区高清| 亚洲人成影院在线观看| 亚洲色图视频网| 天堂久久一区二区三区| 毛片一区二区三区| 成人av在线看| 欧美图区在线视频| 欧美精品一区二区三区在线 | 在线免费精品视频| 欧美一级国产精品| 亚洲国产精品精华液ab| 亚洲乱码中文字幕| 精品中文av资源站在线观看| 国产乱码精品一区二区三区忘忧草| 国产91高潮流白浆在线麻豆| 91麻豆蜜桃一区二区三区| 91超碰这里只有精品国产| 欧美精品精品一区| 国产精品免费人成网站| 日韩精品五月天| 色婷婷国产精品久久包臀| 欧美精品一区二区三区高清aⅴ | 亚洲欧美日韩国产成人精品影院| 日韩国产欧美一区二区三区| 成人高清免费观看| 精品国产污网站| 免费人成网站在线观看欧美高清| 成人高清在线视频| 久久精品亚洲麻豆av一区二区| 亚洲国产视频一区二区| 成人毛片在线观看| 国产欧美日韩另类视频免费观看 | 免费在线观看视频一区| 91在线你懂得| 一区二区三区在线免费观看| 懂色av一区二区三区免费观看| 日韩亚洲欧美综合| 日韩专区一卡二卡| 欧美日韩一区国产| 婷婷中文字幕一区三区| 欧美一区二区精品| 精品一区二区日韩| 国产精品美女久久久久久| 成人精品免费视频| 亚洲精品自拍动漫在线| 91成人网在线| 日本伊人午夜精品| 久久久久久99久久久精品网站| 国产精品白丝jk黑袜喷水| 自拍偷拍欧美精品| 欧美一级国产精品| 99国产精品视频免费观看| 天使萌一区二区三区免费观看| 91 com成人网| 成人av网站在线| 日韩一区精品视频| 中文字幕视频一区| 欧美一区二区在线播放| 国产成人午夜视频| 全部av―极品视觉盛宴亚洲| 国产午夜精品一区二区三区四区 | 欧洲精品一区二区| 狠狠色狠狠色合久久伊人| 一区二区视频在线看| 精品国产伦一区二区三区免费| 97超碰欧美中文字幕| 国产一区二区三区电影在线观看| 一区二区三区在线观看动漫| 亚洲精品一区二区三区福利| 欧美撒尿777hd撒尿| 成人动漫一区二区在线| 国产美女视频91| 老司机精品视频线观看86| 日韩影视精彩在线| 肉色丝袜一区二区| 青娱乐精品视频在线| 亚洲成人免费av| 亚洲超碰97人人做人人爱| 国产精品美女一区二区三区 | 久久亚洲精华国产精华液 | 欧美日韩在线播放三区四区|