請觀察這一段用來測試的程式碼:
if D=1090827 and T=134500 then
Buy ("B0") 1 contract next bar Market
end if
if D=1090828 and T=134500 then
Buy ("B1") 3 contract next bar Market
end if
if D=1090831 and T=134500 then
Buy ("B2") 5 contract next bar Market
end if
if D=1090902 and D>D[1] then
ExitLong 2 contract total next bar Market
end if
以上是使用三個條件分別建立部位或是加碼的模擬(不少代工的案例有這樣的需求),哪一個條件先成立而建立第一筆多單是不一定,所以在這加碼的過程不見得是1+3+5,也有可能是5+1+3或是3+1+5甚至只有1+3也不一定。因此,過去使用指定部位名稱( from Entry )的方式來做減碼的話,就無法適用,因為我們並不知道哪些條件會不會成立。
而減碼也不是要把部位歸零,畢竟減碼不是清倉,縱使有的時候減碼會剛好是清倉。
答案就是ExitLong 2 contract total next bar at Market裡面的 TOTAL 這個字!要做部位的減碼不要用from entry去指定,因為那不是總部位的減碼,除非你的需求是只針對某種條件所建立的多單做減碼,其他條件建立的多單不減碼,那才適用 from Entry 。