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

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

?? techkline.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
	Cross Platform Core Code.

	Copyright(R) 2001-2002 Balang Software.
	All rights reserved.

*/

#include	"StdAfx.h"
#include	"Stock.h"
#include	"Technique.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

#ifdef	_DEBUG
#define	new	DEBUG_NEW
#endif

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

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

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

void CKLine::SetDefaultParameters( )
{
}

void CKLine::AttachParameters( CKLine & src )
{
}

BOOL CKLine::IsValidParameters( )
{
	return TRUE;
}

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

/***
	得到K線價格的從nStart到nEnd的最小值和最大值
*/
BOOL CKLine::GetMinMaxInfo( int nStart, int nEnd, double *pdMin, double *pdMax )
{
	STT_ASSERT_GETMINMAXINFO( m_pKData, nStart, nEnd );

	double	dMin	=	-1;
	double	dMax	=	1;
	for( int k=nStart; k<=nEnd; k++ )
	{
		KDATA	& kd	=	m_pKData->ElementAt(k);
		if( nStart == k || dMin > kd.m_fLow )	dMin	=	(double)kd.m_fLow;
		if( nStart == k || dMax < kd.m_fHigh )	dMax	=	(double)kd.m_fHigh;
	}
	dMin	-=	fabs(dMin) * 0.01;
	dMax	+=	fabs(dMax) * 0.01;
	if( dMin <= 0 )
		dMin	=	0;
	if( dMax - dMin < 0.03 )
		dMax	=	dMin + 0.03;

	if( pdMin )		*pdMin	=	dMin;
	if( pdMax )		*pdMax	=	dMax;
	return TRUE;
}

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

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

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

void CMA::SetDefaultParameters( )
{
	m_nType	=	typeMA;
	m_adwMADays.RemoveAll();
	m_adwMADays.Add( 5 );
	m_adwMADays.Add( 10 );
	m_adwMADays.Add( 20 );
	m_itsGoldenFork	=	ITS_BUYINTENSE;
	m_itsDeadFork	=	ITS_SELLINTENSE;
	m_itsLong		=	ITS_BUY;
	m_itsShort		=	ITS_SELL;
}

void CMA::AttachParameters( CMA & src )
{
	m_nType	=	src.m_nType;
	m_adwMADays.Copy( src.m_adwMADays );
	m_itsGoldenFork	=	src.m_itsGoldenFork;
	m_itsDeadFork	=	src.m_itsDeadFork;
	m_itsLong		=	src.m_itsLong;
	m_itsShort		=	src.m_itsShort;
}

BOOL CMA::IsValidParameters( )
{
	STT_VALID_DAYSARRAY( m_adwMADays );
	return ( (typeMA == m_nType || typeEXPMA == m_nType)
		&& VALID_ITS(m_itsGoldenFork) && VALID_ITS(m_itsDeadFork)
		&& VALID_ITS(m_itsLong) && VALID_ITS(m_itsShort) );
}

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

int CMA::GetSignal( int nIndex, UINT * pnCode )
{
	// 金叉或者死叉
	int	nSignal	=	GetForkSignal( nIndex, m_adwMADays, m_itsGoldenFork, m_itsDeadFork, pnCode );
	if( ITS_ISBUY(nSignal) || ITS_ISSELL(nSignal) )
		return nSignal;
	// 趨勢
	return GetTrendIntensity( nIndex, m_adwMADays, m_itsLong, m_itsShort, pnCode );
}

BOOL CMA::GetMinMaxInfo(int nStart, int nEnd,
				   double *pdMin, double *pdMax )
{
	return AfxGetMinMaxInfo( nStart, nEnd, pdMin, pdMax, this, m_adwMADays );
}

