以文本方式查看主题
- 金字塔客服中心 - 专业程序化交易软件提供商 (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=163265)
|
-- 作者:qq代人发帖
-- 发布时间:2018/5/7 13:01:05
-- 如何统计今天到开仓期间的阳线数量
如何统计今天到开仓期间的阳线数量
|
-- 作者:FireScript
-- 发布时间:2018/5/7 13:23:16
--
假设开仓条件是A result:count(c>o,BARSLAST(A));
|
-- 作者:jmufhr
-- 发布时间:2018/5/7 13:50:37
--
这个是代码 n1:=5;//5周期均线
n2:=30;//30周期均线
ma5:ma(c,n1);
ma30:ma(c,n2);
sz:=ref(c,2)<ref(ma5,2) and
all(c>=ma5,2);
al2:=ref(all(c<ma5,2),1);
NN:=COUNT(本次开空单到今天(平仓)之前sz的个数)
if
ma30>ma5 and al2 and holding=0 then begin
开空:buyshort(1,7, limitr,ma5-15);
end
if NN>=1
and holding<0 then begin
平空: sellshort(1,holding, limitr,ma5+15);
End
里面的NN:=COUNT(本次开空单到今天(平仓)之前sz的个数),该怎么写呢
|
-- 作者:jmufhr
-- 发布时间:2018/5/7 13:51:06
--
这个是代码 n1:=5;//5周期均线
n2:=30;//30周期均线
ma5:ma(c,n1);
ma30:ma(c,n2);
sz:=ref(c,2)<ref(ma5,2) and
all(c>=ma5,2);
al2:=ref(all(c<ma5,2),1);
NN:=COUNT(本次开空单到今天(平仓)之前sz的个数)
if
ma30>ma5 and al2 and holding=0 then begin
开空:buyshort(1,7, limitr,ma5-15);
end
if NN>=1
and holding<0 then begin
平空: sellshort(1,holding, limitr,ma5+15);
End
里面的NN:=COUNT(本次开空单到今天(平仓)之前sz的个数),该怎么写呢
|
-- 作者:jmufhr
-- 发布时间:2018/5/7 13:52:32
--
这个是代码 n1:=5;//5周期均线
n2:=30;//30周期均线
ma5:ma(c,n1);
ma30:ma(c,n2);
sz:=ref(c,2)<ref(ma5,2) and
all(c>=ma5,2);
al2:=ref(all(c<ma5,2),1);
NN:=COUNT(本次开空单到今天(平仓)之前sz的个数)
if
ma30>ma5 and al2 and holding=0 then begin
开空:buyshort(1,7, limitr,ma5-15);
end
if NN>=1
and holding<0 then begin
平空: sellshort(1,holding, limitr,ma5+15);
End
里面的NN:=COUNT(本次开空单到今天(平仓之前)sz的个数),该怎么写呢
|
-- 作者:FireScript
-- 发布时间:2018/5/7 14:06:36
--
你这里面不行啊。你这个关于NN的逻辑有问题。 你NN的定义是和NN自己有关联的。 为什么这样说呢,按照你这个逻辑你的代码应该这样实现:
此主题相关图片如下:temp.png

这就是矛盾了。
|
-- 作者:jmufhr
-- 发布时间:2018/5/7 14:31:47
--
这个是最原始的代码 n1:=5;//5周期均线
n2:=30;//30周期均线
ma5:ma(c,n1);
ma30:ma(c,n2);
sz:=ref(c,2)<ref(ma5,2) and all(c>=ma5,2);
al2:=ref(all(c<ma5,2),1);
if ma30>ma5 and al2 and holding=0 then begin
开空:buyshort(1,7, limitr,ma5-15);
end
if sz and holding<0 then begin
平空: sellshort(1,holding, limitr,ma5+15);
End 但是实际交易时发现 sz出现时由于限价的原因无法平仓,由于sz信号不会一直持续后面价格达到限定价格时也无法平仓。现在就是想通过统计sz出现的次数,也就是开仓期间当sz出现的次数大于等于1时,就可以持续发出平仓委托了
|
-- 作者:FireScript
-- 发布时间:2018/5/7 15:25:18
--
我能明白你这个问题,但是你这个问题很明确图表无法做到。 你即使统计了信号也没用。举例说明下:比如说第一次sz触发了,下单了但是没成交。这时候存在的问题是虚拟持仓holding已经变成0了,下次sz再次触发(假设这段时期中间没有触发开仓),因为虚拟持仓是0的缘故,无法再触发平仓语句了。
你这个情况我觉得你可以考虑下追撤单功能吧。 交易-下单设置 里面。
此主题相关图片如下:temp.png

|
-- 作者:jmufhr
-- 发布时间:2018/5/7 17:42:53
--
那这个问题后台能解决吗
|
-- 作者:FireScript
-- 发布时间:2018/5/8 8:46:24
--
那还要看你完整逻辑是怎样的了,比如多久未成交 就撤单重新发单之类的这些细节等。
|