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

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

?? strategy.h

?? 股票軟件
?? H
字號:
/*
	Cross Platform Core Code.

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

	Using:
		class	CRateParam;
		class	CSPTimeContainer;
		class	COpParam;
		class	CStockOwnContainer;
		class	COpRecordContainer;
		class	CAssetSerialContainer;
		class	CTechStock;
		class	CTechStockContainer;
		class	CStrategy;
*/

#if	!defined( __STKLIB_STRATEGY_H__ )
#define	__STKLIB_STRATEGY_H__

/////////////////////////////////////////////////////////////////////////////
// CRateParam
/***
	交易稅費設置類
*/
class  CRateParam
{
public:
	CRateParam( );

	BOOL	IsValid( );
	void	SetDefault( );
	void	Serialize( CSPArchive &ar );

	double	GetRate( CStockInfo & info );

	double	m_dShaa;
	double	m_dShab;
	double	m_dShafund;
	double	m_dSzna;
	double	m_dSznb;
	double	m_dSznfund;
};

/////////////////////////////////////////////////////////////////////////////
// CSPTimeContainer

//template class __declspec(dllexport)	CSPArray<CSPTime, CSPTime &>;
typedef	CSPArray<CSPTime, CSPTime &>	CSPTimeArray;

class		CSPTimeContainer : public CSPTimeArray
{
public:
	CSPTimeContainer() {}
	virtual ~CSPTimeContainer()	{	RemoveAll();	}

	// for access CSPTimeArray
	virtual	int		Add( CSPTime &tm )		{	return CSPTimeArray::Add( tm );	}
	virtual	void	RemoveAll( )			{	CSPTimeArray::RemoveAll();	}
};

/////////////////////////////////////////////////////////////////////////////
// COpParam

	CSPString	AfxGetLogicString( int nLogic );
	CSPString	AfxGetStoreDivString( int nStoreDiv );
/***
	策略模擬操作條件類
*/
class  COpParam
{
public:
	COpParam( );

	// Attributes
	BOOL	IsValid( );
	void	SetDefault( );
	void	SetDefaultOfInvalidMember( );
	void	Serialize( CSPArchive &ar );

	// Operation
	BOOL	IsInTimeZones( CSPTime tm );
	CSPTime	GetBeginTime( );
	CSPTime	GetEndTime( );
	BOOL	GetNextTradeTime( CSPTime tmNow, CSPTime &tmNext );
	DWORD	GetProgress( CSPTime tmNow, DWORD dwProgressMax );

	enum storeDivs {
		storedivMin		=	0x01,
		storedivOnce	=	0x01,
		storedivTwice	=	0x02,
		storedivThird	=	0x03,
		storedivForth	=	0x04,
		storedivFifth	=	0x05,
		storedivSixth	=	0x06,
		storedivSeventh	=	0x07,
		storedivEighth	=	0x08,
		storedivNinth	=	0x09,
		storedivTenth	=	0x0A,
		storedivMax		=	0x0A,
	};

	enum Logical {
		logicMin	=	0x01,
		logicAnd	=	0x01,
		logicOr		=	0x02,
		logicMax	=	0x02,
	};

	int		m_nKType;
	int		m_nMaindataType;
	int		m_nBuyLogic;
	int		m_nBuyLimit;
	double	m_dBuyMulti;
	int		m_nSellLogic;
	int		m_nSellLimit;
	double	m_dSellMulti;
	CSPTimeContainer	m_atmBegin;
	CSPTimeContainer	m_atmEnd;
	long	m_nStartAmount;		//	元
	int		m_nStoreDiv;

	BOOL	m_bStopLosing;
	BOOL	m_bStopProfit;
	double	m_dStopLosing;
	double	m_dStopProfit;
	BOOL	m_bLongTrend;
	BOOL	m_bIndexTrend;
	int		m_nKTypeLong;
	int		m_nKTypeIndex;
};