/***
	兩種:
	1. MA
	    MA = n日收盤價的平均值	
	2. EXPMA
	    EXPMA(1) = CLOSE(1)
		EXPMA(i) = (1-α)EXPMA(i-1) + αCLOSE(i)
		其中 α = 2 / (n+1)
*/
BOOL CMA::Calculate( double * pValue, int nIndex, int nDays, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE( m_pKData, nIndex, nDays );

	int	nCount	=	0;
	if( nDays > nIndex+1 )
		return FALSE;

	double	dResult	=	0;
	int	k = 0;
	switch( m_nType )
	{
	case typeMA:
		return m_pKData->GetMA( pValue, nIndex, nDays );
		break;
	case typeEXPMA:
		if( bUseLast && pValue )
		{
			if( 0 == nIndex )
				dResult	=	m_pKData->MaindataAt(nIndex);
			else
				dResult	=	(*pValue)*(nDays-1)/(nDays+1) + m_pKData->MaindataAt(nIndex) * 2./(nDays+1);
		}
		else
		{
			for( k=0; k<=nIndex; k++ )
			{
				if( 0 == k )
					dResult	=	m_pKData->MaindataAt(k);
				else
					dResult	=	dResult*(nDays-1)/(nDays+1) + m_pKData->MaindataAt(k) * 2./(nDays+1);
			}
		}
		if( pValue )
			*pValue	=	dResult;
		break;
	default:
		SP_ASSERT( FALSE );
	}
	return TRUE;
}

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

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

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

void CBBI::SetDefaultParameters( )
{
	m_nMA1Days	=	3;
	m_nMA2Days	=	6;
	m_nMA3Days	=	12;
	m_nMA4Days	=	24;
	m_itsGoldenFork	=	ITS_BUY;
	m_itsDeadFork	=	ITS_SELL;
}

void CBBI::AttachParameters( CBBI & src )
{
	m_nMA1Days	=	src.m_nMA1Days;
	m_nMA2Days	=	src.m_nMA2Days;
	m_nMA3Days	=	src.m_nMA3Days;
	m_nMA4Days	=	src.m_nMA4Days;
	m_itsGoldenFork	=	src.m_itsGoldenFork;
	m_itsDeadFork	=	src.m_itsDeadFork;
}

BOOL CBBI::IsValidParameters( )
{
	return ( VALID_DAYS( m_nMA1Days ) && VALID_DAYS( m_nMA2Days )
		&& VALID_DAYS( m_nMA3Days ) && VALID_DAYS( m_nMA4Days )
		&& VALID_ITS(m_itsGoldenFork) && VALID_ITS(m_itsDeadFork) );
}

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

int CBBI::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;
	if( nIndex <= 0 )
		return ITS_NOTHING;

	double	dLiminalLow = 0, dLiminalHigh = 0;
	if( !IntensityPreparePrice( nIndex, pnCode, 0, ITS_GETMINMAXDAYRANGE, &dLiminalLow, &dLiminalHigh, 0.4, 0.6 ) )
		return ITS_NOTHING;

	double	dBBINow = 0, dBBILast = 0;
	if( !Calculate( &dBBILast, nIndex-1, FALSE )
		|| !Calculate( &dBBINow, nIndex, FALSE ) )
		return ITS_NOTHING;

	double	dNowHigh	=	m_pKData->ElementAt(nIndex).m_fHigh;
	double	dNowLow		=	m_pKData->ElementAt(nIndex).m_fLow;
	double	dNowClose	=	m_pKData->ElementAt(nIndex).m_fClose;
	double	dLastHigh	=	m_pKData->ElementAt(nIndex-1).m_fHigh;
	double	dLastLow	=	m_pKData->ElementAt(nIndex-1).m_fLow;
	double	dLastClose	=	m_pKData->ElementAt(nIndex-1).m_fClose;

	if( dNowClose < dLiminalLow && dLastLow < dBBILast && dNowLow > dBBINow )
	{	// 低位趨勢向上
		if( pnCode )	*pnCode	=	ITSC_GOLDENFORK;
		return m_itsGoldenFork;
	}
	if( dNowClose > dLiminalHigh && dLastHigh > dBBILast && dNowHigh < dBBINow )
	{	// 高位趨勢向下
		if( pnCode )	*pnCode	=	ITSC_DEADFORK;
		return m_itsDeadFork;
	}
	return	ITS_NOTHING;
}

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

/***
	BBI = 4 個 不同日期的MA 的平均值
*/
BOOL CBBI::Calculate( double * pValue, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );

	if( LoadFromCache( nIndex, pValue ) )
		return TRUE;
	
	double	dResult	=	0;
	double	dTemp	=	0;

	if( !m_pKData->GetMA( &dTemp, nIndex, m_nMA1Days ) )
		return FALSE;
	dResult	+=	dTemp;

	if( !m_pKData->GetMA( &dTemp, nIndex, m_nMA2Days ) )
		return FALSE;
	dResult	+=	dTemp;

	if( !m_pKData->GetMA( &dTemp, nIndex, m_nMA3Days ) )
		return FALSE;
	dResult	+=	dTemp;

	if( !m_pKData->GetMA( &dTemp, nIndex, m_nMA4Days ) )
		return FALSE;
	dResult	+=	dTemp;

	dResult	=	dResult / 4;
	if( pValue )
		*pValue	=	dResult;

	StoreToCache( nIndex, pValue );
	return TRUE;
}

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

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

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

