求助版主,為什么平倉單平不了,需人工一鍵撤單才可。請幫助檢查語句!
作者:開拓者 TB 來源:cxh99.com 發(fā)布時間:2016年01月21日
- 咨詢內(nèi)容:
Params
Numeric c5(5);//定義均線5常量
Numeric c10(10);//定義均線10常量
numeric c20(20);//定義均線20常量
Vars
NumericSeries mc5;//均線5
NumericSeries mc10;//均線10
NumericSeries mc20;//均線20
Bool zuoduo;//做多判斷
Bool zuokong;//做空判斷
Bool pingduo;//平多判斷
Bool pingkong;//平空判斷
Begin
mc5=AverageFC(Close,c5);//不解釋
mc10=AverageFC(Close,c10);//不解釋
mc20=AverageFC(Close,c20);//不解釋
zuoduo= close[1]>mc5[1] and close[1]>mc10[1] and close[1]>mc20[1];//做多條件
zuokong= close[1]<mc5[1] and close[1]<mc10[1] and close[1]<mc20[1];//做空條件
pingduo= close[1]<mc5[1];//平多條件
pingkong= close[1]>mc5[1];//平空條件
PlotNumeric("cytshort",AverageFC(Close,c5));//畫線
PlotNumeric("cytlong",AverageFC(Close,c10));//畫線
PlotNumeric("cytshort",AverageFC(Close,c20));//畫線
If(!CallAuctionFilter()) Return;//不解釋
If ( zuokong And Marketposition <> -1 ) //若持倉不是空單(無倉位或持多單)且符合做空條件,就開空單。已持多單應(yīng)平多反手空
{
SellShort( 1,Open );
} Else IF ( zuoduo And Marketposition <> 1 ) //若持倉不是多單(無倉位或持空單)且符合做多條件,就開多單。已持空單應(yīng)平空反手多
{
Buy( 1,Open );
}
If ( pingkong And MarketPosition == -1 ) //若符合平空條件且持空單,則平空
{
BuyToCover(1,Open);
} Else IF ( pingduo And MarketPosition == 1 ) //若符合平多條件且持多單,則平多
{
Sell( 1, open );
}
End
在模擬操作中,經(jīng)常出現(xiàn)已持單無法平倉。我手工平倉也不行,最后檢查發(fā)現(xiàn),在交易區(qū)里得先一鍵撤單成功后,才能手工平倉。郁悶啊!
請問版主,這事是咋回事呢?是我的語句執(zhí)行的有問題呢,還是順序有問題呢,還是數(shù)據(jù)傳輸問題(實盤中不會出現(xiàn)數(shù)據(jù)傳輸延遲緩慢的問題吧)?
- TB技術(shù)人員:
版主,難道我先把平倉條件語句放在開倉條件語句前面。那么先執(zhí)行的就是平倉語句,等平倉語句執(zhí)行完畢,再執(zhí)行開倉語句。這樣的話,把<>-1 改為==0 即可。
可否?請版主及各位高手明示!
- TB客服:
版主 @小米
什么函數(shù)或公式能實現(xiàn):若本K收盤時符合入場或離場條件,那就以收盤價離開。
這里面有一個糾結(jié)的地方:既然是收盤價,那么肯定是收盤了,若收盤了,再談什么進場離場,就不可能。這就是繞圈子了。
所以咋辦?難道規(guī)定14點59分55秒符合條件,那么57秒執(zhí)行?
這有點點郁悶了把,尤其那些尾盤巨量盤!
請賜教!