等级: 专业版
- 注册:
- 2022-1-11
- 曾用名:
|
源码分享:TDX_SuperTrend(通达信指标 - 超级趋势分段指示,多空转换 <群友转译>)[color=rgba(0, 0, 0, 0.3)]原创 一语银簪 照胆源码荟
2024年05月01日 20:56 广东
基本思想: 超级趋势指标(SUPERTREN)是一种技术分析工具,旨在帮助交易者识别市场的趋势方向。该指标基于移动平均线和波动性的概念,可以帮助交易者确定趋势的强度和方向。
SUPERTREN指标的计算方法如下: 1. 计算N周期的真实范围(True Range):真实范围通常由最高价、最低价和前一日收盘价之间的最大值组成。 2. 计算平均真实范围(Average True Range,ATR):对N周期的真实范围进行平均计算,通常采用指数移动平均或简单移动平均。 3. 计算上升趋势线(Upper Trend Line)和下降趋势线(Lower Trend Line):上升趋势线通常是基于最高价和ATR计算得出的,下降趋势线则是基于最低价和ATR计算得出的。 4. 根据上升趋势线和下降趋势线的走势,确定趋势的方向和强度。 SUPERTREN指标的使用可以帮助交易者更好地把握市场趋势,从而做出更明智的交易决策。然而,作为任何技术分析工具,SUPERTREN指标也有其局限性,不能保证100%的准确性,交易者在使用时需要结合其他因素进行综合分析和判断。 --- by:chatgpt-3.5 版本内容: SuperTrend1 --- 未济 SuperTrend2 --- 梦醒时分 注意:请在日线周期下使用。 效果图:(示例) 图1 SuperTrend1
图2 SuperTrend2 研究方向: 1. 形态的应用. 2. 迁移 TB 交易公式.
源码[1/2]:公式1+1 N:=15;M:=3;TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));UP:=(H+L)/2+MA(TR1,N)*M;DN:=(H+L)/2-MA(TR1,N)*M;L1:=REF(UP,BARSLAST(UP<=REF(UP,1)));L2:=LLV(UP,N*1.5);LL:=IF(L2<>REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2));S1:=BARSLAST(CROSS(0.5,UP=LL))+1;S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5);A6:=BARSLAST(S2);B6:=BARSLAST(CROSS(HHV(DN,A6+1),C));BY:=CROSS(B6,A6);SL:=CROSS(A6,B6);
SUPERTREN:=IF(B6>A6,DRAWNULL,LLV(UP,BARSLAST(SL)+1)),COLORGREEN,LINETHICK2;
A:=IF(B6>A6,HHV(DN,BARSLAST(BY)+1),DRAWNULL),COLORRED,LINETHICK2;
AA:IF(H>SUPERTREN,DRAWNULL,IF(B6<A6,LLV(UP,BARSLAST(SL)+1),DRAWNULL)),COLORGREEN,LINETHICK2;BB:IF(L<A,DRAWNULL,IF(B6>A6,HHV(DN,BARSLAST(BY)+1),DRAWNULL)),COLORRED,LINETHICK2T;
DRAWNUMBER(B6>A6&&ISLASTBAR,HHV(DN,BARSLAST(BY)+1),HHV(DN,BARSLAST(BY)+1));DRAWNUMBER(B6<A6&&ISLASTBAR,LLV(UP,BARSLAST(SL)+1),LLV(UP,BARSLAST(SL)+1));
{ ---------------------------- }
N:=15;M:=3;TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));UP:=(H+L)/2+MA(TR1,N)*M;DN:=(H+L)/2-MA(TR1,N)*M;L1:=REF(UP,BARSLAST(UP<=REF(UP,1)));L2:=LLV(UP,N*1.5);LL:=IF(L2<>REF(L2,1) AND L1<REF(L1,1),L1,IF(L1=L2,L1,L2));S1:=BARSLAST(CROSS(0.5,UP=LL))+1;S2:=CROSS(COUNT((CROSS(C,LL) OR CROSS(C,REF(LL,2))) AND UP>LL,S1),0.5);A6:=BARSLAST(S2);B6:=BARSLAST(CROSS(HHV(DN,A6+1),C));BY:=CROSS(B6,A6);SL:=CROSS(A6,B6);
SUPERTREN:=IF(B6>A6,DRAWNULL,LLV(UP,BARSLAST(SL)+1));
A:=IF(B6>A6,HHV(DN,BARSLAST(BY)+1),DRAWNULL);
AA:IF(H>SUPERTREN,DRAWNULL,IF(B6<A6,LLV(UP,BARSLAST(SL)+1),DRAWNULL));BB:IF(L<A,DRAWNULL,IF(B6>A6,HHV(DN,BARSLAST(BY)+1),DRAWNULL));
DRAWNUMBER(B6<A6&&ISLASTBAR,LLV(UP,BARSLAST(SL)+1),LLV(UP,BARSLAST(SL)+1)),COLORGREEN;DRAWNUMBER(B6>A6&&ISLASTBAR,HHV(DN,BARSLAST(BY)+1),HHV(DN,BARSLAST(BY)+1)),COLORRED;
源码[2/2]:翻译
N赋值:15M赋值:3TR1赋值:(最高价-最低价)和1日前的收盘价-最高价的绝对值的较大值和1日前的收盘价-最低价的绝对值的较大值UP赋值:(最高价+最低价)/2+TR1的N日简单移动平均*MDN赋值:(最高价+最低价)/2-TR1的N日简单移动平均*ML1赋值:上次UP<=1日前的UP距今天数日前的UPL2赋值:N*1.5日内UP的最低值LL赋值:如果L2不等于1日前的L2ANDL1<1日前的L1,返回L1,否则返回如果L1=L2,返回L1,否则返回L2S1赋值:上次0.5上穿UP=LL距今天数+1S2赋值:统计S1日中满足(收盘价上穿LLORCROSS(收盘价,2日前的LL))ANDUP>LL的天数上穿0.5A6赋值:上次S2距今天数B6赋值:上次A6+1日内DN的最高值上穿收盘价距今天数BY赋值:B6上穿A6SL赋值:A6上穿B6SUPERTREN赋值:如果B6>A6,返回NULL,否则返回上次SL距今天数+1日内UP的最低值,画绿色,线宽为2,NOTEXTA赋值:如果B6>A6,返回上次BY距今天数+1日内DN的最高值,否则返回NULL,画红色,线宽为2,NOTEXT输出AA:如果最高价>SUPERTREN,返回NULL,否则返回如果B6<A6,返回上次SL距今天数+1日内UP的最低值,否则返回NULL,画绿色,线宽为2,NOTEXT输出布林极限:如果最低价<A,返回NULL,否则返回如果B6>A6,返回上次BY距今天数+1日内DN的最高值,否则返回NULL,画红色,线宽为2,NOTEXT当满足条件B6>A6并且是否最后一个周期时,在上次BY距今天数+1日内DN的最高值位置书写数字当满足条件B6<A6并且是否最后一个周期时,在上次SL距今天数+1日内UP的最低值位置书写数字
|
|