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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求助,跨周期改写的方法

   

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


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

主题:求助,跨周期改写的方法

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


加好友 发短信
等级:论坛游侠 帖子:299 积分:62 威望:0 精华:0 注册:2011/8/17 12:25:19
求助,跨周期改写的方法  发帖心情 Post By:2020/10/19 14:05:02    Post IP:49.75.100.88[只看该作者]

老师,跨周期调用很慢,改写成本周期的
如,1分钟调用10分钟的波动力
==================================

TRA:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TRA,3);


TRA0:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VTlow,18,0))); 
TRA1:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-1)-CALLSTOCK(STKLABEL,VTlow,18,-1)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VThigh,18,-1))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VTlow,18,-1)));
TRA2:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-2)-CALLSTOCK(STKLABEL,VTlow,18,-2)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VThigh,18,-2))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VTlow,18,-2)));


ATRS:=(TRA0+TRA1+TRA2)/3;



经过这样改写,在1分钟周期上,轨道并不完全相同,请老师帮忙修改下



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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/10/19 14:16:28    Post IP:58.246.57.26[只看该作者]

 你这个需求描述的太笼统了。“轨道并不完全相同” 就这样我是无法处理的。我完全不清楚怎么改写你的代码的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
幸运60
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:299 积分:62 威望:0 精华:0 注册:2011/8/17 12:25:19
  发帖心情 Post By:2020/10/19 14:24:23    Post IP:49.75.100.88[只看该作者]


TRA:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR:=MA(TRA,3);

up:今天开盘价+(W1/10)*ATR;
down:今天开盘价-(W1/10)*ATR;
==================
上面为在1分钟周期内跨周期调用10分钟的轨道

想把波动力改为,下面代码,直接在1分钟周期内显示,不用跨周期调用,谢谢
TRA0:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,0),1)-CALLSTOCK(STKLABEL,VTlow,18,0))); 
TRA1:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-1)-CALLSTOCK(STKLABEL,VTlow,18,-1)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VThigh,18,-1))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VTlow,18,-1)));
TRA2:=MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,-2)-CALLSTOCK(STKLABEL,VTlow,18,-2)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VThigh,18,-2))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-2),1)-CALLSTOCK(STKLABEL,VTlow,18,-2)));
ATRS:=(TRA0+TRA1+TRA2)/3;


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/10/19 14:39:03    Post IP:58.246.57.26[只看该作者]

TRA0:MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(REF(CALLSTOCK(STKLABEL,VTclose,18,-1),1)-CALLSTOCK(STKLABEL,VTlow,18,0)));

下面的REf 你没有进行处理的。后面的TRA1,TRA2 也要相应处理下。在-1基础上变化为-2,-3

TRA:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
幸运60
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:299 积分:62 威望:0 精华:0 注册:2011/8/17 12:25:19
  发帖心情 Post By:2020/10/19 14:55:55    Post IP:49.75.100.88[只看该作者]

老师,能完全写到和调用的跨周期一致吗?就是完全相同?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/10/19 15:02:32    Post IP:58.246.57.26[只看该作者]

 不对 还要改下。你源代码里面怎么还带了个ref 没注意到。要去掉。

CALLSTOCK(STKLABEL,VTclose,18,-1) 和 ref(CALLSTOCK(STKLABEL,VTclose,18,0) ,1) 不是等效的。ref是基于当前周期的。

下面这样就行了:
TRA0:MAX(MAX((CALLSTOCK(STKLABEL,VThigh,18,0)-CALLSTOCK(STKLABEL,VTlow,18,0)),ABS(CALLSTOCK(STKLABEL,VTclose,18,-1)-CALLSTOCK(STKLABEL,VThigh,18,0))),ABS(CALLSTOCK(STKLABEL,VTclose,18,-1)-CALLSTOCK(STKLABEL,VTlow,18,0)));
 我本地测试和跨周期调用过来的是一致的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
幸运60
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:299 积分:62 威望:0 精华:0 注册:2011/8/17 12:25:19
  发帖心情 Post By:2020/10/19 15:17:05    Post IP:49.75.100.88[只看该作者]

谢谢,老师,老师,牛逼

 回到顶部