up安全投资指标源码(kdj指标公式源码?)
1. kdj指标公式源码?
KDJ指标公式源码:
参数: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;
周K:=MA("KDJ.K#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORRED;
周D:=MA("KDJ.D#WEEK"(N,M1,M2) ,5),LINETHICK1,COLOR33FF99;
周J:=MA("KDJ.J#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORMAGENTA;
月K:MA("KDJ.K#MONTH"(N,M1,M2),5),LINETHICK1,COLORFF00FF;
月D:MA("KDJ.D#MONTH"(N,M1,M2),5),LINETHICK1,COLOR00FF00;
月J:=MA("KDJ.J#MONTH"(N,M1,M2),5),LINETHICK1,COLORFFFFFF;
DRAWBAND(月K,RGB(100,0,100),月D,RGB(120,120,120));
STICKLINE(周K>=周D,周K,周D,1,0),COLOR6666FF;
STICKLINE(周K<周D,周K,周D,1,1),COLOR00FFFF;
STICKLINE(C>0,115,120,2,1),COLOR00FFFF;
STICKLINE(C>0,-15,-20,2,1),COLORFFFF88;
STICKLINE(周K>=周D,110,120,2,0),COLOR6666FF;
STICKLINE(月K>=月D,-10,-20,2,0),COLOR660099;
STICKLINE(C>0,48,52,2,1),COLORFFFFFF;
STICKLINE(周K>=周D AND 月K>=月D,42,58,2,1),COLORRED;
STICKLINE(月K<月D AND 周K>=周D,44,56,2,1),COLORFF00FF;
STICKLINE(月K>=月D AND 周K<周D,46,54,2,1),COLOR00FF00;
STICKLINE(CURRBARSCOUNT=88,10,90,99,0),COLOR222255;
STICKLINE(CURRBARSCOUNT=88,100,90,99,0),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=92,95,'中间彩柱'),COLORFF0000;
DRAWTEXT(CURRBARSCOUNT=8,110,'周KD金叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=8,-10,'月KD交叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,20,'月死叉周死叉--全退--白色'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,40,'月金叉周死叉--减仓--绿色'),COLOR00FF00;
DRAWTEXT(CURRBARSCOUNT=98,60,'月死叉周金叉--反弹--粉色'),COLORFF00FF;
DRAWTEXT(CURRBARSCOUNT=98,80,'月金叉周金叉--持股--红色'),COLORRED;
2. kdj指标公式源码?
KDJ指标公式源码:
参数: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;
周K:=MA("KDJ.K#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORRED;
周D:=MA("KDJ.D#WEEK"(N,M1,M2) ,5),LINETHICK1,COLOR33FF99;
周J:=MA("KDJ.J#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORMAGENTA;
月K:MA("KDJ.K#MONTH"(N,M1,M2),5),LINETHICK1,COLORFF00FF;
月D:MA("KDJ.D#MONTH"(N,M1,M2),5),LINETHICK1,COLOR00FF00;
月J:=MA("KDJ.J#MONTH"(N,M1,M2),5),LINETHICK1,COLORFFFFFF;
DRAWBAND(月K,RGB(100,0,100),月D,RGB(120,120,120));
STICKLINE(周K>=周D,周K,周D,1,0),COLOR6666FF;
STICKLINE(周K<周D,周K,周D,1,1),COLOR00FFFF;
STICKLINE(C>0,115,120,2,1),COLOR00FFFF;
STICKLINE(C>0,-15,-20,2,1),COLORFFFF88;
STICKLINE(周K>=周D,110,120,2,0),COLOR6666FF;
STICKLINE(月K>=月D,-10,-20,2,0),COLOR660099;
STICKLINE(C>0,48,52,2,1),COLORFFFFFF;
STICKLINE(周K>=周D AND 月K>=月D,42,58,2,1),COLORRED;
STICKLINE(月K<月D AND 周K>=周D,44,56,2,1),COLORFF00FF;
STICKLINE(月K>=月D AND 周K<周D,46,54,2,1),COLOR00FF00;
STICKLINE(CURRBARSCOUNT=88,10,90,99,0),COLOR222255;
STICKLINE(CURRBARSCOUNT=88,100,90,99,0),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=92,95,'中间彩柱'),COLORFF0000;
DRAWTEXT(CURRBARSCOUNT=8,110,'周KD金叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=8,-10,'月KD交叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,20,'月死叉周死叉--全退--白色'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,40,'月金叉周死叉--减仓--绿色'),COLOR00FF00;
DRAWTEXT(CURRBARSCOUNT=98,60,'月死叉周金叉--反弹--粉色'),COLORFF00FF;
DRAWTEXT(CURRBARSCOUNT=98,80,'月金叉周金叉--持股--红色'),COLORRED;
3. kdj指标公式源码?
KDJ指标公式源码:
参数: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;
周K:=MA("KDJ.K#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORRED;
周D:=MA("KDJ.D#WEEK"(N,M1,M2) ,5),LINETHICK1,COLOR33FF99;
周J:=MA("KDJ.J#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORMAGENTA;
月K:MA("KDJ.K#MONTH"(N,M1,M2),5),LINETHICK1,COLORFF00FF;
月D:MA("KDJ.D#MONTH"(N,M1,M2),5),LINETHICK1,COLOR00FF00;
月J:=MA("KDJ.J#MONTH"(N,M1,M2),5),LINETHICK1,COLORFFFFFF;
DRAWBAND(月K,RGB(100,0,100),月D,RGB(120,120,120));
STICKLINE(周K>=周D,周K,周D,1,0),COLOR6666FF;
STICKLINE(周K<周D,周K,周D,1,1),COLOR00FFFF;
STICKLINE(C>0,115,120,2,1),COLOR00FFFF;
STICKLINE(C>0,-15,-20,2,1),COLORFFFF88;
STICKLINE(周K>=周D,110,120,2,0),COLOR6666FF;
STICKLINE(月K>=月D,-10,-20,2,0),COLOR660099;
STICKLINE(C>0,48,52,2,1),COLORFFFFFF;
STICKLINE(周K>=周D AND 月K>=月D,42,58,2,1),COLORRED;
STICKLINE(月K<月D AND 周K>=周D,44,56,2,1),COLORFF00FF;
STICKLINE(月K>=月D AND 周K<周D,46,54,2,1),COLOR00FF00;
STICKLINE(CURRBARSCOUNT=88,10,90,99,0),COLOR222255;
STICKLINE(CURRBARSCOUNT=88,100,90,99,0),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=92,95,'中间彩柱'),COLORFF0000;
DRAWTEXT(CURRBARSCOUNT=8,110,'周KD金叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=8,-10,'月KD交叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,20,'月死叉周死叉--全退--白色'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,40,'月金叉周死叉--减仓--绿色'),COLOR00FF00;
DRAWTEXT(CURRBARSCOUNT=98,60,'月死叉周金叉--反弹--粉色'),COLORFF00FF;
DRAWTEXT(CURRBARSCOUNT=98,80,'月金叉周金叉--持股--红色'),COLORRED;
4. kdj指标公式源码?
KDJ指标公式源码:
参数: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;
周K:=MA("KDJ.K#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORRED;
周D:=MA("KDJ.D#WEEK"(N,M1,M2) ,5),LINETHICK1,COLOR33FF99;
周J:=MA("KDJ.J#WEEK"(N,M1,M2) ,5),LINETHICK1,COLORMAGENTA;
月K:MA("KDJ.K#MONTH"(N,M1,M2),5),LINETHICK1,COLORFF00FF;
月D:MA("KDJ.D#MONTH"(N,M1,M2),5),LINETHICK1,COLOR00FF00;
月J:=MA("KDJ.J#MONTH"(N,M1,M2),5),LINETHICK1,COLORFFFFFF;
DRAWBAND(月K,RGB(100,0,100),月D,RGB(120,120,120));
STICKLINE(周K>=周D,周K,周D,1,0),COLOR6666FF;
STICKLINE(周K<周D,周K,周D,1,1),COLOR00FFFF;
STICKLINE(C>0,115,120,2,1),COLOR00FFFF;
STICKLINE(C>0,-15,-20,2,1),COLORFFFF88;
STICKLINE(周K>=周D,110,120,2,0),COLOR6666FF;
STICKLINE(月K>=月D,-10,-20,2,0),COLOR660099;
STICKLINE(C>0,48,52,2,1),COLORFFFFFF;
STICKLINE(周K>=周D AND 月K>=月D,42,58,2,1),COLORRED;
STICKLINE(月K<月D AND 周K>=周D,44,56,2,1),COLORFF00FF;
STICKLINE(月K>=月D AND 周K<周D,46,54,2,1),COLOR00FF00;
STICKLINE(CURRBARSCOUNT=88,10,90,99,0),COLOR222255;
STICKLINE(CURRBARSCOUNT=88,100,90,99,0),COLORYELLOW;
DRAWTEXT(CURRBARSCOUNT=92,95,'中间彩柱'),COLORFF0000;
DRAWTEXT(CURRBARSCOUNT=8,110,'周KD金叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=8,-10,'月KD交叉'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,20,'月死叉周死叉--全退--白色'),COLORFFFFFF;
DRAWTEXT(CURRBARSCOUNT=98,40,'月金叉周死叉--减仓--绿色'),COLOR00FF00;
DRAWTEXT(CURRBARSCOUNT=98,60,'月死叉周金叉--反弹--粉色'),COLORFF00FF;
DRAWTEXT(CURRBARSCOUNT=98,80,'月金叉周金叉--持股--红色'),COLORRED;
5. aroon指标最佳设置?
阿隆指标的默认参数设置是14天,最佳周期应设置为25天,具体设置方法为:
确定的时间段(“ N “);
在此期间出现最高价后的天数(“ HH “);使用公式 [(N - HH)/ N]×100% ] 计算得到阿隆向上;[ 例:若取时间段为25天,如果今天为最高价(HH = 0),则阿隆向上 =(25-0)/ 25×100%= 100%;如果10天前为最高价(HH = 10),则阿隆向上 =(25-10)/ 25×100%= 60% ]
在此期间出现最低价后的天数(“ LL “);使用公式 [(N - LL)/ N]×100% ] 计算得到阿隆Down;
利用阿隆向上和阿隆向下,利用公式 [ 阿隆Up - 阿隆Down ] 计算得到Aroon Osc。
6. python中matplotlib库怎么安装?
在Python中安装matplotlib库有以下几种方法:
1. 使用pip命令安装。在命令行窗口中输入以下命令:
```
pip install matplotlib
```
2. 使用conda命令安装。如果您使用Anaconda Python发行版,则可以使用以下命令:
```
conda install matplotlib
```
3. 在Python解释器中安装。在Python解释器中执行以下命令:
```
import pip
pip.main(['install', 'matplotlib'])
```
如果您使用的是Python 3,可以将 `pip.main` 改为 `pip._internal.main`。
4. 从源代码安装。你可以从官方网站上下载源代码,然后解压后使用以下命令进行安装:
```
python setup.py install
```
无论使用哪种方法,安装完成后,您即可在Python程序中使用matplotlib库。
7. 连出三次买入信号选股指标源码?
以下是连出三次买入信号选股指标的源代码:
```
//@version=4
study("Triple Buy Signal Indicator", overlay=true)
// Input parameters
fastMA = input(title="Fast MA Period", type=input.integer, defval=5)
slowMA = input(title="Slow MA Period", type=input.integer, defval=20)
rsiPeriod = input(title="RSI Period", type=input.integer, defval=14)
oversoldLevel = input(title="Oversold Level", type=input.integer, defval=30)
overboughtLevel = input(title="Overbought Level", type=input.integer, defval=70)
// Calculate moving averages
fastMAVal = ema(close, fastMA)
slowMAVal = ema(close, slowMA)
// Calculate RSI
rsiVal = rsi(close, rsiPeriod)
// Determine trends
bullishTrend = fastMAVal > slowMAVal
bearishTrend = fastMAVal < slowMAVal
// Determine buy signals
firstBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal < oversoldLevel
secondBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > oversoldLevel and bullishTrend
thirdBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > overboughtLevel and bullishTrend
// Plot buy signals
plotshape(firstBuySignal, style=shape.triangleup, size=size.tiny, color=color.green, location=location.belowbar, text="1")
plotshape(secondBuySignal, style=shape.triangleup, size=size.tiny, color=color.blue, location=location.belowbar, text="2")
plotshape(thirdBuySignal, style=shape.triangleup, size=size.tiny, color=color.yellow, location=location.belowbar, text="3")
```
该指标使用移动平均线和相对强弱指数(RSI)来确定股票价格的趋势。在快速移动平均线越过慢速移动平均线时,如果RSI在某些程度上已超卖,则会触发第一次买入信号。在此之后,当RSI回到区间高处并且股票价格保持在快速移动平均线上方时,会触发第二次买入信号。在连续两次买入信号后,如果RSI仍然高于超买水平并且股票价格继续保持在快速移动平均线上方,会触发第三次买入信号。这三个买入信号的颜色和文本都不同,以便区分。
8. python中matplotlib库怎么安装?
在Python中安装matplotlib库有以下几种方法:
1. 使用pip命令安装。在命令行窗口中输入以下命令:
```
pip install matplotlib
```
2. 使用conda命令安装。如果您使用Anaconda Python发行版,则可以使用以下命令:
```
conda install matplotlib
```
3. 在Python解释器中安装。在Python解释器中执行以下命令:
```
import pip
pip.main(['install', 'matplotlib'])
```
如果您使用的是Python 3,可以将 `pip.main` 改为 `pip._internal.main`。
4. 从源代码安装。你可以从官方网站上下载源代码,然后解压后使用以下命令进行安装:
```
python setup.py install
```
无论使用哪种方法,安装完成后,您即可在Python程序中使用matplotlib库。
9. 连出三次买入信号选股指标源码?
以下是连出三次买入信号选股指标的源代码:
```
//@version=4
study("Triple Buy Signal Indicator", overlay=true)
// Input parameters
fastMA = input(title="Fast MA Period", type=input.integer, defval=5)
slowMA = input(title="Slow MA Period", type=input.integer, defval=20)
rsiPeriod = input(title="RSI Period", type=input.integer, defval=14)
oversoldLevel = input(title="Oversold Level", type=input.integer, defval=30)
overboughtLevel = input(title="Overbought Level", type=input.integer, defval=70)
// Calculate moving averages
fastMAVal = ema(close, fastMA)
slowMAVal = ema(close, slowMA)
// Calculate RSI
rsiVal = rsi(close, rsiPeriod)
// Determine trends
bullishTrend = fastMAVal > slowMAVal
bearishTrend = fastMAVal < slowMAVal
// Determine buy signals
firstBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal < oversoldLevel
secondBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > oversoldLevel and bullishTrend
thirdBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > overboughtLevel and bullishTrend
// Plot buy signals
plotshape(firstBuySignal, style=shape.triangleup, size=size.tiny, color=color.green, location=location.belowbar, text="1")
plotshape(secondBuySignal, style=shape.triangleup, size=size.tiny, color=color.blue, location=location.belowbar, text="2")
plotshape(thirdBuySignal, style=shape.triangleup, size=size.tiny, color=color.yellow, location=location.belowbar, text="3")
```
该指标使用移动平均线和相对强弱指数(RSI)来确定股票价格的趋势。在快速移动平均线越过慢速移动平均线时,如果RSI在某些程度上已超卖,则会触发第一次买入信号。在此之后,当RSI回到区间高处并且股票价格保持在快速移动平均线上方时,会触发第二次买入信号。在连续两次买入信号后,如果RSI仍然高于超买水平并且股票价格继续保持在快速移动平均线上方,会触发第三次买入信号。这三个买入信号的颜色和文本都不同,以便区分。
10. aroon指标最佳设置?
阿隆指标的默认参数设置是14天,最佳周期应设置为25天,具体设置方法为:
确定的时间段(“ N “);
在此期间出现最高价后的天数(“ HH “);使用公式 [(N - HH)/ N]×100% ] 计算得到阿隆向上;[ 例:若取时间段为25天,如果今天为最高价(HH = 0),则阿隆向上 =(25-0)/ 25×100%= 100%;如果10天前为最高价(HH = 10),则阿隆向上 =(25-10)/ 25×100%= 60% ]
在此期间出现最低价后的天数(“ LL “);使用公式 [(N - LL)/ N]×100% ] 计算得到阿隆Down;
利用阿隆向上和阿隆向下,利用公式 [ 阿隆Up - 阿隆Down ] 计算得到Aroon Osc。
11. aroon指标最佳设置?
阿隆指标的默认参数设置是14天,最佳周期应设置为25天,具体设置方法为:
确定的时间段(“ N “);
在此期间出现最高价后的天数(“ HH “);使用公式 [(N - HH)/ N]×100% ] 计算得到阿隆向上;[ 例:若取时间段为25天,如果今天为最高价(HH = 0),则阿隆向上 =(25-0)/ 25×100%= 100%;如果10天前为最高价(HH = 10),则阿隆向上 =(25-10)/ 25×100%= 60% ]
在此期间出现最低价后的天数(“ LL “);使用公式 [(N - LL)/ N]×100% ] 计算得到阿隆Down;
利用阿隆向上和阿隆向下,利用公式 [ 阿隆Up - 阿隆Down ] 计算得到Aroon Osc。
12. python中matplotlib库怎么安装?
在Python中安装matplotlib库有以下几种方法:
1. 使用pip命令安装。在命令行窗口中输入以下命令:
```
pip install matplotlib
```
2. 使用conda命令安装。如果您使用Anaconda Python发行版,则可以使用以下命令:
```
conda install matplotlib
```
3. 在Python解释器中安装。在Python解释器中执行以下命令:
```
import pip
pip.main(['install', 'matplotlib'])
```
如果您使用的是Python 3,可以将 `pip.main` 改为 `pip._internal.main`。
4. 从源代码安装。你可以从官方网站上下载源代码,然后解压后使用以下命令进行安装:
```
python setup.py install
```
无论使用哪种方法,安装完成后,您即可在Python程序中使用matplotlib库。
13. aroon指标最佳设置?
阿隆指标的默认参数设置是14天,最佳周期应设置为25天,具体设置方法为:
确定的时间段(“ N “);
在此期间出现最高价后的天数(“ HH “);使用公式 [(N - HH)/ N]×100% ] 计算得到阿隆向上;[ 例:若取时间段为25天,如果今天为最高价(HH = 0),则阿隆向上 =(25-0)/ 25×100%= 100%;如果10天前为最高价(HH = 10),则阿隆向上 =(25-10)/ 25×100%= 60% ]
在此期间出现最低价后的天数(“ LL “);使用公式 [(N - LL)/ N]×100% ] 计算得到阿隆Down;
利用阿隆向上和阿隆向下,利用公式 [ 阿隆Up - 阿隆Down ] 计算得到Aroon Osc。
14. 连出三次买入信号选股指标源码?
以下是连出三次买入信号选股指标的源代码:
```
//@version=4
study("Triple Buy Signal Indicator", overlay=true)
// Input parameters
fastMA = input(title="Fast MA Period", type=input.integer, defval=5)
slowMA = input(title="Slow MA Period", type=input.integer, defval=20)
rsiPeriod = input(title="RSI Period", type=input.integer, defval=14)
oversoldLevel = input(title="Oversold Level", type=input.integer, defval=30)
overboughtLevel = input(title="Overbought Level", type=input.integer, defval=70)
// Calculate moving averages
fastMAVal = ema(close, fastMA)
slowMAVal = ema(close, slowMA)
// Calculate RSI
rsiVal = rsi(close, rsiPeriod)
// Determine trends
bullishTrend = fastMAVal > slowMAVal
bearishTrend = fastMAVal < slowMAVal
// Determine buy signals
firstBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal < oversoldLevel
secondBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > oversoldLevel and bullishTrend
thirdBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > overboughtLevel and bullishTrend
// Plot buy signals
plotshape(firstBuySignal, style=shape.triangleup, size=size.tiny, color=color.green, location=location.belowbar, text="1")
plotshape(secondBuySignal, style=shape.triangleup, size=size.tiny, color=color.blue, location=location.belowbar, text="2")
plotshape(thirdBuySignal, style=shape.triangleup, size=size.tiny, color=color.yellow, location=location.belowbar, text="3")
```
该指标使用移动平均线和相对强弱指数(RSI)来确定股票价格的趋势。在快速移动平均线越过慢速移动平均线时,如果RSI在某些程度上已超卖,则会触发第一次买入信号。在此之后,当RSI回到区间高处并且股票价格保持在快速移动平均线上方时,会触发第二次买入信号。在连续两次买入信号后,如果RSI仍然高于超买水平并且股票价格继续保持在快速移动平均线上方,会触发第三次买入信号。这三个买入信号的颜色和文本都不同,以便区分。
15. python中matplotlib库怎么安装?
在Python中安装matplotlib库有以下几种方法:
1. 使用pip命令安装。在命令行窗口中输入以下命令:
```
pip install matplotlib
```
2. 使用conda命令安装。如果您使用Anaconda Python发行版,则可以使用以下命令:
```
conda install matplotlib
```
3. 在Python解释器中安装。在Python解释器中执行以下命令:
```
import pip
pip.main(['install', 'matplotlib'])
```
如果您使用的是Python 3,可以将 `pip.main` 改为 `pip._internal.main`。
4. 从源代码安装。你可以从官方网站上下载源代码,然后解压后使用以下命令进行安装:
```
python setup.py install
```
无论使用哪种方法,安装完成后,您即可在Python程序中使用matplotlib库。
16. 连出三次买入信号选股指标源码?
以下是连出三次买入信号选股指标的源代码:
```
//@version=4
study("Triple Buy Signal Indicator", overlay=true)
// Input parameters
fastMA = input(title="Fast MA Period", type=input.integer, defval=5)
slowMA = input(title="Slow MA Period", type=input.integer, defval=20)
rsiPeriod = input(title="RSI Period", type=input.integer, defval=14)
oversoldLevel = input(title="Oversold Level", type=input.integer, defval=30)
overboughtLevel = input(title="Overbought Level", type=input.integer, defval=70)
// Calculate moving averages
fastMAVal = ema(close, fastMA)
slowMAVal = ema(close, slowMA)
// Calculate RSI
rsiVal = rsi(close, rsiPeriod)
// Determine trends
bullishTrend = fastMAVal > slowMAVal
bearishTrend = fastMAVal < slowMAVal
// Determine buy signals
firstBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal < oversoldLevel
secondBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > oversoldLevel and bullishTrend
thirdBuySignal = crossover(fastMAVal, slowMAVal) and rsiVal > overboughtLevel and bullishTrend
// Plot buy signals
plotshape(firstBuySignal, style=shape.triangleup, size=size.tiny, color=color.green, location=location.belowbar, text="1")
plotshape(secondBuySignal, style=shape.triangleup, size=size.tiny, color=color.blue, location=location.belowbar, text="2")
plotshape(thirdBuySignal, style=shape.triangleup, size=size.tiny, color=color.yellow, location=location.belowbar, text="3")
```
该指标使用移动平均线和相对强弱指数(RSI)来确定股票价格的趋势。在快速移动平均线越过慢速移动平均线时,如果RSI在某些程度上已超卖,则会触发第一次买入信号。在此之后,当RSI回到区间高处并且股票价格保持在快速移动平均线上方时,会触发第二次买入信号。在连续两次买入信号后,如果RSI仍然高于超买水平并且股票价格继续保持在快速移动平均线上方,会触发第三次买入信号。这三个买入信号的颜色和文本都不同,以便区分。