股票配资首选网站 消失的指标:带反转确认的神奇九转
发布日期:2024-08-17 21:25    点击次数:60

股票配资首选网站 消失的指标:带反转确认的神奇九转

梨和柿子都是我们生活当中非常常见的水果,对于喜欢它们的人如蜜糖一样,对于不喜欢它们的人如砒霜一样,只能够说见仁见智。但是在古人俗语当中竟然有一句“男怕柿子,女怕梨”股票配资首选网站,那么这句话到底有什么含义呢?仔细分析,其中也蕴含着老祖宗的智慧。

我们在与人打交道的时候,总是知人知面不知心。

因为Tom DeMark的公司要求TradingView下架所有与他相关的指标和库函数,所以本猫发布的一些指标消失了。为了方便大家使用,本猫决定在这篇文章中编译这些指标之一,并提供一个无行号版本。

首先得了解一下这个被称为“带反转确认的神奇九转”的指标,它原名Tom DeMark Sequential (TDS),是很多股票软件内置的技术指标,但在使用前,你必须明白它的市场意义并确认是否适合你的交易风格。TDS采用了“在市场恐惧时买入,在市场贪婪时卖出”的左手交易理念。获利的前提在于对反转点的把握。因为DeMark相信市场在即将反转时会发出声音,我们要做的就是仔细倾听。

图片

但事情并非总是这样。首先,掌握反转的本质是买低卖高,也就是赚取世界上最难赚的那20%的钱。我们先不讨论这能不能准确实现。买低卖高只是众多开仓模式中的一种。将其部分概括将导致这种模式在市场中有效的时间统计上缩短。其次,市场是人性与自然规律的融合。当人性极端化时,“市场不一定按规矩出牌,也就是说,它可能不会在即将反转时发出声音”。

相比之下,顺势而为的策略虽然落后于DeMark的神奇九转,但其核心是“在市场发出反转声音后跟进”。这是“不规则”的市场运动。只有理解其原理,才能转化利用。神奇九转策略可以分为结构、交叉和计数三个部分。结构意味着:1. 买入结构:连续9天或以上,每天的收盘价低于前4个交易日的收盘价。DeMark买入结构成立。如果计数中断,则需要重置计数。2. 卖出结构:连续9天或以上,每天的收盘价高于前4个交易日的收盘价。DeMark卖出结构成立。如果计数中断,则需要重置计数。

交叉要求DeMark结构中第8天或第9天的最高价必须高于或等于前3到7天的最低价。它也可以在后续任何一天发生,无论这一天是否在结构上连续。DeMark结构有两种情况会被取消:第一种是循环回收,第二种是如果在结构完成前和交易信号未产生的某一天收盘价高于买入结构前的最高价,则结构开始重来。结构完成后,开始计数。从0开始,每当一天的收盘价低于前两个交易日的最低价时,计数增加1。当计数达到9或13时,发出买入信号。计数阶段的天数不需要连续。计数有两种取消情况:1. 在结构完成和交易信号未产生前,如果出现反向结构,则原结构无效,结构重新开始;2. 计数循环:结构完成后,如果发现同向结构,则原结构被替换。

神奇九转的基本结构在使用中存在2个问题:1. 并非所有顶部和底部都能产生高低9或高低13,因为市场趋势不符合DeMark结构。2. 因为市场结构是嵌套的,有些达到高低9或高低13的DeMark结构只是中继,而不是趋势的反转。这个指标将DeMark反转点指标作为DeMark神奇9或神奇13的确认信号。你可以看到它们大多是重叠的。这个指标本猫在TradingView发布的时候命名为:[blackcat] L3 Tom Demark Magic-9 with Reversal Confirmation

图片

