BarsSinceEntry应用 [MC]
-
MC用户求助:
关于BarsSinceEntry应用,资料中说:
BarsSinceEntry
(PosBack)参数说明: PosBack —— 数值表达式,用来指定部位:
0 —— 未平仓部位;
1 —— 上一个平仓部位(最后一个平仓部位);
2 —— 上二个平仓部位,依次类推。若
PosBack
未指定,则预设为未平仓部位。如果我要求上次平仓到现在建仓的K线不是同一个K线,是不是就是如下写法呢?
Value2=BarsSinceEntry(1);
if marketposition=0 and var6=0 and count<=1 and condition40 and Value2>0 then begin
sellshort lots shares next bar at round((Open+ma),0) stop;
很遗憾的是我如此写进去时,发现没信号。请老师指教
-
MC回复讨论一:
关于您的信号加载到图表上为什么没有信号,可能是因为您对于barssinceentry这个关键字的使用不当导致的,当然也有可能是其它的问题(您没有在这个帖子上贴出来),在叙述我对您的代码的问题之前,先来叙述一下这个关键字的意思,看下面的例子:
图中,分别在currentbar=51的时候进场,在currentbar=54的时候出场,在currentbar=57的时候进场;之所以,barssinceentry(1)在currentbar=54时的才有值,值为3(代码上一个已经平仓部位中第一笔进场的bar到当根bar的距离)是因为之前有已经平仓部位的产生(即在currentbar为54时全部出场,从而产生了已经平仓部位);而barssinceentry(0)在currentbar为51和57时才有值,值为0(当前部位的进场的bar到当根bar的距离正好是0)。而您的代码中,限制barssinceentry(1)>0,在图表上没有任何信号时,也就是没有任何历史平仓部位时,barssinceentry(1)始终是0,从而barssinceentry(1)>0始终是false,这个限制了您的信号始终不会有进场;应该是先有进场,才有历史平仓部分,然后barssinceentry(1)>0才可能是true
-
MC回复讨论二:
也就是说这词不可用于回测,但可实盘
-
MC回复讨论三:
抱歉,说了那么多,让您误解了!
问题在于您的进出场条件判断需要修改一下,这个关键字可以用于回测和实盘中。您的代码更正如下:
if maxpositionsago=1 then
value2=1
else value2=barssinceentry(1);
if marketposition=0 and var6=0 and count<=1 and condition40 and Value2>0 then begin
sellshort lots shares next bar at round((Open+ma),0) stop;
-
MC回复讨论四:
抱歉,说了那么多,让您误解了!
问题在于您的进出场条件判断需要修改一下,这个关键字可以用于回测和实盘中。您的代码更正如下:
if maxpositionsago=1 then
value2=1
else value2=barssinceentry(1);
if marketposition=0 and var6=0 and count<=1 and condition40 and Value2>0 then begin
sellshort lots shares next bar at round((Open+ma),0) stop;
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容