欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 固定轮询和走完K的理解

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3763人关注过本帖树形打印复制链接

主题:固定轮询和走完K的理解

帅哥哟,离线,有人找我吗?
maomao8643
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
固定轮询和走完K的理解  发帖心情 Post By:2019/1/1 12:37:04 [显示全部帖子]

看了手册和一些帖子,对固定轮询模式和走完K线模式的理解归纳如下,麻烦帮忙看看是否正确。

另外,对于限价委托,如果设置的价格超出了本周期或者次周期的High-Low的范围,在回测和实盘时会分别如何?

 


图片点击可在新窗口打开查看此主题相关图片如下:固定轮询和走完k的理解.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/2 10:19:54 [显示全部帖子]

如果只是K线更新一次,公司计算一次,那么请问阿火秘笈中提到cc变量,如果当前周期是15分钟,那么cc变量也应该是15分钟才变一次,对吗?那么Bar内交易是如何实现的呢?

 

简单的改法,自然是把各个条件“过去化”,如:ma5 改为 ref(ma(c,5),1);但这种方法碰到大型的、复杂的模型时,容易出错

可采用这种方法,把holding用全局变量cc替换,然后加入红色部分代码,红色部分代码要放在信号语句的前面:

runmode:0;

variable:cc=0;

ma5:=ma(c,5);

ma20:=ma(c,20);

entertime:=time>100000 and time<144500;

if holding>0 and cc<=0 then sell(1,1,limitr,o);

if holding<0 and cc>=0 then sellshort(1,1,limitr,o);

if holding=0 and cc>0 then buy(1,1,limitr,o);

if holding=0 and cc<0 then buyshort(1,1,limitr,o);

if cc>0 and ma5<ma20 then cc:=0;

if cc<0 and ma5>ma20 then cc:=0;

if cc=0 and ma5>ma20 and entertime then cc:=1;

if cc=0 and ma5<ma20 and entertime then cc:=-1;

if time>=150000 then begin

 cc:=0;

end


 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/2 11:13:34 [显示全部帖子]

如果固定轮询设成每秒一次,那么K线就是每秒刷新一次,公式就是每秒运行一次,除了Holding/Enterbars外的所有变量都是每秒刷新一次,这个理解对吧?


 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 9:41:48 [显示全部帖子]

写了个简单程序,就下面两句

ma5:ma(close,5);
DEBUGFILE2('C:\TEST.TXT','MA5=%.2f',MA5,1);

在15分钟焦炭图上,信号执行选择固定间隔10秒,结果如下。请问为啥MA5的刷新时间间隔在0.8秒左右,为啥不是设定的10秒?为啥不是一个Tick的0.5秒?

 

 


图片点击可在新窗口打开查看此主题相关图片如下:刷新时间.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 10:07:49 [显示全部帖子]

每一个分笔,CLOSE的值都会变化,MA(Close,5)的值也跟着变了,所以程序也是每个分笔都运行一次,但是交易信号的确认,就是按照设定每10秒检测一次。这个理解对吧?


 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 10:10:26 [显示全部帖子]

运行选项中有个Tick级别刷新,勾选和不勾选的区别是啥?

 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  7楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 11:05:03 [显示全部帖子]

增加一个逐次累加变量I,发现I值并不是每个分笔刷新。也就是说程序并不是每个分笔都执行一遍。CLOSE值每个分笔都刷新一次,引用了CLOSE值的函数,如MA、间接引用了CLOSE值的变量如MA5A等,也是每个分笔都刷新一次,但是公式本身是K线走完才执行一次。请问这样理解对吧?

VARIABLE:i:=0;
ma5:ma(close,5);
DEBUGFILE2('C:\TEST.TXT','MA5=%.2f',MA5,1);
ma5a:=ma5;
DEBUGFILE2('C:\TEST.TXT','MA5a=%.2f',MA5a,1);
I:=I+1;
DEBUGFILE2('C:\TEST.TXT','I=%.2f',I,1);
BP:barpos,linethick0;

 

2019-01-14 11:00:00.996    MA5=2001.10
2019-01-14 11:00:00.996    MA5a=2001.10
2019-01-14 11:00:00.996    I=263.00
2019-01-14 11:00:00.996    MA5=2002.10
2019-01-14 11:00:00.996    MA5a=2002.10
2019-01-14 11:00:00.996    I=264.00
2019-01-14 11:00:00.996    MA5=2003.80
2019-01-14 11:00:00.996    MA5a=2003.80
2019-01-14 11:00:00.996    I=265.00
2019-01-14 11:00:01.246    MA5=2003.90
2019-01-14 11:00:01.246    MA5a=2003.90
2019-01-14 11:00:01.246    I=265.00
2019-01-14 11:00:02.027    MA5=2003.90
2019-01-14 11:00:02.027    MA5a=2003.90
2019-01-14 11:00:02.027    I=265.00
2019-01-14 11:00:02.840    MA5=2003.90
2019-01-14 11:00:02.840    MA5a=2003.90
2019-01-14 11:00:02.840    I=265.00
2019-01-14 11:00:03.683    MA5=2003.80
2019-01-14 11:00:03.683    MA5a=2003.80
2019-01-14 11:00:03.683    I=265.00
2019-01-14 11:00:04.465    MA5=2003.80
2019-01-14 11:00:04.465    MA5a=2003.80
2019-01-14 11:00:04.465    I=265.00
2019-01-14 11:00:05.277    MA5=2003.80
2019-01-14 11:00:05.277    MA5a=2003.80
2019-01-14 11:00:05.277    I=265.00


 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 11:10:37 [显示全部帖子]

