//维加斯部分
ema200=ema(close,200);
draw(ema200,color="yellow",text="EMA200",title="EMA200", size="8",fill=true,linewidth=1);
ema144=ema(close,144);
//draw(ema144,color="yellow");
ema169=ema(close,169);
//draw(ema169,color="dodgerblue");
ema288=ema(close,288);
//draw(ema288,color="yellow");
ema338=ema(close,338);
//draw(ema338,color="yellow");
ema576=ema(close,576);
//draw(ema576,color="magenta");
ema676=ema(close,676);
//draw(ema676,color="blue");
drawBandIf(ema144 > ema169,ema144,ema169,color="lime",transp="0.3",text="维加斯短期",title="维加斯短期", size="8",fill=true,linewidth=0.5);
drawBandIf(ema144 <= ema169,ema144,ema169,color="red",transp="0.3",text="维加斯短期",title="维加斯短期", size="8",fill=true,linewidth=0.5);
drawBandIf(ema288 > ema338,ema288,ema338,color="fuchsia",transp="0.3",text="维加斯中期",title="维加斯中期", size="8",fill=true,linewidth=0.5);
drawBandIf(ema288 <= ema338,ema288,ema338,color="cyan",transp="0.3",text="维加斯中期",title="维加斯中期", size="8",fill=true,linewidth=0.5);
drawBandIf(ema576 > ema676,ema576,ema676,color="seagreen",transp="0.3",text="维加斯长期",title="维加斯长期", size="8",fill=true,linewidth=0.5);
drawBandIf(ema576 <= ema676,ema576,ema676,color="yellowgreen",transp="0.3",text="维加斯长期",title="维加斯长期", size="8",fill=true,linewidth=0.5);
//支撑压力
a=highest(high,6) == high && high > refBefore(high,1);
a1=forwardSet(a,5);
ts1=barsFromPrevTrue(a1);
短期压力=refBefore(high,ts1);
//draw(短期压力,color="#ff00ff");
drawHistogramBetweenIf(1,短期压力,短期压力,color="white",text="短期压力",title="短期压力", size="8",fill=true,linewidth=7);
drawText(isLast(high),短期压力,"短压(突破变支撑)", 0,5,color="white",text="短压(突破变支撑)",title="短压(突破变支撑)",size=8,shift=10);
tj0=refBefore(close,1) < refBefore(短期压力,1) && close > refBefore(短期压力,1);
//drawicon(tj0,low,25,color="white");
b=highest(high,21) == high && high > refBefore(high,1);
b1=forwardSet(b,20);
ts2=barsFromPrevTrue(b1);
中期压力=refBefore(high,ts2);
//draw(中期压力,color="#cyan");
drawHistogramBetweenIf(1,中期压力,中期压力,color="cyan",text="中期压力",title="中期压力", size="8",fill=true,linewidth=7);
drawText(isLast(high),中期压力,"中压(突破变支撑)",color="cyan",text="中压(突破变支撑)",title="中压(突破变支撑)",size=8);
tj=refBefore(close,1) < refBefore(中期压力,1) && close > refBefore(中期压力,1);
//drawicon(tj,low,34,color="white");
cc=highest(high,61) == high && high > refBefore(high,1);
c1=forwardSet(cc,60);
ts3=barsFromPrevTrue(c1);
长期压力=refBefore(high,ts3);
//draw(长期压力,color="yellow");
drawHistogramBetweenIf(1,长期压力,长期压力,color="red",text="长期压力",title="长期压力", size="8",fill=true,linewidth=7);
drawText(isLast(high),长期压力,"长压(突破变支撑)",color="red",text="长压(突破变支撑)",title="长压(突破变支撑)",size=8);
tj1=refBefore(close,1) < refBefore(长期压力,1) && close > refBefore(长期压力,1);
//drawicon(tj1,low,26,color="white");
a=lowest(low,6) == low && low < refBefore(low,1);
a1=forwardSet(a,5);
ts1=barsFromPrevTrue(a1);
短期支撑=refBefore(low,ts1);
//draw(短期支撑,color="#ff00ff");
drawHistogramBetweenIf(1,短期支撑,短期支撑,color="fuchsia",text="短期支撑",title="短期支撑", size="8",fill=true,linewidth=7);
drawText(isLast(close),短期支撑,"短支撑(跌破变压力)",color="fuchsia",text="短支撑(跌破变压力)",title="短支撑(跌破变压力)",size=8);
tj0=refBefore(close,1) > refBefore(短期支撑,1) && close < refBefore(短期支撑,1);
//drawicon(tj0,high,25,color="white");
b=lowest(low,21) == low && low < refBefore(low,1);
b1=forwardSet(b,20);
ts2=barsFromPrevTrue(b1);
中期支撑=refBefore(low,ts2);
//draw(中期支撑,color="#cyan");
drawHistogramBetweenIf(1,中期支撑,中期支撑,color="yellow",text="中期支撑",title="中期支撑", size="8",fill=true,linewidth=7);
drawText(isLast(close),中期支撑,"中支撑(跌破变压力)",color="yellow",text="中支撑(跌破变压力)",title="中支撑(跌破变压力)",size=8);
tj=refBefore(close,1) > refBefore(中期支撑,1) && close < refBefore(中期支撑,1);
//drawicon(tj,high,34,color="white");
cc=lowest(low,61) == low && low < refBefore(low,1);
c1=forwardSet(cc,60);
ts3=barsFromPrevTrue(c1);
长期支撑=refBefore(low,ts3);
//draw(长期支撑,color="yellow");
drawHistogramBetweenIf(1,长期支撑,长期支撑,color="lime",text="长期支撑",title="长期支撑", size="8",fill=true,linewidth=7);
drawText(isLast(close),长期支撑,"长支撑(跌破变压力)",color="lime",text="长支撑(跌破变压力)",title="长支撑(跌破变压力)",size=8);
tj1=refBefore(close,1) > refBefore(长期支撑,1) && close < refBefore(长期支撑,1);
//drawicon(tj1,high,26,color="white");
//顶底部分
rsv=(close - lowest(low,30)) / (highest(high,30) - lowest(low,30)) * 100;
fastk=sma(rsv,5,1);
k=sma(fastk,5,1);
d=sma(k,3,1);
aa1=k - refBefore(k,1);
//drawHistogramBetweenIf(aa1 > 0,refBefore(k,1),k,color="fuchsia",fill=true,linewidth=4);
//drawHistogramBetweenIf(aa1 <= 0,refBefore(k,1),k,color="#ffff00",fill=true,linewidth=4);
hdy = ema(100 * (close - lowest(low, 34)) / (highest(high, 34) - lowest(low, 34)), 4);
风险值 = hdy;
底背离 = close < refBefore(close, 1) && 风险值 > refBefore(风险值, 1) && 风险值 < 15;
顶背离 = close > refBefore(close, 1) && 风险值 < refBefore(风险值, 1) && 风险值 > 85;
drawText(底背离, low*0.999, "▲",text="▲",title="▲", color="magenta");
//drawHistogramBetweenIf(底背离, -10, 0, color="magenta",transp="0.3", fill=true, linewidth=0.5);
drawText(底背离, low, "底背",text="底背",title="底背", color="magenta", size="small");
drawText(顶背离, high * 1.001, "▼",text="▼",title="▼", color="red");
//drawText(顶背离, high * 1.01,"▼", color="red", fill=true, linewidth=0.5);
drawText(顶背离, high, "顶背",text="顶背",title="顶背", color="cyan", size="small");
var1 = (close * 2 + high + low) / 4;
var2 = (ema(var1, 13) - ema(var1, 34)) * 25;
var3 = ema(var2, 5);
主力弃盘 = (var2 - var3) * (-3.8) + 50;
主力控盘 = (var2 - var3) * 3.8 + 50;
z1 = refBefore(low, 1);
z2 = sma(abs(low - z1), 3, 1) / sma(max(low - z1, 0), 3, 1) * 100;
z3 = ema(ifelse(close * 1.3, z2 * 10, z2 / 10), 3);
z4 = lowest(low, 30);
z5 = highest(z3, 30);
z6 = ifelse(ma(close, 58), 1, 0);
z7 = ema(ifelse(low <= z4, (z3 + z5 * 2) / 2, 0), 3) / 618 * z6;
z8 = ifelse(z7 > 100, 100, z7);
底部吸筹 = z8 > -100;
a = ma(-100 * (highest(high, 34) - close) / (highest(high, 34) - lowest(low, 34)), 19);
b = (-100) * (highest(high, 14) - close) / (highest(high, 14) - lowest(low, 14));
dd = ema(-100 * (highest(high, 34) - close) / (highest(high, 34) - lowest(low, 34)), 4);
长期线 = a + 100;
短期线 = b + 100;
中期线 = dd + 100;
上涨趋势 = 中期线 > refBefore(中期线, 1);
下跌趋势 = 中期线 <= refBefore(中期线, 1);
见顶 = (refBefore(中期线, 1) > 85 && refBefore(短期线, 1) > 85 && refBefore(长期线, 1) > 65) && isCrossUp(长期线, 短期线);
顶部区域 = (中期线 < refBefore(中期线, 1) && refBefore(中期线, 1) > 85) && (refBefore(短期线, 1) > 95 || refBefore(短期线, 2) > 95) && 长期线 > 70 && 短期线 < 80 && 短期线 < 中期线 && 短期线 < 长期线 + 4;
顶部 = forwardSet(顶部区域, 4);
drawText(见顶 || 顶部, high * 1.002, " |