2008年12月18日 星期四

消失的15分鐘

昨天結算新制。

近月交易到1330就停止交易了。

和以往交易到1345不同。

目前只有跑當沖自動交易的我

選擇更改程式碼,平倉時間由1340改為1325

改平倉時間,指改結算這一天,所以結算完。

程式內的時間必須改回來。然後交易新的合約

當然,也可以選擇放著等結算。

新的合約開始時,又是空手開始,重新當沖。

不過今天被嚇到了。



如圖,這是DT昨天和今天的交易點位。

綠色框框是昨日的交易(被巴!!),紅線是昨日和今日的分隔線。

昨天更改程式平倉時間後,在昨日最後一根K線(1330)有一個平倉訊號。

不過因為今日是交易到1345,所以平倉時間又改回1340

所以昨天收盤平倉的訊號消失了!!!!

因為結算日當天HTS沒有1340這一根K線。

以往1340平倉的訊號在結算日當天不會出現。(沒K線怎麼平倉!!)

這樣在HTS連續K線看起來

好像結算日當天的空單一直延續到新契約的第一天。

當然,持倉會被結算掉,新契約也是重零開始。

在下單機實際操作方面也沒有問題。

不過,看了還是不太舒服。

但是還是會擔心一下,若是哪一天訊號文字輸出部份

突然多了一筆前一天的單,會很嘔的。

所以在這邊修改了一下收盤平倉條件。

以下是HTS語法

if dayofweek(date)=3 and dayofmonth(date)>14 and 21>dayofmonth(date) then
condition1=true
else
condition1=false
end if

if condition1=false then
if currentcontracts>0 and time=134000 then
exitlong("EB-N") next bar at market
end if
if 0>currentcontracts and time=134000 then
exitshort("ES-N") next bar at market
end if
end if

if condition1=true then
if currentcontracts>0 and time=132500 then
exitlong("EB-C") next bar at market
end if
if 0>currentcontracts and time=132500 then
exitshort("ES-C") next bar at market
end if
end if


以上,condition1的 True/False用日期去決定

dayofmonth可以算出今日是這個月第幾天

一星期有7天,所以dayofmonth大於14和小於21

可以表示今日在這個月第三個星期之中

dayofweek表示今天是這周星期幾。

所以利用dayofmonth和dayofweek

可以指到結算日是一天

只要是結算日,condition1就是True,不然就是False

而Condition1只要是True,就1325平倉

否則就1340平倉。

以上語法用於5分鐘當沖。

若是做10分鐘當沖,原來收盤平倉時間是1335,改為1315

若是做15分鐘當沖,原來收盤平倉時間是1330,改為1315

.....以此類推。

以上是假設當沖收盤平倉的程式是

"當日倒數第二根K線結束後,發出Exit next bar at market的訊號"

若是有用到Q_Time,不曉得此方法適不適用。

需要有人驗證。

當然,這方法不是萬能。

如果遇到,第三個星期三是假日,就真的麻煩了,那就結算吧XD

如果是波段單的話....

恩,只好選擇結算當天1330以後不發出訊號


if dayofweek(date)=3 and dayofmonth(date)>14 and 21>dayofmonth(date) then
condition1=1330>=time
else
condition1=true
end if

if XXX and condition1 then buy end if
if XXX and condition1 then sell end if


類似像這樣

買賣訊號多判斷一個Condition1

結算日當天,買賣訊號要判斷時間是否在1330以前。

若是日期為非結算日,則Condition1為True,直接pass。

不過一樣,若是結算日不是星期三,還是有問題。

若是怕麻煩,其實都可以直接換倉。

結算日當天不論當衝波段,都下單到遠月。

解決方法不是沒有,但是都很麻煩。

不知道這結算方法是誰想的。
HEMiDEMi Technorati Del.icio.us MyShare?犖?貊惜 Yahoo