人人爽天天爽夜夜爽qc-人人爽天天爽夜夜爽曰-人人天天爱天天做天天摸-人人天天夜夜-色网站在线-色网站在线看

您現(xiàn)在的位置:程序化交易>> 期貨公式>> 文華財(cái)經(jīng)>> 文華財(cái)經(jīng)公式>>正文內(nèi)容

文華期權(quán)定價(jià)模型策略模型計(jì)算期權(quán)理論價(jià)格及策略代碼源碼[文華財(cái)經(jīng)公式]

優(yōu)勢


提供期權(quán)行情函數(shù),可直接引用波動率等數(shù)據(jù)。
全市場實(shí)時(shí)監(jiān)控,自動捕獲期權(quán)各種套利機(jī)會。
支持對期權(quán)交易過程精細(xì)控制,提高交易成功率。

?

1、什么是期權(quán)定價(jià)公式

Black-Scholes-Merton期權(quán)定價(jià)模型(Black-Scholes-Merton Option Pricing Model),即布萊克—斯克爾斯期權(quán)定價(jià)模型。

B-S-M定價(jià)公式:C=S·N(d1)-X·exp(-r·T)·N(d2)

其中:

d1=[ln(S/X)+(r+σ^2/2)T]/(σ√T) d2=d1-σ·√T

C—期權(quán)初始合理價(jià)格 X—期權(quán)執(zhí)行價(jià)格

S—所交易金融資產(chǎn)現(xiàn)價(jià)T—期權(quán)有效期

r—連續(xù)復(fù)利計(jì)無風(fēng)險(xiǎn)利率

σ—股票連續(xù)復(fù)利(對數(shù))回報(bào)率的年度波動率(標(biāo)準(zhǔn)差)

N(d1),N(d2)—正態(tài)分布變量的累積概率分布函數(shù),在此應(yīng)當(dāng)說明兩點(diǎn):

第一,該模型中無風(fēng)險(xiǎn)利率必須是連續(xù)復(fù)利形式。一個簡單的或不連續(xù)的無風(fēng)險(xiǎn)利率(設(shè)為r0)一般是一年計(jì)息一次,而r要求為連續(xù)復(fù)利利率。r0必須轉(zhuǎn)化為r方能代入上式計(jì)算。

兩者換算關(guān)系為:r=LN(1+r0)或r0=exp(r)-1例如r0=0.06,則r=LN(1+0.06)=0.0583,即100以583%的連續(xù)復(fù)利投資第二年將獲106,該結(jié)果與直接用r0=0.06計(jì)算的答案一致。

第二,期權(quán)有效期T的相對數(shù)表示,即期權(quán)有效天數(shù)與一年365天的比值。如果期權(quán)有效期為100天,則T=100/365=0.274。

?

2、年化波動率及BS公式函數(shù)計(jì)算

①計(jì)算年化波動率:

記錄收盤價(jià):CallOptions.PutOptions

計(jì)算對數(shù)Ln(今日收盤價(jià)/昨日收盤價(jià))

計(jì)算N天的標(biāo)準(zhǔn)差:如N天標(biāo)準(zhǔn)差=STD()

計(jì)算N天的波動率:N天的標(biāo)準(zhǔn)差*SQRT(252)

計(jì)算年化的波動率:N天波動率/SQRT(2N)

②推導(dǎo)理論價(jià)格計(jì)算案例

例如:某股票市價(jià)為3.84元,無風(fēng)險(xiǎn)利率為6%,年波動率為15%,求工商銀行行權(quán)價(jià)為3.6元、期限為半年的歐式認(rèn)購期權(quán)和認(rèn)沽期權(quán)價(jià)格,其中:期限內(nèi)不支付紅利。

此例中S=3.84,K=3.6,r=0.06,σ=0.15,T=0.5。

計(jì)算過程可分為三步:

第一步,先計(jì)算出和。





?

第二步,計(jì)算和。由標(biāo)準(zhǔn)正態(tài)分布表可查的


則可得


第三步,將上述結(jié)果及已知條件代入B-S公式,股票歐式認(rèn)購期權(quán)價(jià)格為:


歐式認(rèn)沽期權(quán)價(jià)格為:



?

3、B-S-M模型失效或者可能誤差的原因:

