Confirmation Candles Indicator For ThinkorSwim

Hi @sparhawk,
Here is the code to help find green candles. This can also be used to find red candles. Create a study with the code below then reference the study in your scan query.
Code:
#Confirmation Level Scan created 06/09/2021 by Christopher84
#Select the level of agreement among the 15 indicators included.

#MACD with Price
declare lower;
def price = close;
def fastLength = 12;
def slowLength = 26;
def MACDLength = 9;
input MACD_AverageType = {SMA, default EMA};
def MACDLevel = 0.0;

def fastEMA = ExpAverage(price, fastLength);
def slowEMA = ExpAverage(price, slowLength);
def Value;
def Avg;

switch (MACD_AverageType) {
case SMA:
    Value = Average(price, fastLength) - Average(price, slowLength);
    Avg = Average(Value, MACDLength);
case EMA:
    Value = fastEMA - slowEMA;
    Avg = ExpAverage(Value, MACDLength);}
def Diff = Value - Avg;
def Level = MACDLevel;

def condition1 = Value[1] <= Value;

#RSI
input RSI_length = 14;
input RSI_AverageType = AverageType.WILDERS;

def NetChgAvg = MovingAverage(RSI_AverageType, price - price[1], RSI_length);
def TotChgAvg = MovingAverage(RSI_AverageType, AbsValue(price - price[1]), RSI_length);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI = 50 * (ChgRatio + 1);

def condition2 = (RSI[3] < RSI) is true or (RSI >= 80) is true;

#MFI
input MFI_Length = 14;
def MFIover_Sold = 20;
def MFIover_Bought = 80;
def movingAvgLength = 1;
def MoneyFlowIndex = Average(moneyflow(high, close, low, volume, MFI_Length), movingAvgLength);
def MFIOverBought = MFIover_Bought;
def MFIOverSold = MFIover_Sold;

def condition3 = (MoneyFlowIndex[2] < MoneyFlowIndex) is true or (MoneyFlowIndex > 85) is true;

#Forecast
def na = Double.NaN;
def MidLine = 50;
def Momentum = MarketForecast().Momentum;
def NearT =  MarketForecast().NearTerm;
def Intermed = MarketForecast().Intermediate;
def FOB = 80;
def FOS = 20;
def upperLine = 110;

def condition4 = (Intermed[1] <= Intermed) or (NearT >= MidLine);

#Change in Price
def lengthCIP = 5;
def displace = 0;
def CIP = (price - price[1]);
def AvgCIP = ExpAverage(CIP[-displace], lengthCIP);
def CIP_UP = AvgCIP > AvgCIP[1];
def CIP_DOWN = AvgCIP < AvgCIP[1];

def condition5 = CIP_UP;

#EMA_1
input EMA_length = 12;
def AvgExp = ExpAverage(price[-displace], EMA_length);

def condition6 = (price >= AvgExp) and (AvgExp[2] <= AvgExp);

#EMA_2
input EMA_2length = 20;
def displace2 = 0;
def AvgExp2 = ExpAverage(price[-displace2], EMA_2length);

def condition7 = (price >= AvgExp2) and (AvgExp2[2] <= AvgExp2);

#DMI Oscillator
input DMI_length = 5;
input averageType = AverageType.WILDERS;

def diPlus = DMI(DMI_length, averageType)."DI+";
def diMinus = DMI(DMI_length, averageType)."DI-";

def Osc = diPlus - diMinus;
def Hist = Osc;
def ZeroLine = 0;

def condition8 = Osc >= ZeroLine;

#Trend_Periods
input TP_fastLength = 3;
input TP_slowLength = 4;

def Periods = sign(ExpAverage(close, TP_fastLength) - ExpAverage(close, TP_slowLength));

def condition9 = Periods > 0;

#Polarized Fractal Efficiency
input PFE_length = 5;
input smoothingLength = 2.5;

def PFE_diff = close - close[PFE_length - 1];
def val = 100 * Sqrt(Sqr(PFE_diff) + Sqr(PFE_length)) / sum(Sqrt(1 + Sqr(close - close[1])), PFE_length - 1);

def PFE = ExpAverage(if PFE_diff > 0 then val else -val, smoothingLength);
def UpperLevel = 50;
def LowerLevel = -50;

def condition10 = PFE > ZERoLine;

#Bollinger Bands PercentB
input BBPB_averageType = AverageType.Simple;
input BBPB_length = 20;
def Num_Dev_Dn = -2.0;
def Num_Dev_up = 2.0;

