提問前先搜索過,但沒有,無法在原帖跟,現把以前復制的原帖附上,再提問。
原帖:
寫日內策略時少用全平語句
使用框架交易運行多個策略(尤其是非自編的策略),發現日內最后一根K線平倉時,有的策略把自己手動的持倉也平掉了。原因是寫策略時寫了sell(holding>0,0,market) 和 sellshort(holding<0,0,market),應把此語句換成sell(holding>0,交易手數,market)和 sellshort(holding<0,交易手數,market)以避免此情況的發生。除非本意如此。
問題:但按先平后開原則,還是要把自己手動的持倉也平掉了。原帖的做法能起作用嗎?
IF KD THEN BEGIN
SELLSHORT(。。。);//先平空頭
BUY(。。。。。。。);//后開多頭
END
平倉語句寫0就是把你賬戶欄里面對應的持倉全平了,不管是不是你自動下還是手工下的都平掉。
比如 :你自動下了3手多,手工下了2手多,那么sell(1,0,marekt)會把賬戶里里面全部的5手多倉全部給平了。所以這個問題不僅僅針對的是收盤前平倉,正常的開平倉,如果你不希望自己的手工倉被全平掉了,那么就用holding這個當前的虛擬持倉,而不是寫0全平
這樣寫對嗎
IF KD THEN BEGIN
SELLSHORT(HOLDING<0, HOLDING, THISCLOSE);//先平空頭
BUY(。。。。。。。);//后開多頭
END