求助求助!!模型只能開倉,不能平倉,求助求助!! [開拓者 TB]
- 咨詢內容:
求助求助!!我的代碼在實盤運行中,只能實時的開倉,卻不能實時的平倉,問題到底是什么呢??
源代碼如下:
Params
Numeric Lenth1(200);
Numeric Lenth2(50);
Numeric OffSet(1); //委托價格偏移單位
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; //用于開倉的條件
Bool SellShort_Conf;
Bool BuyToCover_Conf; //用于平倉的條件
Bool Sell_Conf;
Numeric LongPosition(0); //用于保存賬號多單持倉數量
Numeric ShortPosition(0); //用于保存賬號多單持倉數量
Bool GotPosition(False); //用于標識賬號是否有持倉
Begin
// 集合競價和小節休息過濾
If(!CallAuctionFilter()) Return;
MA1=AverageFC(c,Lenth1); //定義兩均線
MA2=AverageFC(c,Lenth2);
PlotNumeric("MA1",MA1); //在主圖畫出指標線;
PlotNumeric("MA2",MA2);
UP_MA = MA1[1]>MA2[1]; //MA為多頭排列
Down_MA = MA1[1]<MA2[1]; //MA為空頭排列
UP_Price = High>MA1AND High>MA2; //價格站在MA之上
Down_Price = Low<MA1AND Low<MA2; //價格站在MA之下
Buy_Conf = UP_MA And UP_Price; //開多單條件
SellShort_Conf = Down_MA And Down_Price; //開空單條件
BuyToCover_Conf = Down_MA And UP_Price; //平空倉
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("當前是否有持倉: "+IIFString(GotPosition,"有持倉","沒有持倉"));
If(GotPosition)
{//如果有持倉,則下面的是平倉條件代碼
Commentary("LongPosition ="+Text(LongPosition));
Commentary("ShortPosition ="+Text(Abs(ShortPosition)));
If(LongPosition>0) //如果持有多單,則判斷是否需要平倉
{
If(Sell_Conf)
{ //平多單代碼
Sell(Lots,Q_BidPrice()-OffSetPrice);
Return;
}
}
If(ShortPosition<0) //如果持有空單,則判斷是否需要平倉
{
if(BuyToCover_Conf)
{ //平空單代碼
BuyToCover(Lots,Q_AskPrice()+OffSetPrice);
Return;
}
}
}Else{//如果沒有持倉,則下面的是開倉條件代碼
if (Buy_Conf)
{
Buy(Lots,Q_AskPrice()+OffSetPrice);
Return;
}
if (SellShort_Conf)
{
SellShort(Lots,Q_BidPrice()-OffSetPrice);
Return;
}
}
End
- TB技術人員:
哪們大神幫忙看一下,急呢!
- TB客服:
http://pan.baidu.com/s/1boDLqgf
這視頻是從今天早上另一個模型出平倉信號,但實盤運行的模型卻沒有執行平倉動作,視頻中左邊兩個圖表是實盤運行的圖表,右邊兩個是在圖表上顯示信號,用于對比的。兩個模型代碼基本一樣,只是實盤的模型使用了一些賬戶函數。
上面發出來的代碼中,已經把“ShortPosition<0”修改為“ShortPosition>0”,但實盤中,還是不能執行平倉,想問一下,問題到底出在哪?? - 網友回復: 你這個公式不是通過a_sendorder下單的 所以A_BuyPosition()應該讀不到你賬戶的倉位 還是建議buy sell這類函數不要和a或者q函數混用哦
有思路,想編寫各種指標公式,程序化交易模型,選股公式,預警公式的朋友
可聯系技術人員 QQ: 511411198 進行 有償 編寫!(不貴!點擊查看價格!)
相關文章
-
沒有相關內容