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

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

?? techswing.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
		&& VALID_ITS(m_itsGoldenFork) && VALID_ITS(m_itsDeadFork) );
}

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

int CMTM::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;

	int	nMaxDays	=	m_nDays + m_nMADays;
	double	dLiminalLow = 0, dLiminalHigh = 0;
	if( !IntensityPrepare( nIndex, pnCode, nMaxDays, ITS_GETMINMAXDAYRANGE, &dLiminalLow, &dLiminalHigh, 0.3, 0.6 ) )
		return ITS_NOTHING;

	double	dMTM, dMA;
	if( !Calculate( &dMTM, &dMA, nIndex, FALSE ) )
		return ITS_NOTHING;

	if( dMTM < dLiminalLow && dMA < dLiminalLow && IsGoldenFork( nIndex, m_pdCache1, m_pdCache2 ) )
	{	// 低位金叉
		if( pnCode )	*pnCode	=	ITSC_GOLDENFORK;
		return m_itsGoldenFork;
	}
	if( dMTM > dLiminalHigh && dMA > dLiminalHigh && IsDeadFork( nIndex, m_pdCache1, m_pdCache2 ) )
	{	// 高位死叉
		if( pnCode )	*pnCode	=	ITSC_DEADFORK;
		return m_itsDeadFork;
	}

	return	ITS_NOTHING;
}

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

/***
	MTM = C/Cn
	其中:C為當日收市價,Cn為N日前收市價,
	N為設定參數,一般選設10日,亦可在6日至14日之間選擇。
*/
BOOL CMTM::Calculate( double * pValue, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );
	
	if( m_nDays > nIndex )
		return FALSE;

	if( LoadFromCache( nIndex, pValue ) )
		return TRUE;

	if( m_pKData->MaindataAt(nIndex-m_nDays) > 0 )
	{
		if( pValue )
			*pValue	=	100. * m_pKData->MaindataAt(nIndex) / m_pKData->MaindataAt(nIndex-m_nDays);
		StoreToCache( nIndex, pValue );
		return TRUE;
	}
	return FALSE;
}

BOOL CMTM::Calculate( double * pValue, double *pMA, int nIndex, BOOL bUseLast )
{
	return CalculateMA( pValue, pMA, nIndex, bUseLast, m_nMADays );
}

//////////////////////////////////////////////////////////////////////
//	CDMI
CDMI::CDMI( )
{
	SetDefaultParameters( );
	m_pdDMICache		=	NULL;
	m_pnDMICacheIndex	=	NULL;
	m_nDMICacheCurrent	=	-1;
}

CDMI::CDMI( CKData * pKData )
	: CTechnique( pKData )
{
	SetDefaultParameters( );
	m_pdDMICache		=	NULL;
	m_pnDMICacheIndex	=	NULL;
	m_nDMICacheCurrent	=	-1;
}

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

void CDMI::SetDefaultParameters( )
{
	m_nDays			=	7;
}

void CDMI::AttachParameters( CDMI & src )
{
	m_nDays			=	src.m_nDays;
}

BOOL CDMI::IsValidParameters( )
{
	return ( VALID_DAYS(m_nDays) );
}

void CDMI::Clear( )
{
	CTechnique::Clear( );

	if( m_pdDMICache )
	{
		delete	[]	m_pdDMICache;
		m_pdDMICache	=	NULL;
	}
	if( m_pnDMICacheIndex )
	{
		delete	[]	m_pnDMICacheIndex;
		m_pnDMICacheIndex	=	NULL;
	}
	m_nDMICacheCurrent	=	-1;
}