void CBOLL::SetDefaultParameters( )
{
	m_dMultiUp		=	2;
	m_dMultiDown	=	2;
	m_nMADays		=	20;
	m_itsSupport	=	ITS_BUY;
	m_itsResistance	=	ITS_SELL;
}

void CBOLL::AttachParameters( CBOLL & src )
{
	m_dMultiUp		=	src.m_dMultiUp;
	m_dMultiDown	=	src.m_dMultiDown;
	m_nMADays		=	src.m_nMADays;
	m_itsSupport	=	src.m_itsSupport;
	m_itsResistance	=	src.m_itsResistance;
}

BOOL CBOLL::IsValidParameters( )
{
	return ( m_dMultiUp > 0 && m_dMultiDown > 0 && VALID_DAYS( m_nMADays )
		&& VALID_ITS(m_itsSupport) && VALID_ITS(m_itsResistance) );
}

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

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

	double	dMA = 0, dUp = 0, dDown = 0;
	if( !Calculate( &dMA, &dUp, &dDown, nIndex, FALSE ) )
		return ITS_NOTHING;

	double	dClose	=	m_pKData->ElementAt(nIndex).m_fClose;

	if( dClose < dDown )
	{	// 跌破支撐位
		if( pnCode )	*pnCode	=	ITSC_SUPPORT;
		return m_itsSupport;
	}
	if( dClose > dUp )
	{	// 漲過阻力位
		if( pnCode )	*pnCode	=	ITSC_RESISTANCE;
		return m_itsResistance;
	}
	return	ITS_NOTHING;
}

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

/***
	布林帶是以股價平均線MA為中心線,上方阻力線MA+αSn和下方支撐線MA-αSn之間的帶狀區域
	其中 Sn為n日收盤價的標準差
*/
BOOL CBOLL::Calculate( double * pdMA, double * pdUp, double * pdDown, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );
	
	if( m_nMADays < 2 )
		return FALSE;

	if( LoadFromCache( nIndex, pdMA, pdUp, pdDown ) )
		return TRUE;

	double	dMA = 0, dUp = 0, dDown = 0, dS = 0;

	if( !m_pKData->GetMA( &dMA, nIndex, m_nMADays ) )
		return FALSE;

	int	nCount	=	0;
	for( int k=nIndex; k>=0; k-- )
	{
		dS	+=	(m_pKData->MaindataAt(k) - dMA) * (m_pKData->MaindataAt(k) - dMA);
		nCount	++;
		if( nCount == m_nMADays )
			break;
	}

	dS	=	sqrt( dS / (m_nMADays-1) );

	dUp		=	dMA + m_dMultiUp * dS;
	dDown	=	dMA - m_dMultiDown * dS;
	if( pdMA )		*pdMA	=	dMA;
	if( pdUp )		*pdUp	=	dUp;
	if( pdDown )	*pdDown	=	dDown;

	StoreToCache( nIndex, pdMA, pdUp, pdDown );
	return TRUE;
}

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

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

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

void CPV::SetDefaultParameters( )
{
}

void CPV::AttachParameters( CPV & src )
{
}

BOOL CPV::IsValidParameters( )
{
	return TRUE;
}

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

int CPV::GetSignal( int nIndex, UINT * pnCode )
{
	if( pnCode )	*pnCode	=	ITSC_NOTHING;
	// 無買賣信號
	return	ITS_NOTHING;
}

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

