TRIMPRICE函數為數字整理函數,主要用于程序化交易的下單價格整理.該函數在調用時需要從系統中讀取相關配置信息,所以該函數對系統資源消耗較大,尤其是在多核處理器優化時調用該函數,更是會導致系統的速度大幅降低.因此使用TRIMPRICE在逐K線模式下時是需要些技巧的,例如下面的代碼:
w:=mindiff*0;
kdj:=max(trimprice(高點),o)+w;
kkj:=min(trimprice(低點),o)-w;
平空:sellshort(kd,0,limitr,kdj); //平空
開多:buy(kd and holding=0,asset,limitr,kdj); //開多
上述代碼實際上就是將下單價格整理一下而已,并且只是在下單時才用得到,但是上述代碼每個K線周期都去調用了trimprice,導致了非常大的無關計算,其實只要稍微對程序做一下改動,那么使用效率會大幅提高,例如:
w:=mindiff*0;
kdj:=max(高點,o)+w;
kkj:=min(低點,o)-w;
if kd then
begin
平空:sellshort(1,0,limitr,trimprice(kdj)); //平空
開多:buy(kd and holding=0,asset,limitr,trimprice(kdj)); //開多
end
上述代碼使用了IF...TEHN控制語句,只有在KD的條件滿足時才執行trimprice函數的調用工作,大幅提高了使用效率
修正的價格是往不利方向變動的嗎