以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 关于逐k线下的逻辑问题 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=163540) |
-- 作者:jayhaha580 -- 发布时间:2018/5/20 19:48:30 -- 关于逐k线下的逻辑问题 你好,我想请教一下,以下这个公式为什么能成立 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 -- 发布时间:2018/5/21 8:40:09 -- 你可以直接在k线上输出你的条件的因子项,在成立位置看结果。
|
-- 作者:jayhaha580 -- 发布时间:2018/5/21 9:29:25 -- 好的,我按照你的方法,加了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 -- 发布时间:2018/5/21 9:32:03 -- ‘:’是定义和赋值,你前面已经定义了CHM, 后面不能再用对CHM使用‘:’了。 后面的CHM的赋值全部改成 用 ‘:=’ |
-- 作者:jayhaha580 -- 发布时间:2018/5/21 10:21:36 -- 好的,但是我全部改成"CHM:=",就不能在图表上显示位置了呀,这就搞不清楚开始那个问题:CHM到赋值流程到底是怎么样的。 |
-- 作者:FireScript -- 发布时间:2018/5/21 10:32:40 -- CHM:0; IF RSI1>80 THEN CHM:=1,COLORRED,NOAXIS; IF RSI1<20 THEN CHM:=2; 第一次定义的时候 用 “:” 后面的用 ‘:=’就可以了。 |
-- 作者:jayhaha580 -- 发布时间:2018/5/21 13:34:48 -- 突然想到,回到最初的问题,我想请教一下,当逐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 -- 发布时间:2018/5/21 13:53:49 -- 会有这种情况的。但是可以在你的判断里面进行一下处理,保证CHM在任何情况下都有赋值。你原先那个如果RSI1 在[20,80]直接那就没有赋值了。 |