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

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

?? strategy.cpp

?? 股票軟件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
	AfxGetDB().GetTimeLocalRange( &tmLatest, NULL, NULL );
	m_RealBeginTime		=	tmLatest;
	m_RealCurrentTime	=	tmLatest;
	m_RealCurrentCash	=	m_opparam.m_nStartAmount;
	m_RealOpRecord.RemoveAll();
	m_RealNextOp.RemoveAll();
	m_RealStockOwn.RemoveAll();
	m_RealAssetSerial.RemoveAll();

	SP_ASSERT( m_opparam.IsValid() );
}
// 策略實戰:下一個交易時間
BOOL CStrategy::RealGotoNextTime( )
{
	CSPTime	tmNext;
	if( m_techstocks.GetNextExistTradeTime( RealGetCurrentTime(), tmNext ) )
	{
		m_RealCurrentTime	=	tmNext;
		return TRUE;
	}
	return FALSE;
}
// 策略實戰:開始時間
CSPTime CStrategy::RealGetBeginTime( )
{
	return m_RealBeginTime;
}
// 策略實戰:當前時間
CSPTime CStrategy::RealGetCurrentTime( )
{
	return m_RealCurrentTime;
}
// 策略實戰:當前資金
double CStrategy::RealGetCurrentCash( )
{
	return m_RealCurrentCash;
}
// 策略實戰:執行一個操作
BOOL CStrategy::RealOperate( OPRECORD record, BOOL bTimeStrict )
{
	if( bTimeStrict && m_RealOpRecord.GetSize() > 0 && record.time < m_RealOpRecord.ElementAt(m_RealOpRecord.GetSize()-1).time )
		return FALSE;
	CStockInfo	info;
	if( strlen(record.szCode)>0
		&& ( !AfxGetStockContainer().GetStockInfo( record.szCode, &info )
		|| !info.IsValidStock() ) )
		return FALSE;

	double	dAmount		=	record.dwShare * record.dSharePrice;
	double	dRateCost	=	record.dRateCost;
	if( STRATEGY_OPTYPE_BUY == record.lOpType )	// 買入
	{
		if( m_RealCurrentCash < dAmount+dRateCost )
			return FALSE;
		if( !m_RealStockOwn.AddStock( info, record.dwShare, record.dSharePrice ) )
			return FALSE;
		m_RealCurrentCash	-=	(dAmount+dRateCost);
	}
	else if( STRATEGY_OPTYPE_SELL == record.lOpType )	// 賣出
	{
		if( !m_RealStockOwn.RemoveStock( info, record.dwShare ) )
			return FALSE;
		m_RealCurrentCash	+=	(dAmount-dRateCost);
	}
	else if( STRATEGY_OPTYPE_ADDSTOCK == record.lOpType )	// 添加股票
	{
		if( !m_RealStockOwn.AddStock( info, record.dwShare, record.dSharePrice ) )
			return FALSE;
	}
	else if( STRATEGY_OPTYPE_REMOVESTOCK == record.lOpType )	// 移除股票
	{
		if( !m_RealStockOwn.RemoveStock( info, record.dwShare ) )
			return FALSE;
	}
	else if( STRATEGY_OPTYPE_ADDCASH == record.lOpType )		// 加入資金
	{
		m_RealCurrentCash	+=	record.dSharePrice;
	}
	else if( STRATEGY_OPTYPE_REMOVECASH == record.lOpType )	// 移除資金
	{
		if( m_RealCurrentCash < record.dSharePrice )
			return FALSE;
		m_RealCurrentCash	-=	record.dSharePrice;
	}
	else
		return FALSE;

	// Record
	m_RealOpRecord.Add( record );
	return TRUE;
}
// 策略實戰:操作記錄
COpRecordContainer & CStrategy::RealGetOpRecord( )
{
	return m_RealOpRecord;
}
// 策略實戰:下一步操作計劃
COpRecordContainer & CStrategy::RealGetNextOp( )
{
	return m_RealNextOp;
}
// 策略實戰:當前擁有股票
CStockOwnContainer & CStrategy::RealGetStockOwn( )
{
	return m_RealStockOwn;
}
// 策略實戰:總資產序列
CAssetSerialContainer & CStrategy::RealGetAssetSerial( )
{
	return m_RealAssetSerial;
}
// 策略實戰:得到指定日期的總資產
double CStrategy::RealGetAsset( CSPTime tmCur )
{
	double	dAsset	=	0;

	if( m_techstocks.GetSumAsset( tmCur, m_RealStockOwn, &dAsset ) )
	{
		dAsset	+=	m_RealCurrentCash;

		ASSETSERIAL	serial;
		memset( &serial, 0, sizeof(serial) );
		serial.time		=	tmCur.GetTime();
		serial.dAsset	=	dAsset;
		serial.dCash	=	m_RealCurrentCash;
		m_RealAssetSerial.SortInsert( serial );
		return dAsset;
	}
	else
	{
		for( int i=m_RealAssetSerial.GetSize()-1; i>=0; i-- )
		{
			ASSETSERIAL & serial	=	m_RealAssetSerial.ElementAt(i);
			if( serial.time <= tmCur.GetTime() )
				return serial.dAsset;
		}
	}
	return m_opparam.m_nStartAmount;
}
// 策略實戰:當前收益
double CStrategy::RealGetCurrentYield( )
{
	if( m_opparam.m_nStartAmount > 0 )
		return STRATEGY_BASEF_YIELD * RealGetAsset(RealGetCurrentTime()) / m_opparam.m_nStartAmount;
	return STRATEGY_BASEF_YIELD;
}
// 策略實戰:當前指數上漲百分比
double CStrategy::RealGetCurrentYieldIndexPercent( )
{
	CSPTime	sptmBegin( RealGetBeginTime().GetTime() );
	CSPTime	sptmNow( RealGetCurrentTime().GetTime() );
	DWORD	dateBegin	=	sptmBegin.ToStockTimeDay();
	DWORD	dateNow		=	sptmNow.ToStockTimeDay();
	
	CKData & kdata	=	AfxGetStockMain().GetKData(m_opparam.m_nKType);
	int	nIndexBegin	=	kdata.GetAboutIndexByDate( dateBegin );
	int	nIndexNow	=	kdata.GetAboutIndexByDate( dateNow );
	if( -1 == nIndexBegin || -1 == nIndexNow )
		return 0;

	if( kdata.ElementAt(nIndexBegin).m_fClose < 1e-4 )
		return 0;

	double	dYield	=	((double)kdata.ElementAt(nIndexNow).m_fClose) - kdata.ElementAt(nIndexBegin).m_fClose;
	dYield	=	dYield / kdata.ElementAt(nIndexBegin).m_fClose;

	return dYield;
}
// 策略實戰:當前收益百分比
double CStrategy::RealGetCurrentYieldPercent( )
{
	return ( RealGetCurrentYield() - STRATEGY_BASEF_YIELD ) / STRATEGY_BASEF_YIELD;
}
// 策略實戰:執行操作計劃
BOOL CStrategy::RealOperateNextop( CSPTime tmCur, COpRecordContainer & nextop, CTechStock & techstock )
{
	for( int j=0; j<nextop.GetSize(); j++ )	// 依次執行每一個計劃
	{
		OPRECORD &	record	=	nextop.ElementAt(j);
		if( STRATEGY_OPTYPE_BUY != record.lOpType && STRATEGY_OPTYPE_SELL != record.lOpType )
			continue;

		if( tmCur.GetTime() >= record.time
			&& techstock.m_info.IsEqualTo( CStock::marketUnknown, record.szCode ) )
		{
			if( !record.bViewed )	//	Not Viewed
			{
				nextop.RemoveAt(j);
				j --;
				continue;
			}

			if( techstock.IsStopTrading(tmCur) )	// 停牌,轉入下一個交易日的計劃中
			{
				CSPTime	tmNext;
				if( m_opparam.GetNextTradeTime(tmCur, tmNext) )
					record.time	=	tmNext.GetTime();
				continue;
			}

			double	dPriceOK	=	record.dSharePrice;
			if( techstock.GetPriceOK( record.lOpType, tmCur, record.dwShare, record.dSharePrice, &dPriceOK ) )	// 成交價格
			{
				record.time			=	tmCur.GetTime();
				record.dSharePrice	=	dPriceOK;
				record.dRateCost	=	record.dwShare * record.dSharePrice * m_rate.GetRate(techstock.m_info);
				RealOperate( record );
			}
			else if( STRATEGY_OPTYPE_SELL == record.lOpType )	// 如果是賣出不成功,轉入下一個交易日,直至賣出成功
			{
				CSPTime	tmNext;
				if( m_opparam.GetNextTradeTime(tmCur, tmNext) )
					record.time	=	tmNext.GetTime();
				if( techstock.GetClosePrice(tmCur,&dPriceOK) )
					record.dSharePrice	=	dPriceOK * m_opparam.m_dSellMulti;
				continue;
			}
			nextop.RemoveAt(j);
			j --;
		}
	}
	return TRUE;
}
// 策略實戰:執行
BOOL CStrategy::RealRun( SIMULATION_CALLBACK fnCallback, void * cookie )
{
	// TIMEZONES
	// 準備數據
	if( !PrepareData( fnCallback, cookie ) )
		return FALSE;

	ClearLastIntensity( );

	DWORD	dwShare = 0;		// Temp Data
	double	dSharePrice = 0;	// Temp Data
	CSPTime	tmOp;				// Temp Data

	do	{
		CSPTime	tmCur	=	RealGetCurrentTime();	// 當前日期

		// Process
		for( int i=0; i<m_techstocks.GetSize(); i++ )	// 每只股票依次判斷
		{
			CTechStock & techstock	=	m_techstocks.ElementAt(i);

			// Operate
			RealOperateNextop( tmCur, m_RealNextOp, techstock );	// 執行今日操作計劃

			// Judge Whether to operate, if yes, save to nextop
			STOCKOWN	own;
			memset( &own, 0, sizeof(own) );
			if( m_RealStockOwn.HasThisStock( techstock.m_info, &own ) )	// 如果有這支股票,判斷是否賣出
			{
				if( m_techstocks.GetShouldSellShare( techstock, tmCur, own, m_opparam, &tmOp, &dwShare, &dSharePrice ) )
				{	// 如果賣出,加入操作計劃中
					m_RealNextOp.AddRecordUniqueStock( STRATEGY_OPTYPE_SELL, tmOp, techstock.m_info.GetStockCode(), dwShare, dSharePrice, dwShare*dSharePrice*m_rate.GetRate(techstock.m_info) );
				}
			}
			else	// 判斷是否買入
			{
				if( m_techstocks.GetShouldBuyShare( techstock, tmCur, m_RealCurrentCash, m_rate , m_opparam, m_RealStockOwn.GetSize(), &tmOp, &dwShare, &dSharePrice )
					&& ( m_RealStockOwn.GetSize() + m_RealNextOp.GetBuyRecordCount() < m_opparam.m_nStoreDiv || m_RealNextOp.HasBuyStock(techstock.m_info.GetStockCode()) ) )
				{	// 如果買入,加入操作計劃中
					m_RealNextOp.AddRecordUniqueStock( STRATEGY_OPTYPE_BUY, tmOp, techstock.m_info.GetStockCode(), dwShare, dSharePrice, dwShare*dSharePrice*m_rate.GetRate(techstock.m_info) );
				}
			}

			// 進度顯示
			DWORD	dwProgress	=	(DWORD)((i+1)*STRATEGY_MAX_PROGRESS/m_techstocks.GetSize());
			if( fnCallback && !fnCallback( SIMULATION_PROGRESS, dwProgress, NULL, cookie ) )
				return FALSE;
		}

		RealGetAsset( RealGetCurrentTime() );

	} while( RealGotoNextTime() );	// 下一個交易日

	if( fnCallback )
		fnCallback( SIMULATION_PROGRESS, STRATEGY_MAX_PROGRESS, NULL, cookie );
	return TRUE;
}
// 策略實戰:加入操作記錄,如果成功,同時要刪除加入日后的所有操作
BOOL CStrategy::RealAddOpRecordStrict( OPRECORD record )
{
	COpRecordContainer recordbk;
	recordbk.Copy( m_RealOpRecord );

	// 重新執行操作記錄,到加入新操作日為止
	BOOL	bOK	=	TRUE;
	m_RealCurrentCash	=	m_opparam.m_nStartAmount;
	m_RealOpRecord.RemoveAll();
	m_RealNextOp.RemoveAll();
	m_RealStockOwn.RemoveAll();
	for( int i=0; i<recordbk.GetSize(); i++ )
	{
		OPRECORD	rec	=	recordbk.ElementAt(i);
		if( bOK && rec.time < record.time )
			bOK	&=	RealOperate( rec );
	}
	
	if( bOK && RealOperate( record ) )
	{	// 加入成功,重新計算總資產序列
		for( int i=m_RealAssetSerial.GetSize()-1; i>=0; i-- )
		{
			ASSETSERIAL	serial	=	m_RealAssetSerial.ElementAt(i);
			if( serial.time >= record.time )
				m_RealAssetSerial.RemoveAt(i);
		}
		RealGetAsset( record.time );
		return TRUE;
	}
	else
	{
		// 加入失敗,全部重來,恢復原樣
		m_RealCurrentCash	=	m_opparam.m_nStartAmount;
		m_RealOpRecord.RemoveAll();
		m_RealNextOp.RemoveAll();
		m_RealStockOwn.RemoveAll();
		for( int i=0; i<recordbk.GetSize(); i++ )
		{
			OPRECORD	rec	=	recordbk.ElementAt(i);
			RealOperate( rec );
		}
		return FALSE;
	}
}
// 策略實戰:刪除操作記錄,如果成功,同時要刪除日后的所有操作
BOOL CStrategy::RealDeleteOpRecordStrict( int nRecord )
{
	if( nRecord < 0 || nRecord >= m_RealOpRecord.GetSize() )
	{
		SP_ASSERT( FALSE );
		return FALSE;
	}
	OPRECORD	record	=	m_RealOpRecord.ElementAt(nRecord);

	COpRecordContainer recordbk;
	recordbk.Copy( m_RealOpRecord );

	// 重新執行操作記錄,到刪除日為止
	BOOL	bOK	=	TRUE;
	m_RealCurrentCash	=	m_opparam.m_nStartAmount;
	m_RealOpRecord.RemoveAll();
	m_RealNextOp.RemoveAll();
	m_RealStockOwn.RemoveAll();
	for( int i=0; i<recordbk.GetSize(); i++ )
	{
		OPRECORD	rec	=	recordbk.ElementAt(i);
		if( bOK && rec.time < record.time )
			bOK	&=	RealOperate( rec );
	}
	
	if( bOK )
	{	// 成功刪除,重新計算總資產序列
		for( int i=m_RealAssetSerial.GetSize()-1; i>=0; i-- )
		{
			ASSETSERIAL	serial	=	m_RealAssetSerial.ElementAt(i);
			if( serial.time >= record.time )
				m_RealAssetSerial.RemoveAt(i);
		}
		RealGetAsset( record.time );
		return TRUE;
	}
	else
	{
		// 刪除失敗,恢復原樣
		m_RealCurrentCash	=	m_opparam.m_nStartAmount;
		m_RealOpRecord.RemoveAll();
		m_RealNextOp.RemoveAll();
		m_RealStockOwn.RemoveAll();
		for( int i=0; i<recordbk.GetSize(); i++ )
		{
			OPRECORD	rec	=	recordbk.ElementAt(i);
			RealOperate( rec );
		}
		return FALSE;
	}
}

