金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2187|回复: 7

请教valuewhen的问题

[复制链接]

17

主题

32

帖子

32

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
发表于 2024-2-17 23:08 | 显示全部楼层 |阅读模式

请问,我的is_ready  在ready3处值是1,然后aa条件为0,valuewhen应该不触发is_ready的修改,为什么在ready1处is_ready的值被改掉呢


截图3.png
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-2-18 08:55 | 显示全部楼层
valuewhen(...,0);
你第二个参数是0,代表去最近一次条件成立位置时的结果0 。自然是恒为0.
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

32

帖子

32

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2024-2-19 08:21 | 显示全部楼层
我的逻辑是这样的,
当满足了“做空解锁条件”时候,系统会进入is_ready=1的准备下单状态,然后价格到某个位置就可以下单了。
但其中我想加入一个条件,如果LOW低于某个值L1_KEEP-10,就取消准备交易的状态,让is_ready=0

这段代码在“LOW低于某个值L1_KEEP-10,取消准备交易”的地方出问题了,REF(L,1)<L1_KEEP-10为假,为什么is_ready:= VALUEWHEN( L<L1_KEEP-10,0);  会变为0呢

编辑4.png
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-2-19 08:50 | 显示全部楼层
is_ready:= VALUEWHEN( L<L1_KEEP-10,0);
这句话的is_ready就恒为0 。

你所谓的【if 做空解锁 or is_ready】本质上就是等价于【if 做空解锁 】

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

使用道具 举报

17

主题

32

帖子

32

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2024-2-19 17:04 | 显示全部楼层
技术006 发表于 2024-2-19 08:50
is_ready:= VALUEWHEN( L

我有一点不太理解,麻烦请看第一张图,is_ready3的时候取值是1,说明is_ready是赋值成功的。(当时不加is_ready:= VALUEWHEN( L<L1_KEEP-10,0) 这句的时候功能是好的)

然后我想问下这个VALUEWHEN的逻辑,VALUEWHEN我的理解是根据第一个参数的真假,如果真,取第二个参数的值,如果假保留变量的原值,对吧。

我的理解:在is_ready3:is_ready的这行,取值是1
然后is_ready:= VALUEWHEN( L<L1_KEEP-10,0)  因为L<L1_KEEP-10为假,应该取is_ready的原值 这个就应该是1啊,为什么时候0啊,是不是我对valuewhen有什么误解,麻烦解答一下,谢谢!
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-2-19 17:10 | 显示全部楼层
VALUEWHEN这个函数你单独建一个公式去调试。
aa:VALUEWHEN(BARPOS=10,0);//只要条件成立过一次,aa就是恒为0.在BARPOS小于10时,就是无效值。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

17

主题

32

帖子

32

积分

Rank: 1

等级: 新手上路

注册:
2021-6-2
曾用名:
 楼主| 发表于 2024-2-20 20:33 | 显示全部楼层
aa:=if(BARPOS=10,1,0);
aa:=VALUEWHEN(BARPOS=7 ,0);
bb:aa;

我测试了这段代码  结果后面的bb都是0了,这是为什么啊,第10根开始,aa应该等于1了,后面valuewhen的条件不会再被触发了,应该一直是1了呀。。。

我彻底懵了
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-2-20 21:43 | 显示全部楼层
本帖最后由 技术006 于 2024-2-20 21:46 编辑

第一行,只有在第10根位置上时aa才是1.其余都是0
第二行,valuewhen是得到最近一次条件成立时对应变量的结果,你的这句话在第7根k以后的k线上,找到的都是第7根k上对应的变量(参数2对应的结果),你这里填的是定值即0.
代码执行的顺序是从上到下,每次都是第二行吧0赋值给aa


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 03:33 , Processed in 0.100079 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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