Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共9 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:不懂sfilter的执行结果

1楼
a141027 发表于:2015/2/26 23:10:19
我想用sfilter过滤交易信号,但系统依然重复下单,不知是哪里的问题。语句如下

cond:=sfilter(cond_a,cond_b);
buy(cond,vol,marketr);

我用shift-Q逐条K线反复检查了cond的值,它只出现了1次1值,后面的值都是0,也就是说它是起到了过滤作用的。但奇怪的是buy指令执行了不止1次。

于是我把buy语句换成以下

variable: a=0;
if cond then a:=a+1;

然后再检查a值,它的确是大于1. 说明这不是下单的问题,而是cond值为1至少多于1次。这是怎么回事?
2楼
FexTel 发表于:2015/2/27 9:07:14
1,
variable: a=0;
if cond then a:=a+1;

  //这种检测是不对的,因为A的值这样就是从历史一直反复累加,必然比1大

 

2,你是否采用固定轮询模式,看下是不是cond_b这个条件反复变化呢?

 另外buy执行的是否是不同根K线

3楼
a141027 发表于:2015/2/27 10:12:06
逐一反馈如下:

1、我有在日初把a重置为零的
a:=if(todaybar=1,0,a);

2、我有用固定轮询模式,但我看了cond_a和cond_b都是交易当天以前的数据,不会变的,我画了线,它们是条直线。后面会上图。

为了确认自己没数错cond值为1的次数,我添加了
count(cond=1,10),nodraw;

结果是一样的,cond值为1的次数只发生了1次,而a值却是2(a值是cond值为1时的自动累加变量)。

前后只有5根k线,数量不多,我分别截图了。请见图。

图片点击可在新窗口打开查看此主题相关图片如下:k线0.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:k线1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:k线2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:k线3.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:k线4.png
图片点击可在新窗口打开查看

4楼
a141027 发表于:2015/2/27 10:18:20
补充,图中字段sfilter_equal_one就是count(cond=1,10)的结果,以上5根k线是连续的。
5楼
a141027 发表于:2015/2/27 10:19:25
补充,图中那两条平行线就是cond_a和cond_b的值。
6楼
FexTel 发表于:2015/2/27 10:22:06
 具体代码方便提供下么?我这边瞅瞅,或者提供个简单反馈问题的
7楼
a141027 发表于:2015/2/27 10:31:30
没问题的,麻烦您给我个q号,我一会儿就给您发过去。
8楼
yukizzc 发表于:2015/2/27 10:51:44

QQ:2857926939

 

[此贴子已经被作者于2015/2/27 10:51:50编辑过]
9楼
a141027 发表于:2015/2/27 11:37:18
已找到问题了,跟sfilter没关系,是另一个地方触发了。谢谢各位。
共9 条记录, 每页显示 10 条, 页签: [1]


Powered By Dvbbs Version 8.3.0
Processed in 0.03125 s, 2 queries.