/*
BOOL CStrategy::RealUnOperate( OPRECORD record )
{
	CStockInfo	info;
	if( strlen(record.szCode)>0
		&& ( !AfxGetStockContainer().GetStockInfo( record.szCode, &info )
		|| !info.IsValidStock() ) )
		return FALSE;

	double	dAmount		=	record.dwShare * record.dSharePrice;
	double	dRateCost	=	record.dRateCost;
	if( STRATEGY_OPTYPE_BUY == record.lOpType )
	{
		if( !m_RealStockOwn.RemoveStock( info, record.dwShare ) )
			return FALSE;
		m_RealCurrentCash	+=	(dAmount+dRateCost);
	}
	else if( STRATEGY_OPTYPE_SELL == record.lOpType )
	{
		if( m_RealCurrentCash < dAmount-dRateCost )
			return FALSE;
		if( !m_RealStockOwn.AddStock( info, record.dwShare ) )
			return FALSE;
		m_RealCurrentCash	-=	(dAmount-dRateCost);
	}
	else if( STRATEGY_OPTYPE_ADDSTOCK == record.lOpType )
	{
		if( !m_RealStockOwn.RemoveStock( info, record.dwShare ) )
			return FALSE;
	}
	else if( STRATEGY_OPTYPE_REMOVESTOCK == record.lOpType )
	{
		if( !m_RealStockOwn.AddStock( info, record.dwShare ) )
			return FALSE;
	}
	else if( STRATEGY_OPTYPE_ADDCASH == record.lOpType )
	{
		if( m_RealCurrentCash < record.dSharePrice )
			return FALSE;
		m_RealCurrentCash	-=	record.dSharePrice;
	}
	else if( STRATEGY_OPTYPE_REMOVECASH == record.lOpType )
	{
		m_RealCurrentCash	+=	record.dSharePrice;
	}
	else
		return FALSE;

	return TRUE;
}

BOOL CStrategy::RealAddOpRecordStrict( OPRECORD record )
{
	COpRecordContainer recordbk;
	recordbk.Copy( m_RealOpRecord );

	BOOL	bOK	=	TRUE;
	for( int i=m_RealOpRecord.GetSize()-1; i>=0; i-- )
	{
		OPRECORD	rec	=	m_RealOpRecord.ElementAt(i);
		if( bOK && rec.time > record.time )
		{
			bOK	&=	RealUnOperate( rec );
			if( bOK )
				m_RealOpRecord.RemoveAt(i);
		}
	}

	if( bOK && RealOperate( record ) )
	{
		for( i=m_RealAssetSerial.GetSize()-1; i>=0; i-- )
		{
			ASSETSERI

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久奇米777| 欧美一卡二卡在线| 粉嫩绯色av一区二区在线观看| 视频在线观看一区二区三区| 亚洲一区免费在线观看| 一区二区不卡在线播放 | 国产精品一区二区久激情瑜伽| 奇米色一区二区| 美腿丝袜亚洲综合| 国产一区欧美日韩| 国产成人日日夜夜| 99精品视频在线观看| 在线看国产日韩| 欧美精品色综合| 精品国产乱码久久久久久1区2区| 精品成人免费观看| 国产欧美日韩综合| 亚洲乱码国产乱码精品精的特点| 亚洲精品国产第一综合99久久 | 精品制服美女久久| 午夜欧美2019年伦理| 美女网站在线免费欧美精品| 久久精品国产免费| 不卡的电影网站| 欧美综合在线视频| 久久人人97超碰com| 亚洲精品亚洲人成人网在线播放| 午夜免费欧美电影| 国产69精品久久久久777| 欧美性猛片aaaaaaa做受| 日韩欧美在线123| 中文字幕亚洲一区二区va在线| 伊人一区二区三区| 激情综合亚洲精品| 欧美日韩一区二区三区不卡| 欧美精品一区二区在线播放| 一区二区高清在线| 国产成人超碰人人澡人人澡| 91网页版在线| 久久综合一区二区| 亚洲成人中文在线| 不卡av免费在线观看| 欧美成人一区二区| 亚洲chinese男男1069| 成人视屏免费看| 日韩免费在线观看| 亚洲一区二区视频| 不卡区在线中文字幕| 26uuu久久综合| 日本伊人精品一区二区三区观看方式| 不卡影院免费观看| ...xxx性欧美| 久久精品国产精品亚洲精品| 欧美少妇bbb| 亚洲免费电影在线| caoporen国产精品视频| 精品第一国产综合精品aⅴ| 亚洲电影在线播放| 99久久亚洲一区二区三区青草| 精品国产露脸精彩对白| 青椒成人免费视频| 91.麻豆视频| 五月婷婷色综合| 欧美亚洲另类激情小说| 国产精品久久久久一区二区三区共 | 国产精品一区二区三区四区| 3d动漫精品啪啪1区2区免费| 亚洲国产精品一区二区www在线 | 国产精品日韩成人| 国产在线播精品第三| 日韩一卡二卡三卡国产欧美| 午夜视频在线观看一区| 欧美日韩一级片网站| 一区二区三区在线不卡| 色吧成人激情小说| 亚洲精品亚洲人成人网在线播放| 国产成人av影院| 亚洲国产精品激情在线观看| 国产精品亚洲午夜一区二区三区| 欧美精品一区二区三| 国产精品123区| 国产精品妹子av| 色综合久久久久久久久| 亚洲美女电影在线| 欧美丰满少妇xxxbbb| 免费人成在线不卡| 精品99一区二区三区| 国产一区二区电影| 欧美激情一区三区| 91麻豆成人久久精品二区三区| 一区二区三区四区不卡视频| 欧美日韩精品一区二区三区 | 日本伦理一区二区| 午夜免费久久看| 欧美电影免费观看高清完整版在| 久久不见久久见中文字幕免费| 久久久久国产精品免费免费搜索| 波多野结衣欧美| 午夜精品影院在线观看| 精品国产乱码久久久久久夜甘婷婷| 成人永久aaa| 亚洲第一激情av| 久久精品免费在线观看| 一本色道**综合亚洲精品蜜桃冫| 三级一区在线视频先锋| 久久中文字幕电影| 91一区二区在线| 看片的网站亚洲| 一区二区三区四区亚洲| 日韩免费高清视频| 97久久超碰国产精品电影| 午夜影院久久久| 欧美激情综合在线| 欧美色网一区二区| 国产美女一区二区三区| 亚洲综合av网| 国产人成亚洲第一网站在线播放| 91成人免费网站| 精品一区二区免费在线观看| 亚洲乱码国产乱码精品精的特点| 精品免费国产二区三区| 日本韩国欧美国产| 国产露脸91国语对白| 日日噜噜夜夜狠狠视频欧美人 | 日本视频免费一区| 亚洲欧洲在线观看av| 精品免费99久久| 欧美老女人第四色| 色播五月激情综合网| 懂色av噜噜一区二区三区av| 蜜臀av性久久久久蜜臀aⅴ流畅 | 99久久精品国产导航| 国产精品一区二区x88av| 秋霞av亚洲一区二区三| 亚洲一区二区三区爽爽爽爽爽 | 欧美图区在线视频| caoporen国产精品视频| 粉嫩av一区二区三区在线播放| 久久成人免费日本黄色| 日本aⅴ亚洲精品中文乱码| 亚洲一区二区四区蜜桃| 亚洲免费视频成人| 亚洲丝袜制服诱惑| **性色生活片久久毛片| 国产精品毛片大码女人| 国产精品伦一区| 国产精品美女久久久久aⅴ | 91天堂素人约啪| 成人毛片在线观看| 国产盗摄精品一区二区三区在线 | 亚洲综合色区另类av| 国产女人aaa级久久久级| 国产亚洲人成网站| 国产日本亚洲高清| 中文字幕精品在线不卡| 中文字幕欧美国产| 中文字幕一区二区三区蜜月| 中文字幕精品一区二区精品绿巨人| 久久久久国产精品人| 国产精品美日韩| 亚洲精品一二三| 亚洲电影视频在线| 男人操女人的视频在线观看欧美| 美女在线视频一区| 国产一区欧美日韩| 不卡电影一区二区三区| 91电影在线观看| 69堂国产成人免费视频| 精品久久久久久亚洲综合网| 国产日韩欧美综合一区| 亚洲天堂福利av| 天堂蜜桃91精品| 韩国午夜理伦三级不卡影院| 国产一区二区免费在线| 不卡影院免费观看| 欧美日本高清视频在线观看| 精品国精品国产| 亚洲三级电影网站| 婷婷久久综合九色国产成人| 国产一区二区影院| 色国产综合视频| 精品国产三级电影在线观看| 综合激情成人伊人| 日本人妖一区二区| 不卡在线观看av| 日韩一级片网站| 中文字幕第一区二区| 亚洲国产aⅴ成人精品无吗| 九九九精品视频| 91精品办公室少妇高潮对白| 日韩欧美国产麻豆| 成人免费在线视频| 久久成人av少妇免费| 欧日韩精品视频| 国产校园另类小说区| 视频一区二区三区入口| 成人免费av在线| 2014亚洲片线观看视频免费| 亚洲午夜久久久久久久久电影院| 国产一区二区美女诱惑|