/////////////////////////////////////////////////////////////////////////////
// stockown_t

#pragma pack(1)

typedef	struct stockown_t	{
	char	szCode[STKLIB_MAX_CODE];
	DWORD	dwShare;
	double	dBuyPrice;
	DWORD	dwMarket;
	char	szReserved[20];
} STOCKOWN, * LPSTOCKOWN;

//template class __declspec(dllexport)	CSPArray< STOCKOWN, STOCKOWN & >;
typedef	CSPArray< STOCKOWN, STOCKOWN & >	CStockOwnArray;

/***
	擁有股票數組
*/
class  CStockOwnContainer : public CStockOwnArray
{
public:
	virtual ~CStockOwnContainer()	{	RemoveAll();	}

	// for access CStockOwnArray
	virtual	void	RemoveAll( )			{	CStockOwnArray::RemoveAll();	}

	BOOL	AddStock( CStockInfo & info, DWORD dwShare, double dBuyPrice );
	BOOL	RemoveStock( CStockInfo & info, DWORD dwShare );
	BOOL	HasThisStock( CStockInfo & info, LPSTOCKOWN lpOwn );
};

/////////////////////////////////////////////////////////////////////////////
// oprecord_t

// 操作類型
#define	STRATEGY_OPTYPE_BUY			0x01	// 買入
#define	STRATEGY_OPTYPE_SELL		0x02	// 賣出
#define	STRATEGY_OPTYPE_ADDSTOCK	0x03	// 添加股票
#define	STRATEGY_OPTYPE_REMOVESTOCK	0x04	// 移除股票
#define	STRATEGY_OPTYPE_ADDCASH		0x05	// 添加資金
#define	STRATEGY_OPTYPE_REMOVECASH	0x06	// 取走資金

	CSPString	AfxGetStrategyOpTypeString( long lOpType );

typedef	struct oprecord_t	{
	long	lOpType;
	time_t	time;
	char	szCode[STKLIB_MAX_CODE];
	DWORD	dwShare;
	double	dSharePrice;
	double	dRateCost;
	long	bViewed;	// for next op use in realop. 
	DWORD	dwMarket;
	char	szReserved[24];
} OPRECORD, * LPOPRECORD;

//template class __declspec(dllexport)	CSPArray< OPRECORD, OPRECORD & >;
typedef	CSPArray< OPRECORD, OPRECORD & >	COpRecordArray;
/***
	操作記錄數組
*/
class  COpRecordContainer : public COpRecordArray
{
public:
	virtual ~COpRecordContainer()	{	RemoveAll();	}

	// for access COpRecordArray
	virtual	int		Add( OPRECORD &newElement){	return COpRecordArray::Add(newElement);	}
	virtual	void	RemoveAt(int nIndex, int nCount = 1){	COpRecordArray::RemoveAt(nIndex,nCount);	}
	virtual	void	RemoveAll( )			{	COpRecordArray::RemoveAll();	}
	virtual	void	Copy(const COpRecordArray& src)	{	COpRecordArray::Copy(src);	}

	// operation
	int		AddRecord(	long lOpType, CSPTime tm, const char *szCode,
						DWORD dwShare, double dSharePrice, double dRateCost );
	int		AddRecordUniqueStock(long lOpType, CSPTime tm, const char *szCode,
					   DWORD dwShare, double dSharePrice, double dRateCost );
	int		GetBuyRecordCount();
	BOOL	HasBuyStock( const char * szCode );
	BOOL	StatResults( int *pnTimes, int *pnVictoryTimes, double *pdYieldMax, double *pdYieldMin );
};

typedef	struct assetserial_t	{
	time_t	time;
	double	dAsset;
	double	dCash;
	char	szReserved[32];
} ASSETSERIAL, * LPASSETSERIAL;

