利用数据库控制重复开仓 [开拓者 TB]
- 咨询内容:
我写了一个利用数据库来控制重复发单的简单例子,但是在测试中发现经常重复发单,重复发单的时候都是在两秒内发两个。请小米帮我看一下是哪里的问题吧!谢谢!
- TB技术人员:
Params
Numeric L1(3);
Numeric L2(6);
Numeric Stoploss(2);
Vars
NumericSeries shortline;
NumericSeries longline;
Numeric protectprice;
Bool SonL;
Bool SunderL;
String orderstate;
Begin
If(!CallAuctionFilter()) Return;
shortline=XAverage(Close,L1);
longline=XAverage(Close,L2);
PlotNumeric("短期均线",shortline);
PlotNumeric("长期均线",longline);
SonL=shortline[1]>longline[1];
SunderL=shortline[1]<longline[1];
If(BarStatus==2)
{
orderstate=GetTBProfileString2File("C:\\test1.log","开仓控制","发单状态");
If(Value(orderstate)==0 Or orderstate==InvalidString)
{
If(SonL)
{
A_SendOrder(Enum_Buy,Enum_Entry,1,Q_AskPrice);
SetTBProfileString2File("C:\\test1.log","开仓控制","发单状态",Text(1));
}
If(SunderL)
{
A_SendOrder(Enum_Sell,Enum_Entry,1,Q_BidPrice);
SetTBProfileString2File("C:\\test1.log","开仓控制","发单状态",Text(-1));
}
}
If(Value(orderstate)==1)
{
protectprice=A_BuyAvgPrice-Stoploss;
If(Q_Last<protectprice)
{
A_SendOrder(Enum_Sell,Enum_Exit,1,Q_BidPrice);
SetTBProfileString2File("C:\\test1.log","开仓控制","发单状态",Text(0));
}
}
If(Value(orderstate)==-1)
{
protectprice=A_SellAvgPrice+Stoploss;
If(Q_Last>protectprice)
{
A_SendOrder(Enum_Buy,Enum_Exit,1,Q_AskPrice);
SetTBProfileString2File("C:\\test1.log","开仓控制","发单状态",Text(0));
}
}
}
End - TB客服:
就是短期均线在长期均线上就开多一手,短期均线在长期均线下就开空一手。开仓后反向波动两点就平仓。但是测试中经常出现重复开仓、锁仓的问题。
- 网友回复:
zhoucx 发表于 2016-5-12 13:52
Params
Numeric L1(3);
Numeric L2(6);
将委托记录也发过来看一下 - 网友回复:
这是下午的记录
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容