以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  上次条件成立的位置  (http://weistock.com/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
--  
输出了,也成立,我再试试看看吧。