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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 有没有LOOP2函数

   

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


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

主题:有没有LOOP2函数

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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2020/8/4 17:58:03
有没有LOOP2函数  发帖心情 Post By:2021/2/3 17:23:12    Post IP:183.14.17.54[只看该作者]

有没有类似文华策略 LOOP2函数的功能
比如
LSETUP:=LOOP(BARPOS=1||BULLSETUP,0,REF(LSETUP,1)+1);//LOOP2为循环条件函数 意思是若从第一根K线开始并且BULLSETUP条件成立,则返回0,否则返回REF(LSETUP,1)+1

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


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

 没有这个函数的。



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


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

 但是这个函数的效果似乎可以用VALUEWHEN来替代吧。




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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2020/8/4 17:58:03
  发帖心情 Post By:2021/2/4 11:21:34    Post IP:183.14.17.54[只看该作者]

这个是有做循环的,在循环中,满足条件a,返回x,否则返回y
VALUEWHEN 是满足a,返回x,并不会返回y

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/2/4 12:49:02    Post IP:58.246.57.26[只看该作者]

variable:a=0;

temp:=ref(a,1)+1;
if c>o then a:=0;
if not(c>o) then a:=temp;

b:a;

 

 

 


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


加好友 发短信
等级:新手上路 帖子:25 积分:0 威望:0 精华:0 注册:2020/8/4 17:58:03
  发帖心情 Post By:2021/2/4 13:45:51    Post IP:183.14.17.54[只看该作者]

老师,我主要是文华的策略要改成金字塔的,数值计算大部分都是兼容,就剩这个循环,可以麻烦您看看如何改写吗?红色字标注


//定义MOMVALUE:等于收盘价减去五日前的收盘价
MOMVALUE:=C-REF(C,5);
//定义成交量加权为VWM:等于当日成交量*MOMVALUE的20日加权平均
VWM:=EMA(VOL*MOMVALUE,20);
//定义TRUEHIGH1:等于如果最高价大于上一根收盘,TRUEHIGH1等于最高价,否则等于上一根收盘价
TRUEHIGH1:=IF(HIGH>REF(C,1),HIGH,REF(C,1));
//定义TRUELOW1:等于如果最低价小于上一根收盘,TRUELOW1等于最低价,否则等于上一根收盘价
TRUELOW1:=IF(LOW<=REF(C,1),LOW,REF(C,1));
//定义TRUERANGE1:等于如果是最后一根K线,TRUERANGE1等于最高价-最低价,否则等于
TRUERANGE1:=IF(ISLASTBAR,H-L,TRUEHIGH1-TRUELOW1);TRUEHIGH1-TRUELOW1
//定义波动率AATR:等于TRUERANGE1的5日均价
AATR:=MA(TRUERANGE1,5);
//VWM上穿零轴定义多头势  
BULLSETUP:=CROSS(VWM,0);
//VWM下穿零轴定义空头势
BEARSETUP:=CROSS(0,VWM);
//LOOP2为循环条件函数 意思是若从第一根K线开始并且BULLSETUP条件成立,则返回0,否则返回REF(LSETUP,1)+1,也就是计算多头势头到当前的周期数
LSETUP:=LOOP2(BARPOS=1||BULLSETUP,0,REF(LSETUP,1)+1);
//定义LEPRICE:等于满足BULLSETUP成立时的收盘价
LEPRICE:=VALUEWHEN(BULLSETUP,C);
//空头势开始计数并记录当前价格(参考LSETUP的描述)
SSETUP:=LOOP2(BARPOS=1||BEARSETUP,0,REF(SSETUP,1)+1);
//定义SEPRICE:等于满足BEARSETUP成立时的收盘价
SEPRICE:=VALUEWHEN(BEARSETUP,C);

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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2021/2/4 14:36:23    Post IP:58.246.57.26[只看该作者]

就上面那样你试下呢,c>o就是条件,a就是最后计算的结果

你在图上对比下呢,先不要想着直接策略转,先看这个效果是否一样


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


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

 variable:a:=0,x:=0;

temp1:=ref(a,1)+1;
if BARPOS=1 or BULLSETUP then a:=0;
if not(BARPOS=1||BULLSETUP) then a:=temp1;
LSETUP:a


temp2:=ref(x,1)+1;
if BARPOS=1 or BEARSETUP then x:=0;
if not(BBARPOS=1 or BEARSETUP) then x:=temp;
SSETUP:x;

你自己整合进去吧。


命数如织,当如磐石。
 回到顶部