程序化指标趋势结构与多空指标源码
发布日期: 2025-08-19 | 阅读量:37
趋势基线 := EMA(C,60);
动态趋势 := (C - 趋势基线)*2/(60+1) + 趋势基线;
长周期均线 := MA(C,170);
前高破 := IF(H < REF(H,1) AND REF(H,1) < REF(H,2), REF(H,2), 0);
前低破 := IF(L > REF(L,1) AND REF(L,1) > REF(L,2), REF(L,2), 0);
压力位 := VALUEWHEN(前高破 > 0, 前高破);
支撑位 := VALUEWHEN(前低破 > 0, 前低破);
加权高 := HHV(H,1)/10 + 2*HHV(H,2)/10 + 2*HHV(H,4)/10 + 2*HHV(H,8)/10 + HHV(H,13)/10 + HHV(H,40)/10 + HHV(H,20)/10;
加权低 := LLV(L,1)/10 + 2*LLV(L,2)/10 + 2*LLV(L,4)/10 + 2*LLV(L,8)/10 + LLV(L,13)/10 + LLV(L,40)/10 + LLV(L,20)/10;
顶背离 := IF(加权高 < REF(加权高,1) AND 加权低 < REF(加权低,1) AND REF(O,1) > REF(C,1) AND O > C AND (HHV(O,0)-C) > 0, REF(加权高,2), 0);
底背离 := IF(加权低 > REF(加权低,1) AND 加权高 > REF(加权高,1) AND REF(O,1) < REF(C,1) AND O < C AND (C-LLV(O,0)) > 0, REF(加权低,2), 0);
顶信号 := VALUEWHEN(顶背离 > 0, 顶背离);
底信号 := VALUEWHEN(底背离 > 0, 底背离);
多空状态 := IF(C > 顶信号, -3, IF(C < 底信号, 1, 0));
状态变化 := VALUEWHEN(多空状态 <> 0, 多空状态);
切换价 := IF(状态变化 = 1, 顶信号, 底信号);
最终切换 := VALUEWHEN(ISLASTBAR, 切换价);
实体上 := IF(O > C, O, C);
实体下 := IF(O < C, O, C);
STICKLINE(状态变化 = 1, H, 实体上, 0, 0), COLORCYAN;
STICKLINE(状态变化 = 1, L, 实体下, 0, 0), COLORCYAN;
STICKLINE(状态变化 = -3, H, 实体上, 0, 0), COLORRED;
STICKLINE(状态变化 = -3, L, 实体下, 0, 0), COLORRED;
STICKLINE(状态变化 > 0, O, C, 3, 1), COLORCYAN;
STICKLINE(状态变化 <=0, O, C, 3, 1), COLORRED;
STICKLINE(O > C AND 状态变化 <=0, O, C, 3, 0), COLORRED;
STICKLINE(O > C AND 状态变化 > 0, O, C, 3, 0), COLORCYAN;
回调天数 := BARSLAST(状态变化 > 0.5);
反弹天数 := BARSLAST(状态变化 <= 0.5);
压力线 := IF(状态变化 <= 0, REF(HHV(H, 反弹天数), 回调天数), DRAWNULL), COLORYELLOW;
支撑线 := IF(状态变化 > 0, REF(LLV(L, 回调天数), 反弹天数), DRAWNULL), COLORGREEN;
破压力 := CROSS(C, 压力线) OR C > 压力线;
破支撑 := CROSS(支撑线, C) OR C < 支撑线;
涨跌幅 := SMA(MAX(C-REF(C,1),0),6,1) / SMA(ABS(C-REF(C,1)),6,1) * 100;
DRAWTEXT(FILTER(CROSS(涨跌幅,30) AND C > REF(H,1.5), 5), L*0.998, '止赢'), COLORYELLOW;
DRAWTEXT(FILTER(CROSS(70,涨跌幅) AND C < REF(L,1.5), 5), H*1.002, '止赢'), COLORMAGENTA;
加权价A := (2*C + L + O + H)/5;
TWAP_A := (20*加权价A + 19*REF(加权价A,1) + 18*REF(加权价A,2) + 17*REF(加权价A,3) + 16*REF(加权价A,4)
+ 15*REF(加权价A,5) + 14*REF(加权价A,6) + 13*REF(加权价A,7) + 12*REF(加权价A,8) + 11*REF(加权价A,9)
+ 10*REF(加权价A,10) + 9*REF(加权价A,11) + 8*REF(加权价A,12) + 7*REF(加权价A,13) + 6*REF(加权价A,14)
+ 5*REF(加权价A,15) + 4*REF(加权价A,16) + 3*REF(加权价A,17) + 2*REF(加权价A,18) + REF(加权价A,20)) / 210, COLORRED;
MA_TWA := MA(TWAP_A, 6), LINETHICK3, COLORGREEN;
加权价B := (3*C + L + O + H)/6;
TWAP_B := (10*加权价B + 9*REF(加权价B,1) + 8*REF(加权价B,2) + 7*REF(加权价B,3) + 6*REF(加权价B,4)
+ 5*REF(加权价B,5) + 4*REF(加权价B,6) + 3*REF(加权价B,7) + 2*REF(加权价B,8) + REF(加权价B,9)) / 55, COLORWHITE, LINETHICK2;
DRAWICON(CROSS(MA_TWA, TWAP_B), MA_TWA, 12), COLORRED;
DRAWICON(CROSS(TWAP_B, MA_TWA), TWAP_B, 11), COLORGREEN;
VOLBAR := 10;
有效价 := IF(SUM(V,VOLBAR) > 0.01, 0.01*100/V, REF(C,VOLBAR));
在区间 := IF(HHV(H,VOLBAR)<0.01 OR LLV(L,VOLBAR)<0.01, 1, (有效价 < HHV(H,VOLBAR)+0.01 AND 有效价 > LLV(L,VOLBAR)-0.01));
量价均 := SMA(IF(在区间, DMA(C*V/(100*VOL), 100*VOL), EMA((H+L+2*C)/4,144)), 3, 1);
趋势流 := EMA(量价均,2);
趋势流1 := EMA(趋势流,5);
趋势流2 := EMA(趋势流1,5);
趋势流3 := EMA(趋势流2,5);
趋势流4 := EMA(趋势流3,5);
趋势流5 := EMA(趋势流4,5);
趋势流6 := EMA(趋势流5,5);
短均 := MA(C,3);
短动量 := SMA(EMA(短均,2),3,1);
短动量1 := EMA(短动量,2);
短动量2 := EMA(短动量1,2);
短动量3 := EMA(短动量2,2);
短动量4 := EMA(短动量3,2);
短动量5 := EMA(短动量4,2);
短动量6 := EMA(短动量5,2);
STICKLINE(短动量 > 短动量6, 短动量6, 短动量, 2, -1), COLOR0099FF;
STICKLINE(短动量 < 短动量6, 短动量6, 短动量, 2, -1), COLORGREEN;
动态趋势 := (C - 趋势基线)*2/(60+1) + 趋势基线;
长周期均线 := MA(C,170);
前高破 := IF(H < REF(H,1) AND REF(H,1) < REF(H,2), REF(H,2), 0);
前低破 := IF(L > REF(L,1) AND REF(L,1) > REF(L,2), REF(L,2), 0);
压力位 := VALUEWHEN(前高破 > 0, 前高破);
支撑位 := VALUEWHEN(前低破 > 0, 前低破);
加权高 := HHV(H,1)/10 + 2*HHV(H,2)/10 + 2*HHV(H,4)/10 + 2*HHV(H,8)/10 + HHV(H,13)/10 + HHV(H,40)/10 + HHV(H,20)/10;
加权低 := LLV(L,1)/10 + 2*LLV(L,2)/10 + 2*LLV(L,4)/10 + 2*LLV(L,8)/10 + LLV(L,13)/10 + LLV(L,40)/10 + LLV(L,20)/10;
顶背离 := IF(加权高 < REF(加权高,1) AND 加权低 < REF(加权低,1) AND REF(O,1) > REF(C,1) AND O > C AND (HHV(O,0)-C) > 0, REF(加权高,2), 0);
底背离 := IF(加权低 > REF(加权低,1) AND 加权高 > REF(加权高,1) AND REF(O,1) < REF(C,1) AND O < C AND (C-LLV(O,0)) > 0, REF(加权低,2), 0);
顶信号 := VALUEWHEN(顶背离 > 0, 顶背离);
底信号 := VALUEWHEN(底背离 > 0, 底背离);
多空状态 := IF(C > 顶信号, -3, IF(C < 底信号, 1, 0));
状态变化 := VALUEWHEN(多空状态 <> 0, 多空状态);
切换价 := IF(状态变化 = 1, 顶信号, 底信号);
最终切换 := VALUEWHEN(ISLASTBAR, 切换价);
实体上 := IF(O > C, O, C);
实体下 := IF(O < C, O, C);
STICKLINE(状态变化 = 1, H, 实体上, 0, 0), COLORCYAN;
STICKLINE(状态变化 = 1, L, 实体下, 0, 0), COLORCYAN;
STICKLINE(状态变化 = -3, H, 实体上, 0, 0), COLORRED;
STICKLINE(状态变化 = -3, L, 实体下, 0, 0), COLORRED;
STICKLINE(状态变化 > 0, O, C, 3, 1), COLORCYAN;
STICKLINE(状态变化 <=0, O, C, 3, 1), COLORRED;
STICKLINE(O > C AND 状态变化 <=0, O, C, 3, 0), COLORRED;
STICKLINE(O > C AND 状态变化 > 0, O, C, 3, 0), COLORCYAN;
回调天数 := BARSLAST(状态变化 > 0.5);
反弹天数 := BARSLAST(状态变化 <= 0.5);
压力线 := IF(状态变化 <= 0, REF(HHV(H, 反弹天数), 回调天数), DRAWNULL), COLORYELLOW;
支撑线 := IF(状态变化 > 0, REF(LLV(L, 回调天数), 反弹天数), DRAWNULL), COLORGREEN;
破压力 := CROSS(C, 压力线) OR C > 压力线;
破支撑 := CROSS(支撑线, C) OR C < 支撑线;
涨跌幅 := SMA(MAX(C-REF(C,1),0),6,1) / SMA(ABS(C-REF(C,1)),6,1) * 100;
DRAWTEXT(FILTER(CROSS(涨跌幅,30) AND C > REF(H,1.5), 5), L*0.998, '止赢'), COLORYELLOW;
DRAWTEXT(FILTER(CROSS(70,涨跌幅) AND C < REF(L,1.5), 5), H*1.002, '止赢'), COLORMAGENTA;
加权价A := (2*C + L + O + H)/5;
TWAP_A := (20*加权价A + 19*REF(加权价A,1) + 18*REF(加权价A,2) + 17*REF(加权价A,3) + 16*REF(加权价A,4)
+ 15*REF(加权价A,5) + 14*REF(加权价A,6) + 13*REF(加权价A,7) + 12*REF(加权价A,8) + 11*REF(加权价A,9)
+ 10*REF(加权价A,10) + 9*REF(加权价A,11) + 8*REF(加权价A,12) + 7*REF(加权价A,13) + 6*REF(加权价A,14)
+ 5*REF(加权价A,15) + 4*REF(加权价A,16) + 3*REF(加权价A,17) + 2*REF(加权价A,18) + REF(加权价A,20)) / 210, COLORRED;
MA_TWA := MA(TWAP_A, 6), LINETHICK3, COLORGREEN;
加权价B := (3*C + L + O + H)/6;
TWAP_B := (10*加权价B + 9*REF(加权价B,1) + 8*REF(加权价B,2) + 7*REF(加权价B,3) + 6*REF(加权价B,4)
+ 5*REF(加权价B,5) + 4*REF(加权价B,6) + 3*REF(加权价B,7) + 2*REF(加权价B,8) + REF(加权价B,9)) / 55, COLORWHITE, LINETHICK2;
DRAWICON(CROSS(MA_TWA, TWAP_B), MA_TWA, 12), COLORRED;
DRAWICON(CROSS(TWAP_B, MA_TWA), TWAP_B, 11), COLORGREEN;
VOLBAR := 10;
有效价 := IF(SUM(V,VOLBAR) > 0.01, 0.01*100/V, REF(C,VOLBAR));
在区间 := IF(HHV(H,VOLBAR)<0.01 OR LLV(L,VOLBAR)<0.01, 1, (有效价 < HHV(H,VOLBAR)+0.01 AND 有效价 > LLV(L,VOLBAR)-0.01));
量价均 := SMA(IF(在区间, DMA(C*V/(100*VOL), 100*VOL), EMA((H+L+2*C)/4,144)), 3, 1);
趋势流 := EMA(量价均,2);
趋势流1 := EMA(趋势流,5);
趋势流2 := EMA(趋势流1,5);
趋势流3 := EMA(趋势流2,5);
趋势流4 := EMA(趋势流3,5);
趋势流5 := EMA(趋势流4,5);
趋势流6 := EMA(趋势流5,5);
短均 := MA(C,3);
短动量 := SMA(EMA(短均,2),3,1);
短动量1 := EMA(短动量,2);
短动量2 := EMA(短动量1,2);
短动量3 := EMA(短动量2,2);
短动量4 := EMA(短动量3,2);
短动量5 := EMA(短动量4,2);
短动量6 := EMA(短动量5,2);
STICKLINE(短动量 > 短动量6, 短动量6, 短动量, 2, -1), COLOR0099FF;
STICKLINE(短动量 < 短动量6, 短动量6, 短动量, 2, -1), COLORGREEN;
