老师好,
如下代码,这个离场逻辑不触发。
之前在用MarketPosition()回测版本的时候,好好的,正常执行。想应用到实时行情测试,函数需要换到TotalPosition()吧,之后就没有触发过离场逻辑了。条件均没有问题,在可以回测的版本试过了。
请老师指正,谢谢老师!
//如果当前持仓为多单,且符合卖出平仓条件
if(A_TotalPosition(0)>0 && Data0.Low<Data1.Bottom){
//卖出平仓
Sell(A_BuyPosition(0),Q_BidPrice());
}
//如果当前持仓为空单,且符合买入平仓条件
if(A_TotalPosition(0)<0 && Data0.High>Data1.Top){
//买入平仓
BuyToCover(A_SellPosition(0),Q_AskPrice());
}
A_TotalPosition 看到A大头的函数你都不要用
找到对应的图表函数进行操作
CurrentContracts 净持仓
还是不行,继续好好学习....
我用A_SendOrder试试....
逻辑其实很简单,就是没有仓位的时候找开仓信号,有仓位的时候找平仓信号,可能是开仓没有用这个函数,
开仓的时候用的Buy、SellShort函数开仓。。。可能不是一套,我迷糊了
关键是你的配套的函数,比如获取持仓的函数,两边是不配套的。
buysell函数是在一个图表上虚拟出来的持仓里建立头寸
a_buyposition是指你关联的真实交易账户里的多头头寸
这两个根本不是一个频道
如果你用buy sell命令构建交易系统,建议把所有的a_开头和q_开头的函数全部自动屏蔽
a函数属于订单管理的领域,比信号系统要麻烦很多,并不是把信号系统的buysell改成a函数就好了,还要考虑避免重复发单,发单后是否成交,是否重发,是否撤单等等问题,建议如果经验不是很丰富先通过信号系统摸清楚驱动机制和数据结构特性以后再考虑用a函数写交易模型
谢谢老师!请问如果计算机能力太有限的。。。这里只想实现把当前策略单元所有持仓都平仓,怎么处理更方便呀。
我有认真学习官网上的文档内容,只是计算机能力太有限了。
辛苦老师!
学习TB一定搞清楚 Buy/Sell 和A函数两套交易指令的区别在哪里,这两者是不好混在一起用的,当然高阶的用法,比如像算法代理之类的另当别论。可能您对BuySell有些误解,以为不能做实盘了,其实大部分用户都是用BuySell做交易。
谢谢老师,
教程我有认真好好学习,花费了很长时间,只是计算机能力太有限了。。。
这个程序的入场逻辑测试没问题,是一开一平的简单逻辑,都是按照正确的逻辑计算出来的仓位开仓的。
平仓方面,就是突破离场:
我也就挂一个账户,当前这里的目标,就是想把当前策略单元的所有持仓都平仓,能达到目标就行,有偷懒的方式么。
辛苦老师!谢谢!