①模型對平值期權(quán)的估價(jià)令人滿意,特別是對剩余有效期限超過兩月,且不支付紅利者效果更好一點(diǎn)。

②對于高度增值或減值的期權(quán),模型的估價(jià)有較大偏差,會高估減值期權(quán)而低估增值期權(quán)。

③對臨近到期日的期權(quán)的估價(jià)存在一定的誤差。

④離散度過高或過低的情況下,會低估低離散度的買入期權(quán),高估高離散度的買方期權(quán)。

⑤模型基于對市場部分情況的假設(shè)條件過于嚴(yán)苛,這與現(xiàn)實(shí)情況有所差別,可能會影響到模型的可靠性。

?

4、根據(jù)以上推導(dǎo)過程,編寫策略模型計(jì)算期權(quán)理論價(jià)格,形成套利策略如下:

Data
	CODC0:"m2209-C-4200"; //看漲期權(quán)
	CODP0:"m2209-P-4200"; //看跌期權(quán)
	CODC1:"m2209-C-4150"; //看漲期權(quán)
	CODP1:"m2209-P-4150"; //看跌期權(quán)
	CODC2:"m2209-C-4100"; //看漲期權(quán)
	CODP2:"m2209-P-4100"; //看跌期權(quán)
	CODC3:"m2209-C-4050"; //看漲期權(quán)
	CODP3:"m2209-P-4050"; //看跌期權(quán)
	CODC4:"m2209-C-4000"; //看漲期權(quán)
	CODP4:"m2209-P-4000"; //看跌期權(quán)
	COD:"m2209"; //標(biāo)的期貨
Vars
	StringArray CODC; //看漲期權(quán)
	StringArray CODP; //看跌期權(quán)
	String CODF; //標(biāo)的期貨
	Numeric CDN; //期權(quán)合約數(shù)量
	Numeric N; //下單手?jǐn)?shù)
	Numeric X; //循環(huán)變量
	Numeric R; //無風(fēng)險(xiǎn)收益率
	Numeric D; //日期間隔
	Numeric P; //條件比例
	Numeric TKN; //數(shù)據(jù)區(qū)長度
	Numeric TOD; //當(dāng)前日期
	Numeric NEWPF; //F最新價(jià)
	Numeric HVLF; //F價(jià)格波動率
	Numeric RLPF,FLPF; //F漲跌停價(jià)
	Numeric BIDPF,ASKPF; //F買賣一價(jià)
	Numeric BRPF,SRPF; //F多空頭可用持倉
	Numeric OPFLG; //模型處理標(biāo)志
	Var_TickData TKD; //數(shù)據(jù)區(qū)
	NumericArray STP; //行權(quán)價(jià)
	NumericArray LNP; //自然對數(shù)
	NumericArray NEWPC; //C最新價(jià)
	NumericArray NEWPP; //P最新價(jià)
	NumericArray EPDC; //C行權(quán)日期
	NumericArray EPDP; //P行權(quán)日期
	NumericArray HVLC; //C歷史波動率
	NumericArray HVLP; //P歷史波動率
	NumericArray THPC; //C理論價(jià)格
	NumericArray THPP; //P理論價(jià)格
	NumericArray RTS; //距行權(quán)日剩余天數(shù)
	NumericArray D1,D2; //中間值
	NumericArray STRC; //C隱含波動率
	NumericArray STRP; //P隱含波動率
	NumericArray RLPC,FLPC; //C漲跌停價(jià)
	NumericArray RLPP,FLPP; //P漲跌停價(jià)
	NumericArray BIDPC,ASKPC; //C買賣一價(jià)
	NumericArray BIDPP,ASKPP; //P買賣一價(jià)
	NumericArray BRPC,SRPC; //C多空頭可用持倉
	NumericArray BRPP,SRPP; //P多空頭可用持倉
	NumericArray BKDFLGC,SKDFLGC; //C開倉處理標(biāo)志
	NumericArray BPDFLGC,SPDFLGC; //C平倉處理標(biāo)志
	NumericArray BKDFLGP,SKDFLGP; //P開倉處理標(biāo)志
	NumericArray BPDFLGP,SPDFLGP; //P平倉處理標(biāo)志
	NumericArray BKDFLGF,SKDFLGF; //F開倉處理標(biāo)志
	NumericArray BPDFLGF,SPDFLGF; //F平倉處理標(biāo)志
	Global_NumericArray BCFLG; //多頭處理標(biāo)志
	Global_NumericArray SCFLG; //空頭處理標(biāo)志
	Global_NumericArray BKIDC,SKIDC; //C開倉委托
	Global_NumericArray BPIDC,SPIDC; //C平倉委托
	Global_NumericArray BKIDP,SKIDP; //P開倉委托
	Global_NumericArray BPIDP,SPIDP; //P平倉委托
	Global_NumericArray BKIDF,SKIDF; //F開倉委托
	Global_NumericArray BPIDF,SPIDF; //F平倉委托
	Global_NumericArray BKFLGC,SKFLGC; //C開倉標(biāo)志
	Global_NumericArray BPFLGC,SPFLGC; //C平倉標(biāo)志
	Global_NumericArray BKFLGP,SKFLGP; //P開倉標(biāo)志
	Global_NumericArray BPFLGP,SPFLGP; //P平倉標(biāo)志
	Global_NumericArray BKFLGF,SKFLGF; //F開倉標(biāo)志
	Global_NumericArray BPFLGF,SPFLGF; //F平倉標(biāo)志
	Global_NumericArray BKMC,SKMC; //C開倉委托手?jǐn)?shù)
	Global_NumericArray BPMC,SPMC; //C平倉委托手?jǐn)?shù)
	Global_NumericArray BKMP,SKMP; //P開倉委托手?jǐn)?shù)
	Global_NumericArray BPMP,SPMP; //P平倉委托手?jǐn)?shù)
	Global_NumericArray BKMF,SKMF; //F開倉委托手?jǐn)?shù)
	Global_NumericArray BPMF,SPMF; //F平倉委托手?jǐn)?shù)
	Global_NumericArray BKPC,SKPC; //C開倉委托價(jià)格
	Global_NumericArray BPPC,SPPC; //C平倉委托價(jià)格
	Global_NumericArray BKPP,SKPP; //P開倉委托價(jià)格
	Global_NumericArray BPPP,SPPP; //P平倉委托價(jià)格
	Global_NumericArray BKPF,SKPF; //F開倉委托價(jià)格
	Global_NumericArray BPPF,SPPF; //F平倉委托價(jià)格
