|
本帖最后由 microzb 于 2019-9-14 23:18 编辑
二、趋势线的数学原理:
如下所示,如何计算趋势线呢?下面进行讨论。计算原理如下:
1、第一步:计算K线数目
首先,计算出该图表(屏幕)上的K线总数,使用窗口函数中“WindowBarsPerChart()”进行计算。即:
K线总数(M):M= WindowBarsPerChart();
2、 第二步:求该K线中的最高价位置与最低价位置
根据K线数目,使用时间序列图表数据函数,求出最高价、最低位位置。即:
最低价位置(A):A= iLowest(NULL,0,MODE_LOW,M,0);
最高价位置(B):B= iHighest(NULL,0,MODE_HIGH,M,0);
3、 第三步:判断趋势是上升或者下降
根据最高价位置与最低价位置进行判断大小,数值大者,距当前K线越远;数值小者,则离当前K线距离越近。
当:A>B时,代表市场处于先低后高走势,属于上升趋势;
当:A<B时,代表市场处于先高后低走势,属于下降趋势。
4、第四步:根据上升或下降趋势计算基线(校正计算)
根据上升与下降趋结构,分别计算出相应的基准线。
A)当市场=上升时,计算波谷(最低价)基线:
低点位置X1:X1=A;低点的低价Y1:Y1=Low[A];
高点位置X2:X2=B;高点的低价Y2:Y2=Low[B];B)当市场=下跌时,计算波峰(最高价)基线:
高点位置X1:X1=B;高点的高价Y1:Y1=High[B];
低点位置X2:X2=A;低点的高价Y2:Y2=High[A];说明:
一般来说,直接用高点的高价与低点的低价进行连线也可,其产生的误差不是很大,也可使用。但根据“道氏理论”关于趋势的定义,以及市场主力的成本线与利润
线而言,成本是控制的基础,而利润则随市而变。因此,成本线更重要于利润线。其中:
上升行情中,波谷值连线是主力的成本线,波峰连线是主力的利润线;在空头行情中,波峰则是空头主力的成本线,而波谷则是空头主力的利润线。
而且,在市场的趋势线理论中,凡上升趋势中下破趋势线,则市场反转;反之亦然。因此,成本线是市场的根本。
为了最大程度精确计算趋势线,因此,需要进行校正处理。并且,这种校正处理并不会给编程带来较大的麻烦,也不会导致计算机内存的占用。因此,这里进行校正处理。如下图所示:
5、第五步:根据基线,计算最高价与最低价区间内的价差,并存入数组P[ ]中。
峰谷区间长度(L):L=MathAbs(B-A); //取绝对值,即相距L根K线
A)当为上升趋势:
直线斜率(R):R=(Low[B]-Low[A])/L; //两点之间的斜率
计算每根K线最低价与趋势基线之移动差值(P[ ]):
差值(P):P[N]= (Low[B]-N*R)- Low[N A]
其中:N=1-L
计算数组内的最大值位置X3:
|
|