/***
	求出真正波幅TR,TR是下列三者中絕對值最大的一個:
		昨收盤-今 最高、昨收盤-今最低、今最高-今最低
	
	+DM = 今最高-昨最高
	-DM = 昨最低-今最低
*/
BOOL CDMI::CalculateDM( double *pDMPlus, double *pDMMinus, double *pTR, int nIndex )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );

	if( nIndex < 1 )
		return FALSE;

	double	dDMPlus = 0, dDMMinus = 0, dTR = 0;
	KDATA	kdNow	=	m_pKData->ElementAt(nIndex);
	KDATA	kdLast	=	m_pKData->ElementAt(nIndex-1);

	dDMPlus		=	max( 0, ((double)kdNow.m_fHigh) - kdLast.m_fHigh );
	dDMMinus	=	max( 0, ((double)kdLast.m_fLow) - kdNow.m_fLow );

	dTR	=	max( fabs(((double)kdNow.m_fClose)-kdNow.m_fLow), fabs(((double)kdNow.m_fHigh)-kdLast.m_fClose) );
	dTR	=	max( dTR, fabs(((double)kdNow.m_fLow)-kdLast.m_fClose) );

	if( pDMPlus )	*pDMPlus	=	dDMPlus;
	if( pDMMinus )	*pDMMinus	=	dDMMinus;
	if( pTR )		*pTR		=	dTR;
	return TRUE;
}

/***
	TRn = N天TR之和
	+DMn = N天+DM之和
	-DMn = N天-DM之和
	+DI = (+DMn ÷ TRn)×100
	-DI = (-DMn ÷ TRn)×100
	DI差 = +DI-(-DI)
	DI和 = +DI+(-DI)
	DX = (DI差÷DI和)×100
*/
BOOL CDMI::CalculateDIDX( double *pDIPlus, double *pDIMinus, double *pDX, int nIndex, int nDays )
{
	STT_ASSERT_CALCULATE( m_pKData, nIndex, nDays );
	
	if( m_nDays > nIndex )
		return FALSE;

	double	dDX, dADX = 0;
	double	dDIPlus = 0, dDIMinus = 0, dTRSum = 0;
	int	nCount	=	0;
	for( int k=nIndex; k>=1; k-- )
	{
		double	dDMPlus = 0, dDMMinus = 0, dTR = 0;
		if( !CalculateDM( &dDMPlus, &dDMMinus, &dTR, k ) )
			return FALSE;

		dDIPlus		+=	dDMPlus;
		dDIMinus	+=	dDMMinus;
		dTRSum		+=	dTR;

		nCount	++;
		if( nCount == nDays )
		{
			if( fabs(dTRSum) < 1e-4 || fabs(dDIPlus+dDIMinus) < 1e-4 )
				return FALSE;
			dDIPlus		=	(dDIPlus * 100/dTRSum);
			dDIMinus	=	(dDIMinus * 100/dTRSum);
			dDX	=	fabs(dDIPlus-dDIMinus) * 100 / (dDIPlus+dDIMinus);
			if( pDIPlus )	*pDIPlus	=	dDIPlus;
			if( pDIMinus )	*pDIMinus	=	dDIMinus;
			if( pDX )	*pDX	=	dDX;
			return TRUE;
		}
	}
	return FALSE;
}

int CDMI::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;
/*	PrepareCache( 0, -1, FALSE );

	if( nIndex <= 0 )
		return ITS_NOTHING;

	double	dDIPlus, dDIMinus, dADX, dADXR;
	double	dDIPlusLast, dDIMinusLast, dADXLast, dADXRLast;
	if( !Calculate( &dDIPlusLast, &dDIMinusLast, &dADXLast, &dADXRLast, nIndex-1, FALSE )
		|| !Calculate( &dDIPlus, &dDIMinus, &dADX, &dADXR, nIndex, FALSE ) )
		return ITS_NOTHING;

	if( dDIPlusLast < dDIMinusLast && dDIPlus > dDIMinus )
	{
		if( pnCode )	*pnCode	=	ITSC_GOLDENFORK;
		return m_itsGoldenFork;
	}
	if( dDIMinusLast < dDIPlusLast && dDIMinus > dDIPlus )
	{
		if( pnCode )	*pnCode	=	ITSC_DEADFORK;
		return m_itsDeadFork;
	}
*/
	// 無買賣信號
	return	ITS_NOTHING;
}

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