Begin
	//------------------------處理開啟------------------------//
	If(1) //處理開啟
	{
		CODC[0] = "m2209-C-4200"; //看漲期權(quán)
		CODP[0] = "m2209-P-4200"; //看跌期權(quán)
		CODC[1] = "m2209-C-4150"; //看漲期權(quán)
		CODP[1] = "m2209-P-4150"; //看跌期權(quán)
		CODC[2] = "m2209-C-4100"; //看漲期權(quán)
		CODP[2] = "m2209-P-4100"; //看跌期權(quán)
		CODC[3] = "m2209-C-4050"; //看漲期權(quán)
		CODP[3] = "m2209-P-4050"; //看跌期權(quán)
		CODC[4] = "m2209-C-4000"; //看漲期權(quán)
		CODP[4] = "m2209-P-4000"; //看跌期權(quán)
		CDN = GetStringArraySize(CODC); //期權(quán)合約數(shù)量
		CODF = "m2209"; //標(biāo)的期貨
		OPFLG = 1; //開啟模型處理
		If(CODF.A_IsExchangeOpen() != 1) //如果非開盤狀態(tài)
		{
			OPFLG = 2; //關(guān)閉模型處理
		}
		For X = 0 To CDN - 1 //遍歷期權(quán)合約
		{
			If(CODC[X].A_IsExchangeOpen() != 1 || CODP[X].A_IsExchangeOpen() != 1) //如果非開盤狀態(tài)
			{
				OPFLG = 2; //關(guān)閉模型處理
			}
		}
	}
	//------------------------變量賦值------------------------//
	If(OPFLG == 1) //變量賦值
	{
		N = 10; //下單手?jǐn)?shù)
		R = 1; //無風(fēng)險(xiǎn)收益率
		D = 5; //日期間隔
		P = 0.5; //條件比例
		TOD = CurrentDate(); //當(dāng)前日期
		NEWPF = CODF.Price("New"); //F最新價(jià)
		BIDPF = CODF.Price("Bid1"); //F買一價(jià)
		ASKPF = CODF.Price("Ask1"); //F賣一價(jià)
		RLPF = CODF.Price("RiseLimit"); //F漲停價(jià)
		FLPF = CODF.Price("FallLimit"); //F跌停價(jià)
		BIDPF = IIF(BIDPF == 0 && NEWPF == FLPF,FLPF,BIDPF); //F買一價(jià)
		ASKPF = IIF(ASKPF == 0 && NEWPF == RLPF,RLPF,ASKPF); //F賣一價(jià)
		BRPF = CODF.F_BuyRemainPosition(); //F多頭可用持倉
		SRPF = CODF.F_SellRemainPosition(); //F空頭可用持倉
		BRPF = Min(BRPF,CODF.A_BuyRemainPosition()); //F多頭可用持倉
		SRPF = Min(SRPF,CODF.A_SellRemainPosition()); //F空頭可用持倉
		For X = 0 To CDN - 1 //遍歷期權(quán)合約
		{
			NEWPC[X] = CODC[X].Price("New"); //C最新價(jià)
			NEWPP[X] = CODP[X].Price("New"); //P最新價(jià)
			BIDPC[X] = CODC[X].Price("Bid1"); //C買一價(jià)
			ASKPC[X] = CODC[X].Price("Ask1"); //C賣一價(jià)
			BIDPP[X] = CODP[X].Price("Bid1"); //P買一價(jià)
			ASKPP[X] = CODP[X].Price("Ask1"); //P賣一價(jià)
			RLPC[X] = CODC[X].Price("RiseLimit"); //C漲停價(jià)
			FLPC[X] = CODC[X].Price("FallLimit"); //C跌停價(jià)
			RLPP[X] = CODP[X].Price("RiseLimit"); //P漲停價(jià)
			FLPP[X] = CODP[X].Price("FallLimit"); //P跌停價(jià)
			BIDPC[X] = IIF(BIDPC[X] == 0 && NEWPC[X] == FLPC[X],FLPC[X],BIDPC[X]); //C買一價(jià)
			ASKPC[X] = IIF(ASKPC[X] == 0 && NEWPC[X] == RLPC[X],RLPC[X],ASKPC[X]); //C賣一價(jià)
			BIDPP[X] = IIF(BIDPP[X] == 0 && NEWPP[X] == FLPP[X],FLPP[X],BIDPP[X]); //P買一價(jià)
			ASKPP[X] = IIF(ASKPP[X] == 0 && NEWPP[X] == RLPP[X],RLPP[X],ASKPP[X]); //P賣一價(jià)
			STP[X] = CODC[X].Price("StrikePrice"); //行權(quán)價(jià)
			STRC[X] = CODC[X].Price("Stdderiation"); //C隱含波動率
			STRP[X] = CODP[X].Price("Stdderiation"); //P隱含波動率
			HVLC[X] = CODC[X].Price("HistoricalVolatility"); //C歷史波動率
			HVLP[X] = CODP[X].Price("HistoricalVolatility"); //P歷史波動率
			EPDC[X] = CODC[X].Price("ExpirationDate"); //C行權(quán)日期
			EPDP[X] = CODP[X].Price("ExpirationDate"); //P行權(quán)日期
			RTS[X] = DateDiff(TOD,EPDC[X] ); //距行權(quán)日剩余天數(shù)
			BRPC[X] = CODC[X].F_BuyRemainPosition(); //C多頭可用持倉
			SRPC[X] = CODC[X].F_SellRemainPosition(); //C空頭可用持倉
			BRPP[X] = CODP[X].F_BuyRemainPosition(); //P多頭可用持倉
			SRPP[X] = CODP[X].F_SellRemainPosition(); //P空頭可用持倉
			BRPC[X] = Min(BRPC[X],CODC[X].A_BuyRemainPosition()); //C多頭可用持倉
			SRPC[X] = Min(SRPC[X],CODC[X].A_SellRemainPosition()); //C空頭可用持倉
			BRPP[X] = Min(BRPP[X],CODP[X].A_BuyRemainPosition()); //P多頭可用持倉
			SRPP[X] = Min(SRPP[X],CODP[X].A_SellRemainPosition()); //P空頭可用持倉
		}
	}
	//------------------------數(shù)據(jù)取值------------------------//
	If(OPFLG == 1) //數(shù)據(jù)取值
	{
		TKD = Def_TickData(CODF,1,11); //數(shù)據(jù)區(qū)
		If(TKD.State == 1) //如果數(shù)據(jù)區(qū)有效
		{
			TKN = TKD.Num; //數(shù)據(jù)區(qū)長度
			For X = 1 To TKN - 1 //遍歷數(shù)據(jù)區(qū)
			{
				LNP[X - 1] = Ln(TKD[X].TickPrice / TKD[X - 1].TickPrice); //自然對數(shù)
			}
			HVLF = StandardDevArray(LNP,2) * Sqrt(252); //F價(jià)格波動率
			For X = 0 To CDN - 1 //遍歷期權(quán)合約
			{
				D1[X] = (Ln(NEWPF / STP[X]) + (R / 10 + 0.5 * Power(HVLF,2)) * RTS[X]) / (HVLF * Power(RTS[X],0.5)); //期權(quán)理論價(jià)格中間值
				D2[X] = D1[X] - HVLF * Power(RTS[X],0.5); //期權(quán)理論價(jià)格中間值
				THPC[X] = NEWPF * NormalSCDensity(D1[X]) - STP[X] * Exp(-1 * (R / 10) * RTS[X]) * NormalSCDensity(D2[X]); //根據(jù)B-S-M公式計(jì)算看漲期權(quán)理論價(jià)格
				THPP[X] = STP[X] * Exp(-1 * (R / 10) * RTS[X]) * (1 - NormalSCDensity(D2[X])) - NEWPF * (1 - NormalSCDensity(D1[X])); //根據(jù)B-S-M公式計(jì)算看跌期權(quán)理論價(jià)格
			}
		}
		Else //如果數(shù)據(jù)區(qū)無效
		{
			OPFLG = 2; //關(guān)閉模型處理
		}
	}
	//------------------------成交判斷------------------------//
	If(OPFLG == 1) //成交判斷
	{
		For X = 0 To CDN - 1 //遍歷期權(quán)合約
		{
			If(BKFLGF[X] == 1) //如果有F買開委托
			{
				If(F_OrderStatus(BKIDF[X]) == Enum_Filled) //如果F買開委托成交
				{
					Commentary("【多頭開倉:F買開委托" + Text(X + 1) + "成交!】");
					BKFLGF[X] = 0; //F買開標(biāo)志歸0
				}
				Else If(F_OrderStatus(BKIDF[X]) == Enum_Deleted) //如果F買開委托廢單
				{
					Commentary("【多頭開倉:F買開委托" + Text(X + 1) + "廢單!】");
					BKFLGF[X] = 0; //F買開標(biāo)志歸0
				}
			}
			If(BKFLGP[X] == 1) //如果有P買開委托
			{
				If(F_OrderStatus(BKIDP[X]) == Enum_Filled) //如果P買開委托成交
				{
					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "成交!】");
					BKFLGP[X] = 0; //P買開標(biāo)志歸0
				}
				Else If(F_OrderStatus(BKIDP[X]) == Enum_Deleted) //如果P買開委托廢單
				{
					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "廢單!】");
					BKFLGP[X] = 0; //P買開標(biāo)志歸0
				}
			}
			If(SPFLGF[X] == 1) //如果有F賣平委托
			{
				If(F_OrderStatus(SPIDF[X]) == Enum_Filled) //如果F賣平委托成交
				{
					Commentary("【多頭平倉:F賣平委托" + Text(X + 1) + "成交!】");
					SPFLGF[X] = 0; //F賣平標(biāo)志歸0
				}
				Else If(F_OrderStatus(SPIDF[X]) == Enum_Deleted) //如果F賣平委托廢單
				{
					Commentary("【多頭平倉:F賣平委托" + Text(X + 1) + "廢單!】");
					SPFLGF[X] = 0; //F賣平標(biāo)志歸0
				}
			}
			If(SPFLGP[X] == 1) //如果有P賣平委托
			{
				If(F_OrderStatus(SPIDP[X]) == Enum_Filled) //如果P賣平委托成交
				{
					Commentary("【多頭平倉:P賣平委托" + Text(X + 1) + "成交!】");
					SPFLGP[X] = 0; //P賣平標(biāo)志歸0
				}
				Else If(F_OrderStatus(SPIDP[X]) == Enum_Deleted) //如果P賣平委托廢單
				{
					Commentary("【多頭平倉:P賣平委托" + Text(X + 1) + "廢單!】");
					SPFLGP[X] = 0; //P賣平標(biāo)志歸0
				}
			}
			If(SKFLGF[X] == 1) //如果有F賣開委托
			{
				If(F_OrderStatus(SKIDF[X]) == Enum_Filled) //如果F賣開委托成交
				{
					Commentary("【空頭開倉:F賣開委托" + Text(X + 1) + "成交!】");
					SKFLGF[X] = 0; //F賣開標(biāo)志歸0
				}
				Else If(F_OrderStatus(SKIDF[X]) == Enum_Deleted) //如果F賣開委托廢單
				{
					Commentary("【空頭開倉:F賣開委托" + Text(X + 1) + "廢單!】");
					SKFLGF[X] = 0; //F賣開標(biāo)志歸0
				}
			}
			If(BKFLGC[X] == 1) //如果有C買開委托
			{
				If(F_OrderStatus(BKIDC[X]) == Enum_Filled) //如果C買開委托成交
				{
					Commentary("【空頭開倉:C買開委托" + Text(X + 1) + "成交!】");
					BKFLGC[X] = 0; //C買開標(biāo)志歸0
				}
				Else If(F_OrderStatus(BKIDC[X]) == Enum_Deleted) //如果C買開委托廢單
				{
					Commentary("【空頭開倉:C買開委托" + Text(X + 1) + "廢單!】");
					BKFLGC[X] = 0; //C買開標(biāo)志歸0
				}
			}
			If(BPFLGF[X] == 1) //如果有F買平委托
			{
				If(F_OrderStatus(BPIDF[X]) == Enum_Filled) //如果F買平委托成交
				{
					Commentary("【空頭平倉:F買平委托" + Text(X + 1) + "成交!】");
					BPFLGF[X] = 0; //F買平標(biāo)志歸0
				}
				Else If(F_OrderStatus(BPIDF[X]) == Enum_Deleted) //如果F買平委托廢單
				{
					Commentary("【空頭平倉:F買平委托" + Text(X + 1) + "廢單!】");
					BPFLGF[X] = 0; //F買平標(biāo)志歸0
				}
			}
			If(SPFLGC[X] == 1) //如果有C賣平委托
			{
				If(F_OrderStatus(SPIDC[X]) == Enum_Filled) //如果C賣平委托成交
				{
					Commentary("【空頭平倉:C賣平委托" + Text(X + 1) + "成交!】");
					SPFLGC[X] = 0; //C賣平標(biāo)志歸0
				}
				Else If(F_OrderStatus(SPIDC[X]) == Enum_Deleted) //如果C賣平委托廢單
				{
					Commentary("【空頭平倉:C賣平委托" + Text(X + 1) + "廢單!】");
					SPFLGC[X] = 0; //C賣平標(biāo)志歸0
				}
			}
		}
	}
	//------------------------多空處理------------------------//
	If(OPFLG == 1) //多空處理
	{
		For X = 0 To CDN - 1 //遍歷期權(quán)合約
		{
			If(BKFLGF[X] == 0 && SPFLGF[X] == 0 && BKFLGP[X] == 0 && SPFLGP[X] == 0 &&
				SKFLGF[X] == 0 && BPFLGF[X] == 0 && BKFLGC[X] == 0 && SPFLGC[X] == 0) //如果沒有開平倉委托
			{
				If(DateDiff(TOD,EPDC[X]) > D && DateDiff(TOD,EPDP[X]) > D) //如果滿足開倉條件
				{
					If(BCFLG[X] == 0) //如果未執(zhí)行多頭開倉
					{
						If(THPP[X] > P * NEWPP[X] && STRP[X] > HVLP[X]) //如果滿足多頭開倉條件
						{
							BKDFLGF[X] = 1; //開啟F買開處理
							BKDFLGP[X] = 1; //開啟P買開處理
							BCFLG[X] = 1; //已執(zhí)行多頭開倉
						}
					}
					If(SCFLG[X] == 0) //如果未執(zhí)行空頭開倉
					{
						If(NEWPC[X] < P * THPC[X] && STRC[X] < HVLC[X]) //如果滿足空頭開倉條件
						{
							SKDFLGF[X] = 1; //開啟F賣開處理
							BKDFLGC[X] = 1; //開啟C買開處理
							SCFLG[X] = 1; //已執(zhí)行空頭開倉
						}
					}
				}
				Else If(DateDiff(TOD,EPDC[X]) <= D || DateDiff(TOD,EPDP[X]) <= D) //如果滿足平倉條件
				{
					If(BCFLG[X] == 1) //如果已執(zhí)行多頭開倉
					{
						SPDFLGF[X] = 1; //開啟F賣平處理
						SPDFLGP[X] = 1; //開啟P賣平處理
						BCFLG[X] = 0; //多頭處理標(biāo)志歸0
					}
					If(SCFLG[X] == 1) //如果已執(zhí)行空頭開倉
					{
						BPDFLGF[X] = 1; //開啟F買平處理
						SPDFLGC[X] = 1; //開啟C賣平處理
						SCFLG[X] = 0; //空頭處理標(biāo)志歸0
					}
				}
			}
		}
	}
	//------------------------委托處理------------------------//
	If(OPFLG == 1) //委托處理
	{
		For X = 0 To CDN - 1 //遍歷期權(quán)合約
		{
			If(BKDFLGF[X] == 1) //如果已開啟F買開處理
			{
				If(BKFLGF[X] == 0) //如果沒有F買開委托
				{
					BKMF[X] = N; //F買開委托手?jǐn)?shù)
					BKPF[X] = ASKPF; //F買開委托價(jià)格
					Commentary("【多頭開倉:F買開委托" + Text(X + 1) + "發(fā)出!】");
					BKIDF[X] = CODF.A_SendOrder(Enum_Buy,Enum_Entry,BKMF[X],BKPF[X]); //發(fā)出F買開委托
					BKFLGF[X] = 1; //已發(fā)出F買開委托
				}
			}
			If(BKDFLGP[X] == 1) //如果已開啟P買開處理
			{
				If(BKFLGP[X] == 0) //如果沒有P買開委托
				{
					BKMP[X] = N; //P買開委托手?jǐn)?shù)
					BKPP[X] = ASKPP[X]; //P買開委托價(jià)格
					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "發(fā)出!】");
					BKIDP[X] = CODP[X].A_SendOrder(Enum_Buy,Enum_Entry,BKMP[X],BKPP[X]); //發(fā)出P買開委托
					BKFLGP[X] = 1; //已發(fā)出P買開委托
				}
			}
			If(SPDFLGF[X] == 1) //如果已開啟F賣平處理
			{
				If(SPFLGF[X] == 0) //如果沒有F賣平委托
				{
					If(BRPF >= N) //如果F多頭可用持倉達(dá)到N手
					{
						SPMF[X] = N; //F賣平委托手?jǐn)?shù)
						SPPF[X] = BIDPF; //F賣平委托價(jià)格
						Commentary("【多頭平倉:F賣平委托" + Text(X + 1) + "發(fā)出!】");
						SPIDF[X] = CODF.A_SendOrder(Enum_Sell,Enum_Exit,SPMF[X],SPPF[X]); //發(fā)出F賣平委托
						SPFLGF[X] = 1; //已發(fā)出F賣平委托
					}
				}
			}
			If(SPDFLGP[X] == 1) //如果已開啟P賣平處理
			{
				If(SPFLGP[X] == 0) //如果沒有P賣平委托
				{
					If(BRPP[X] >= N) //如果有P多頭可用持倉達(dá)到N手
					{
						SPMP[X] = N; //P賣平委托手?jǐn)?shù)
						SPPP[X] = BIDPP[X]; //P賣平委托價(jià)格
						Commentary("【多頭平倉:P賣平委托" + Text(X + 1) + "發(fā)出!】");
						SPIDP[X] = CODP[X].A_SendOrder(Enum_Sell,Enum_Exit,SPMP[X],SPPP[X]); //發(fā)出P賣平委托
						SPFLGP[X] = 1; //已發(fā)出P賣平委托
					}
				}
			}
			If(SKDFLGF[X] == 1) //如果已開啟F賣開處理
			{
				If(SKFLGF[X] == 0) //如果沒有F賣開委托
				{
					SKMF[X] = N; //F賣開委托手?jǐn)?shù)
					SKPF[X] = BIDPF; //F賣開委托價(jià)格
					Commentary("【空頭開倉:F賣開委托" + Text(X + 1) + "發(fā)出!】");
					SKIDF[X] = CODF.A_SendOrder(Enum_Sell,Enum_Entry,SKMF[X],SKPF[X]); //發(fā)出F賣開委托
					SKFLGF[X] = 1; //已發(fā)出F賣開委托
				}
			}
			If(BKDFLGC[X] == 1) //如果已開啟C買開處理
			{
				If(BKFLGC[X] == 0) //如果沒有C買開委托
				{
					BKMC[X] = N; //C買開委托手?jǐn)?shù)
					BKPC[X] = ASKPC[X]; //C買開委托價(jià)格
					Commentary("【空頭開倉:C買開委托" + Text(X + 1) + "發(fā)出!】");
					BKIDC[X] = CODC[X].A_SendOrder(Enum_Buy,Enum_Entry,BKMC[X],BKPC[X]); //發(fā)出C買開委托
					BKFLGC[X] = 1; //已發(fā)出C買開委托
				}
			}
			If(BPDFLGF[X] == 1) //如果已開啟F買平處理
			{
				If(BPFLGF[X] == 0) //如果沒有F買平委托
				{
					If(SRPF >= N) //如果F空頭可用持倉達(dá)到N手
					{
						BPMF[X] = N; //F買平委托手?jǐn)?shù)
						BPPF[X] = ASKPF; //F買平委托價(jià)格
						Commentary("【空頭平倉:F買平委托" + Text(X + 1) + "發(fā)出!】");
						BPIDF[X] = CODF.A_SendOrder(Enum_Buy,Enum_Exit,BPMF[X],BPPF[X]); //發(fā)出F買平委托
						BPFLGF[X] = 1; //已發(fā)出A買平委托
					}
				}
			}
			If(SPDFLGC[X] == 1) //如果已開啟C賣平處理
			{
				If(SPFLGC[X] == 0) //如果沒有C賣平委托
				{
					If(BRPC[X] >= N) //如果C多頭可用持倉達(dá)到N手
					{
						SPMC[X] = N; //C賣平委托手?jǐn)?shù)
						SPPC[X] = BIDPC[X]; //C賣平委托價(jià)格
						Commentary("【空頭平倉:C賣平委托" + Text(X + 1) + "發(fā)出!】");
						SPIDC[X] = CODC[X].A_SendOrder(Enum_Sell,Enum_Exit,SPMC[X],SPPC[X]); //發(fā)出C賣平委托
						SPFLGC[X] = 1; //已發(fā)出C賣平委托
					}
				}
			}
		}
	}