def upperBand = BollingerBands(price, displace, BBPB_length, Num_Dev_Dn, Num_Dev_up, BBPB_averageType).UpperBand;
def lowerBand = BollingerBands(price, displace, BBPB_length, Num_Dev_Dn, Num_Dev_up, BBPB_averageType).LowerBand;

def PercentB = (price - lowerBand) / (upperBand - lowerBand) * 100;
def HalfLine = 50;
def UnitLine = 100;

def condition11 = PercentB > 50;

#STARC Bands
def ATR_length = 15;
def SMA_lengthS = 6;
def multiplier_factor = 1.25;
def valS = Average(price, SMA_lengthS);
def average_true_range = Average(TrueRange(high, close, low), length = ATR_length);
def Upper_BandS = valS[-displace] + multiplier_factor * average_true_range[-displace];
def Middle_BandS = valS[-displace];
def Lower_BandS = valS[-displace] - multiplier_factor * average_true_range[-displace];

def condition12 = (Upper_BandS[1] <= Upper_BandS) and (Lower_BandS[1] <= Lower_BandS);

#Projection Oscillator
def ProjectionOsc_length = 30;#Typically 10
def MaxBound = HighestWeighted(high, ProjectionOsc_length, LinearRegressionSlope(price = high, length = ProjectionOsc_length));
def MinBound = LowestWeighted(low, ProjectionOsc_length, LinearRegressionSlope(price = low, length = ProjectionOsc_length));
def ProjectionOsc_diff = MaxBound - MinBound;
def PROSC = if ProjectionOsc_diff != 0 then 100 * (close - MinBound) / ProjectionOsc_diff else 0;
def PROSC_OB = 80;
def PROSC_OS = 20;

def condition13 = (PROSC > 50);

#Trend Confirmation
#Confirmation_Factor range 1-13.
plot Confirmation_Factor = 7;
#Use for testing conditions individually.
#def Agreement_Level = condition1;
plot Agreement_Level = condition1 + condition2 + condition3 + condition4 + condition5 + condition6 + condition7 + condition8 + condition9 + condition10 + condition11 + condition12 + condition13;

plot UpArrow = Agreement_Level crosses above Confirmation_Factor;
plot DownArrow = Agreement_Level crosses below Confirmation_Factor;
Here are the scan settings for finding transitions to green candles. I would suggest running it on a specific watchlist or possibly the weeklys. If this you scan all stocks, the scan may time out on you. Hope this helps.
SlBtMHz.png
SlBtMHz.png
Hey Christopher, needing to set this up again. I messed up original you helped me with. Problema; Agreement Level is not one of the choices under Plot: in my platform. Please advise?
 
@Christopher84 Fantastic work on these indicators man! It may be buried in this thread but my question is what would be the reason to use CC v10 vs C3 V6? In your video you mentioned you don't short and really only play upside moves. I'm still trying to undersand the consensus level portion of the indicators.
 
Hi Everyone!
So it's been a bit since I have introduced a new version of C3...well the time has come! C3_Max is complete and I am extremely excited to share it here with the usethinkscript community. New dynamic support and resistance levels are called out and plotted automatically for you as well as OB zones (red zones on the chart) and OS zone (green zones on the chart). The C3_MF_Line has also been included to indicate trend as well. You will find that on lower timeframes the red and green zones will band wrap around price when the price in trending in that direction. The arrows can give insight as to when to enter trades and when to take profit or potentially exit a trade. As always, look for confluence among the tools provided. Lastly, there is also an ema cloud that can be turned on along with it's corresponding averages (if you prefer). Thanks to everyone for your patience on the new system. The code can be found at the top of pg.1 of this thread. Happy trading!!! I look forward to your feedback.
iMuHkuC.png
 
Last edited:
@Christopher84 Fantastic work on these indicators man! It may be buried in this thread but my question is what would be the reason to use CC v10 vs C3 V6? In your video you mentioned you don't short and really only play upside moves. I'm still trying to undersand the consensus level portion of the indicators.
Thanks @Yev! I'm glad you are enjoying the indicators! I would suggest using the newest version C3_Max which was just posted to pg.1 of this thread. The other versions of the indicator are great and really just comes down to a matter of preference. I currently use C3_Max. The consensus level is just a measure of how many studies agree on the direction of price. Consensus values above 0 indicate upward trend while values below 0 indicate downward trend. Consensus increasing or decreasing is telling you the direction that the consensus between the indicators is moving. I hope this helps!
 