/***
	求出真正波幅TR,TR是下列三者中絕對值最大的一個:
		昨收盤-今 最高、昨收盤-今最低、今最高-今最低
	
	+DM = 今最高-昨最高
	-DM = 昨最低-今最低

	TRn = N天TR之和
	+DMn = N天+DM之和
	-DMn = N天-DM之和
	+DI = (+DMn ÷ TRn)×100
	-DI = (-DMn ÷ TRn)×100
	DI差 = +DI-(-DI)
	DI和 = +DI+(-DI)
	DX = (DI差÷DI和)×100

	ADX = DX的平滑均值
	ADXR = ADX的均值
*/
BOOL CDMI::Calculate( double * pDIPlus, double * pDIMinus, double *pADX, double *pADXR, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );
	
	if( m_nDays > nIndex )
		return FALSE;

	if( LoadFromCache( nIndex, pDIPlus, pDIMinus, pADX, pADXR ) )
		return TRUE;

	double	dDX = 0, dADX = 0, dADXR = 0;
	if( !CalculateDIDX( pDIPlus, pDIMinus, &dDX, nIndex, m_nDays ) )
		return FALSE;

	if( NULL == m_pdDMICache )
	{
		m_pdDMICache		=	new double[m_nDays];
		m_pnDMICacheIndex	=	new	int[m_nDays];
		if( NULL == m_pdDMICache || NULL == m_pnDMICacheIndex )
			return FALSE;
		for( int i=0; i<m_nDays; i++ )
			m_pnDMICacheIndex[i]	=	-1;
		m_nDMICacheCurrent	=	-1;
	}

	if( bUseLast && pADX )
	{
		// Calculate ADX and ADXR
		dADX	=	( (m_nDays-1)*(*pADX) + dDX ) / m_nDays;
		for( int i=0; i<m_nDays; i++ )
		{
			if( m_pnDMICacheIndex[i] == nIndex-m_nDays )
			{
				dADXR	=	(m_pdDMICache[i] + dADX) / 2;
				break;
			}
		}

		// Save ADX to cache
		m_nDMICacheCurrent	++;
		if( m_nDMICacheCurrent < 0 || m_nDMICacheCurrent >= m_nDays )
			m_nDMICacheCurrent	=	0;
		m_pdDMICache[m_nDMICacheCurrent]	=	dADX;
		m_pnDMICacheIndex[m_nDMICacheCurrent]	=	nIndex;

		if( pADX )	*pADX	=	dADX;
		if( pADXR )	*pADXR	=	dADXR;
		StoreToCache( nIndex, pDIPlus, pDIMinus, pADX, pADXR );
		return TRUE;
	}
	else
	{
		double	factor = 1;
		int k;
		for( k=nIndex; k > 0; k-- )
		{
			factor	*=	((double)(m_nDays-1))/m_nDays;
			if( factor < 0.001 )
				break;
		}
		double	dADXLast = 0;
		BOOL	bHasADXR = FALSE;
		for( ; k<=nIndex; k++ )
		{
			if( !CalculateDIDX( NULL, NULL, &dDX, k, m_nDays ) )
				continue;

			// Calculate ADX and ADXR
			dADX	=	( (m_nDays-1)*dADX + dDX )/m_nDays;
			if( k == nIndex-m_nDays )
			{
				dADXLast	=	dADX;
				bHasADXR	=	TRUE;
			}

			// Save ADX to cache
			m_nDMICacheCurrent	++;
			if( m_nDMICacheCurrent < 0 || m_nDMICacheCurrent >= m_nDays )
				m_nDMICacheCurrent	=	0;
			m_pdDMICache[m_nDMICacheCurrent]	=	dADX;
			m_pnDMICacheIndex[m_nDMICacheCurrent]	=	k;
		}
		dADXR	=	(dADX + dADXLast) / 2;
		if( pADX )				*pADX	=	dADX;
		if( pADXR && bHasADXR )	*pADXR	=	dADXR;
		StoreToCache( nIndex, pDIPlus, pDIMinus, pADX, pADXR );
		return TRUE;
	}
	return FALSE;
}

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

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

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

void CROC::SetDefaultParameters( )
{
	m_nDays		=	10;
	m_nMADays	=	10;

	m_itsGoldenFork			=	ITS_BUY;
	m_itsDeadFork			=	ITS_SELL;
}

