|
ah7eric
中級會員
註冊日期: May 2008
來 自:
文章數量: 39 |
求算契約正確的年月
小弟已參照
http://www.chiefox.com.tw/bbs/showt...=&threadid=9001
改成
//=====求不同履約價的Call/Put對應的相關數據=====
本年:MOD(YEAR,10),LINETHICK0,COLORBLACK;
本月:MOD(MONTH,12),LINETHICK0,COLORBLACK;
下月:MOD(MONTH+1,12),LINETHICK0,COLORBLACK;
本月契約:本年*100+本月,LINETHICK0,COLORBLACK;
下月契約:IF(MONTH=12,(本年+1)*100+下月,本年*100+下月),LINETHICK0,COLORBLACK;
但遇到像2010年或是12月這種情況結果都怪怪的,可能小弟邏輯上有疏失,懇請指教!
|
|
向版主報告此篇 | |
|
2011-03-15 15:30 |
|
|
| |
|
ah7eric
中級會員
註冊日期: May 2008
來 自:
文章數量: 39 |
似乎只能用當前交易日的YEAR/MONTH為求算基準, 不能反映過往交易日當時的年和月
請指教
|
|
向版主報告此篇 | |
|
2011-03-15 15:42 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17862 |
回覆: 求算契約正確的年月
引用: 最初由 ah7eric 發表
小弟已參照
http://www.chiefox.com.tw/bbs/showt...=&threadid=9001
改成
//=====求不同履約價的Call/Put對應的相關數據=====
本年:MOD(YEAR,10),LINETHICK0,COLORBLACK;
本月:MOD(MONTH,12),LINETHICK0,COLORBLACK;
下月:MOD(MONTH+1,12),LINETHICK0,COLORBLACK;
本月契約:本年*100+本月,LINETHICK0,COLORBLACK;
下月契約:IF(MONTH=12,(本年+1)*100+下月,本年*100+下月),LINETHICK0,COLORBLACK;
但遇到像2010年或是12月這種情況結果都怪怪的,可能小弟邏輯上有疏失,懇請指教!
似乎只能用當前交易日的YEAR/MONTH為求算基準, 不能反映過往交易日當時的年和月
請指教
要運用期權結算日函數 OptionLastDay 才可計算
範例:(適用於 v5.0版)
de:=date;
opde1:=OptionLastDay('FITX1');
opde2:=OptionLastDay('FITX2');
CkXX:=date>=1081217 and date=ref(opde1,1); //處理新制(自200812 開始)
opde1:=if(CkXX,ref(opde1,1),opde1);
opde2:=if(CkXX,ref(opde2,1),opde2);
本月:FLOOR(opde1/100);
次月:FLOOR(opde2/100);
範例:(適用於測試中的 v5.1 Beta版 )
de:=date;
opde1:=OptionLastDay('FITX1');
opde2:=OptionLastDay('FITX2');
本月:FLOOR(opde1/100);
次月:FLOOR(opde2/100);
說明:
v5.1 Beta版 OptionLastDay 函數已有調整
不需多出前面的那三行, 來處理新制換月
v5.0 版若少了那三行, 會於結算日當天提前換月
|
|
向版主報告此篇 | |
|
2011-03-15 16:49 |
|
|
| |
|
ah7eric
中級會員
註冊日期: May 2008
來 自:
文章數量: 39 |
感謝回覆
修訂後
假設把浮標移到2010/09/14
本月會是110009
因為SYN:=MOD(本月,1000);會等於9
NUMTOSTR(SYN,0)變成只有9
請問我要怎麼搭配
價平C商品名稱:=NUMTOSTR(SYN,0) + '台指' + STRMID('CP',0+1,1)+NUMTOSTR(SCC,0),LINETHICK0;
來求出特定履約價的商品名稱?
|
|
向版主報告此篇 | |
|
2011-03-15 17:14 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17862 |
引用: 最初由 ah7eric 發表
感謝回覆
修訂後
假設把浮標移到2010/09/14
本月會是110009
因為SYN:=MOD(本月,1000);會等於9
NUMTOSTR(SYN,0)變成只有9
請問我要怎麼搭配
價平C商品名稱:=NUMTOSTR(SYN,0) + '台指' + STRMID('CP',0+1,1)+NUMTOSTR(SCC,0),LINETHICK0;
來求出特定履約價的商品名稱?
因為 9 轉換為字串後, 只有 9 前面不會有零
進行補零字元的處理就可解決
NUMTOSTR(SYN,0)
改為
STRRIGHT('000'+numtostr(SYN,0),3)
|
|
向版主報告此篇 | |
|
2011-03-15 17:56 |
|
|
| |
|
ah7eric
中級會員
註冊日期: May 2008
來 自:
文章數量: 39 |
透過
本月契約:=STRRIGHT(NUMTOSTR(本月,0),3);
取得正確的月份
但不知為何都不會隨著浮標變動, 僅會呈現當前交易日的交易年月
再請指教
|
|
向版主報告此篇 | |
|
2011-03-15 18:03 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17862 |
引用: 最初由 ah7eric 發表
透過
本月契約:=STRRIGHT(NUMTOSTR(本月,0),3);
取得正確的月份
但不知為何都不會隨著浮標變動, 僅會呈現當前交易日的交易年月
再請指教
NUMTOSTR(N,M) 是轉換數值 N 為字串 M
其不支援數列(陣列)
若您將 N 帶入數列, 其會取該數列最末根數值做轉換
也就是說
NUMTOSTR 結果並非是字串陣列, 而是單一字串
若您要跟隨十字游標變動, 需以 N[i] 的方式來進行處理
令 i 值為當前十字游標位置
就可取得當前十字游標位置, 所對應的 N 值
以存取SYN數列為例:
//取得十字游標位置
PP:=SYSPARAM(1);
if PP<lbound(SYN) or PP>datacount then PP:=datacount; //處理有效存取範圍
//再接著將
STRRIGHT('000'+numtostr(SYN,0),3)
//改為
STRRIGHT('000'+numtostr(SYN[PP],0),3)
|
|
向版主報告此篇 | |
|
2011-03-15 18:24 |
|
|
| |
|
ah7eric
中級會員
註冊日期: May 2008
來 自:
文章數量: 39 |
我視著簡單表達我的需求好了
我想要觀察近月8100P和近月8900C兩個倉位的成交價之合其長期的狀況
但目前寫的程式只會跑出來當前契約從契約有效日開始的那天才有的交易情況
而非自動讀取每個近月的數據
有勞了
|
|
向版主報告此篇 | |
|
2011-03-15 19:15 |
|
|
| |
|
cgjj
總版主
註冊日期: Oct 2003
來 自:
文章數量: 17862 |
引用: 最初由 ah7eric 發表
我視著簡單表達我的需求好了
我想要觀察近月8100P和近月8900C兩個倉位的成交價之合其長期的狀況
但目前寫的程式只會跑出來當前契約從契約有效日開始的那天才有的交易情況
而非自動讀取每個近月的數據
我另外嘗試了
http://www.chiefox.com.tw/bbs/showt...BF%EF%BE%DC%C5v
但仍然沒辦法完全呈現每個月的價平選擇權契約之成交價
舉例來說
同樣是 8900Call, 但每個月所對應的選擇權契約是不同的
也就是所屬對應的[商品]是不同相的, 例如:
101台指C8900 ==> 102台指C8900 ==> 103台指C8900
價平則更複雜
期指每天每個週期價格都時時在變化
也就是說
每個週期所對應的價平選擇權契約可能不同
亦即, 每個週期所要取的價平成交價可能是來自不同商品
這根可能取 103台指C8900, 下根可能就要換取 103台指C8800 ....
故並非用 STKINDI 引用一個選擇權契約商品, 就能算出結果
要得到連續之價平數據, 計算上
您必需先設置一個與K棒等長的數列(假設為MC)
以迴圈處理每一根K棒
再依據該K棒之價格, 找到其所對應的價平選擇權商品
再去引用該商品對應K棒之成交價過來, 存入MC數列相對的位置中
若僅以日線來看,每天都有新的價位出現
一天就需引用 Call + Put 兩個選權商品來得到各自的價平成交價(各一次,共兩次)
10根日線, 就需要引用不同商品達 20 次, 100 根就 200 次 ....
想想得要動用多少資料才能計算
要做這個,要考量幾個因素:
1.有無累積足夠的選權數據來計算這部份(商品數量龐大)
2.盤中要跑計算這個,是極為費力的(即使是盤後都要算非常久)
(這麼多的數據, 需耗費龐大的 CPU, RAM, HDD 資源)
|
|
向版主報告此篇 | |
|
2011-03-16 11:49 |
|
|
| |
|
ah7eric
中級會員
註冊日期: May 2008
來 自:
文章數量: 39 |
直接套用在台指上約不到一秒就ok了
按F4切換成大盤約停頓了三至五秒
請問接下來怎麼做比較好?
|
|
向版主報告此篇 | |
|
2011-03-16 17:22 |
|
|
| |
本站所有內容未經作者授權禁止轉貼節錄, 發表言論僅供參考勿作為投資決策依據。瀏覽本站請使用 IE 5.5 以上版本, 最佳瀏覽解析度 1024 x 768 全彩。
|
Powered by: vBulletin Version 2.3.0 - Copyright©2000-, Jelsoft Enterprises Limited.
簡愛洋行 製作 Copyright 2003-. All Rights Reserved. 聯絡我們
|