Last edited:
Hey @Christopher84, can't wait to try the new study. I had a question that I couldn't find addressed in the thread. Is there anyway for the consensus candles study to run a scan that will scan if the supports and resistance levels are red, green or grey? Thank you
 
Hey @Christopher84, can't wait to try the new study. I had a question that I couldn't find addressed in the thread. Is there anyway for the consensus candles study to run a scan that will scan if the supports and resistance levels are red, green or grey? Thank you
Hi @darockra3!
I haven't put together a scan for those conditions yet. However, I suspect it will be too complex for ToS.
 
Hi @darockra3!
I haven't put together a scan for those conditions yet. However, I suspect it will be too complex for ToS.
Yeah, I thought maybe it can be simplified so its not too complicated, but I'm not versed enough to create a script for it. Hopefully something to look at as it looks good when it back tests going from red to gray or green along with other conditions for a long position. Thank you!
 
My Scalper Upper Study was just added to pg.1 of this thread for those of you who are interested. It is based on an MTF EMA approach. This study can repaint, however I have still found it to be very useful for staying on the right side of the trade. The labels are intended to give insight to the broader trend. It is preferable to scalp in the direction of the larger trend. The Bias label is intended to show potential pivots as well as when the lower timeframe trend is in sync with the larger trend. As always, I look forward to your feedback. Happy trading!
iVPzuen.png
 
Last edited:
@Christopher84 Many thanks for sharing new indicator release. While I am preparing to apply new version for monitoring market activity with C3_Max tomorrow, is there a way for creating study based scanner ?
I was hoping to catch signalUp (BUY) vs signalDown (SELL) conditions.
Thanks in advance
 
Appreciate very much that @Christopher84 and @barbaros shared their talents and scalping study with us! Can't wait to plot the scalper tomorrow. TOS isn't my trading platform but I still like to watch price action in TOS with the indicators on this thread because they display helpful information without distracting clutter. Thank you again for sharing, barbaros and Christopher!
 
@Christopher84 Many thanks for sharing new indicator release. While I am preparing to apply new version for monitoring market activity with C3_Max tomorrow, is there a way for creating study based scanner ?
I was hoping to catch signalUp (BUY) vs signalDown (SELL) conditions.
Thanks in advance
Hi @DeepThinker! Great question. I haven’t developed a scan yet due to limitations of ToS unfortunately. Doesn’t mean I won’t keep trying. I will keep you posted.
 
Appreciate very much that @Christopher84 and @barbaros shared their talents and scalping study with us! Can't wait to plot the scalper tomorrow. TOS isn't my trading platform but I still like to watch price action in TOS with the indicators on this thread because they display helpful information without distracting clutter. Thank you again for sharing barbaros and Christopher!
You are welcome @Trader Raider! As always, I'll be looking forward to your feedback. :)
 
Here's an example on the 3m chart using C3_Max. Notice the breakdown out of the OB Zone (showing a breakdown in the upward momentum) right before the bell, followed by a retest and very nice call out for the short position.
ibBErGy.png
 
Anyone trading the /ES today? This was a great example and I wanted to share it with everyone. Signal down the candle before the bell, followed by a breakdown from the OB Zone. Confluence among the indicator for the short scalp.
gVWlkVT.png
 
Last edited:
Anyone trading the /ES today? This was a great example and I wanted to share it with everyone. Signal down the candle before the bell, followed by a breakdown from the OB Zone. Confluence among the indicator for the short scalp.
gVWlkVT.png
Hi Christopher. Thanks for the great updates and scalper! Very nice. Been catching up on this thread after hearing about it. Can you share your aggregate settings for the ES example above? I'm looking to watch SPY with the same time frame of 5 minutes and was wondering how the comparison would be. Thanks again!!! Keep you posted when I review.
 
Hi Christopher. Thanks for the great updates and scalper! Very nice. Been catching up on this thread after hearing about it. Can you share your aggregate settings for the ES example above? I'm looking to watch SPY with the same time frame of 5 minutes and was wondering how the comparison would be. Thanks again!!! Keep you posted when I review.
Hi @rfb!
The example above is using C3_Max with it's default settings essentially. I turn off show ema cloud setting as well as AvgExp8 and AvgExp9. Other than that, its just the normal settings. Hope that helps. Happy trading @rfb!
 

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
251 Online
Create Post

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top