//@version=4study('[blackcat] L3 Tom Demark Magic-9/13 with Reversal Points' Confirmation', overlay=true, max_bars_back=4000, max_labels_count=500)xrf(values, length) =>    r_val = float(na)    if length >= 1        for i = 0 to length by 1            if na(r_val) or not na(values[i])                r_val := values[i]                r_val    r_valxcn(cond, len) =>    xcn = 0    for i = 1 to len by 1        if cond[i - 1]            xcn := xcn + 1            xcn        else            xcn := xcn + 0            xcn    xcnxex(cond, len) =>    occur = xcn(cond, len) != 0 ? 1 : 0    occurxfl(cond, lbk) =>    out = 0.0    itemp = 0    for i = lbk to 0 by 1        if itemp > 0            out := 0.0            itemp := itemp[1] - 1            itemp        else            if cond[i] == false                out := 0.0                out            else                out := 1.0                itemp := lbk + 1                itemp    outb = out==1? true : false    outb//DeMark TD SequentialH13 = xcn(close>xrf(close,4), 13) == 13 and xcn(close>xrf(close,4), 14) == 13H12 = xcn(close>xrf(close,4), 12) == 12 and xcn(close>xrf(close,4), 13) == 12H9 = xcn(close>xrf(close,4), 9) == 9 and xcn(close>xrf(close,4), 10) == 9H8 = xcn(close>xrf(close,4), 8) == 8 and xcn(close>xrf(close,4), 9) == 8H7 = xcn(close>xrf(close,4), 7) == 7 and xcn(close>xrf(close,4), 8) == 7H6 = xcn(close>xrf(close,4), 6) == 6 and xcn(close>xrf(close,4), 7) == 6H5 = xcn(close>xrf(close,4), 5) == 5 and xcn(close>xrf(close,4), 6) == 5L13 = xcn(close<xrf(close,4), 13) == 13 and xcn(close<xrf(close,4), 14) == 13L12 = xcn(close<xrf(close,4), 12) == 12 and xcn(close<xrf(close,4), 13) == 12L9 = xcn(close<xrf(close,4), 9) == 9 and xcn(close<xrf(close,4), 10) == 9L8 = xcn(close<xrf(close,4), 8) == 8 and xcn(close<xrf(close,4), 9) == 8L7 = xcn(close<xrf(close,4), 7) == 7 and xcn(close<xrf(close,4), 8) == 7L6 = xcn(close<xrf(close,4), 6) == 6 and xcn(close<xrf(close,4), 7) == 6L5 = xcn(close<xrf(close,4), 5) == 5 and xcn(close<xrf(close,4), 6) == 5col_green = color.new(color.lime, 0)col_red = color.new(color.red, 0)l5 = H5 ?        label.new (bar_index, close, '5', color=color.new(color.lime,100), textcolor=col_green, style=label.style_none, yloc=yloc.price, size=size.small) :       L5 ?           label.new (bar_index, close, '5', color=color.new(color.red, 100), textcolor=col_red, style=label.style_none, yloc=yloc.price, size=size.small) :           nal6 = H6 ?        label.new (bar_index, close, '6', color=color.new(color.lime,100), textcolor=col_green, style=label.style_none, yloc=yloc.price, size=size.small) :       L6 ?           label.new (bar_index, close, '6', color=color.new(color.red, 100), textcolor=col_red, style=label.style_none, yloc=yloc.price, size=size.small) :           nal7 = H7 ?        label.new (bar_index, close, '7', color=color.new(color.lime,100), textcolor=col_green, style=label.style_none, yloc=yloc.price, size=size.small) :       L7 ?           label.new (bar_index, close, '7', color=color.new(color.red, 100), textcolor=col_red, style=label.style_none, yloc=yloc.price, size=size.small) :           nal8 = H8 ?        label.new (bar_index, close, '8', color=color.new(color.lime,100), textcolor=col_green, style=label.style_none, yloc=yloc.price, size=size.small) :       L8 ?           label.new (bar_index, close, '8', color=color.new(color.red, 100), textcolor=col_red, style=label.style_none, yloc=yloc.price, size=size.small) :           nal12 = H12?        label.new (bar_index, close, '12', color=color.new(color.lime,100), textcolor=col_green, style=label.style_none, yloc=yloc.price, size=size.small) :       L12 ?           label.new (bar_index, close, '12', color=color.new(color.red, 100), textcolor=col_red, style=label.style_none, yloc=yloc.price, size=size.small) :           nal9 = H9?        label.new (bar_index, close, '9\n▼', color=color.new(color.lime,90), textcolor=col_green, style=label.style_labeldown, yloc=yloc.price, size=size.small) :       L9 ?           label.new (bar_index, close, '▲\n9', color=color.new(color.red, 90), textcolor=col_red, style=label.style_labelup, yloc=yloc.price, size=size.small) :           nal13 = H13?        label.new (bar_index, close, '13\n▼', color=color.new(color.lime,90), textcolor=col_green, style=label.style_labeldown, yloc=yloc.price, size=size.small) :       L13 ?           label.new (bar_index, close, '▲\n13', color=color.new(color.red, 90), textcolor=col_red, style=label.style_labelup, yloc=yloc.price, size=size.small) :           na//Courtesy of @cheatcountry for Demark Reversal Points Indicator [CC]length = input(title='Length', defval=9, minval=1)lbLength = input(title='LbLength', defval=4, minval=1)uCount = 0dCount = 0for i = 0 to length - 1 by 1    uCount += (nz(close[i]) > nz(close[i + lbLength]) ? 1 : 0)    dCount += (nz(close[i]) < nz(close[i + lbLength]) ? 1 : 0)    dCountdrp = dCount == length ? 1 : uCount == length ? -1 : 0sig = drp > 0 or uCount > dCount ? 1 : drp < 0 or dCount > uCount ? -1 : 0drpColor = sig > 0 ? color.green : sig < 0 ? color.red : color.blacklabels = (xex(H9,2) and crossunder(drp, 0)) or H13 ?        label.new (bar_index, high, 'S', color=color.new(color.lime,40), textcolor=color.white, style=label.style_labeldown, yloc=yloc.price, size=size.small) :       (xex(L9,2) and crossover(drp, 0)) or L13 ?           label.new (bar_index, low, 'B', color=color.new(color.red, 40), textcolor=color.white, style=label.style_labelup, yloc=yloc.price, size=size.small) :           nabarcolor(drpColor)

这个技术指标的代码结构如下:

定义了一些辅助函数:xrf(values, length), xcn(cond, len), xex(cond, len), xfl(cond, lbk).

定义了DeMark TD Sequential指标中各个阶段(H5、H6、H7等)的布尔变量。

使用上述布尔变量来创建相应阶段的标签(l5、l6、l7等),并设置其颜色和样式。

根据用户输入参数,计算Demak Reversal Points指标,并确定信号类型(sig)以及对应颜色(drpColor)。

根据信号类型和其他条件,在图表上绘制相应的买入或卖出标签(labels)。

最后使用barcolor函数将当前柱子着色为drpColor所表示的颜色股票配资首选网站。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。