加入if语句前后显示不一样
代码本意是获取前10根的最高点,源码如下:VAR3 = Highest(H,10);
PlotNumeric("VAR_H1=",(VAR3));//输出前10根的最高点曲线 这里没问题 输出曲线VAR_H1
但是我加入后面这些语句(意思是金叉后 输出前10根的曲线)
GoldCross = NthCon(CrossOver(MA5,MA6),1);
DeaCross = NthCon(CrossOver(MA6,MA5),1);
If(GoldCross < DeaCross)
{
VAR3 = Highest(H,10);
}
PlotNumeric("VAR_H2=",(VAR3));//输出曲线VAR_H2
这时就会发现VAR_H2与之前的VAR_H1不一样。 但是理论上我都是输出前10根曲线的高点(不论是否加if语句),为啥结果不一样呢(这里不一样指的是金叉后不一样,加if语句也只是判断金叉后重新输出曲线)?
观察到的情况是 加上if语句后输出的曲线是“金叉后10根的最高点”(也就是金叉那根是计数的起点),而不是从本根算起的10根的最高点。
请帮忙解惑下,谢谢。
或者我要怎么求金叉时前10根的最高点?? 条件语句中计算序列变量会出错。下面语句应移出if()。
VAR3 = Highest(H,10); 那请问,我如果就是想求金叉前10根的最高点? 不用if语句要怎么写???;P
谢谢 还有就是我想求 前一个死叉,到现在这个金叉,这期间的最高点,要怎么写? 1、金叉前10根的最高点:Highest(High, 10);
2、前一个死叉,到现在这个金叉,这期间的最高点:
VAR3 = Highest(High, DeaCross-GoldCross);
If (GoldCross > DeaCross)
VAR3 = 0; // 可以赋任意值,以确保仅死叉在金叉前VAR3才有效 代码如下:
MA5=AverageFC(C,15);
MA6=AverageFC(C,30);
PlotNumeric("MA5=",(MA5));
PlotNumeric("MA6=",(MA6));
GoldCross = NthCon(CrossOver(MA5,MA6),1);
DeaCross = NthCon(CrossOver(MA6,MA5),1);
VAR3 = Highest(High, DeaCross-GoldCross);
Commentary("GoldCross="+Text(GoldCross));
Commentary("DeaCross="+Text(DeaCross));
PlotNumeric("VAR3=",(VAR3));
我想画出上一个死叉到这个金叉之间的最高点, 但是实际画出的却是金叉以后的最高点。(如图所示,如果是死叉到金叉之间的最高点,应该在那个圈中最高点才对。)
请帮忙看下是什么问题, 非常感谢。 下面方法可以解决:
NumericSeries VAR3;
VAR3 = Highest(High, DeaCross-GoldCross);
If(GoldCross > 0 and GoldCross < DeaCross)
VAR3 = VAR3;
非常感谢,测试了下,确实这个方法可以解决, 但是之前的方法为啥不行? 感觉逻辑上并没有什么问题吧。 我也没有太仔细研究,不知道为什么之前写的不行。
页:
[1]