很多喜歡for(int i =0;i <ordersTotal();i++) 這樣循環(huán)讀取所有持倉單 并OrderSelect選擇后 執(zhí)行OrderClose或OrderDelete平倉。
其實這樣是錯誤的! 原因: 當多個持倉單的時候,排列序號是 0 1 2 3 。。。。。這樣子。 i=0時 執(zhí)行了出場動作后,原來 1 2 3位置的訂單序號就變成了0 1 2了 這時候按i去循環(huán)已近不是想象中的那個位置的序號持倉單。 所以當執(zhí)行到最后還剩1個持倉單時,i肯定是大于0的,而這時最后持倉單的序號是0 就出現(xiàn)無法平倉的情況。 針對這種問題有以下兩種解決辦法,供大家參考: 循環(huán)改成 for(int i=ordersTotal-1;i>=0;i--)</font> 2、可以先用for循環(huán),讀取所有持倉單的Ticket存入一個數(shù)組,然后再次用for循環(huán) 使用OrderSelect+Ticket的方式 可以正確選擇,并執(zhí)行平倉。 |
|