您好,
我想尋找每根5分k當時最接近價平的call/put price。
想法是先定義一個group(如: TX2N02的所有選擇權),然後在每根k棒跑group的for迴圈尋找最接近價平的call/put price。
執行商品&程式碼如下:
函數:指標函數
執行商品:TX2N0232500C
執行頻率:5分k
Group Input:TX2N02所有選擇權
(圖表的)XS指標計算範圍:選分鐘+近7日
*******************************************************************************
input: OPGroup(Group);
variable:
i(0),
iSpotPrice(0),
CC(0),PP(0),SS(0),KK(0);
iSpotPrice = GetSymbolField("FITMN*1.TF", "收盤價");
KK = Round(iSpotPrice*0.01,0)*100; //ATM Strike
For i = 1 to GroupSize(OPGroup)
Begin
If GetSymbolInfo(OPGroup[i],"買賣權")="Call" and GetSymbolInfo(OPGroup[i],"履約價") = KK then CC = GetSymbolField(OPGroup[i],"close"); //ATM Call Price
If GetSymbolInfo(OPGroup[i],"買賣權")="Put" and GetSymbolInfo(OPGroup[i],"履約價") = KK then PP = GetSymbolField(OPGroup[i],"close"); //ATM Put Price
End;
print(date,time,iSpotPrice,KK,CC,PP);
*******************************************************************************
但print出來的結果好像是抓到一個數列的感覺,而且會一直跑不完。(附件是print出的結果,因為跑不完我中途就先中斷了)
這個做法在過去幾次試過都是可行的,但這週就失敗。(不確定是不是執行的商品1/28完全無成交價的關係?)
再請協助解惑了,感謝!
(補充:試過若把程式碼裡的KK設為定值(如KK = 33000),就不會無限跑不完,但這結果不是價平,不是我要的)
9 評論