googleandy 發表於 12-10-29 07:54

mewmi 發表於 12-10-29 00:38 static/image/common/back.gif
台指結算日遇到特殊事件是向後延期結算的..
所以是能寫出在結算日當天第一根K.. 就知道是結算日的..
我寫過 ...

忙了半天,原來早就有很好的程式可下載。
非常感謝M大。

folkchen 發表於 12-10-29 13:56

曾永政 發表於 12-10-28 22:59 static/image/common/back.gif
的確沒人可以預知未來哪一天是否一定是結算日。
但可以在交易的當日知道今天是否結算,至少,被延後結算 ...

嗯~昨天寫了一個檢查功能,所以後來乾脆加進結算日的判定裡面
所以我現在的結算日處理就不用另外Key結算日了
結算日碰到假日會自動向後移~

googleandy 發表於 12-10-31 21:12

folkchen 發表於 12-10-28 13:24 static/image/common/back.gif
我是沒有逐筆去對,寫個小程式去比對沒有K棒的結算日就可以了
Hi, F大:
依照您的點子, 先比對 "預期結算日" 有沒有K棒, 若無, 順延到下一支,
我已寫出程式碼, 經過仔細逐筆核對交易所資料三次, 確定無誤.
這樣就不必列舉例外的結算日了.

預期結算日函數名稱:_ExpectedCloseDate   程式碼如下:
-------------------------------------------------------------------
var: pMon("");
var: pVar1(0);

pMon = MidStr(NumToStr(date,0),1,IFF(date < 1000101,4,5));

VALUE1 = StrToNum(pMon + "01");
VALUE2 = 3-DayOfWeek(VALUE1);
if VALUE2 < 0 then begin
VALUE2 = VALUE2 + 7;
end;

_ExpectedCloseDate = StrToNum(pMon)*100 + (VALUE2 + 15);

預期結算日函數, 是把MC官網函數程式碼,
例外結算日期全部刪掉.


-------------------------------------------------------指標程式碼:
-------------------------------------------------------
var: SettledAlready(False);'此變數為當月結算與否的 flag
var:NumberOfText(0);   

'若進入新月份, flag 歸 false
if month(date)<> month(date) then begin
SettledAlready=False;
end;

'如果 大於或等於預期結算日,而且還沒有結算的話 ...
ifdate>= _ExpectedCloseDate and SettledAlready=Falsethen begin
SettledAlready=True;
ARW_new(date, time, low, false);
NumberOfText=NumberOfText+1;
arw_setstyle(NumberOfText,14);
arw_setsize(NumberOfText,20);
arw_setcolor(NumberOfText,yellow);
arw_settextbgcolor(NumberOfText,Blue);
arw_settextcolor(NumberOfText,White);
arw_settext(NumberOfText, MidStr(NumToStr(date,0),2,6));
end;

謝謝您的點子!





googleandy 發表於 12-11-1 17:10

mewmi 發表於 12-10-29 00:38 static/image/common/back.gif
台指結算日遇到特殊事件是向後延期結算的..
所以是能寫出在結算日當天第一根K.. 就知道是結算日的..
我寫過 ...

M大您好:

我也寫好了,請見上樓.

cottyboy 發表於 12-11-20 12:16

如果是為了轉倉調整價差有個好用的工具叫做策略經理人免費的 @@
頁: 1 2 [3]
查看完整版本: 請問 bug 在那裡呀?