測試程式碼如下:
if D>=1090828 and D<=1090831 and T=134500 then
Buy 10 contract next bar at Market
end if
if D=1090902 and T=091500 then
ExitLong 2 contract next bar at Market
end if
於是,我得到了這兩個測試結果:
1. 這有做到了同一條件符合就加碼,但是卻在應該減碼的地方多減碼了1次,我只希望它做1次減碼就好。

2.這個則不會加碼(廢話,不開放怎麼會加碼^^)。

3.這是我希望得到的結果(我修圖得來):

希望有知道怎麼做的朋友可以教我,謝謝!
我目前實驗得到的經驗,ExitLong 2 contract 會從已經建立的各個部位名稱中,各自去減碼2口。
舉例來說第1次買進1口,第2次買進3口,第3次買進5口。總共建立了9口的多單,
而這個ExitLong 2 contract 會平倉掉5口多單,剩下4口。
因為它會依序平倉1-2,只平成0,3-2=1,5-2=3。這個觀察可以從這張圖得証:

測試程式碼如下:
if D=1090827 and T=134500 then
Buy ("B0") 1 contract next bar at Market
end if
if D=1090828 and T=134500 then
Buy ("B1") 3 contract next bar at Market
end if
if D=1090831 and T=134500 then
Buy ("B2") 5 contract next bar at Market
end if
if D=1090902 and T=091500 then
ExitLong 2 contract next bar at Market
end if
我要的是在這樣的3次買進後,累積了9口,而這減碼條件成立時,只平倉2口,要剩下7口多單。
解答經過網友幫忙已經得到:http://www.yctseng.net/2009/09/hts.html






7 意見:
試著把第二次的加碼 設一個名稱
然後
exitlong 2 contracts from entry"名稱" next bar at market
end if
好像有點寫錯 不過是這樣的意思
但是HTS有個BUG 就是 減碼後 你後面的平倉就不會再出來
就是 當2 減碼變1 後 那個1 再寫平倉也沒辦法 要反賣才會出來
秘密:
很感謝。我改成這樣,得到類似的效果了。
if D=1090828 and T=134500 then
Buy ("B1") 10 contract next bar at Market
end if
if D=1090831 and T=134500 then
Buy ("B2") 7 contract next bar at Market
end if
if D=1090902 and T=091500 then
ExitLong from Entry ("B1") 2 contract next bar at Market
end if
不過我想要做的是從"總部位"中減碼,而不是從特定部位中減碼,這有些差異。
想要做的是從"總部位"中減碼,而不是從特定部位中減碼
那你要寫個倉位管理程式來統籌
這也是我困擾的 到現在無法寫出來
我目前使用的也是加碼策略
卻無法實行減碼
特定部位減碼 會造成 後面的平倉無法實行
這也許是HTS的BUG
因為問了營業員 他也沒辦法
目前看到的ExitLong 2 contract....,應該是對已經存在的每一個特定部位名稱通通各減碼2口。
比如前面已經建立多單後又加碼了3次,總共有4次買進的動作,這個指令ExitLong 2 contract....就會做4次平倉2口多單的動作,如果先前買的口數不夠的話,會被平到空倉為止。
秘密:
搞定了:http://www.yctseng.net/2009/09/hts.html
各別平倉也可以參考這個我在DK大那裡的回答
http://ssdkchang.blogspot.com/2009/07/hts.html
張貼意見