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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 关于逐k线下的逻辑问题

   

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


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

主题:关于逐k线下的逻辑问题

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


加好友 发短信
等级:论坛游侠 帖子:545 积分:0 威望:0 精华:0 注册:2018/4/26 18:02:18
关于逐k线下的逻辑问题  发帖心情 Post By:2018/5/20 19:48:30    Post IP:119.123.33.179[只看该作者]

你好,我想请教一下,以下这个公式为什么能成立
IF RSI1>80 THEN CHM:=1;
IF RSI1<20 THEN CHM:=2;

IF CHM=1 AND C>MAVALUE AND REF(C,1)>REF(MAVALUE,1) THEN CHM:=3;
IF CHM=2 AND C<MAVALUE AND REF(C,1)<REF(MAVALUE,1) THEN CHM:=4;

IF CHM=3 AND C<MAVALUE AND REF(C,1)>REF(MAVALUE,1) THEN CHM:=0;
IF CHM=4 AND C>MAVALUE AND REF(C,1)<REF(MAVALUE,1) THEN CHM:=0;

我的理解是逐k线模式下,公式将每个k线解释一次,而CHM 并没有标记为全局变量,所以当前的k线下CHM=1时的C>MAVALUE和CHM=3时的C<MAVALUE冲突,因为是同一k线下。
但是公式运行是成功的。我想请教一下我的理解在哪个方面出错了。谢谢老师

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


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

你可以直接在k线上输出你的条件的因子项,在成立位置看结果。

 



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


加好友 发短信
等级:论坛游侠 帖子:545 积分:0 威望:0 精华:0 注册:2018/4/26 18:02:18
  发帖心情 Post By:2018/5/21 9:29:25    Post IP:183.11.37.144[只看该作者]

好的,我按照你的方法,加了color来显示图标,只是针对rsi1>80的情况,改成了以下:
IF RSI1>80 THEN CHM:1,COLORRED,NOAXIS;
IF RSI1<20 THEN CHM:=2;

IF CHM=1 AND C>MAVALUE AND REF(C,1)>REF(MAVALUE,1) AND REF(C,2)<REF(MAVALUE,2)  THEN CHM:3,COLORYELLOW,NOAXIS;
IF CHM=2 AND C<MAVALUE AND REF(C,1)<REF(MAVALUE,1) AND REF(C,2)>REF(MAVALUE,2)  THEN CHM:=4;

IF CHM=3 AND C<MAVALUE AND REF(C,1)>REF(MAVALUE,1) THEN CHM:0,COLORGREEN,NOAXIS;
IF CHM=4 AND C>MAVALUE AND REF(C,1)<REF(MAVALUE,1) THEN CHM:=0;

结果显示:

编译错误,变量名‘CHM’重复。

为什么会这样呢?之前是一直稳定的。

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


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

 ‘:’是定义和赋值,你前面已经定义了CHM,  后面不能再用对CHM使用‘:’了。 后面的CHM的赋值全部改成 用 ‘:=’


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


加好友 发短信
等级:论坛游侠 帖子:545 积分:0 威望:0 精华:0 注册:2018/4/26 18:02:18
  发帖心情 Post By:2018/5/21 10:21:36    Post IP:183.11.37.144[只看该作者]

好的,但是我全部改成"CHM:=",就不能在图表上显示位置了呀,这就搞不清楚开始那个问题:CHM到赋值流程到底是怎么样的。

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


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

CHM:0;
IF RSI1>80 THEN CHM:=1,COLORRED,NOAXIS;
IF RSI1<20 THEN CHM:=2;


第一次定义的时候 用 “:” 后面的用 ‘:=’就可以了。


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


加好友 发短信
等级:论坛游侠 帖子:545 积分:0 威望:0 精华:0 注册:2018/4/26 18:02:18
  发帖心情 Post By:2018/5/21 13:34:48    Post IP:183.11.37.144[只看该作者]

突然想到,回到最初的问题,我想请教一下,当逐k线模式情况下,在前面没有定义的变量,是否会按照上一根k线遗留下来的变量来进行赋值:
就像之前的公式:
IF CHM=1 AND C>MAVALUE AND REF(C,1)>REF(MAVALUE,1)  THEN CHM:=3,coloergreen,noaxis;
IF CHM=2 AND C<MAVALUE AND REF(C,1)<REF(MAVALUE,1) THEN CHM:=4;

IF CHM=3 AND C<MAVALUE AND REF(C,1)>REF(MAVALUE,1) THEN CHM:=0;
IF CHM=4 AND C>MAVALUE AND REF(C,1)<REF(MAVALUE,1) THEN CHM:=0;

中的,CHM=3时,是否是公式在上一根k线留下的变量。

毕竟我测评过,CHM=0或CHM=3的不同情况下,对于交易结果都是不一样的。

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/5/21 13:53:49    Post IP:180.169.30.6[只看该作者]

 会有这种情况的。但是可以在你的判断里面进行一下处理,保证CHM在任何情况下都有赋值。你原先那个如果RSI1 在[20,80]直接那就没有赋值了。



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