//template class __declspec(dllexport)	CSPArray< ASSETSERIAL, ASSETSERIAL & >;
typedef	CSPArray< ASSETSERIAL, ASSETSERIAL & >	CAssetSerialArray;
/***
	資產數組
*/
class  CAssetSerialContainer : public CAssetSerialArray
{
public:
	virtual	~CAssetSerialContainer()	{	RemoveAll();	}

	// for access CAssetSerialArray
	virtual	void	RemoveAt(int nIndex, int nCount = 1){	CAssetSerialArray::RemoveAt(nIndex,nCount);	}
	virtual	void	RemoveAll( )			{	CAssetSerialArray::RemoveAll();	}
	virtual	void	Copy(const CAssetSerialArray& src)	{	CAssetSerialArray::Copy(src);	}

	// operation
	BOOL	SortInsert( ASSETSERIAL serial );
	BOOL	GetStdDev( double *pdStdDev, double * pdXiapu );
};

#pragma pack()

//////////////////////////////////////////////////////////////////////
// CTechStock
/***
	一只待操作的股票,包含股票的信息,K線數據,長周期K線數據,所需技術指標,所需長周期技術指標
*/
class  CTechStock
{
public:
	CTechStock( );
	CTechStock( const CTechStock & src );
	virtual	~CTechStock( );

	CTechStock	& operator = ( const CTechStock &src );
	void	SetAutoDelete( BOOL bAutoDelete = TRUE );
	void	Clear( );

	BOOL	GetPriceOK( long lOpType, CSPTime tmCur, DWORD dwShare, double dSharePrice, double *pdPriceOK );
	BOOL	IsStopTrading( CSPTime tmCur );
	BOOL	GetClosePrice( CSPTime tmCur, double *pdPrice );
	BOOL	GetCloseDiffPercent( CSPTime tmCur, double *pdDiffPercent );

	CStockInfo		m_info;			// 股票信息
	CKData			m_kdata;		// 所需K線數據
	CKData			m_kdataLong;	// 長周期K線數據
	CSPPtrArray		m_techs;		// 所需技術指標
	CSPPtrArray		m_techsLong;	// 所需長周期技術指標

protected:
	BOOL	m_bAutoDelete;
};

//template class __declspec(dllexport)	CSPArray< CTechStock, CTechStock & >;
typedef	CSPArray< CTechStock, CTechStock & >	CTechStockArray;
/***
	CTechStock數組
*/
class  CTechStockContainer : public CTechStockArray
{
public:
	virtual	~CTechStockContainer( );

	// for access CTechStockArray
	virtual	void SetSize(int nNewSize, int nGrowBy = -1)	{	CTechStockArray::SetSize(nNewSize,nGrowBy);	}

	// operation
	void	Clear( );
	
	// Operation
	BOOL	GetShouldBuyShare(	CTechStock & techstock, CSPTime tmCur, double dCash, CRateParam &rate, COpParam &opparam, int nOwnedStockCount,
								CSPTime *ptmOp, DWORD *pdwShare, double *pdSharePrice );
	BOOL	GetShouldSellShare(	CTechStock & techstock, CSPTime tmCur, STOCKOWN &own, COpParam &opparam,
								CSPTime *ptmOp, DWORD *pdwShare, double *pdSharePrice );

	BOOL	GetClosePrice( const char * szCode, CSPTime tmCur, double * pdPrice );
	BOOL	GetSumAsset( CSPTime tmCur, CStockOwnContainer &container, double * pdAsset );
	BOOL	GetNextExistTradeTime( CSPTime tmCur, CSPTime & tmNext );

	CStockInfo		m_infoIndex;
	CKData			m_kdataIndex;
	CSPPtrArray		m_techsIndex;
};

/////////////////////////////////////////////////////////////////////////////
// CStrategy

typedef BOOL (CALLBACK* SIMULATION_CALLBACK)(DWORD dwType, DWORD dwValue, LPCTSTR lpszMsg, VOID * cookie);

