求助求助!!模型只能開(kāi)倉(cāng),不能平倉(cāng),求助求助!!
作者:開(kāi)拓者 TB 來(lái)源:cxh99.com 發(fā)布時(shí)間:2017年05月20日
- 咨詢內(nèi)容:
求助求助!!我的代碼在實(shí)盤(pán)運(yùn)行中,只能實(shí)時(shí)的開(kāi)倉(cāng),卻不能實(shí)時(shí)的平倉(cāng),問(wèn)題到底是什么呢??
源代碼如下:
Params
Numeric Lenth1(200);
Numeric Lenth2(50);
Numeric OffSet(1); //委托價(jià)格偏移單位
Numeric Lots(1);
Vars
NumericSeries MA1;
NumericSeries MA2;
Numeric OffSetPrice(0);
Bool UP_MA; //用于保存初始化條件
Bool UP_Price;
Bool Down_MA;
Bool Down_Price;
Bool Buy_Conf; //用于開(kāi)倉(cāng)的條件
Bool SellShort_Conf;
Bool BuyToCover_Conf; //用于平倉(cāng)的條件
Bool Sell_Conf;
Numeric LongPosition(0); //用于保存賬號(hào)多單持倉(cāng)數(shù)量
Numeric ShortPosition(0); //用于保存賬號(hào)多單持倉(cāng)數(shù)量
Bool GotPosition(False); //用于標(biāo)識(shí)賬號(hào)是否有持倉(cāng)
Begin
// 集合競(jìng)價(jià)和小節(jié)休息過(guò)濾
If(!CallAuctionFilter()) Return;
MA1=AverageFC(c,Lenth1); //定義兩均線
MA2=AverageFC(c,Lenth2);
PlotNumeric("MA1",MA1); //在主圖畫(huà)出指標(biāo)線;
PlotNumeric("MA2",MA2);
UP_MA = MA1[1]>MA2[1]; //MA為多頭排列
Down_MA = MA1[1]<MA2[1]; //MA為空頭排列
UP_Price = High>MA1AND High>MA2; //價(jià)格站在MA之上
Down_Price = Low<MA1AND Low<MA2; //價(jià)格站在MA之下
Buy_Conf = UP_MA And UP_Price; //開(kāi)多單條件
SellShort_Conf = Down_MA And Down_Price; //開(kāi)空單條件
BuyToCover_Conf = Down_MA And UP_Price; //平空倉(cāng)
Sell_Conf = UP_MA And Down_Price; //平多單
OffSetPrice=OffSet*MinMove*PriceScale;
LongPosition=A_BuyPosition();
ShortPosition=A_SellPosition();
If(LongPosition==0 AND ShortPosition==0){
GotPosition=False;
}
Else{
GotPosition=True;
}
Commentary("當(dāng)前是否有持倉(cāng): "+IIFString(GotPosition,"有持倉(cāng)","沒(méi)有持倉(cāng)"));
If(GotPosition)
{//如果有持倉(cāng),則下面的是平倉(cāng)條件代碼
Commentary("LongPosition ="+Text(LongPosition));
Commentary("ShortPosition ="+Text(Abs(ShortPosition)));
If(LongPosition>0) //如果持有多單,則判斷是否需要平倉(cāng)
{
If(Sell_Conf)
{ //平多單代碼
Sell(Lots,Q_BidPrice()-OffSetPrice);
Return;
}
}
If(ShortPosition<0) //如果持有空單,則判斷是否需要平倉(cāng)
{
if(BuyToCover_Conf)
{ //平空單代碼
BuyToCover(Lots,Q_AskPrice()+OffSetPrice);
Return;
}
}
}Else{//如果沒(méi)有持倉(cāng),則下面的是開(kāi)倉(cāng)條件代碼
if (Buy_Conf)
{
Buy(Lots,Q_AskPrice()+OffSetPrice);
Return;
}
if (SellShort_Conf)
{
SellShort(Lots,Q_BidPrice()-OffSetPrice);
Return;
}
}
End
- TB技術(shù)人員:
哪們大神幫忙看一下,急呢!
- TB客服:
http://pan.baidu.com/s/1boDLqgf
這視頻是從今天早上另一個(gè)模型出平倉(cāng)信號(hào),但實(shí)盤(pán)運(yùn)行的模型卻沒(méi)有執(zhí)行平倉(cāng)動(dòng)作,視頻中左邊兩個(gè)圖表是實(shí)盤(pán)運(yùn)行的圖表,右邊兩個(gè)是在圖表上顯示信號(hào),用于對(duì)比的。兩個(gè)模型代碼基本一樣,只是實(shí)盤(pán)的模型使用了一些賬戶函數(shù)。
上面發(fā)出來(lái)的代碼中,已經(jīng)把“ShortPosition<0”修改為“ShortPosition>0”,但實(shí)盤(pán)中,還是不能執(zhí)行平倉(cāng),想問(wèn)一下,問(wèn)題到底出在哪??
- 網(wǎng)友回復(fù):
你這個(gè)公式不是通過(guò)a_sendorder下單的 所以A_BuyPosition()應(yīng)該讀不到你賬戶的倉(cāng)位 還是建議buy sell這類函數(shù)不要和a或者q函數(shù)混用哦