首先做了一个通道,A,B分别是通道的上轨和下轨。
假设价格处于上涨趋势中,A,B也分别跟随价格上升,这时观察B值的变化,因为每一天的B值是不一样的,取当前的B值与前1期或几期的B值比较,在每个B值高点的位置画线,每次有新的B值高点时,则在新的B值高点的位置画线。如果新的B值比前面的B值低,则延续前面B值高点的位置画线,直至收盘价跌破B值的画线位置,这时改为观察A值的变化。观察A值时正好与B值相反。
在这里,当前的B值与前1期或几期的B值比较时,期间的周期是无法确定的。
画线是从新的B值高点所在周期的位置开始到下一个新的B值高点的前一个周期的位置,因为有新的B值高点后,就应重新开始画线了。
另外,在实际图形中,如果价格上涨,则只对下轨B值画线,如果价格下跌,则只对上轨A值画线。
1、价格处于上涨趋势 这句怎么判断是上涨趋势
2、A,B也分别跟随价格上升 这句怎么叫做上升
。。。。。。。。。。。。。。太多都要量化
1、例如你给出 当前K线收盘价大于上根K线收盘价x%个点位,并且持续M个周期符合上面描述,算作上涨趋势
这样的描述才是可以量化的东西,写代码必须用到精确是数字和明确的判断,不说明这些,代码书写人就无从下手,因为一个上涨趋势就有无数种理解,只有你给定了可以唯一的条件描述,这样才叫做量化~
对不起,我还是没有说清楚,其实“价格处于上涨趋势中,A,B也分别跟随价格上升”只是一个假设,可以不用考虑。
现在是已经有了确定的A,B,然后考虑当前A,B与前期A,B的值的大小,同时与当前收盘价做比较。我在编写时只是不知道该用哪个函数。
这样吧,我一点一点说吧,希望能说清楚。
比较当前周期A,B与前几期的A,B的值的大小,至于是前几个周期在这里不好确定,就是说,只要是B创新高,就在B的新高位置画线,只要A创新低,就在A的新低位置画线,没有创新高、新低的话,就延续前面已经确定的A,B的位置继续画线。
对上面的描述,应该使用哪些函数,能不能写的出来呢?或者是还需要哪些条件?
当前H,就用H表示
前30周期的新高,H30:HHV(HIGH,30);
不知道以下是否可以满足要求:
h30 := ref(hhv(high,30),1);
l30 := ref(llv(low,30),1);
high>h30 //当前周期H大于前30周期的最高
low<l30 //当前周期L小于前30周期的最低
谢谢小飞侠。
我下来重新考虑了一下,看看这样描述对不对:
1、已知通道上轨A和通道下轨B;
2、比较当前A与向前M周期中的A,看是否有新低A,求得最近的新低A,如果没有新低A,就取上一次的低点A。
3、比较当前B与向前M周期中的B,看是否有新高B,求得最近的新高B,如果没有新高B,就取上一次的高点B。
4、当收盘价上破低点A时,在高点B处画圆点。在接下来的价格波动中,如果收盘价没有下破高点B,则一直在高点B画圆点标记。如果有新的高点B,就在新的高点B处画圆点。
5、当收盘价下破高点B时,在低点A处画圆点。在接下来的价格波动中,如果收盘价没有上破低点A,则一直在低点A画圆点标记。如果有新的低点A,就在新的低点A处画圆点。
不知道这样是否说清楚了。
AA:=LLV(A,M);
BB:=HHV(B,M);
IF C>AA THEN BEGIN
DRAWICON(C>BB,B,1);
DRAWICON(B>REF(BB,1),B,1);
END
IF C<BB THEN BEGIN
DRAWICON(C<AA,A,1);
DRAWICON(A<REF(AA,1),A,1);
END
代码大概是这样的,但是不知道你的A和B到底是什么 ,所以你根据这个思路再修改修改吧