- 精华
- 0
- 在线时间
- 76 小时
- UID
- 266622
- 积分
- 40
- 帖子
- 29
- 阅读权限
- 10
- 注册时间
- 2018-6-13
- 最后登录
- 2019-10-25
- 精华
- 0
- UID
- 266622
- 积分
- 40
- 帖子
- 29
- 主题
- 11
- 阅读权限
- 10
- 注册时间
- 2018-6-13
- 最后登录
- 2019-10-25
|
发表于 2018-6-21 00:25:37
|显示全部楼层
学习了TB好几天碰到一堆问题,列出来请教一下版主,谢谢,
1,关于A_SendOrder()函数重复发单的问题,看来以前的帖子,都是用一个全局变量来控制,一般是买入下单后将全局变量从0设置成1,这样如果全局变量如果为1就不能开仓,等卖出后在恢复设置成0,就又可以继续开仓了,可是我现在的想法是,比如价格是1000买入后,价格下跌到990,那我继续加仓,这样全局变量第一次从0变成1以后,应该怎么继续控制呢?
我想了一个方法,就是将我当时的预定加仓价格990价格发送委托单以后,存入全局变量4中,下单前先从全局变量4中取出这个价格,和我的预定价格相比较,如果相等就不执行,但是,公式执行过程中太快根本看不到直接显示我从全局变量里取出的价格和我的预定价格相等,但是第一次的委托单也没有发出去,所以很郁闷,不知道是不是第一次执行了,但是为什么没有发出委托单,否则全局变量里的价格又是如何进去的?用Commentary只能看到取出后的全局变量,FileAppend函数用的不熟,是第二个问题,焦头烂额。
2.关于FileAppend()函数,为什么我在公式里设置了好几个FileAppend函数,只有某几句能够写入在log文件里,而且好像是不断的重复了好多遍,是因为每一个tick就执行一遍吗?,有些不写入,什么时候写入,什么顺序写入,也不知道要求是什么,我无法按照顺序看清楚程序执行的每一步的数据,就很难找到问题在哪儿。
3.超级图表中,是每一个bar运行一遍公式,还是每一个tick运行一遍公式,也就是相当于每个bar会运行多次公式,那样的话Commentary函数里显示的公式里的数据是否应该是这个bar最后一个tick运行时的结果?
4.我在程序里写了这样一段,目的是A_SendOrder函数发送指令,委托单成交后继续执行内容1,如下:
chengjiao = A_SendOrder(Enum_Sell,Enum_Exit,shoushu,zhiyingjia);
If(chengjiao == true ){ 内容1...}
可是看帖子好像A_SendOrder函数返回的true并不代表成交了,而是指令发送成功了,那么我就把程序调整了一下,
chengjiao = A_SendOrder(Enum_Sell,Enum_Exit,shoushu,zhiyingjia);
chengjiaojia = A_OrderFilledPrice(0); //成交价作为成交价格
If(chengjiao == true Or chengjiaojia == zhiyingjia){ 内容1...}
我的想法是取最近的一条成交记录的价格,这样就能判断发送是否成交,请问这样写合适吗?有没有更好的建议,如果第一次发送时,没有成交,挂单了,过了一会成交了,这一段程序会如何执行、有点理不清了,乱了。
好了就问这么多了,麻烦各位大神了,谢谢,尽量回答的详细点。
|
|