金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 1652|回复: 11

用IF函数进行赋值时,金字塔的运行逻辑是怎样的?

[复制链接]

6

主题

18

帖子

18

积分

Rank: 1

等级: 新手上路

注册:
2025-1-7
曾用名:
发表于 2025-1-7 19:15 | 显示全部楼层 |阅读模式
请问用IF函数进行赋值时,金字塔的运行逻辑是怎样的?
比如:

A:=IF(CLOSE>10,HHV(HIGH,20),LLV(LOW,30));

请问:
1. 当条件CLOSE>10成立时,返回值 HHV(HIGH,20),此时会对LLV(LOW,30)的值进行计算吗?
   反之当条件CLOSE>10不成立时,返回值 LLV(LOW,30),此时会对HHV(HIGH,20)的值进行计算吗?
   即IF(A>0,B,C),当条件成立时是只对满足条件的B进行计算,还是要同时对B,C都进行计算?如果要对B,C都计算是不是降低运行效率?特别是B,C语句都很复杂时。

2. 有没有当条件成立时只对满足条件的B进行计算的IF语句? IF  THEN 语句除外,因为逐K模式下很多函数都不能用于IF  THEN 语句,即使将B,C提到IF  THEN 前面先计算出来应该也会影响效率。

3. 如果没有请问在逐K模式下该如何解决?
非常感谢!

回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-1-8 08:35 | 显示全部楼层
等价于
bb:HHV(HIGH,20);
ccLLV(LOW,30);
A:=IF(CLOSE>10,bb,cc);

1.这些函数都会计算。这些函数都是序列计算的。要求每根k上都要完成计算过程。这是底层运行机制的要求。
2.你只能计算完毕后,在if THEN 条件语句中对变量进行判断。

效率影响微乎其微。如果都不能完整完成函数自身的序列计算的情况下,考虑所谓的效率没有任何意义。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

18

帖子

18

积分

Rank: 1

等级: 新手上路

注册:
2025-1-7
曾用名:
 楼主| 发表于 2025-1-8 10:25 | 显示全部楼层
另外:
语句  IF  A>0  THEN  B:=C ;
语句  B:= IF(A>0,C,DRAWNULL);

请问:1.两语句相比较有什么区别?哪个语句运行速度更快?
      2.金字塔有IFC(A>0,B,C) 这样的函数吗?即根据条件有选择性的只对B或C在条件满足时执行特定的表达式,减少计算量。
谢谢!
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-1-8 10:29 | 显示全部楼层
1321 发表于 2025-1-8 10:25
另外:
语句  IF  A>0  THEN  B:=C ;
语句  B:= IF(A>0,C,DRAWNULL);

效率一样的。没有区别。只是形式不同
前者是if判断语句,后者是if函数。
2.没有。pel中所有的表达式都不需要逐根计算。不支持选择性执行
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-8 10:29 | 显示全部楼层
其实没区别的

第二个这个没有的,你就正常写程序就行了,没有什么好的减少计算的方式的
一般策略不可能复杂到需要你去优化的程度的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

18

帖子

18

积分

Rank: 1

等级: 新手上路

注册:
2025-1-7
曾用名:
 楼主| 发表于 2025-1-8 10:43 | 显示全部楼层
按理讲语句 IF  A>0  THEN  B:=C ;的运行速度应该要快些对不?因为只有当满足A>0的K线才会执行B:=C,其它的K线直接跳过。而语句B:= IF(A>0,C,DRAWNULL);每根K线都要去执行一遍对不?请问金字塔是这样个运行逻辑吗?谢谢!
回复

使用道具 举报

44

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
发表于 2025-1-8 10:45 | 显示全部楼层
是的
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

18

帖子

18

积分

Rank: 1

等级: 新手上路

注册:
2025-1-7
曾用名:
 楼主| 发表于 2025-1-8 10:48 | 显示全部楼层
谢谢!
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2025-1-8 10:49 | 显示全部楼层
1321 发表于 2025-1-8 10:43
按理讲语句 IF  A>0  THEN  B:=C ;的运行速度应该要快些对不?因为只有当满足A>0的K线才会执行B:=C,其它的 ...

if函数内部也是这样的。只不过if函数是按照if  else的结构处理的。


没有必要刻意追求效率
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

18

帖子

18

积分

Rank: 1

等级: 新手上路

注册:
2025-1-7
曾用名:
 楼主| 发表于 2025-1-8 11:24 | 显示全部楼层
另外:
语句   B:=HHV(H,20);
语句   B:= IF(CLOSE>10, HHV(H,20),DRAWNULL);

请问:1.在一段程序中假如分别用上面两个语句进行赋值,用哪个语句程序的运行速度更快?主要是引用的K线较多,程序条件多运行缓慢。
      2.COUNT(A>B,20) 函数如果要用在IF  THEN 语句中,除了提前在IF  THEN语句前计算外,能不能用数组的方式解决? 程序该怎样写呢?运行速度和提前在IF  THEN语句前计算相比较哪个更快?
谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-7-21 05:42 , Processed in 0.178397 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表