设为首页收藏本站

 找回密码
 注册
查看: 1569|回复: 3
打印 上一主题 下一主题

总是提示出错 [复制链接]

Rank: 3Rank: 3

精华
0
UID
257171
积分
133
帖子
99
主题
32
阅读权限
40
注册时间
2017-9-28
最后登录
2019-11-16
跳转到指定楼层
1#
发表于 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
//手工开多仓后,可以顺利平掉,但是会同时提示持仓不足,过一会儿,在没有持仓的情况下,还会反复提示说
你持仓不足。

Rank: 3Rank: 3

精华
0
UID
257171
积分
133
帖子
99
主题
32
阅读权限
40
注册时间
2017-9-28
最后登录
2019-11-16
2#
发表于 2018-4-24 15:29:09 |只看该作者
已解决,是因为用交易师开仓自带了止损止盈导致的。

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
3
UID
5
积分
26584
帖子
12686
主题
49
阅读权限
200
注册时间
2007-7-20
最后登录
2021-11-3
3#
发表于 2018-4-24 15:45:24 |只看该作者
这个写法是有问题的。。反复提示持仓不足是他确实在发平仓动作,与交易师的设置无关了。
1,a_sendorder的使用只能限制在barstatus==2下面,当前公式里没有此限制 ,那么读出来的tempos在历史里以及没有启动自动交易前都是无效值的,该无效值 是一个大于0的值 ,自然是可以满足此条件的。
2,公式里没有使用全局变量来控制发单 的次数,就算是在正常的barstatus==2的状态下判断了有效的持仓,在第一次委托出去后且没有成交回报到达本地前,是有可能再次判断仍有持仓于是再次发单的。

A_xxx函数的使用没有那么直观,学习起来,控制起来比一般的buy,sell指令更为复杂,要求有更多的编程经验。建议先系统学习TB的公式编写后再进行策略的开发。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
257171
积分
133
帖子
99
主题
32
阅读权限
40
注册时间
2017-9-28
最后登录
2019-11-16
4#
发表于 2018-4-24 23:28:42 |只看该作者
小米 发表于 2018-4-24 15:45
这个写法是有问题的。。反复提示持仓不足是他确实在发平仓动作,与交易师的设置无关了。
1,a_sendorder的 ...

版主说得甚是,我还得慢慢从头学习才对。

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-4-27 01:07

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部