End

 

有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友

可聯(lián)系技術(shù)人員 QQ: 1145508240  點(diǎn)擊這里給我發(fā)消息進(jìn)行 有償 編寫!不貴!點(diǎn)擊查看價(jià)格!

 


【字體: 】【打印文章】【查看評論

相關(guān)文章

    沒有相關(guān)內(nèi)容
  主站蜘蛛池模板: 操美女在线 | 色综合久久88色综合天天提莫 | 本田岬最猛喷一地在线播放 | 日韩在线视频免费 | 日韩激情影院 | 多人伦交性欧美精品欧 | 成 人 免费观看网站 | 二个人的视频www | 人人做人人爽人人爱 | 华人欧美国产在线精品 | 国产成人综合久久亚洲精品 | 一级a俄罗斯毛片免费 | 狠狠色综合色综合网站嗯 | 久久亚洲国产成人亚 | 欧美一区二区三区久久综合 | 在线毛片观看 | 日韩v片| 中文字幕在线视频不卡 | 奇米影视亚洲色图 | 天堂成人在线 | 日皮免费 | 小明永久免费看aⅴ片 | 成人免费看黄 | 欧美精品www| 一级毛片看真人在线视频 | 九九视频在线观看 | 成人日批视频 | 男女生性毛片免费观看 | 韩国免费一级成人毛片 | 手机在线毛片免费播放 | 国产精品免费一区二区三区 | 国产一级一片免费播放刺激 | 欧美激情亚洲色图 | 手机毛片在线 | 免费的a级片 | 欧美色爱综合 | 国产精品久久久久久 | xxxxwww一片| 一级毛片不卡片免费观看 | 另类异族videosex太狠了 | 黄色一级小视频 |