以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 上次条件成立的位置 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=181473) |
-- 作者:marks -- 发布时间:2020/7/30 9:43:17 -- 上次条件成立的位置 BARSLAST(TYPE(1)=2),请问上次平多的位置到当前的周期是这么描述吧,在图表上显示的是当平多后一直显示为零,当开仓后才开始显示周期数。 如果写成BARSLAST(TTYPE(1)=1),从平多后开始显示周期数,这个TYPE=的描述和实际显示为什么不符。
|
-- 作者:FireScript -- 发布时间:2020/7/30 9:47:11 -- 你直接 BARSLAST(平仓条件) 你用BARSLAST(TYPE(1)=2), 这种方式肯定有问题的。 TYPE(1)判断的是上次信号,只要你没重新出交易信号,这个函数返回值在平多之后一直都是一样的。也就是每个K都是满足TYPE(1)=2,返回值当然是0 了。 |
-- 作者:marks -- 发布时间:2020/7/30 10:16:27 -- 如果用BARSLAST(平仓条件)的话,如果平仓条件触发后没有成交,撤单了,那这个条件就不能成立了。 想要的是真正平仓后开始计算平仓后的周期
|
-- 作者:FireScript -- 发布时间:2020/7/30 10:19:59 -- 那没办法。就算撤单了,你在图表上也无法知晓。你用type也是一样的,它也是根据图表上信号来的。图表只管出信号,你执行的情况和它无关的。 |
-- 作者:marks -- 发布时间:2020/7/30 10:35:22 -- 那是不是直接用EXITBARS也一样,我看图表显示是一样的。 还有一个问题,在图表上显示正常,但是改成后台就不开仓。 这是图表的开仓条件,显示正常: YD:=REF(EXIST(L=LLV(L,10),EXITBARS),1); YJD:=REF(L<=EXITPRICE-100*MINDIFF,BARSLAST(YD)+1); 开仓条件:=H>REF(H,1) AND YJD; 后台的,不开仓: YD:=REF(EXIST(L=LLV(L,10),TEXITBARS),1); YJD:=REF(L<=TEXITPRICE-100*MINDIFF,BARSLAST(YD)+1); 开仓条件:=H>REF(H,1) AND YJD; |
-- 作者:FireScript -- 发布时间:2020/7/30 10:50:48 -- 图表和后台不是简单一个显示 一个不显示的差别。后台上是直接没有历史回测的信号的,不像图表会受到历史信号影响。所以你要是看单纯的指标计算,还有一定对比性,比如ma这种,但是涉及到需要历史信号的这种是肯定不能对比的。 你这里TEXITBARS 这个 必须是后台之前有过下单记录,它才有返回值,否则是不行的。所以你写后台代码的时候,必须考虑到之前没有进行过交易的初始情况。
|
-- 作者:marks -- 发布时间:2020/7/30 10:53:23 -- 我后台实际测试过程中,平仓后满足开仓条件也没有开仓,开仓条件就是上面的那个条件 |
-- 作者:FireScript -- 发布时间:2020/7/30 10:57:20 -- 后台里面你只能DEBUGFILE判断条件是否满足。其他方式都是不可靠有误判可能性的。 相关的变量你把它输出出来看下 才能判断问题所在。
|
-- 作者:marks -- 发布时间:2020/7/30 11:33:25 -- 输出了,也成立,我再试试看看吧。 |