/***
	PV就是當日成交均價,成交額除以成交量
*/
BOOL CPV::Calculate( double * pValue, int nIndex, BOOL bUseLast )
{
	STT_ASSERT_CALCULATE1( m_pKData, nIndex );

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

	KDATA	kd	=	m_pKData->ElementAt(nIndex);
	if( kd.m_fVolume <= 1e-4 || kd.m_fAmount <= 1e-4 )
		return  FALSE;
	
	int		nCount	=	0;
	double	average	=	((double)(kd.m_fAmount)) / kd.m_fVolume;
	while( average < kd.m_fLow && nCount < 10 )	{	average	*=	10;	nCount ++;	}
	while( average > kd.m_fHigh && nCount < 20 )	{	average	/=	10;	nCount ++;	}
	if( average < kd.m_fLow )		//	說明是指數
		average	=	(kd.m_fOpen+kd.m_fHigh+kd.m_fLow+kd.m_fClose)/4;

	double	dPV	=	average;
	if( pValue )
		*pValue	=	dPV;

	StoreToCache( nIndex, pValue );
	return TRUE;
}

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

CSAR::CSAR( CKData * pKData )
	: CTechnique( pKData )
{
	SetDefaultParameters( );

	m_bCurUp	=	m_bFirstUp;
	m_bTurn		=	FALSE;
	m_dCurAF	=	m_dAFStep;
	m_dCurHigh	=	-1;
	m_dCurLow	=	-1;
}

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

void CSAR::SetDefaultParameters( )
{
	m_nInitDays	=	4;
	m_bFirstUp	=	TRUE;
	m_dAFStep	=	0.02;
	m_dAFMax	=	0.2;
	m_itsBuy	=	ITS_BUY;
	m_itsSell	=	ITS_SELL;
}

void CSAR::AttachParameters( CSAR & src )
{
	m_nInitDays	=	src.m_nInitDays;
	m_bFirstUp	=	src.m_bFirstUp;
	m_dAFStep	=	src.m_dAFStep;
	m_dAFMax	=	src.m_dAFMax;
	m_itsBuy	=	src.m_itsBuy;
	m_itsSell	=	src.m_itsSell;
}