#define	STRATEGY_MAX_TITLE			256

#define	SIMULATION_PROGRESS			1
#define	SIMULATION_YIELD			2

#define	STRATEGY_MAX_PROGRESS		10000
#define	STRATEGY_MAXF_PROGRESS	10000.

#define	STRATEGY_BASE_YIELD		10000
#define	STRATEGY_BASEF_YIELD		10000.

/***
	策略
*/
class  CStrategy
{
public:
	CStrategy();
	virtual ~CStrategy();

	static CSPString	GetName( LPCTSTR lpszPath );
// Overrides
public:
	virtual	BOOL	OpenStrategyFile( LPCTSTR lpszPathName, LPSTR lpErr, UINT nMaxSize );
	virtual	BOOL	SaveStrategyFile( LPCTSTR lpszPathName );
	virtual BOOL	Serialize(CSPArchive& ar, LPSTR lpErr, UINT nMaxSize);
	virtual	BOOL	DoFileSave( );
	virtual	BOOL	OnClose( );
	virtual	void	OnRealOpViewed( );

protected:
	// 存盤文件路徑和名稱,不寫到策略文件中
	CSPString	m_strPathName;

// Attributes
public:
	void		SetPathName( LPCTSTR lpszPathName );
	CSPString	GetPathName( );
	void		SetName( LPCTSTR lpszName );
	CSPString	GetName( );
	void		SetDescript( LPCTSTR lpszDescript );
	CSPString	GetDescript( );
	CSPStringArray	&	GetStocks( );
	void				SetStocks( CSPStringArray & astr );
	void				AddStock( LPCTSTR lpszCode );
	void				RemoveStock( LPCTSTR lpszCode );
	CSPString			GetStockTechString( );
	CRateParam		&	GetRateParam( );
	COpParam		&	GetOpParam( );
	CTechParameters	&	GetTechParametersBuy( );
	CTechParameters	&	GetTechParametersSell( );
	CTechParameters	&	GetTechParametersLongTrend( );
	CTechParameters	&	GetTechParametersIndexTrend( );
	CSPDWordArray	&	GetSelectedTechsBuy( );
	CSPDWordArray	&	GetSelectedTechsSell( );
	CSPDWordArray	&	GetSelectedTechsLongTrend( );
	CSPDWordArray	&	GetSelectedTechsIndexTrend( );

// Operations
public:
	// Simulation
	enum	SimuStatus	{
		statusInit		=	0x01,
		statusRunning	=	0x02,
		statusPaused	=	0x03,
		statusFinished	=	0x04,
	};

	// Data Cache
	BOOL	PrepareData( SIMULATION_CALLBACK fnCallback, void * cookie );
	void	ClearLastIntensity( );
	void	ClearCache( );
	CTechStockContainer &	GetTechStockContainer( );
	BOOL	CanModifiedNow()	{	return ( SimuIsStatusInit() || SimuIsStatusFinished() );	}

	// Simulation Status
	int		SimuGetCurStatus( )		{	return m_SimuCurrentStatus;	}
	BOOL	SimuIsStatusInit( )		{	return statusInit == m_SimuCurrentStatus;	}
	BOOL	SimuIsStatusRunning( )	{	return statusRunning == m_SimuCurrentStatus;	}
	BOOL	SimuIsStatusPaused( )	{	return statusPaused == m_SimuCurrentStatus;	}
	BOOL	SimuIsStatusFinished( )	{	return statusFinished == m_SimuCurrentStatus;	}
	void	SimuSetStatusInit( )	{	m_SimuCurrentStatus	=	statusInit;	}
	void	SimuSetStatusRunning( )	{	m_SimuCurrentStatus	=	statusRunning;	}
	void	SimuSetStatusPaused( )	{	m_SimuCurrentStatus	=	statusPaused;	}
	void	SimuSetStatusFinished( ){	m_SimuCurrentStatus	=	statusFinished;	}

