2009年9月2日 星期三

有請賜教:如何對總部位減碼


程式交易小學堂─期貨投機事業的王道
我想讓同一個條件可以多次加碼,再讓另一個條件做減碼,但是發現好像不如我所想的。

測試程式碼如下:

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

熱門文章