RSI HistoAlert Strategy for ThinkorSwim

rad14733

Well-known member
VIP
While the standard TOS RSI Indicator can be displayed as a Histogram the code in the link provided is a bit different... I have converted my interpretation of the Tradingview version on top of the TOS standard RSI Indicator...

NOTE: This is NOT a standard RSI indicator...!!! It uses a zeroline instead of a 50 line, which is also not in all standard RSI indicators by default, doesn't actually use 70/30 OB/OS, and has BuyAlertLevel line @-10 and SellAlertLevel line at @10... Other than that it's a RSI Histogram/Line combo... No average line... So quite different than the standard RSI...

Releases
# v1.0 : 2021-02-23 : Initial Release
# v1.1 : 2021-02-24 : Added sound alerts for zeroline crossover


Ruby:
# RSI_HistoAlert_Strategy
# Based on code located at: https://www.tradingview.com/script/bXMVCkJK-RSI-HistoAlert-Strategy/
# Derived from TOS standard RSI Study
# Converted by rad14733 for usethinkscript.com
#hint: Paints both RSI histogram and line, plus Buy and Sell alert lines.\nNote that this version uses a different scale than the standard RSI Indicator.
# v1.0 : 2021-02-23 : Initial Release
# v1.1 : 2021-02-24 : Added sound alerts for zeroline crossover

declare lower;

input length = 14;
input over_Bought = 70;
input over_Sold = 30;
input price = close;
input averageType = AverageType.WILDERS;
input showBreakoutSignals = no;
input buyAlertValue = -10;
input sellAlertValue = 10;

def rsi = RSI(length, over_bought, over_sold, price, averageType, showBreakoutSignals) - 50;

plot rsiLine = rsi;
rsiLine.SetPaintingStrategy(PaintingStrategy.LINE);
rsiLine.SetDefaultColor(Color.BLUE);
rsiLine.SetLineWeight(3);

plot rsiHist = rsi;
rsiHist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
rsiHist.AssignValueColor(if rsi > 0 then Color.GREEN else Color.RED);
rsiHist.SetLineWeight(1);

plot zeroline = 0;
zeroline.SetDefaultColor(Color.WHITE);

plot BuyAlertLevel = buyAlertValue;
BuyAlertLevel.SetDefaultColor(Color.YELLOW);
BuyAlertLevel.SetPaintingStrategy(PaintingStrategy.LINE);
BuyAlertLevel.SetStyle(Curve.SHORT_DASH);
BuyAlertLevel.SetLineWeight(1);

plot SellAlertLevel = sellAlertValue;
SellAlertLevel.SetDefaultColor(Color.YELLOW);
SellAlertLevel.SetPaintingStrategy(PaintingStrategy.LINE);
SellAlertLevel.SetStyle(Curve.SHORT_DASH);
SellAlertLevel.SetLineWeight(1);

# Alert Code
input useAlerts = yes;
Alert(useAlerts and rsiHist crosses above zeroline, "RSI_HistoAlert xUp", Alert.BAR, Sound.Chimes);
Alert(useAlerts and rsiHist crosses below zeroline, "RSI_HistoAlert xDown", Alert.BAR, Sound.Chimes);

# END - RSI_HistoAlert_Strategy
 
Last edited:

jdstrader

New member
While the standard TOS RSI Indicator can be displayed as a Histogram the code in the link provided is a bit different... I have converted my interpretation of the Tradingview version on top of the TOS standard RSI Indicator...

Ruby:
# RSI_HistoAlert_Strategy
# Based on code located at: https://www.tradingview.com/script/bXMVCkJK-RSI-HistoAlert-Strategy/
# Derived from TOS standard RSI Study
# Converted by rad14733 for usethinkscript.com
#hint: Paints both RSI histogram and line, plus Buy and Sell alert lines.\nNote that this version uses a different scale than the standard RSI Indicator.
# v1.0 : 2021-02-23 : Initial Release

declare lower;

input length = 14;
input over_Bought = 70;
input over_Sold = 30;
input price = close;
input averageType = AverageType.WILDERS;
input showBreakoutSignals = no;
input buyAlertValue = -10;
input sellAlertValue = 10;

def rsi = RSI(length, over_bought, over_sold, price, averageType, showBreakoutSignals) - 50;

plot rsiLine = rsi;
rsiLine.SetPaintingStrategy(PaintingStrategy.LINE);
rsiLine.SetDefaultColor(Color.BLUE);
rsiLine.SetLineWeight(3);

plot rsiHist = rsi;
rsiHist.SetPaintingStrategy(PaintingStrategy.HISTOGRAM);
rsiHist.AssignValueColor(if rsi > 0 then Color.GREEN else Color.RED);
rsiHist.SetLineWeight(1);

plot zeroline = 0;
zeroline.SetDefaultColor(Color.WHITE);

plot BuyAlertLevel = buyAlertValue;
BuyAlertLevel.SetDefaultColor(Color.YELLOW);
BuyAlertLevel.SetPaintingStrategy(PaintingStrategy.LINE);
BuyAlertLevel.SetStyle(Curve.SHORT_DASH);
BuyAlertLevel.SetLineWeight(1);

plot SellAlertLevel = sellAlertValue;
SellAlertLevel.SetDefaultColor(Color.YELLOW);
SellAlertLevel.SetPaintingStrategy(PaintingStrategy.LINE);
SellAlertLevel.SetStyle(Curve.SHORT_DASH);
SellAlertLevel.SetLineWeight(1);

# END - RSI_HistoAlert_Strategy
This is perfect. Thank you so much! Do you think you could also add a sound alert when it crosses the zero line? Thanks again!
 

rad14733

Well-known member
VIP
This is perfect. Thank you so much! Do you think you could also add a sound alert when it crosses the zero line? Thanks again!

The code in Post #2 has been updated to include sound alerts...

Edited to add: Play with the code for a while and see whether or not BuyAlertLevel and SellAlertLevel crossover alerts would be worthwhile... I haven't had enough chance to monitor the working code to make such a determination... But I am hearing crossover alerts...
 
Last edited:

Similar threads

Top