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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 请教逻辑写法(循环语句)

   

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


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

主题:请教逻辑写法(循环语句)

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


加好友 发短信
等级:新手上路 帖子:19 积分:0 威望:0 精华:0 注册:2015/2/28 21:25:51
  发帖心情 Post By:2015/11/30 19:12:36    Post IP:27.29.149.202[只看该作者]

以下是引用wenarm在2015/11/30 15:53:42的发言:

30分高点:MIN(H,ref(h,1)),COLORGREEN;//30分高点中的最小值
30分低点:MAX(L,ref(l,1)),COLORGREEN;//30分低点中的最大值

//***********************************************

//上述的条件单独创建一个公式文件,在使用STKINDI()去引用。

//***********************************************

30分低点:STKINDI();

30分高点:STKINDI();

30分重合判断:if(30分低点<30分高点,1,0),NODRAW;//=1时有重合


a:BARSLAST(30分重合判断=0)+1;//计算重合的根数。
hh:HHV(HIGH,a);
ll:llv(low,a);

试过了,跟我目测判断的结果差别很大。无法使用。


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


加好友 发短信
等级:新手上路 帖子:10 积分:0 威望:0 精华:0 注册:2015/11/5 9:45:56
  发帖心情 Post By:2015/11/30 19:30:40    Post IP:60.24.26.124[只看该作者]

这个是中枢的问题,比较难弄

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/11/30 20:06:15    Post IP:183.131.104.169[只看该作者]

之前的思路有问题。你这个需求,没办法使用循环,循环次数无法控制。
需要使用递归的方式先获取重合数量N。才能挨个进行ref(h,n-1)....ref(h,1),h;
明天试试看还有别的方法没


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
zyghost119
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:19 积分:0 威望:0 精华:0 注册:2015/2/28 21:25:51
  发帖心情 Post By:2015/11/30 23:07:49    Post IP:27.29.149.202[只看该作者]

变通了一下写法,前面3根K线重合判断完毕以后,再往前追溯一根,判断有无重合,然后再计算重合K线的数量,但是下面的写法,提示我变量N重复,请教一下怎么修改?

if 30CHPD1>0 THEN N:3;
if 30CHPD2>0 THEN n:4;
if 30CHPD3>0 THEN n:5;
if 30CHPD4>0 THEN n:6;
if 30CHPD5>0 THEN n:7;
if 30CHPD6>0 THEN n:8;
if 30CHPD7>0 THEN n:9;
if 30CHPD8>0 THEN n:10;


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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2015/12/1 8:07:24    Post IP:58.246.57.26[只看该作者]

if 30CHPD1>0 THEN N:3;
if 30CHPD2>0 THEN n:=4;

对变量二次赋值时,采用:=的方式



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
zyghost119
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:19 积分:0 威望:0 精华:0 注册:2015/2/28 21:25:51
  发帖心情 Post By:2015/12/1 21:54:50    Post IP:27.29.158.83[只看该作者]

以下是引用wenarm在2015/12/1 8:07:24的发言:

if 30CHPD1>0 THEN N:3;
if 30CHPD2>0 THEN n:=4;

对变量二次赋值时,采用:=的方式

if 30CHPD1>0 THEN N:=3;
if 30CHPD2>0 THEN n:=4;
if 30CHPD3>0 THEN n:=5;
if 30CHPD4>0 THEN n:=6;
if 30CHPD5>0 THEN n:=7;
if 30CHPD6>0 THEN n:=8;
if 30CHPD7>0 THEN n:=9;
if 30CHPD8>0 THEN n:=10;

 

这样赋值的话,那最后的N值应该是多少?加了=号,在哪里可以看?


 回到顶部
总数 16 上一页 1 2