void CROC::AttachParameters( CROC & src )
{
	m_nDays		=	src.m_nDays;
	m_nMADays	=	src.m_nMADays;

	m_itsGoldenFork			=	src.m_itsGoldenFork;
	m_itsDeadFork			=	src.m_itsDeadFork;
}

BOOL CROC::IsValidParameters( )
{
	return ( VALID_DAYS(m_nDays) && VALID_DAYS(m_nMADays)
		&& VALID_ITS(m_itsGoldenFork) && VALID_ITS(m_itsDeadFork) );
}

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

int CROC::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;

	int	nMaxDays	=	m_nDays + m_nMADays;
	double	dLiminalLow = 0, dLiminalHigh = 0;
	if( !IntensityPrepare( nIndex, pnCode, nMaxDays, ITS_GETMINMAXDAYRANGE, &dLiminalLow, &dLiminalHigh, 0.309, 0.6 ) )
		return ITS_NOTHING;

	double	dROC, dMA;
	if( !Calculate( &dROC, &dMA, nIndex, FALSE ) )
		return ITS_NOTHING;

	if( dROC < dLiminalLow && dMA < dLiminalLow && IsGoldenFork( nIndex, m_pdCache1, m_pdCache2 ) )
	{	// 低位金叉
		if( pnCode )	*pnCode	=	ITSC_GOLDENFORK;
		return m_itsGoldenFork;
	}
	if( dROC > dLiminalHigh && dMA > dLiminalHigh && IsDeadFork( nIndex, m_pdCache1, m_pdCache2 ) )
	{	// 高位死叉
		if( pnCode )	*pnCode	=	ITSC_DEADFORK;
		return m_itsDeadFork;
	}

	return	ITS_NOTHING;
}

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

/***
	ROC=(今收盤-前N日收盤)÷前N日的收盤×100 
*/
BOOL CROC::Calculate( double * pValue, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );

	if( m_nDays > nIndex )
		return FALSE;

	if( LoadFromCache( nIndex, pValue ) )
		return TRUE;

	if( m_pKData->MaindataAt(nIndex-m_nDays) <= 0
		|| m_pKData->MaindataAt(nIndex) <= 0 )
		return FALSE;

	double	x	=	m_pKData->MaindataAt(nIndex);
	double	y	=	m_pKData->MaindataAt(nIndex-m_nDays);
	if( pValue )
		*pValue	=	(x - y) * 100 / y;
	StoreToCache( nIndex, pValue );
	return TRUE;
}

BOOL CROC::Calculate( double * pValue, double * pMA, int nIndex, BOOL bUseLast )
{
	return CalculateMA( pValue, pMA, nIndex, bUseLast, m_nMADays );
}

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

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

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

void CCCI::SetDefaultParameters( )
{
	m_nDays		=	14;
	m_dQuotiety	=	0.015;
	m_nMADays	=	10;

	m_itsGoldenFork	=	ITS_BUY;
	m_itsDeadFork	=	ITS_SELL;
}

void CCCI::AttachParameters( CCCI & src )
{
	m_nDays		=	src.m_nDays;
	m_dQuotiety	=	src.m_dQuotiety;
	m_nMADays	=	src.m_nMADays;

	m_itsGoldenFork	=	src.m_itsGoldenFork;
	m_itsDeadFork	=	src.m_itsDeadFork;
}

BOOL CCCI::IsValidParameters( )
{
	return ( VALID_DAYS(m_nDays) && m_dQuotiety > 0 && VALID_DAYS(m_nMADays)
		&& VALID_ITS(m_itsGoldenFork) && VALID_ITS(m_itsDeadFork) );
}

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

int CCCI::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;

	double	dCCI;
	if( !Calculate( &dCCI, nIndex, FALSE ) )
		return ITS_NOTHING;

	int	nForkSignal	=	GetForkSignal( nIndex, m_itsGoldenFork, m_itsDeadFork, pnCode );

	if( dCCI < -100 && nForkSignal == m_itsGoldenFork )
	{	// 低位金叉
		if( pnCode )	*pnCode	=	ITSC_GOLDENFORK;
		return m_itsGoldenFork;
	}
	if( dCCI > 100 && nForkSignal == m_itsDeadFork )
	{	// 高位死叉
		if( pnCode )	*pnCode	=	ITSC_DEADFORK;
		return m_itsDeadFork;
	}

	return	ITS_NOTHING;
}

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