增加一个逐次累加的变量I,发现I值并不是每笔都刷新,但是把ma5赋值给ma5a却是每笔都有执行。请问可不可以这样理解,CLOSE的值每笔都刷新,所有依据Close值的计算值也都是每笔刷新,其他不依赖于CLOSE的变量或者计算公式,都是K线走完才计算?

 

VARIABLE:i:=0;
ma5:ma(close,5);
DEBUGFILE2('C:\TEST.TXT','MA5=%.2f',MA5,1);
ma5a:=ma5;
DEBUGFILE2('C:\TEST.TXT','MA5a=%.2f',MA5a,1);
I:=I+1;
DEBUGFILE2('C:\TEST.TXT','I=%.2f',I,1);
BP:barpos,linethick0;

 

 

2019-01-14 10:44:01.634    MA5=2001.50
2019-01-14 10:44:01.634    I=263.00
2019-01-14 10:44:02.462    MA5=2001.60
2019-01-14 10:44:02.462    I=263.00
2019-01-14 10:44:03.275    MA5=2001.60
2019-01-14 10:44:03.275    I=263.00
2019-01-14 10:44:04.071    MA5=2001.50
2019-01-14 10:44:04.071    I=263.00
2019-01-14 10:44:04.884    MA5=2001.50
2019-01-14 10:44:04.884    I=263.00
2019-01-14 10:44:05.696    MA5=2001.50
2019-01-14 10:44:05.696    I=263.00
2019-01-14 10:44:07.321    MA5=2001.50
2019-01-14 10:44:07.321    I=263.00
2019-01-14 10:44:08.134    MA5=2001.40
2019-01-14 10:44:08.134    I=263.00
2019-01-14 10:44:08.946    MA5=2001.40
2019-01-14 10:44:08.946    I=263.00

 


 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 11:12:33 [显示全部帖子]

抱歉贴错了输出文档,应该是这个

 

2019-01-14 11:00:00.996    MA5=2001.10
2019-01-14 11:00:00.996    MA5a=2001.10
2019-01-14 11:00:00.996    I=263.00
2019-01-14 11:00:00.996    MA5=2002.10
2019-01-14 11:00:00.996    MA5a=2002.10
2019-01-14 11:00:00.996    I=264.00
2019-01-14 11:00:00.996    MA5=2003.80
2019-01-14 11:00:00.996    MA5a=2003.80
2019-01-14 11:00:00.996    I=265.00
2019-01-14 11:00:01.246    MA5=2003.90
2019-01-14 11:00:01.246    MA5a=2003.90
2019-01-14 11:00:01.246    I=265.00
2019-01-14 11:00:02.027    MA5=2003.90
2019-01-14 11:00:02.027    MA5a=2003.90
2019-01-14 11:00:02.027    I=265.00
2019-01-14 11:00:02.840    MA5=2003.90
2019-01-14 11:00:02.840    MA5a=2003.90
2019-01-14 11:00:02.840    I=265.00
2019-01-14 11:00:03.683    MA5=2003.80
2019-01-14 11:00:03.683    MA5a=2003.80
2019-01-14 11:00:03.683    I=265.00
2019-01-14 11:00:04.465    MA5=2003.80
2019-01-14 11:00:04.465    MA5a=2003.80
2019-01-14 11:00:04.465    I=265.00
2019-01-14 11:00:05.277    MA5=2003.80
2019-01-14 11:00:05.277    MA5a=2003.80
2019-01-14 11:00:05.277    I=265.00


 回到顶部
帅哥哟,离线,有人找我吗?
maomao8643
  10楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:155 积分:0 威望:0 精华:0 注册:2017/8/10 8:36:21
  发帖心情 Post By:2019/1/14 13:39:36 [显示全部帖子]

在15分钟焦炭上运行。ma5:ma(close,5) 和 ma5a:=ma5,这两句每笔都在刷新,但是I:=I+1这句却是K线走完才刷新。“程序是每来一个分笔就会运算一次”的说法似乎并不是完全正确的。麻烦版主再澄清一下,谢谢。


 回到顶部
总数 14 1 2 下一页