	// Simulation
	void	SimuReset( );
	BOOL	SimuGotoNextTime( );
	CSPTime	SimuGetCurrentTime( );
	double	SimuGetCurrentCash( );
	BOOL	SimuOperate( OPRECORD record, BOOL bTimeStrict = TRUE );
	COpRecordContainer &	SimuGetOpRecord( );
	COpRecordContainer &	SimuGetNextOp( );
	CStockOwnContainer &	SimuGetStockOwn( );
	CAssetSerialContainer &	SimuGetAssetSerial( );
	DWORD	SimuGetCurrentProgress( DWORD dwProgressMax = STRATEGY_MAX_PROGRESS );	//	Not Same as Real
	double	SimuGetAsset( CSPTime tmCur );
	double	SimuGetCurrentYield( );
	double	SimuGetCurrentYieldIndexPercent( );
	double	SimuGetCurrentYieldPercent( );
	BOOL	SimuOperateNextop( CSPTime tmCur, COpRecordContainer & nextop, CTechStock & techstock );
	virtual	BOOL	SimuRun( SIMULATION_CALLBACK fnCallback, void * cookie );

	// Real
	void	RealReset( );
	BOOL	RealGotoNextTime( );
	CSPTime	RealGetBeginTime( );	//	Not Same as Simu
	CSPTime	RealGetCurrentTime( );
	double	RealGetCurrentCash( );
	BOOL	RealOperate( OPRECORD record, BOOL bTimeStrict = TRUE );
	COpRecordContainer &	RealGetOpRecord( );
	COpRecordContainer &	RealGetNextOp( );
	CStockOwnContainer &	RealGetStockOwn( );
	CAssetSerialContainer &	RealGetAssetSerial( );
	double	RealGetAsset( CSPTime tmCur );
	double	RealGetCurrentYield( );
	double	RealGetCurrentYieldIndexPercent( );
	double	RealGetCurrentYieldPercent( );
	BOOL	RealOperateNextop( CSPTime tmCur, COpRecordContainer & nextop, CTechStock & techstock );
	virtual	BOOL	RealRun( SIMULATION_CALLBACK fnCallback, void * cookie );
	BOOL	RealAddOpRecordStrict( OPRECORD record );	//	Not Same as Simu
	BOOL	RealDeleteOpRecordStrict( int nRecord );	//	Not Same as Simu

protected:
	// Properties
	DWORD			m_dwFileVersion;
	CSPString		m_strName;		// 策略名稱
	CSPString		m_strDescript;	// 策略說明

	// Stocks
	CDomain			m_stocks;		// 策略備選股票

	// Rate
	CRateParam		m_rate;			// 交易費用
	
	// Tech parameters
	CTechParameters	m_paramBuy;			// 買入指標規則
	CTechParameters	m_paramSell;		// 賣出指標規則
	CTechParameters	m_paramLongTrend;	// 長期指標規則
	CTechParameters	m_paramIndexTrend;	// 指數指標規則
	CSPDWordArray	m_anTechsBuy;		// 買入依據的指標
	CSPDWordArray	m_anTechsSell;		// 賣出依據的指標
	CSPDWordArray	m_anTechsLongTrend;	// 長周期趨勢依據的指標
	CSPDWordArray	m_anTechsIndexTrend;// 指數趨勢依據的指標

	// Operate Parameters
	COpParam		m_opparam;		// 操作規則

	// Simulation
	int				m_SimuCurrentStatus;	// Not Same as Real, 起始,正在進行,暫停,完成
	CSPTime			m_SimuCurrentTime;		// 模擬當前時間
	double			m_SimuCurrentCash;		// 模擬當前資金
	CStockOwnContainer	m_SimuStockOwn;		// 模擬當前擁有股票
	COpRecordContainer	m_SimuOpRecord;		// 模擬記錄
	COpRecordContainer	m_SimuNextOp;		// 模擬下一步操作
	CAssetSerialContainer	m_SimuAssetSerial;	// 模擬資產值序列