BOOL CSAR::IsValidParameters( )
{
	return ( VALID_DAYS(m_nInitDays) && m_bFirstUp >= 0 && m_dAFStep > 0 && m_dAFMax > 0

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合在线| 精品国产乱码久久久久久老虎| 这里只有精品视频在线观看| 国产精品乱人伦| 日本女优在线视频一区二区| 91在线视频播放地址| 欧美大片在线观看一区二区| 亚洲综合av网| www.日韩大片| 国产日本一区二区| 久久国产免费看| 欧美高清视频一二三区 | 日本电影欧美片| 国产精品入口麻豆九色| 国产在线精品免费| 欧美一区二区视频观看视频| 亚洲主播在线观看| 色哟哟在线观看一区二区三区| 国产欧美日韩亚州综合| 狠狠色综合播放一区二区| 91精品蜜臀在线一区尤物| 日本怡春院一区二区| 欧美精品tushy高清| 午夜精品免费在线| 欧美猛男超大videosgay| 亚洲精品网站在线观看| 91视频免费播放| 亚洲欧美日韩久久| www.欧美.com| 亚洲激情自拍视频| 日本高清不卡视频| 婷婷国产v国产偷v亚洲高清| 欧美精品三级在线观看| 日韩福利电影在线| 欧美成人一区二区三区片免费| 美洲天堂一区二卡三卡四卡视频| 91精品国产综合久久久久久| 日韩中文欧美在线| 精品国产一区久久| 国产乱码精品1区2区3区| 国产欧美1区2区3区| 99久久免费精品高清特色大片| 亚洲欧美日韩国产成人精品影院| 欧美亚洲一区二区在线观看| 午夜久久电影网| 久久夜色精品一区| 91首页免费视频| 免费精品视频在线| 国产精品美日韩| 欧美视频一二三区| 国产在线精品一区二区| 日韩伦理av电影| 欧美精品v日韩精品v韩国精品v| 老司机午夜精品| 亚洲欧美色图小说| 欧美不卡在线视频| 99久久综合精品| 午夜精品久久久久久久久久| 久久亚洲综合色一区二区三区| 99免费精品视频| 蜜臀91精品一区二区三区| 国产三级精品三级| 欧美性色黄大片| 国产一区91精品张津瑜| 夜夜嗨av一区二区三区中文字幕| 欧美一区二区三区四区久久| 成人美女在线观看| 秋霞午夜鲁丝一区二区老狼| 中文字幕一区av| 欧美tk—视频vk| 欧美性大战xxxxx久久久| 狠狠色综合播放一区二区| 一区二区三区在线看| 久久久久久久综合| 91精品国产一区二区三区 | 经典三级视频一区| 亚洲一二三四久久| 日本一区二区视频在线| 在线不卡免费av| 91麻豆免费看| 国产成人av网站| 秋霞成人午夜伦在线观看| 国产亚洲欧美激情| 日韩亚洲欧美一区二区三区| 色狠狠色狠狠综合| 成人一区二区三区视频在线观看 | 国产一区中文字幕| 午夜精品一区二区三区免费视频 | 国产成人小视频| 美女视频一区二区| 午夜精品久久久久久久99樱桃| 国产精品久久久久一区二区三区 | 国产亚洲精品aa午夜观看| 欧美日本在线一区| 一本到不卡免费一区二区| 国产69精品久久99不卡| 免费一级片91| 午夜精品久久久久久久| 亚洲曰韩产成在线| 亚洲欧美日韩国产另类专区 | 精品一区二区成人精品| 午夜精品免费在线| 亚洲一区二区三区四区在线免费观看 | 成人夜色视频网站在线观看| 国内国产精品久久| 国产在线精品免费| 国产成人精品www牛牛影视| 国产成人精品免费在线| 国产91丝袜在线播放| 国产成人在线网站| 国产另类ts人妖一区二区| 国产米奇在线777精品观看| 激情久久五月天| 国产精品1区2区3区在线观看| 国产精华液一区二区三区| 国产精品综合在线视频| 国产激情精品久久久第一区二区| 国产a视频精品免费观看| 高清日韩电视剧大全免费| 成人涩涩免费视频| 99久久精品国产一区二区三区| jlzzjlzz国产精品久久| 91麻豆精品秘密| 色婷婷亚洲婷婷| 欧美美女一区二区在线观看| 欧美成人性福生活免费看| 久久久久国色av免费看影院| 国产精品免费视频一区| 亚洲日本在线天堂| 亚洲va国产天堂va久久en| 日韩av成人高清| 成人做爰69片免费看网站| 日本久久一区二区三区| 日韩一区二区在线观看| 久久久久久99精品| 亚洲另类色综合网站| 日韩和欧美的一区| 国产精品一区二区男女羞羞无遮挡| 国产ts人妖一区二区| 欧美性猛交xxxx黑人交| 欧美tickling网站挠脚心| 国产精品不卡一区| 婷婷成人激情在线网| 国产乱国产乱300精品| 色婷婷综合激情| 精品成人佐山爱一区二区| 国产精品美女久久久久av爽李琼| 亚洲黄色免费电影| 青青草视频一区| 97se亚洲国产综合自在线观| 91精品国产综合久久小美女| 国产精品免费看片| 日韩黄色免费网站| 95精品视频在线| 日韩一区二区三区视频| ●精品国产综合乱码久久久久| 午夜精品久久久久久久99水蜜桃 | 国产精品一区在线观看你懂的| 91偷拍与自偷拍精品| 日韩欧美激情一区| 国产精品成人免费在线| 麻豆中文一区二区| 色综合久久六月婷婷中文字幕| 精品国产91洋老外米糕| 一区二区三区精品视频| 国产福利电影一区二区三区| 欧美精品在欧美一区二区少妇| 亚洲欧美综合网| 国产伦理精品不卡| 884aa四虎影成人精品一区| 国产精品国产三级国产aⅴ原创| 免费精品99久久国产综合精品| 在线视频你懂得一区二区三区| 国产欧美日韩在线视频| 国模娜娜一区二区三区| 777欧美精品| 丝袜诱惑制服诱惑色一区在线观看 | 欧美挠脚心视频网站| 亚洲摸摸操操av| caoporn国产一区二区| 久久久精品免费网站| 麻豆91在线播放| 91精品国产乱码久久蜜臀| 亚洲高清一区二区三区| 在线视频国内自拍亚洲视频| 最新欧美精品一区二区三区| 国产美女视频91| 欧美精品一区二区精品网| 美女任你摸久久| 欧美一区二区久久久| 日本在线不卡视频一二三区| 欧美日韩国产一二三| 日韩中文字幕区一区有砖一区| 欧美视频一区在线| 亚洲123区在线观看| 7777精品久久久大香线蕉| 日韩精品三区四区| 日韩欧美国产一区二区在线播放| 日本aⅴ精品一区二区三区| 日韩一区二区在线观看视频播放|