求助求助!!模型只能开仓,不能平仓,求助求助!! [开拓者 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 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容