/***
	TP = 收盤價+收盤價+最高價+最低價
	A是TP的N日均值
	D是TP與A的離差均值
	CCI=(C-D)/(0.015D)
*/
BOOL CCCI::Calculate( double * pValue, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );

	if( m_nDays > nIndex+1 )
		return FALSE;

	if( LoadFromCache( nIndex, pValue ) )
		return TRUE;

	double	dTP = 0, dMATP = 0, dD = 0;
	int	nCount	=	0, k=0;
	for(  k=nIndex; k>=0; k-- )
	{
		KDATA	kd	=	m_pKData->ElementAt(k);
		double	dTemp	=	(kd.m_fHigh+kd.m_fClose+kd.m_fClose+kd.m_fLow)/4;
		if( nIndex == k )
			dTP	=	dTemp;
		dMATP	+=	dTemp;

		nCount	++;
		if( nCount == m_nDays )
			break;
	}
	dMATP	=	dMATP / m_nDays;

	nCount	=	0;
	for(  k=nIndex; k>=0; k-- )
	{
		KDATA	kd	=	m_pKData->ElementAt(k);
		double	dTemp	=	(kd.m_fHigh+kd.m_fClose+kd.m_fClose+kd.m_fLow)/4;
		dD		+=	fabs(dTemp-dMATP);

		nCount	++;
		if( nCount == m_nDays )
			break;
	}

	dD	=	dD / m_nDays;
	if( fabs(dD) < 1e-4 )
		return FALSE;
	if( pValue )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频一区二区| 美国精品在线观看| 欧美中文字幕一区| 蜜臀av一区二区| 国产亚洲午夜高清国产拍精品| 成人国产亚洲欧美成人综合网| 亚洲欧美电影院| 日韩一级精品视频在线观看| 一区二区三区产品免费精品久久75 | av午夜精品一区二区三区| 亚洲精品成a人| 日韩一区二区在线观看视频播放| 国产成人av电影在线播放| 一区二区三区在线观看动漫| 日韩欧美视频一区| 国产精品1区2区| 国产精品狼人久久影院观看方式| 欧美美女喷水视频| 成人中文字幕电影| 亚洲国产一区二区视频| 日韩欧美一级特黄在线播放| 成人国产亚洲欧美成人综合网| 午夜精品久久久久久不卡8050| 日本一区二区免费在线| 欧美肥妇free| 成人午夜免费av| 天天色图综合网| 亚洲免费三区一区二区| 久久亚洲影视婷婷| 5月丁香婷婷综合| 成人app软件下载大全免费| 另类小说综合欧美亚洲| 亚洲一区影音先锋| 国产精品成人网| 日韩欧美一区二区久久婷婷| 欧美网站大全在线观看| 成年人网站91| 国产成人午夜精品5599| 美国一区二区三区在线播放| 亚洲第一主播视频| 亚洲男人都懂的| 国产精品久久久久久久久搜平片 | 中国av一区二区三区| 欧美一级黄色片| 欧美日韩一区视频| 日本韩国视频一区二区| 成人动漫视频在线| 国产成人免费视频精品含羞草妖精| 五月婷婷综合网| 亚洲大片在线观看| 亚洲欧美精品午睡沙发| 国产精品每日更新| 久久精品视频在线免费观看 | 国产成人精品一区二| 久久成人麻豆午夜电影| 亚洲综合999| 国产亚洲短视频| 久久久久久综合| 久久久影视传媒| 国产欧美一区二区精品性色| 欧美精品777| 欧美日韩国产综合一区二区三区| 欧美视频在线一区| 欧美日韩亚洲综合一区二区三区| 欧美天堂一区二区三区| 欧美日韩一卡二卡三卡| 91精品国产一区二区| 欧美一区二视频| 欧美自拍丝袜亚洲| 欧美日韩国产免费一区二区| 欧美日韩在线一区二区| 欧美三级蜜桃2在线观看| 精品视频在线免费| 91精品国产综合久久福利| 在线电影一区二区三区| 日韩免费性生活视频播放| 精品播放一区二区| 国产精品情趣视频| 亚洲黄一区二区三区| 国产成人在线视频网址| 99精品视频在线播放观看| 成人免费观看视频| 色哟哟一区二区在线观看| 欧美日韩国产综合一区二区三区| 91精品国产麻豆| 久久久久99精品国产片| 一区免费观看视频| 亚洲一区免费视频| 另类成人小视频在线| 成人激情动漫在线观看| 欧美在线观看视频一区二区三区| 欧美裸体一区二区三区| 欧美xxxxxxxx| xf在线a精品一区二区视频网站| 欧美国产日产图区| 亚洲午夜免费视频| 国产乱淫av一区二区三区| 不卡区在线中文字幕| 精品1区2区3区| 2014亚洲片线观看视频免费| 亚洲日本在线看| 蜜桃在线一区二区三区| 成人免费视频一区二区| 欧美三级在线视频| 欧美一区二区三区免费在线看| 国产欧美日韩精品a在线观看| 一区二区三区精品在线观看| 麻豆91免费观看| 91在线国内视频| 欧美一级黄色大片| 亚洲你懂的在线视频| 国内精品伊人久久久久av影院| 一本久道久久综合中文字幕| 日韩欧美亚洲另类制服综合在线| 日韩一区欧美一区| 亚洲高清免费视频| 成人av网站大全| 日韩视频不卡中文| 一二三区精品视频| 国产一区二区免费视频| 欧美视频一区二区三区| 久久精品视频一区| 日韩中文字幕麻豆| 色av成人天堂桃色av| 国产夜色精品一区二区av| 亚洲精品成人在线| 国产99久久久国产精品 | 国产欧美视频一区二区| 精品一区二区三区欧美| 欧美一区午夜视频在线观看| 亚洲一区中文日韩| 欧美色爱综合网| 亚洲午夜免费福利视频| 91国在线观看| 一区二区欧美国产| 欧美日韩精品电影| 日韩电影在线免费| 日韩欧美一区二区久久婷婷| 免费精品视频最新在线| 欧美一级夜夜爽| 久久国产精品99久久人人澡| 日韩美一区二区三区| 久久精品国产网站| 精品久久人人做人人爱| 精品一区二区三区视频在线观看| 精品国产一区二区三区四区四| 精品一区二区三区在线观看 | 国产精品资源网| 久久精品免视看| 99久久婷婷国产| 亚洲女女做受ⅹxx高潮| 欧美视频一二三区| 免费看欧美女人艹b| 2023国产精品自拍| 国产成人久久精品77777最新版本| 国产日韩精品一区二区三区在线| 国产传媒日韩欧美成人| 亚洲欧洲日韩综合一区二区| 欧美亚洲精品一区| 肉色丝袜一区二区| 久久精品在这里| 91丨九色丨尤物| 亚洲aaa精品| 久久久久久亚洲综合影院红桃| 成人免费看片app下载| 亚洲精品大片www| 日韩欧美国产1| 成人午夜电影小说| 伊人婷婷欧美激情| 欧美一级高清片| 成人午夜免费视频| 亚洲综合另类小说| 欧美一区午夜视频在线观看 | 色综合久久久网| 日韩和欧美一区二区| 精品处破学生在线二十三| 92精品国产成人观看免费| 婷婷久久综合九色国产成人| 久久久精品综合| 91成人免费在线视频| 精品一区二区在线视频| 中文字幕综合网| 欧美一区二区播放| 99久久99久久精品国产片果冻| 免费在线观看一区二区三区| 亚洲国产精华液网站w| 欧美日韩免费高清一区色橹橹| 韩国av一区二区三区在线观看| 国产精品素人一区二区| 91精品婷婷国产综合久久竹菊| 粉嫩aⅴ一区二区三区四区五区| 亚洲一区二区三区四区在线观看| 26uuu精品一区二区| 色综合久久六月婷婷中文字幕| 国产主播一区二区三区| 亚洲永久精品大片| 中文字幕制服丝袜成人av| 欧美不卡123| 6080yy午夜一二三区久久| 91视频国产观看|