<ins id="d3tjn"><th id="d3tjn"><delect id="d3tjn"></delect></th></ins>

        <strike id="d3tjn"><span id="d3tjn"><ol id="d3tjn"></ol></span></strike>

        <output id="d3tjn"></output>

            您現在的位置:程序化交易>> 期貨公式>> 文華財經>> 文華財經公式>>正文內容

            文華買賣權平價策略代碼源碼[文華財經公式]

            ①什么是買賣權平價關系?

            買賣權平價關系是指具有相同的到期日與執行價格的金融工具,其賣權與買權價格間必然存在的基本關系。如果兩者不相同,則存在套利的空間。

            歐式期權的平價關系可以表示為:

            其中,C為看漲期權的當期的理論價格,P為看跌期權當期的理論價格,1年期無風險利率為r,行權價為K,為某股票現在的價格。

            ?

            ②根據買賣權平價關系推導套利條件

            在上述理論的基礎上,Tucker根據股指期貨和股指期權之間的價格關系闡述了期貨與期權的平價關系,并運用這一均衡關系來發現市場的套利機會并驗證市場效率。

            該理論假設:1)期權為歐式期權。2)稅收、手續費等交易成本不計。3)借貸利率相等。

            在t時刻,期貨和期權的平價關系可表示為:

            F為t時刻期貨價格,T為期權到期日,C、P分別是看漲看跌期權的價格,r為無風險利率,貼現因子以年化無風險利率計算,通??紤]一個月內(1/12),其數值接近于1,進而上述關系可簡化為:

            由上式可以推導出套利開倉條件:

            ?

            ? ? 策略
            C-P>F-K 看漲期權價格被高估,看跌期權價格被低估 賣出看漲期權,買入看跌期權
            C-P<F-K 看漲期權價格被低估,看跌期權價格被高估 買入看漲期權,賣出看跌期權
            ?

            ?

            ③將上述策略編寫為策略模型

            Data
            	CODC0:"m2209-C-4200"; //看漲期權
            	CODP0:"m2209-P-4200"; //看跌期權
            	CODC1:"m2209-C-4150"; //看漲期權
            	CODP1:"m2209-P-4150"; //看跌期權
            	CODC2:"m2209-C-4100"; //看漲期權
            	CODP2:"m2209-P-4100"; //看跌期權
            	CODC3:"m2209-C-4050"; //看漲期權
            	CODP3:"m2209-P-4050"; //看跌期權
            	CODC4:"m2209-C-4000"; //看漲期權
            	CODP4:"m2209-P-4000"; //看跌期權
            	COD:"m2209"; //標的期貨
            Vars
            	StringArray CODC; //看漲期權
            	StringArray CODP; //看跌期權
            	String CODF; //標的期貨
            	Numeric CDN; //期權合約數量
            	Numeric N; //下單手數
            	Numeric X; //循環變量
            	Numeric T; //時間間隔
            	Numeric D; //日期間隔
            	Numeric TOD; //當前日期
            	Numeric NOW; //當前時間
            	Numeric NEWPF; //F最新價
            	Numeric OPFLG; //模型處理標志
            	NumericArray STP; //行權價
            	NumericArray NEWPC; //C最新價
            	NumericArray NEWPP; //P最新價
            	NumericArray EPDC; //C行權日期
            	NumericArray EPDP; //P行權日期
            	NumericArray RTSC; //C距行權日剩余天數
            	NumericArray RTSP; //P距行權日剩余天數
            	NumericArray RLPC,FLPC; //C漲跌停價
            	NumericArray RLPP,FLPP; //P漲跌停價
            	NumericArray BIDPC,ASKPC; //C買賣一價
            	NumericArray BIDPP,ASKPP; //P買賣一價
            	NumericArray BRPC,SRPC; //C多空頭可用持倉
            	NumericArray BRPP,SRPP; //P多空頭可用持倉
            	NumericArray BKDFLGC,SKDFLGC; //C開倉處理標志
            	NumericArray BPDFLGC,SPDFLGC; //C開倉處理標志
            	NumericArray BKDFLGP,SKDFLGP; //P開倉處理標志
            	NumericArray BPDFLGP,SPDFLGP; //P開倉處理標志
            	Global_NumericArray KCFLG; //開倉處理標志
            	Global_NumericArray KPFLG; //開平處理標志
            	Global_NumericArray BKIDC,SKIDC; //C開倉委托
            	Global_NumericArray BPIDC,SPIDC; //C平倉委托
            	Global_NumericArray BKIDP,SKIDP; //P開倉委托
            	Global_NumericArray BPIDP,SPIDP; //P平倉委托
            	Global_NumericArray BKFLGC,SKFLGC; //C開倉標志
            	Global_NumericArray BPFLGC,SPFLGC; //C平倉標志
            	Global_NumericArray BKFLGP,SKFLGP; //P開倉標志
            	Global_NumericArray BPFLGP,SPFLGP; //P平倉標志
            	Global_NumericArray BKDELC,SKDELC; //C開倉撤單標志
            	Global_NumericArray BKDELP,SKDELP; //P開倉撤單標志
            	Global_NumericArray BKMC,SKMC; //C開倉委托手數
            	Global_NumericArray BPMC,SPMC; //C平倉委托手數
            	Global_NumericArray BKMP,SKMP; //P開倉委托手數
            	Global_NumericArray BPMP,SPMP; //P平倉委托手數
            	Global_NumericArray BKPC,SKPC; //C開倉委托價格
            	Global_NumericArray BPPC,SPPC; //C平倉委托價格
            	Global_NumericArray BKPP,SKPP; //P開倉委托價格
            	Global_NumericArray BPPP,SPPP; //P平倉委托價格
            	Global_NumericArray BKTC,SKTC; //C開倉委托時間
            	Global_NumericArray BKTP,SKTP; //P開倉委托時間
            Begin
            	//------------------------處理開啟------------------------//
            	If(1) //處理開啟
            	{
            		CODC[0] = "m2209-C-4200"; //看漲期權
            		CODP[0] = "m2209-P-4200"; //看跌期權
            		CODC[1] = "m2209-C-4150"; //看漲期權
            		CODP[1] = "m2209-P-4150"; //看跌期權
            		CODC[2] = "m2209-C-4100"; //看漲期權
            		CODP[2] = "m2209-P-4100"; //看跌期權
            		CODC[3] = "m2209-C-4050"; //看漲期權
            		CODP[3] = "m2209-P-4050"; //看跌期權
            		CODC[4] = "m2209-C-4000"; //看漲期權
            		CODP[4] = "m2209-P-4000"; //看跌期權
            		CDN = GetStringArraySize(CODC); //期權合約數量
            		CODF = "m2209"; //標的期貨
            		OPFLG = 1; //開啟模型處理
            		If(CODF.A_IsExchangeOpen() != 1) //如果非開盤狀態
            		{
            			OPFLG = 2; //關閉模型處理
            		}
            		For X = 0 To CDN - 1 //遍歷期權合約
            		{
            			If(CODC[X].A_IsExchangeOpen() != 1 || CODP[X].A_IsExchangeOpen() != 1) //如果非開盤狀態
            			{
            				OPFLG = 2; //關閉模型處理
            			}
            		}
            	}
            	//------------------------變量賦值------------------------//
            	If(OPFLG == 1) //變量賦值
            	{
            		N = 1; //下單手數
            		T = 15; //時間間隔
            		D = 5; //日期間隔
            		TOD = CurrentDate(); //當前日期
            		NOW = CurrentTime(); //當前時間
            		NEWPF = CODF.Price("New"); //F最新價
            		For X = 0 To CDN - 1 //遍歷期權合約
            		{
            			NEWPC[X] = CODC[X].Price("New"); //C最新價
            			NEWPP[X] = CODP[X].Price("New"); //P最新價
            			BIDPC[X] = CODC[X].Price("Bid1"); //C買一價
            			ASKPC[X] = CODC[X].Price("Ask1"); //C賣一價
            			BIDPP[X] = CODP[X].Price("Bid1"); //P買一價
            			ASKPP[X] = CODP[X].Price("Ask1"); //P賣一價
            			RLPC[X] = CODC[X].Price("RiseLimit"); //C漲停價
            			FLPC[X] = CODC[X].Price("FallLimit"); //C跌停價
            			RLPP[X] = CODP[X].Price("RiseLimit"); //P漲停價
            			FLPP[X] = CODP[X].Price("FallLimit"); //P跌停價
            			BIDPC[X] = IIF(BIDPC[X] == 0 && NEWPC[X] == FLPC[X],FLPC[X],BIDPC[X]); //C買一價
            			ASKPC[X] = IIF(ASKPC[X] == 0 && NEWPC[X] == RLPC[X],RLPC[X],ASKPC[X]); //C賣一價
            			BIDPP[X] = IIF(BIDPP[X] == 0 && NEWPP[X] == FLPP[X],FLPP[X],BIDPP[X]); //P買一價
            			ASKPP[X] = IIF(ASKPP[X] == 0 && NEWPP[X] == RLPP[X],RLPP[X],ASKPP[X]); //P賣一價
            			STP[X] = CODC[X].Price("StrikePrice"); //行權價
            			EPDC[X] = CODC[X].Price("ExpirationDate"); //C行權日期
            			EPDP[X] = CODP[X].Price("ExpirationDate"); //P行權日期
            			RTSC[X] = DateDiff(TOD,EPDC[X] ); //C距行權日剩余天數
            			RTSP[X] = DateDiff(TOD,EPDP[X] ); //P距行權日剩余天數
            			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空頭可用持倉
            		}
            	}
            	//------------------------成交判斷------------------------//
            	If(OPFLG == 1) //成交判斷
            	{
            		For X = 0 To CDN - 1 //遍歷期權合約
            		{
            			If(BKFLGC[X] == 1) //如果有C買開委托
            			{
            				If(F_OrderStatus(BKIDC[X]) == Enum_Filled) //如果C買開委托成交
            				{
            					Commentary("【多頭開倉:C買開委托" + Text(X + 1) + "成交!】");
            					BKFLGC[X] = 0; //C買開標志歸0
            					BKDELC[X] = 0; //C買開撤單標志歸0
            				}
            				Else If(F_OrderStatus(BKIDC[X]) == Enum_Canceled) //如果C買開委托已撤
            				{
            					Commentary("【多頭開倉:C買開委托" + Text(X + 1) + "已撤!】");
            					If(F_OrderFilledLot(BKIDC[X]) > 0) //如果C買開委托部分成交
            					{
            						BKMC[X] = BKMC[X] - F_OrderFilledLot(BKIDC[X]); //C買開委托手數
            					}
            					If(BKMC[X] > 0) //如果C買開委托手數大于0
            					{
            						BKPC[X] = RLPC[X]; //C買開委托價格
            						Commentary("【多頭開倉:C買開委托" + Text(X + 1) + "發出!】");
            						BKIDC[X] = CODC[X].A_SendOrder(Enum_Buy,Enum_Entry,BKMC[X],BKPC[X]); //發出C買開委托
            					}
            					BKDELC[X] = 0; //C買開撤單標志歸0
            				}
            				Else If(F_OrderStatus(BKIDC[X]) == Enum_Declared || F_OrderStatus(BKIDC[X]) == Enum_FillPart) //如果C買開委托掛單
            				{
            					If(BKDELC[X] == 0) //如果未撤單
            					{
            						If(TimeDiff(BKTC[X],NOW) >= T && BKPC[X] != RLPC[X]) //如果時間間隔T秒
            						{
            							Commentary("【多頭開倉:C買開委托" + Text(X + 1) + "撤單!】");
            							CODC[X].A_DeleteOrder(F_OrderContractNo(BKIDC[X])); //撤掉C買開委托掛單
            							BKDELC[X] = 1; //已發出撤掉C買開委托掛單
            						}
            					}
            				}
            				Else If(F_OrderStatus(BKIDC[X]) == Enum_Deleted) //如果C買開委托廢單
            				{
            					Commentary("【多頭開倉:C買開委托" + Text(X + 1) + "廢單!】");
            					BKFLGC[X] = 0; //C買開標志歸0
            				}
            			}
            			If(SPFLGC[X] == 1) //如果有C賣平委托
            			{
            				If(F_OrderStatus(SPIDC[X]) == Enum_Filled) //如果C賣平委托成交
            				{
            					Commentary("【多頭平倉:C賣平委托" + Text(X + 1) + "成交!】");
            					SPFLGC[X] = 0; //C賣平標志歸0
            				}
            				Else If(F_OrderStatus(SPIDC[X]) == Enum_Deleted) //如果C賣平委托廢單
            				{
            					Commentary("【多頭平倉:C賣平委托" + Text(X + 1) + "廢單!】");
            					SPFLGC[X] = 0; //C賣平標志歸0
            				}
            			}
            			If(SKFLGC[X] == 1) //如果有C賣開委托
            			{
            				If(F_OrderStatus(SKIDC[X]) == Enum_Filled) //如果C賣開委托成交
            				{
            					Commentary("【空頭開倉:C賣開委托" + Text(X + 1) + "成交!】");
            					SKFLGC[X] = 0; //C賣開標志歸0
            					SKDELC[X] = 0; //C賣開撤單標志歸0
            				}
            				Else If(F_OrderStatus(SKIDC[X]) == Enum_Canceled) //如果C賣開委托已撤
            				{
            					Commentary("【空頭開倉:C賣開委托" + Text(X + 1) + "已撤!】");
            					If(F_OrderFilledLot(SKIDC[X]) > 0) //如果C賣開委托部分成交
            					{
            						SKMC[X] = SKMC[X] - F_OrderFilledLot(SKIDC[X]); //C賣開委托手數
            					}
            					If(SKMC[X] > 0) //如果C賣開委托手數大于0
            					{
            						SKPC[X] = FLPC[X]; //C賣開委托價格
            						Commentary("【空頭開倉:C賣開委托" + Text(X + 1) + "發出!】");
            						SKIDC[X] = CODC[X].A_SendOrder(Enum_Sell,Enum_Entry,SKMC[X],SKPC[X]); //發出C賣開委托
            					}
            					SKDELC[X] = 0; //C賣開撤單標志歸0
            				}
            				Else If(F_OrderStatus(SKIDC[X]) == Enum_Declared || F_OrderStatus(SKIDC[X]) == Enum_FillPart) //如果C賣開委托掛單
            				{
            					If(SKDELC[X] == 0) //如果未撤單
            					{
            						If(TimeDiff(SKTC[X],NOW) >= T && SKPC[X] != FLPC[X]) //如果時間間隔T秒
            						{
            							Commentary("【空頭開倉:C賣開委托" + Text(X + 1) + "撤單!】");
            							CODC[X].A_DeleteOrder(F_OrderContractNo(SKIDC[X])); //撤掉C賣開委托掛單
            							SKDELC[X] = 1; //已發出撤掉C賣開委托掛單
            						}
            					}
            				}
            				Else If(F_OrderStatus(SKIDC[X]) == Enum_Deleted) //如果C賣開委托廢單
            				{
            					Commentary("【空頭開倉:C賣開委托" + Text(X + 1) + "廢單!】");
            					SKFLGC[X] = 0; //C賣開標志歸0
            				}
            			}
            			If(BPFLGC[X] == 1) //如果有C買平委托
            			{
            				If(F_OrderStatus(BPIDC[X]) == Enum_Filled) //如果C買平委托成交
            				{
            					Commentary("【空頭平倉:C買平委托" + Text(X + 1) + "成交!】");
            					BPFLGC[X] = 0; //C買平標志歸0
            				}
            				Else If(F_OrderStatus(BPIDC[X]) == Enum_Deleted) //如果C買平委托廢單
            				{
            					Commentary("【空頭平倉:C買平委托" + Text(X + 1) + "廢單!】");
            					BPFLGC[X] = 0; //C買平標志歸0
            				}
            			}
            			If(BKFLGP[X] == 1) //如果有P買開委托
            			{
            				If(F_OrderStatus(BKIDP[X]) == Enum_Filled) //如果P買開委托成交
            				{
            					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "成交!】");
            					BKFLGP[X] = 0; //P買開標志歸0
            					BKDELP[X] = 0; //P買開撤單標志歸0
            				}
            				Else If(F_OrderStatus(BKIDP[X]) == Enum_Canceled) //如果P買開委托已撤
            				{
            					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "已撤!】");
            					If(F_OrderFilledLot(BKIDP[X]) > 0) //如果P買開委托部分成交
            					{
            						BKMP[X] = BKMP[X] - F_OrderFilledLot(BKIDP[X]); //P買開委托手數
            					}
            					If(BKMP[X] > 0) //如果P買開委托手數大于0
            					{
            						BKPP[X] = RLPP[X]; //P買開委托價格
            						Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "發出!】");
            						BKIDP[X] = CODP[X].A_SendOrder(Enum_Buy,Enum_Entry,BKMP[X],BKPP[X]); //發出P買開委托
            					}
            					BKDELP[X] = 0; //P買開撤單標志歸0
            				}
            				Else If(F_OrderStatus(BKIDP[X]) == Enum_Declared || F_OrderStatus(BKIDP[X]) == Enum_FillPart) //如果P買開委托掛單
            				{
            					If(BKDELP[X] == 0) //如果未撤單
            					{
            						If(TimeDiff(BKTP[X],NOW) >= T && BKPP[X] != RLPP[X]) //如果時間間隔T秒
            						{
            							Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "撤單!】");
            							CODP[X].A_DeleteOrder(F_OrderContractNo(BKIDP[X])); //撤掉P買開委托掛單
            							BKDELP[X] = 1; //已發出撤掉P買開委托掛單
            						}
            					}
            				}
            				Else If(F_OrderStatus(BKIDP[X]) == Enum_Deleted) //如果P買開委托廢單
            				{
            					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "廢單!】");
            					BKFLGP[X] = 0; //P買開標志歸0
            				}
            			}
            			If(SPFLGP[X] == 1) //如果有P賣平委托
            			{
            				If(F_OrderStatus(SPIDP[X]) == Enum_Filled) //如果P賣平委托成交
            				{
            					Commentary("【多頭平倉:P賣平委托" + Text(X + 1) + "成交!】");
            					SPFLGP[X] = 0; //P賣平標志歸0
            				}
            				Else If(F_OrderStatus(SPIDP[X]) == Enum_Deleted) //如果P賣平委托廢單
            				{
            					Commentary("【多頭平倉:P賣平委托" + Text(X + 1) + "廢單!】");
            					SPFLGP[X] = 0; //P賣平標志歸0
            				}
            			}
            			If(SKFLGP[X] == 1) //如果有P賣開委托
            			{
            				If(F_OrderStatus(SKIDP[X]) == Enum_Filled) //如果P賣開委托成交
            				{
            					Commentary("【空頭開倉:P賣開委托" + Text(X + 1) + "成交!】");
            					SKFLGP[X] = 0; //P賣開標志歸0
            					SKDELP[X] = 0; //P賣開撤單標志歸0
            				}
            				Else If(F_OrderStatus(SKIDP[X]) == Enum_Canceled) //如果P賣開委托已撤
            				{
            					Commentary("【空頭開倉:P賣開委托" + Text(X + 1) + "已撤!】");
            					If(F_OrderFilledLot(SKIDP[X]) > 0) //如果P賣開委托部分成交
            					{
            						SKMP[X] = SKMP[X] - F_OrderFilledLot(SKIDP[X]); //P賣開委托手數
            					}
            					If(SKMP[X] > 0) //如果P賣開委托手數大于0
            					{
            						SKPP[X] = FLPP[X]; //P賣開委托價格
            						Commentary("【空頭開倉:P賣開委托" + Text(X + 1) + "發出!】");
            						SKIDP[X] = CODP[X].A_SendOrder(Enum_Sell,Enum_Entry,SKMP[X],SKPP[X]); //發出P賣開委托
            					}
            					SKDELP[X] = 0; //P賣開撤單標志歸0
            				}
            				Else If(F_OrderStatus(SKIDP[X]) == Enum_Declared || F_OrderStatus(SKIDP[X]) == Enum_FillPart) //如果P賣開委托掛單
            				{
            					If(SKDELP[X] == 0) //如果未撤單
            					{
            						If(TimeDiff(SKTP[X],NOW) >= T && SKPP[X] != FLPP[X]) //如果時間間隔T秒
            						{
            							Commentary("【空頭開倉:P賣開委托" + Text(X + 1) + "撤單!】");
            							CODP[X].A_DeleteOrder(F_OrderContractNo(SKIDP[X])); //撤掉P賣開委托掛單
            							SKDELP[X] = 1; //已發出撤掉P賣開委托掛單
            						}
            					}
            				}
            				Else If(F_OrderStatus(SKIDP[X]) == Enum_Deleted) //如果P賣開委托廢單
            				{
            					Commentary("【空頭開倉:P賣開委托" + Text(X + 1) + "廢單!】");
            					SKFLGP[X] = 0; //P賣開標志歸0
            				}
            			}
            			If(BPFLGP[X] == 1) //如果有P買平委托
            			{
            				If(F_OrderStatus(BPIDP[X]) == Enum_Filled) //如果P買平委托成交
            				{
            					Commentary("【空頭平倉:P買平委托" + Text(X + 1) + "成交!】");
            					BPFLGP[X] = 0; //P買平標志歸0
            				}
            				Else If(F_OrderStatus(BPIDP[X]) == Enum_Deleted) //如果P買平委托廢單
            				{
            					Commentary("【空頭平倉:P買平委托" + Text(X + 1) + "廢單!】");
            					BPFLGP[X] = 0; //P買平標志歸0
            				}
            			}
            		}
            	}
            	//------------------------開平處理------------------------//
            	If(OPFLG == 1) //開平處理
            	{
            		For X = 0 To CDN - 1 //遍歷期權合約
            		{
            			If(BKFLGC[X] == 0 && SPFLGC[X] == 0 && SKFLGC[X] == 0 && BPFLGC[X] == 0 &&
            				BKFLGP[X] == 0 && SPFLGP[X] == 0 && SKFLGP[X] == 0 && BPFLGP[X] == 0) //如果沒有開平倉委托
            			{
            				If(RTSC[X] > D && RTSC[X] > D) //如果滿足開平倉條件
            				{
            					If(KCFLG[X] == 0) //如果未執行平倉處理
            					{
            						If(KPFLG[X] == 0 || KPFLG[X] == 2) //如果未執行開平處理1
            						{
            							If(NEWPC[X] - NEWPP[X] > NEWPF - STP[X]) //如果滿足平倉條件
            							{
            								SPDFLGC[X] = 1; //開啟C賣平處理
            								BPDFLGP[X] = 1; //開啟P買平處理
            								KPFLG[X] = 1; //已執行開平處理1
            								KCFLG[X] = 1; //已執行平倉處理
            							}
            						}
            						If(KPFLG[X] == 0 || KPFLG[X] == 1) //如果未執行開平處理2
            						{
            							If(NEWPC[X] - NEWPP[X] < NEWPF - STP[X]) //如果滿足平倉條件
            							{
            								BPDFLGC[X] = 1; //開啟C買平處理
            								SPDFLGP[X] = 1; //開啟P賣平處理
            								KPFLG[X] = 2; //已執行開平處理2
            								KCFLG[X] = 1; //已執行平倉處理
            							}
            						}
            					}
            					Else If(KCFLG[X] == 1) //如果已執行平倉處理
            					{
            						If(KPFLG[X] == 1) //如果已執行開平處理1
            						{
            							SKDFLGC[X] = 1; //開啟C賣開處理
            							BKDFLGP[X] = 1; //開啟P買開處理
            						}
            						Else If(KPFLG[X] == 2) //如果已執行開平處理2
            						{
            							BKDFLGC[X] = 1; //開啟C買開處理
            							SKDFLGP[X] = 1; //開啟P賣開處理
            						}
            						KCFLG[X] = 0; //開倉處理標志歸0
            					}
            				}
            				Else If(RTSC[X] <= D || RTSP[X] <= D) //如果滿足清倉條件
            				{
            					If(KPFLG[X] == 1) //如果已執行開平處理1
            					{
            						BPDFLGC[X] = 1; //開啟C買平處理
            						SPDFLGP[X] = 1; //開啟P賣平處理
            						KCFLG[X] = 0; //開倉處理標志歸0
            						KPFLG[X] = 0; //開平處理標志歸0
            					}
            					Else If(KPFLG[X] == 2) //如果已執行開平處理2
            					{
            						SPDFLGC[X] = 1; //開啟C賣平處理
            						BPDFLGP[X] = 1; //開啟P買平處理
            						KCFLG[X] = 0; //開倉處理標志歸0
            						KPFLG[X] = 0; //開平處理標志歸0
            					}
            				}
            			}
            		}
            	}
            	//------------------------委托處理------------------------//
            	If(OPFLG == 1) //委托處理
            	{
            		For X = 0 To CDN - 1 //遍歷期權合約
            		{
            			If(BKDFLGC[X] == 1) //如果已開啟C買開處理
            			{
            				If(BKFLGC[X] == 0) //如果沒有C買開委托
            				{
            					BKMC[X] = N; //C買開委托手數
            					BKPC[X] = ASKPC[X]; //C買開委托價格
            					Commentary("【多頭開倉:C買開委托" + Text(X + 1) + "發出!】");
            					BKIDC[X] = CODC[X].A_SendOrder(Enum_Buy,Enum_Entry,BKMC[X],BKPC[X]); //發出C買開委托
            					BKTC[X] = NOW; //C買開委托時間
            					BKFLGC[X] = 1; //已發出C買開委托
            				}
            			}
            			If(SPDFLGC[X] == 1) //如果已開啟C賣平處理
            			{
            				If(SPFLGC[X] == 0) //如果沒有C賣平委托
            				{
            					If(BRPC[X] >= N) //如果C多頭可用持倉達到N手
            					{
            						SPMC[X] = N; //C賣平委托手數 www.planetbokep.com
            						SPPC[X] = BIDPC[X]; //C賣平委托價格
            						Commentary("【多頭平倉:C賣平委托" + Text(X + 1) + "發出!】");
            						SPIDC[X] = CODC[X].A_SendOrder(Enum_Sell,Enum_Exit,SPMC[X],SPPC[X]); //發出C賣平委托
            						SPFLGC[X] = 1; //已發出C賣平委托
            					}
            				}
            			}
            			If(SKDFLGC[X] == 1) //如果已開啟C賣開處理
            			{
            				If(SKFLGC[X] == 0) //如果沒有C賣開委托
            				{
            					SKMC[X] = N; //C賣開委托手數
            					SKPC[X] = BIDPC[X]; //C賣開委托價格
            					Commentary("【空頭開倉:C賣開委托" + Text(X + 1) + "發出!】");
            					SKIDC[X] = CODC[X].A_SendOrder(Enum_Sell,Enum_Entry,SKMC[X],SKPC[X]); //發出C賣開委托
            					SKTC[X] = NOW; //C賣開委托時間
            					SKFLGC[X] = 1; //已發出C賣開委托
            				}
            			}
            			If(BPDFLGC[X] == 1) //如果已開啟C買平處理
            			{
            				If(BPFLGC[X] == 0) //如果沒有C買平委托
            				{
            					If(SRPC[X] >= N) //如果C空頭可用持倉達到N手
            					{
            						BPMC[X] = N; //C買平委托手數
            						BPPC[X] = ASKPC[X]; //C買平委托價格
            						Commentary("【空頭平倉:C買平委托" + Text(X + 1) + "發出!】");
            						BPIDC[X] = CODC[X].A_SendOrder(Enum_Buy,Enum_Exit,BPMC[X],BPPC[X]); //發出C買平委托
            						BPFLGC[X] = 1; //已發出C買平委托
            					}
            				}
            			}
            			If(BKDFLGP[X] == 1) //如果已開啟P買開處理
            			{
            				If(BKFLGP[X] == 0) //如果沒有P買開委托
            				{
            					BKMP[X] = N; //P買開委托手數 www.planetbokep.com
            					BKPP[X] = ASKPP[X]; //P買開委托價格
            					Commentary("【多頭開倉:P買開委托" + Text(X + 1) + "發出!】");
            					BKIDP[X] = CODP[X].A_SendOrder(Enum_Buy,Enum_Entry,BKMP[X],BKPP[X]); //發出P買開委托
            					BKTP[X] = NOW; //P買開委托時間
            					BKFLGP[X] = 1; //已發出P買開委托
            				}
            			}
            			If(SPDFLGP[X] == 1) //如果已開啟P賣平處理
            			{
            				If(SPFLGP[X] == 0) //如果沒有P賣平委托
            				{
            					If(BRPP[X] >= N) //如果P多頭可用持倉達到N手
            					{
            						SPMP[X] = N; //P賣平委托手數
            						SPPP[X] = BIDPP[X]; //P賣平委托價格
            						Commentary("【多頭平倉:P賣平委托" + Text(X + 1) + "發出!】");
            						SPIDP[X] = CODP[X].A_SendOrder(Enum_Sell,Enum_Exit,SPMP[X],SPPP[X]); //發出P賣平委托
            						SPFLGP[X] = 1; //已發出P賣平委托
            					}
            				}
            			}
            			If(SKDFLGP[X] == 1) //如果已開啟P賣開處理
            			{
            				If(SKFLGP[X] == 0) //如果沒有P賣開委托
            				{
            					SKMP[X] = N; //P賣開委托手數HTTP://www.planetbokep.com
            					SKPP[X] = BIDPP[X]; //P賣開委托價格
            					Commentary("【空頭開倉:P賣開委托" + Text(X + 1) + "發出!】");
            					SKIDP[X] = CODP[X].A_SendOrder(Enum_Sell,Enum_Entry,SKMP[X],SKPP[X]); //發出P賣開委托
            					SKTP[X] = NOW; //P賣開委托時間
            					SKFLGP[X] = 1; //已發出P賣開委托
            				}
            			}
            			If(BPDFLGP[X] == 1) //如果已開啟P買平處理
            			{
            				If(BPFLGP[X] == 0) //如果沒有P買平委托
            				{
            					If(SRPP[X] >= N) //如果P空頭可用持倉達到N手
            					{
            						BPMP[X] = N; //P買平委托手數
            						BPPP[X] = ASKPP[X]; //P買平委托價格
            						Commentary("【空頭平倉:P買平委托" + Text(X + 1) + "發出!】");
            						BPIDP[X] = CODP[X].A_SendOrder(Enum_Buy,Enum_Exit,BPMP[X],BPPP[X]); //發出P買平委托
            						BPFLGP[X] = 1; //已發出P買平委托
            					}
            				}
            			}
            		}
            	}
            End
            											
            ?

            ?

             

            有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友

            可聯系技術人員 QQ: 1145508240  點擊這里給我發消息進行 有償 編寫!不貴!點擊查看價格!

             


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

            相關文章

              沒有相關內容
              男男乱J伦高H小说

                <ins id="d3tjn"><th id="d3tjn"><delect id="d3tjn"></delect></th></ins>

                  <strike id="d3tjn"><span id="d3tjn"><ol id="d3tjn"></ol></span></strike>

                  <output id="d3tjn"></output>