位置

  • 反向推算KDJ推演全程(附公式源码)


    检索全网,尚未有反推kdj方案,双节之际,公布【 反向推算kdJ---推演全程 (附公式源码)】.
    由于价量乃为指标之母,亦即先有股价、成交量,始有指标的产生,亦称为“因果关系”,
    反向推算的意义在于“倒果为因”,将指标的预估值,反推回k线做预先预估。如此将可以
    于明日便于了解指标进入”高档区”、”多空分界”、”低档区”的预估,同时亦可采用
    这种观念,研判多头行情或空头行情之支撑区或压力区。


    <<如何实现KDJ的J值=50时候对应价格的输出?>>
    一般情况下指标显示的都是o、p、h、l几个已经固定的价格所计算出来的对应的值,我想知道
    当盘中kdj的j值为确定值(比如50)时候对应的价格,怎么把它输出呢?


    所涉问题是反向推算,即以KDJ中的J为已知数,从而求出公式中的C的值.


    n:=9;m1:=3;m2:=3;
    RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
    K:=SMA(RSV,M1,1);D:=SMA(k,M2,1);J:=3*K-2*D;

    以上是KDJ技术指标的原码及默认参数,关闭KDJ三线的输出.


    {=========去参数推演全程==========================}
    我们知道
    SMA(X,N,M),求X的N日移动平均,M为权重。
    算法: 若Y=SMA(X,N,M)
    则 Y=[M*X+(N-M)*Y')]/N,其中Y'表示上一周期Y值,N必须大于M。

    为了方便推演,把参数直接用m1=3;m2=3数值计算.根据以上数学式,
    则:k:=SMA(RSV,M1,1)即
    k:=SMA(rsv,3,1);
    可转化成
    k1:1/3*rsv+ref(k,1)/3*2;

    同样道理
    D:=SMA(k,3,1);
    可转化成
    d1:1/3*k+ref(d,1)/3*2;

    J:=3*K-2*D;
    可写成
    Jj:3*K1-2*D1;

    以上的k1,d1,jj等同于原式中的k,d,j值.
    把k1,d1代入jj项(为了叙述方便,jj用小序号标注,其值相等)
    则jj项可转化成

    Jd0:=3*(1/3*rsv+ref(k,1)/3*2)-2*(1/3*k+ref(d,1)/3*2);
    Jd1:=3*(1/3*rsv+ref(k,1)/3*2)-2/3*k-4/3*ref(d,1);             (去括号)
    jd2:=rsv+2*ref(k,1)-2/3*k-4/3*ref(d,1);                       (去括号,移项)
    jd3:=rsv+2*ref(k,1)-2/3*(1/3*rsv+ref(k,1)/3*2)-4/3*ref(d,1);  (把K代入上式)
    jd4:=rsv+2*ref(k,1)-2/3*(1/3*rsv+2/3*ref(k,1))-4/3*ref(d,1);  (化简)
    jd5:=rsv+2*ref(k,1)-2/9*rsv-4/9*ref(k,1)-4/3*ref(d,1);        (去括号)
    jd6:=rsv-2/9*rsv+2*ref(k,1)-4/9*ref(k,1)-4/3*ref(d,1);        (移项)
    jd7:=7/9*rsv+14/9*ref(k,1)-4/3*ref(d,1);                      (合并同类项)

    至此完成含未知数的rsv算术化简,jd7数值依然等于原公式中的j值.

    令j11=jd7;下面把上式置换位置,

    7/9*rsv:=j11-14/9*ref(k,1)+4/3*ref(d,1);                      (置换)
    rsv:=9/7*j11-2*ref(k,1)+12/7*ref(d,1);                        (化简)


    rsv:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))
    代入上式并化简后得
    (CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N)):=(9/7*j11-2*ref(k,1)+12/7*ref(d,1))/100;

    化简后得
    CLOSE-LLV(LOW,N):=((9/7*j11-2*ref(k,1)+12/7*ref(d,1))/100)*(HHV(HIGH,N)-LLV(LOW,N));

    令xxx等于所求的CLOSE,上式演化成
    xxx:=((9/7*j11-2*ref(k,1)+12/7*ref(d,1))/100)*(HHV(HIGH,N)-LLV(LOW,N))+LLV(LOW,N);

    至此所求的CLOSE即xxx己由j值来控制.大功告成!推演完毕!

    ================================================================

    {========反推公式源码============}
    {----试验参数(j1)说明:-----}
    {j1=-50读入即时j值,反推值是即时c值;
    j1=-49读入昨日j值,可知j值拐头时的价格;
    j1输入自定义值时,计算J线到达该值的临界值}

    input:j1(-50,-50,120);
    n:=9;m1:=3;m2:=3;
    RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
    K:=SMA(RSV,M1,1);
    D:=SMA(K,M2,1);
    J:=3*K-2*D;
    {-----线值------------}
    k1:1/3*rsv+ref(k,1)/3*2;
    d1:1/3*k+ref(d,1)/3*2;
    Jj:3*K1-2*D1;
    {-----显示-------------}
    j11:=j;j昨:=ref(j,1);jx:=if(j1=-50,j11,if(j1=-49,j昨,j1));
    xxx:((9/7*jx-2*ref(k,1)+12/7*ref(d,1))/100)*(HHV(HIGH,9)-LLV(LOW,9))+LLV(LOW,9),colorred;
    {DRAWTEXTREL(5 ,5 ,'设J='+NUMTOSTRN(jx,2)+' 所演股价: '+NUMTOSTRN(xxx ,2));}
    IF j1=-50 and barstatus=2 THEN BEGIN DRAWTEXTREL(2,5,'设J='+NUMTOSTRN(jx,2)+' 所演即时股价: '+NUMTOSTRN(xxx ,2)),colorc0c0c0;end;
    IF j1=-49 and barstatus=2 THEN BEGIN DRAWTEXTREL(2,5,'设J='+NUMTOSTRN(jx,2)+' J线拐头股价: '+NUMTOSTRN(xxx ,2)),colorff88ff;end;
    IF j1>-49 and barstatus=2 THEN BEGIN DRAWTEXTREL(2,5,'设J='+NUMTOSTRN(jx,2)+' J线达标临界股价: '+NUMTOSTRN(xxx ,2)),color00ff00;end;

    2023年9月20日
  • 通达信如何使用分时指标的教程

    找到通达信软件的安装位置,打开“T0002”文件夹,把里面“Zstzb=macd”这一句中的MacD修改为自己要用的指标名称就OK啦。

    2023年9月20日
  • 量能平台的修改,条件在文章中

    编写条件:编写方法:
    t1:=hhvbars(v,30);
    cc1:ref(c,t1) linethick;
    cc1:=cc1[datacount];
    partline(barpos>=datacount-30+1,cc1);

    公式技巧 2023年9月20日
  • 通达信与飞狐可相互替换的函数

    1. DRAWNULL-----通达信:
    DRAWNULL 无效数
    返回无效数。
    用法: DRAWNULL
    例如: IF(CLOSE>REF(CLOSE,1),CLOSE,DRAWNULL) 表示下跌时分析图上不画线,反之上涨的话,就要划线。

    公式教程 2023年9月20日
  • 飞狐股票软件使用技巧

    一、用“形态分析”找到上涨前的股票我们在分析股票的时候,都会听到周围的人不断说<三角型整理><V型反转><M头><W底>等一系列形态,但是仔细想想就会知道,我们所说的所谓形态其实是一个抽象的概念,同样叫W底,会有N种不同的样子,哪一种更具有上涨的潜力呢?
    我们知道技术分析有三大假设,其中之一是历史会重演。形态也不例外。一支股票经过了一段时间的下跌后,开始反弹,遇阻后回落,然后被主力再次拉起,那么这个过程就走出了一个W的形态,随后该股一路上扬,成为了大家瞩目的明星。我们看一下K线图就会发现,在它上涨前的形态是很值得研究的,好象一个人成功了以后会有很多人去研究他的生平一样,我们研究明星股拉升前的形态也是有必要的,因为历史会重演。
    中国股市不能作空,所以有一个共同的特色,就是量很关键,光研究K线形态还不够,还要研究量能的情况,这就给形态赋予了新的含义,那就是量的形态。
    飞狐的形态分析功能不仅可以分析一段时间K线形态的吻合度,还能分析在此区间内量能的符合度,这样我们用形态分析功能,把明星股上涨前期形态进行储存,再用这个形态去找现在与谁的形态更接近。这就有点象我们通常所说的<克隆>,扫描出的股票会按吻合度进行排序,看看最符合目标形态的股票,也许他就会成为日后第二个明星。

    公式教程 2023年9月20日
  • 简单介绍一下未来数据

    一每当股价涨跌幅度超过指定界限并发生趋势方向变化时, 之字转向将产生一个转折点,将所有转向点用线段连接就成为之字转向。由于股价涨跌幅度的不确定性,就产生了不断地对“有限历史”股价趋势的纠正,以及对未来判断的不确定性,这样就产生了这种转向的不确定性,含有不确定性的判断的指标或公式,我们称之为含未来函数的指标或公式。

    公式教程 2023年9月19日
  • 识别股票指标公式是否含未来数据的方法

    1、含有未来数据指标的基本特征是买卖信号不定,常常是某日发出了买入信号,第二日如果继续下跌该信号就会消失,这也正是该指标的危害所在,从历史上看信号很准,但应用时切不可信以为真。这个特征也是验证一个指标是否含有未来数据的基本方法。

    公式教程 2023年9月19日
  • 成本函数 COST和WINNER

    成本函数,COST和WINNER
    成本分布原理:
    投资者一般对股票平均成本感兴趣,移动平均MA、指数平滑移动平均EMA等算法都是计算股票平均成本的算法,但是这些算法没有考虑到成交量对平均成本的影响,例如,假设最近一段时间某股票在10-20元间波动,其平均价MA为15元,但观察其成交量发现在20元附近成交量巨大,而在10元附近成交量稀少,我们认为其平均成本显然应该比15元更高才合理,为此我们可以引入换手率移动平均概念;以当天的换手率作为平滑因子计算指数平滑移动平均,用公式来表示为:
    Y:=(1-A)*Y’+A*C
    A表示换手率,C表示收盘价,Y和Y’分别表示今日平均价和昨日平均价。
    加权平均的计算方法是:Zax,其中x为待统计数值,a为x占总量的比例,当日的平均成本Y可以表示为两个部分,当日买入的和以前买入的,当日买入的成本为收盘价C,以前买入的成本为Y’,而当日买入的占总流通盘的比例为换手率A,而以前买入的则占1-A,因此今日的加权平均成本为(1- A)*Y’+A*C,因此,用这个公式更能反映股票的真实成本。
    但现在还有两个问题需要解决,其一使用收盘价不能真实表示当日成本,其二是不能了解整个成本的分布情况,即我们只知道平均成本是多少,不知道整个持仓的成本分布情况,而这个分布情况有时是非常有用的。例如某股票的所有持仓成本均为10元,而另一个股票则由50%以5元买入,50%以15元买入,这两只股票均价都是10元,但其表现必然有很大差别。

    公式教程 2023年9月19日
  • 通达信指标公式编写教程 第5节常用技术指标

    5.1 平滑异同移动平均线MACD

    平滑异同移动平均线(Moving Average Convergence and Diver-gence )类似于移动平均线指标,所不同的是对指数要进行平滑运算处理。 macd 在应用上应先行计算出快速(12 日)的移动平均数值与慢速(26 日)移动平均数值,以此两个数值,作为测量两者(快速与慢速线)间的「差离值」依据。所谓「差离值」(DIF)即 12 日 EMA 数值减去 26EMA 数值。因此,在持续的涨势中,12 日 EMA 在 26 日EMA 之上。其间的正差离值(+DIF)会愈来愈大。反之在跌势中,差离值可能变负(-DIF)也愈来愈大。至于行情开始回转,正或负差离值要缩小到怎样的程度,才真正是行情反转的讯号,MacD 的反转讯号界定为「差离值」的 9 日移动平均值(9 日 EMA)。在 MACD 的指数平滑移动平均线计算法则,都分别加重最近一日的份量权数。
    12 日 EMA 的计算:
    EMA12 =(前一日 EMA12×11/13+今日收盘价×2/13)。
    26 日 EMA 的计算:
    EMA26 =(前一日 EMA26×25/27+今日收盘×2/27)。
    差离值(DIF) 的计算:
    DIF =EMA12-EMA26
    然后再根据差离值计算其 9 日的平滑异动移动平均差离值 MACD。
    MACD=前一日 MACD×8/10+今日 DIF×2/10。
    计算出的 DIF 与 MACD 均为正或负值,因而形成在 0 轴上下移动的两条快速与慢速线,为了方便判断,亦可用 DIF 减去 MACD 用以绘制柱图。至于计算移动周期,不同的商品仍有不同的日数。在外汇市场上有人使用 25 日与 50 日 EMA来计算其间的差离值。
    研判技巧:
    1. DIF 值与 MACD 值均在 X 轴线上、向上移动,市场为牛市,反之为熊市。
    2. 在 X 轴之上,当 DIF 值向上穿过 MACD 值时为买入信号。 在 X 轴之下发生这种交叉仅适合空头者平仓。
    3. 在 X 轴之下,当 DIF 值向下穿过 MACD 值时为卖出信号。 在 X 轴之上发生这种交叉仅适合多头者平仓。
    4. 背离信号。当指数曲线的走势向上,而 DIF、MACD 曲线走势与之背道而弛,则发生大势即将转跌的信号。
    当 dmi 中的 ADX 指示行情处于盘整或者行情幅度太小时,避免采用 MACD 交易。
    #p#
    5.2 趋向指标DMI

    趋向指标(Directional Movement Index)的基本原理在于探求价格在上升及下降过程中的「均衡点」,亦即供求关系由紧张状况,通过价格的变化而达致“和谐”,然后再因价格供求的互为影响下,再导致紧张的循环不息过程。DMI可以产生指标交叉的买卖讯号,可以辨别行情是否发动。市场上为数众多的技术指标,都必须搭配 DMI 使用。 不是凭藉主观与直觉来判断买方卖方的两种力量,而是加以科学化。

    一、先求得±DM(趋向变动值)
    + -项仅代表上升下降不代表正负值,一日中的趋向变动值,只能在两者之间取其最大的数值,而不能并取。
    +DM = 今日最高价 - 昨日最高价(取正值,否则为 0)
    -DM = 今日最低价 - 昨日最低价(取正值,否则为 0)

    二、TR,真正波幅,取最大的变动值(三选一)
    1. H-L 当日最高价减去当日最低价
    2. H-PC 当日最高价 - 昨日收盘价的差距
    3. L-PC 当日最低价 - 昨日收盘价的差距

    公式教程 2023年9月19日
  • 通达信指标公式编写教程 第4节系统函数说明

    第4节 系统函数说明
    通达信 的公式编写系统用了多类的函数,以达到快速提取数据和提高运算能力,同时简化计算过程的要求。因此在不同类型的函数我们赋予了相当精确的含义。有的函数定义为行情数据提取函数,那么它的功能就是从静态历史上的行情数据或者动态及时盘中数据提取我们所需要的数据以方便以后的分析和计算。有的函数定义为运算函数,是考虑到一些复杂的数学计算过程过于冗长,从而设计的简化运算函数等等。在以下的几节当中,我们将会分别介绍一共 10 类的函数。
    一、行情函数 (OPEN、CLOSE、HIGH、LOW、vol 等)
    二、大盘函数(INDEXA、INDEXC、INDEXH 等)
    三、常数函数(包括财务函数和动态行情函数)
    四、时间函数 (DATE、DAY、TIME 等)
    五、引用函数(MA、HHV、COUNT、REF、SUM、SMA 等)
    六、逻辑算术函数(IF、crOSS、NOT 等)
    七、数学函数(MAX、MIN、LN、三角函数等)
    八、统计函数(STD、VAR、AVEDEV 等)
    九、指标函数(PEAK、SAR、COSET、WINNER、zig 等)
    十、绘图函数(DRAWLINE、DRAWTEXT 等)
    十一、横向统计函数

    公式教程 2023年9月19日