开拓者期货期权程序化系统交易论坛
标题:
总是提示出错
[打印本页]
作者:
masterhdd
时间:
2018-4-24 14:58:40
标题:
总是提示出错
Params
Numeric FastLength(5);
Numeric SlowLength(20);
Vars
NumericSeries AvgValue1;
NumericSeries AvgValue2;
Numeric tempos;//多头持仓
Begin
AvgValue1 = AverageFC(Close,FastLength);
AvgValue2 = AverageFC(Close,SlowLength);
PlotNumeric("MA1",AvgValue1);
PlotNumeric("MA2",AvgValue2);
// 集合竞价和小节休息过滤
If(!CallAuctionFilter()) Return;
temPos = A_buyPosition();
If(CrossUnder (AvgValue1[1] , AvgValue2[1]) and tempos>0)
{
A_SendOrder(Enum_sell,Enum_Exit,temPos,Q_AskPrice-5);
}
End
//手工开多仓后,可以顺利平掉,但是会同时提示持仓不足,过一会儿,在没有持仓的情况下,还会反复提示说
你持仓不足。
作者:
masterhdd
时间:
2018-4-24 15:29:09
已解决,是因为用交易师开仓自带了止损止盈导致的。
作者:
小米
时间:
2018-4-24 15:45:24
这个写法是有问题的。。反复提示持仓不足是他确实在发平仓动作,与交易师的设置无关了。
1,a_sendorder的使用只能限制在barstatus==2下面,当前公式里没有此限制 ,那么读出来的tempos在历史里以及没有启动自动交易前都是无效值的,该无效值 是一个大于0的值 ,自然是可以满足此条件的。
2,公式里没有使用全局变量来控制发单 的次数,就算是在正常的barstatus==2的状态下判断了有效的持仓,在第一次委托出去后且没有成交回报到达本地前,是有可能再次判断仍有持仓于是再次发单的。
A_xxx函数的使用没有那么直观,学习起来,控制起来比一般的buy,sell指令更为复杂,要求有更多的编程经验。建议先系统学习TB的公式编写后再进行策略的开发。
作者:
masterhdd
时间:
2018-4-24 23:28:42
小米 发表于 2018-4-24 15:45
这个写法是有问题的。。反复提示持仓不足是他确实在发平仓动作,与交易师的设置无关了。
1,a_sendorder的 ...
版主说得甚是,我还得慢慢从头学习才对。
欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/)
Powered by Discuz! X2