	// Real Operate
	CSPTime			m_RealBeginTime;		//	Not Same as Simu,實戰起始時間
	CSPTime			m_RealCurrentTime;		// 實戰當前時間
	double			m_RealCurrentCash;		// 實戰當前資金
	CStockOwnContainer	m_RealStockOwn;		// 實戰當前擁有股票
	COpRecordContainer	m_RealOpRecord;		// 實戰操作記錄
	COpRecordContainer	m_RealNextOp;		// 實戰下一步操作
	CAssetSerialContainer	m_RealAssetSerial;	// 實戰資產值序列

	// Cache Data, Not Saved
	CTechStockContainer	m_techstocks;		// 備選股票,包含信息、數據、技術指標等
};

#endif // __STKLIB_STRATEGY_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一二三四区精品视频| 欧美三级在线看| 亚洲精品国久久99热| 欧美大片在线观看一区| 色婷婷久久99综合精品jk白丝 | 亚洲国产你懂的| 欧美精品一区二区三区蜜臀| 在线视频欧美精品| 国产成人精品影视| 午夜久久久久久久久久一区二区| 国产日韩欧美亚洲| 7777精品伊人久久久大香线蕉 | 激情综合五月婷婷| 韩国午夜理伦三级不卡影院| 免费久久精品视频| 亚洲另类一区二区| 久久久久久99久久久精品网站| 欧美日韩在线不卡| 91色在线porny| 国产高清在线精品| 久久精品国产久精国产爱| 亚洲国产日韩精品| 亚洲视频电影在线| 亚洲欧洲日韩综合一区二区| 久久久国产精品午夜一区ai换脸| 一区二区三区在线视频免费| 色综合夜色一区| 午夜精品免费在线观看| 欧美在线观看禁18| 视频一区欧美精品| 激情综合色丁香一区二区| 日本不卡123| 亚洲国产一二三| 国产精品成人免费精品自在线观看 | 国产suv精品一区二区三区| 欧美一级片在线观看| 成人午夜av电影| 石原莉奈在线亚洲三区| 日韩午夜中文字幕| 成人免费观看av| 亚洲国产aⅴ天堂久久| 91网站最新网址| 精品一区二区av| 亚洲少妇最新在线视频| 久久夜色精品国产欧美乱极品| 国产九色sp调教91| 亚洲成a人片在线不卡一二三区 | 色婷婷精品大在线视频| 亚洲男人天堂av网| 国产婷婷色一区二区三区在线| av在线这里只有精品| 久久精品国产精品亚洲综合| 亚洲欧美日韩在线| 欧美mv日韩mv国产网站| 欧美日韩高清在线播放| 欧美福利电影网| 蜜臀久久99精品久久久久宅男| 国产欧美精品在线观看| 欧美色偷偷大香| 懂色av中文一区二区三区| 亚洲综合男人的天堂| 久久只精品国产| 欧美日韩在线播放一区| 春色校园综合激情亚洲| 丝袜亚洲另类欧美| 亚洲一区二区中文在线| 成人欧美一区二区三区1314| 欧美一级欧美一级在线播放| 91.成人天堂一区| 精品入口麻豆88视频| 在线免费av一区| 欧美一区二区在线看| 久久影院午夜片一区| 一区二区在线观看免费| 日韩欧美的一区| 国产欧美中文在线| 亚洲精品乱码久久久久久黑人| 日韩精品福利网| 国产精品主播直播| 欧美中文字幕一二三区视频| 精品少妇一区二区三区视频免付费| 国产农村妇女精品| 亚洲综合久久久| 狠狠色狠狠色综合日日91app| 成人理论电影网| 欧美卡1卡2卡| 国产精品你懂的在线欣赏| 亚洲一区二区三区四区五区黄| 久久91精品久久久久久秒播| 不卡的av电影| 欧美一区二区三区精品| 最新热久久免费视频| 男男gaygay亚洲| 91蝌蚪国产九色| 久久网站最新地址| 亚洲成人自拍一区| 粗大黑人巨茎大战欧美成人| 日韩一卡二卡三卡四卡| 亚洲欧美日韩精品久久久久| 国模冰冰炮一区二区| 欧美日韩精品电影| 国产精品久久久久毛片软件| 日韩精品欧美成人高清一区二区| 成人av午夜影院| 欧美r级电影在线观看| 亚洲成a人片在线不卡一二三区 | 日韩视频在线你懂得| 亚洲视频在线一区观看| 国产在线观看一区二区| 欧美日韩夫妻久久| 亚洲裸体在线观看| 高清不卡在线观看| 欧美成人猛片aaaaaaa| 亚洲电影一区二区三区| 一本久久a久久精品亚洲| 日本中文字幕不卡| 91福利视频网站| 中文字幕一区av| 国产电影一区二区三区| 欧美成人精品福利| 日韩高清在线电影| 欧美日韩精品欧美日韩精品一综合| 中文字幕一区二区三区不卡在线| 国产盗摄女厕一区二区三区| 精品国产91乱码一区二区三区| 天堂成人国产精品一区| 欧美日韩精品专区| 亚洲午夜免费视频| 色综合久久天天| 中文字幕在线免费不卡| 国产成+人+日韩+欧美+亚洲| 久久精品日韩一区二区三区| 国产美女精品人人做人人爽| 久久这里都是精品| 国产精品白丝jk黑袜喷水| 精品国产亚洲在线| 久久99国内精品| 精品久久国产老人久久综合| 蜜臂av日日欢夜夜爽一区| 欧美xxxxx裸体时装秀| 免费不卡在线视频| 精品国产一二三| 国产99久久久国产精品潘金| 国产嫩草影院久久久久| k8久久久一区二区三区 | 欧美影院一区二区三区| 樱桃视频在线观看一区| 在线精品视频一区二区三四 | 亚洲国产日韩综合久久精品| 欧美日韩精品一区二区三区四区| 丝袜亚洲另类丝袜在线| 精品女同一区二区| 国产成人av资源| 亚洲色欲色欲www| 欧洲生活片亚洲生活在线观看| 性做久久久久久久久| 日韩一卡二卡三卡国产欧美| 国产一区二区影院| 国产精品日产欧美久久久久| 色噜噜狠狠一区二区三区果冻| 亚洲一区在线观看免费观看电影高清| 欧美日韩黄色影视| 久久aⅴ国产欧美74aaa| 欧美国产激情二区三区| 色香蕉久久蜜桃| 日韩精品欧美成人高清一区二区| 久久久久国色av免费看影院| av在线一区二区三区| 欧美亚洲一区二区在线| 天天综合天天综合色| 久久久一区二区三区| 99久久er热在这里只有精品66| 亚洲国产日韩在线一区模特| 26uuu精品一区二区| 91免费看`日韩一区二区| 日av在线不卡| 国产精品久久久久久户外露出 | 免费高清视频精品| 欧美国产97人人爽人人喊| 欧美日韩视频一区二区| 国产一区二区在线看| 亚洲一区影音先锋| 久久精品免费在线观看| 在线观看日韩av先锋影音电影院| 狠狠色2019综合网| 一区二区日韩电影| 国产亚洲1区2区3区| 欧美日韩一区二区三区在线| 国产一区二区免费看| 亚洲五码中文字幕| 中文字幕av一区二区三区| 欧美日韩1区2区| 99久久国产综合精品色伊| 精品一区中文字幕| 亚洲一区二区三区自拍| 国产精品久久久久久久久晋中 | 日韩午夜激情电影| 91一区二区三区在线观看| 久草这里只有精品视频| 亚洲午夜免费电影|