CSA Trading Dashboard for ThinkorSwim

I would like to see IF there would be a demand to make an indicator such as CSA but utilizing a 2 color system...GREEN and RED and basically find the best SuperTrend codes out there and put them into dots on a specific line just like in the CSA indicator...no more than 5.

What do you all think?
I think it sounds very interesting @HighBredCloud Could you get a hold of these SuperTrend codes and evaluate them from a testing/analysis/end-user angle to weed out the laggards and repainters?

I would like to see IF there would be a demand to make an indicator...
One of the things we could do is create a poll with this forum software and get direct fedback from end-users...Let me know what you think when you have a chance...Thanks :)
 
Last edited:
@HighBredCloud @netarchitech @diazlaz Folks, as a follow up to the request mods, here then is version 1.2 of the CSA Trading Dashboard, it incorporates bubbles for the various lines as well as synthesize some of the more similar internal variables. Refer to the change log for details. I have tested this and this is ready to go.

Edit: Note: In order to see the bubbles that tags each individual study, please make sure you set your chart expansion area to at least 11 bars
Edit: feel free to change this thread to any name you wish.

Code:
# CSA Trading Dashboard
# tomsk
# 11.14.2019

# V1.0 - 11.14.2019 - tomsk - Initial release of CSA Trading Dashboard
# V1.1 - 11.14.2019 - tomsk - Added bubbles to identify study being displayed
# V1.2 - 11.14.2019 - tomsk - Synthesized similar internal variables and minor edits

# This is a lower study represented by 5 dotted lines. Each line represents
# the “price performance” of the following five indicators
#
# Line 1: MACD with a more Normal Distribution
# Line 2: Stochastic Full Diff
# Line 3: FREMA
# Line 4: PPO MMA
# Line 5: Universal Oscillator
#
# Please note that each study was normalized to a standard form and uses a
# standardized global coloring scheme that reflects the following states
#
# Positive and Up
# Positive and Down
# Negative and Down
# Negative and Up
#
# MACD FREMA already includes Ehlers Forward/Reverse EMA as that indicator
# is already represented in Line3. Since all we want to represent is the
# histogram, removed the Multi Moving Average Component from the MACD FREMA.
# Hence we are really left with the MACD with a more Normal Distribution
# study. Therefore, replaced Line 1 with MACD with a more Normal Distribution
# which is the basis of MACD FREMA

# Global Defs

input DotSize = 3;
input n = 3;

def n1  = n + 1;
def PosUp = 1;   # Positive and Up
def PosDn = 2;   # Positive and Down
def NegDn = 3;   # Negative and Down
def NegUp = 4;   # Negative and Up

DefineGlobalColor("Positive and Up", Color.GREEN);
DefineGlobalColor("Positive and Down", Color.DARK_GREEN);
DefineGlobalColor("Negative and Down", Color.RED);
DefineGlobalColor("Negative and Up", Color.DARK_RED);

# MACD with a more Normal Distribution
# Mobius
# V01.09.2015
#
# Plots a Gaussian distribution. If Normal Distribution is met, then at
# minimum, 68.2% of the close values should be inside a One Standard Deviation
# Envelope and 95.4% of the close values should be inside a 2 Standard
# Deviation Envelope.

declare lower;

input MACDFastLength = 12;
input MACDSlowLength = 26;
input MACDLength = 9;

# Four Pole Filter
script g{
  input length  = 4;
  input betaDev =  2;
  input price = OHLC4;
def c;
def w;
def beta;
def alpha;
def G;
c = price;
w = (2 * Double.Pi / length);
beta = (1 - Cos(w)) / (Power(1.414, 2.0 / betaDev) - 1 );
alpha = (-beta + Sqrt(beta * beta + 2 * beta));
G = Power(alpha, 4) * c +
                 4 * (1 – alpha) * G[1] – 6 * Power( 1 - alpha, 2 ) * G[2] +
                 4 * Power( 1 - alpha, 3 ) * G[3] - Power( 1 - alpha, 4 ) * G[4];
  plot Line = G;
}
# Modified MACD
def MACD_Value = g(length = MACDFastLength) - g(length = MACDSlowLength);
def MACD_Avg = g(price = MACD_Value, length = MACDLength);
def MACD_Diff = MACD_Value - MACD_Avg;
def MACD_State = if MACD_Diff >= 0
                 then if MACD_Diff > MACD_Diff[1]
                      then PosUp
                      else PosDn
                 else if MACD_Diff < MACD_Diff[1]
                      then NegDn
                      else NegUp;
plot MACD_Dot = if IsNaN(close) then Double.NaN else 1;
MACD_Dot.SetPaintingStrategy(PaintingStrategy.POINTS);
MACD_Dot.SetLineWeight(DotSize);
MACD_Dot.AssignValueColor(if MACD_State == PosUp then GlobalColor("Positive and Up")
                       else if MACD_State == PosDn then GlobalColor("Positive and Down")
                       else if MACD_State == NegDn then GlobalColor("Negative and Down")
                       else GlobalColor("Negative and Up"));
AddChartBubble(!IsNaN(close[n1]) and IsNaN(close[n]), 1, "MACD", Color.Yellow, yes);
# End Code Modified MACD - Gaussian



# Stochastic Full Diff
# Extracted from Standard TOS Release

input priceH = high;
input priceL = low;
input priceC = close;
input kPeriod = 10;
input kSlowingPeriod = 3;
input dPeriod = 10;
input STOAverageType = AverageType.SIMPLE;

def Stochastic_Diff = reference StochasticFull(0, 0, kPeriod, dPeriod, priceH, priceL, priceC, kSlowingPeriod, STOAverageType).FullK -
                      reference StochasticFull(0, 0, kPeriod, dPeriod, priceH, priceL, priceC, kSlowingPeriod, STOAverageType).FullD;
def Stochastic_State = if Stochastic_Diff >= 0
                       then if Stochastic_Diff > Stochastic_Diff[1]
                            then PosUp
                            else PosDn
                       else if Stochastic_Diff < Stochastic_Diff[1]
                            then NegDn
                            else NegUp;
plot Stochastic_Dot = if IsNaN(close) then Double.NaN else 2;
Stochastic_Dot.SetPaintingStrategy(PaintingStrategy.POINTS);
Stochastic_Dot.SetLineWeight(DotSize);
Stochastic_Dot.AssignValueColor(if Stochastic_State == PosUp then GlobalColor("Positive and Up")
                       else if Stochastic_State == PosDn then GlobalColor("Positive and Down")
                       else if Stochastic_State == NegDn then GlobalColor("Negative and Down")
                       else GlobalColor("Negative and Up"));
AddChartBubble(!IsNaN(close[n1]) and IsNaN(close[n]), 2, "Stoch", Color.Yellow, yes);
# End Code Modified Stochastic Full Diff



# Forward / Reverse EMA
# (c) 2017 John F. Ehlers
# Ported to TOS 07.16.2017
# Mobius

# Inputs:
input AA = .1;

# Vars:
def CC;
def RE1;
def RE2;
def RE3;
def RE4;
def RE5;
def RE6;
def RE7;
def RE8;
def EMA;

CC = if CC[1] == 0 then .9 else 1 – AA;
EMA = AA * Close + CC * EMA[1];
RE1 = CC * EMA + EMA[1];
RE2 = Power(CC, 2)   * RE1 + RE1[1];
RE3 = Power(CC, 4)   * RE2 + RE2[1];
RE4 = Power(CC, 8)   * RE3 + RE3[1];
RE5 = Power(CC, 16)  * RE4 + RE4[1];
RE6 = Power(CC, 32)  * RE5 + RE5[1];
RE7 = Power(CC, 64)  * RE6 + RE6[1];
RE8 = Power(CC, 128) * RE7 + RE7[1];

def FREMA_Diff = EMA – AA * RE8;
def FREMA_State = if FREMA_Diff >= 0
                  then if FREMA_Diff > FREMA_Diff[1]
                       then PosUp
                       else PosDn
                  else if FREMA_Diff < FREMA_Diff[1]
                       then NegDn
                       else NegUp;
plot FREMA_Dot = if IsNaN(close) then Double.NaN else 3;
FREMA_Dot.SetPaintingStrategy(PaintingStrategy.POINTS);
FREMA_Dot.SetLineWeight(DotSize);
FREMA_Dot.AssignValueColor(if FREMA_State == PosUp then GlobalColor("Positive and Up")
                       else if FREMA_State == PosDn then GlobalColor("Positive and Down")
                       else if FREMA_State == NegDn then GlobalColor("Negative and Down")
                       else GlobalColor("Negative and Up"));
AddChartBubble(!IsNaN(close[n1]) and IsNaN(close[n]), 3, "FREMA", Color.Yellow, yes);

# End Code Ehlers Forward / Reverse EMA



# PPO Multiple Moving Averages
# Based on earlier PPO FREMAS code from netarchitect
# Revamped by tomsk
# 11.13.2019

# V11.11.2019 - tomsk - revamped netarchitect's base PPO code
# V11.13.2019 - tomsk - enhanced code structure, collapsed computation into a single switch

input PPOFastLength = 12;
input PPOSlowLength = 26;
input PPOSignalPeriod = 9;
input price = close;
input PPOMovingAverageType = {"Simple MA", default "Exponential MA", "Wilders Smoothing", "Weighted MA",
    "Hull MA", "Adaptive MA", "Triangular MA", "Variable MA", "Dema MA", "Tema MA", "EHMA", "THMA"};

def periodOK  = PPOFastLength < PPOSlowLength;
AddLabel(!periodOK, "ERROR: PPOFastLength MUST be less than PPOSlowLength");

def fast;
def slow;
def _ppo;
def _signal;

switch (PPOMovingAverageType) {
case "Simple MA":
    fast = Average(price, PPOFastLength);
    slow = Average(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = Average(_ppo, PPOSignalPeriod);

case "Exponential MA":
    fast = ExpAverage(price, PPOFastLength);
    slow = ExpAverage(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = ExpAverage(_ppo, PPOSignalPeriod);

case "Wilders Smoothing":
    fast = WildersAverage(price, PPOFastLength);
    slow = WildersAverage(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = WildersAverage(_ppo, PPOSignalPeriod);

case "Weighted MA":
    fast = wma(price, PPOFastLength);
    slow = wma(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = wma(_ppo, PPOSignalPeriod);

case "Hull MA":
    fast = HullMovingAvg(price, PPOFastLength);
    slow = HullMovingAvg(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = HullMovingAvg(_ppo, PPOSignalPeriod);

case "Adaptive MA":
    fast = MovAvgAdaptive(price, PPOFastLength);
    slow = MovAvgAdaptive(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = MovAvgAdaptive(_ppo, PPOSignalPeriod);

case "Triangular MA":
    fast = MovAvgTriangular(price, PPOFastLength);
    slow = MovAvgTriangular(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = MovAvgTriangular(_ppo, PPOSignalPeriod);

case "Variable MA":
    fast = variableMA(price, PPOFastLength);
    slow = variableMA(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = variableMA(_ppo, PPOSignalPeriod);

case "Dema MA":
    fast = DEMA(price, PPOFastLength);
    slow = DEMA(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = DEMA(_ppo, PPOSignalPeriod);

case "Tema MA":
    fast = TEMA(price, PPOFastLength);
    slow = TEMA(price, PPOSlowLength);
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = TEMA(_ppo, PPOSignalPeriod);

case EHMA:
    fast = ExpAverage(2 * ExpAverage(price, PPOFastLength / 2) -
           ExpAverage(price, PPOFastLength), Round(Sqrt(PPOFastLength)));
    slow = ExpAverage(2 * ExpAverage(price, PPOSlowLength / 2) -
           ExpAverage(price, PPOSlowLength), Round(Sqrt(PPOSlowLength)));
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = ExpAverage(2 * ExpAverage(_ppo, PPOSignalPeriod / 2) -
              ExpAverage(_ppo, PPOSignalPeriod), Round(Sqrt(PPOSignalPeriod)));

case THMA:
    fast = WMA(WMA(price, (PPOFastLength / 2) / 3) * 3 - WMA(price, (PPOFastLength / 2) / 2) -
           WMA(price, (PPOFastLength / 2)), (PPOFastLength / 2));
    slow = WMA(WMA(price, (PPOSlowLength / 2) / 3) * 3 - WMA(price, (PPOSlowLength / 2) / 2) -
           WMA(price, (PPOSlowLength / 2)), (PPOSlowLength / 2));
    _ppo = if periodOK then ((fast - slow) / slow) * 100 else 0;
    _signal = WMA(WMA(_ppo, (PPOSignalPeriod / 2) / 3) * 3 - WMA(_ppo, (PPOSignalPeriod / 2) / 2) -
              WMA(_ppo, (PPOSignalPeriod / 2)), (PPOSignalPeriod / 2));
}

def Ppo = _ppo;
def PpoEma = _signal;
def PPO_Diff = 2 * (_ppo - _signal);
def PPO_State = if PPO_Diff >= 0
                then if PPO_Diff > PPO_Diff[1]
                     then PosUp
                     else PosDn
                else if PPO_Diff < PPO_Diff[1]
                     then NegDn
                     else NegUp;
plot PPO_Dot = if IsNaN(close) then Double.NaN else 4;
PPO_Dot.SetPaintingStrategy(PaintingStrategy.POINTS);
PPO_Dot.SetLineWeight(DotSize);
PPO_Dot.AssignValueColor(if PPO_State == PosUp then GlobalColor("Positive and Up")
                       else if PPO_State == PosDn then GlobalColor("Positive and Down")
                       else if PPO_State == NegDn then GlobalColor("Negative and Down")
                       else GlobalColor("Negative and Up"));
AddChartBubble(!IsNaN(close[n1]) and IsNaN(close[n]), 4, "PPO", Color.Yellow, yes);
# End Code PPO Multiple Moving Averages



# Ehlers Universal Oscillator
# LazyBear
# initial port by netarchitech
# 2019.11.05
# source: https://www.tradingview.com/script/ieFYbVdC-Ehlers-Universal-Oscillator-LazyBear/

input bandedge = 20;
input EUOLengthMA = 9;

def whitenoise = (close - close[2])/2;
def a1 = ExpAverage(-1.414 * 3.14159 / bandedge);
def b1 = 2.0 * a1 * cos(1.414 * 180 /bandedge);
def c2 = b1;
def c3 = -a1 * a1;
def c1 = 1 - c2 - c3;

def filt = c1 * (whitenoise + (whitenoise[1]))/2 + c2 * (filt[1]) + c3 * (filt[2]);
def filt1 = if totalsum(1) == 0 then 0
            else if totalsum(1) == 2 then c2 * filt1[1]
            else if totalsum(1) == 3 then c2 * filt1[1] + c3 * (filt1[2])
            else filt;

def pk = if totalsum(1) == 2 then .0000001
         else if absvalue(filt1) > pk[1] then absvalue(filt1)
         else 0.991 * pk[1];
def denom = if pk == 0 then -1 else pk;
def euo = if denom == -1 then euo[1] else filt1/pk;
def euoMA = ExpAverage(euo, EUOLengthMA);
def Universal_Diff = euo;
def Universal_State = if Universal_Diff >= 0
                      then if Universal_Diff > Universal_Diff[1]
                           then PosUp
                           else PosDn
                      else if Universal_Diff < Universal_Diff[1]
                           then NegDn
                           else NegUp;
plot Universal_Dot = if IsNaN(close) then Double.NaN else 5;
Universal_Dot.SetPaintingStrategy(PaintingStrategy.POINTS);
Universal_Dot.SetLineWeight(DotSize);
Universal_Dot.AssignValueColor(if Universal_State == PosUp then GlobalColor("Positive and Up")
                       else if Universal_State == PosDn then GlobalColor("Positive and Down")
                       else if Universal_State == NegDn then GlobalColor("Negative and Down")
                       else GlobalColor("Negative and Up"));
AddChartBubble(!IsNaN(close[n1]) and IsNaN(close[n]), 5, "Univ Osc", Color.Yellow, yes);
# End Code Ehlers Universal Oscillator
# End CSA Trading Dashboard
 
Last edited:
@tomsk I just plugged in the latest version (1.2) with the newly added ChartBubbles, but they don't show up? Am I missing something? Let me know when you have a chance...Thanks :)

Once again, great job and thanks for the rapid update :cool:
 
@netarchitech as far as the SuperTrends go...I have at least 4 different kinds...I just don't know what others have that might be good. For example...the EUO indicator you made also comes with an option to paint the bars...in TOS there is a CAM indicator and Impulse that also paint bars...I just don't know how good they are. Price Trend is another great SuperTrend that I overlaid on my Heikin Ashi candles...

Tillson T-1 to T6 suite also comes with bars being painted...I was actually trying to test this personally as I think such a format as the CSA indicator would work really well with the Tillson T-1 through T6 lines...I don't think they repaint much if any...So perhaps maybe we could start there.

I fee that by combining certain indicators it will declutter the chart and make one more focused on actual price action more rather than paying attention to multiple indicators at once.

Perhaps maybe we should make a poll and ask the community to state their favorite SuperTrend and we can go from there...

In the mean time here is the Tillson Suite...Picture this type of an indicator just like the CSA with the dots...

As always for colors I would prefer that the user can have a choice...but if not than regular UPTICK DOWNTICK colors would do...the default in the Tillson suite are too dark IMO...and some that I have seen are way to bright causing anxiety...

Code:

Code:
# filename: Tillson_T3_Moving_Average
# source: https://futures.io/thinkorswim/34287-tilson-t3-moving-average.html#post460861
# created by: rmejia
# last update: 12/17/2014

#hint:<b>T3 Adaptive Smoothing Indicator</b>\nThis study was adopted from the Technical Analysis of Stocks and Commodities article "Smoothing Techniques for More Accurate Signals" by Tim Tillson, Jan 1998 (V16:1 pp33-37)
#hint: indicator: Defines the level of filtering to occur, default is 3
#hint: volumeFactor: Adjusts the amplitude of the feedback added back into the base filter

declare upper;

input indicator    = { T1, T2, default T3, T4, T5, T6 };
input price        = close;
input period       = 15;
input volumeFactor = 0.70;
input displace = 0;
input sign         = { default plus, minus };
input Label        = No;
input paintbars    = No;


script _gd {
  input _price  = close;
  input _period = 10;
  input _v      = 0.70;
  input _sign   = { default plus, minus };
  def _ema      = ExpAverage( _price, _period );
  plot _gd      = ( _ema * ( 1 + _v ) ) - ( ExpAverage( _ema, _period ) * _v );
}

def _t1 = _gd( price[-displace], period, volumeFactor, sign );
def _t2 = _gd( _t1,   period, volumeFactor, sign );
def _t3 = _gd( _t2,   period, volumeFactor, sign );
def _t4 = _gd( _t3,   period, volumeFactor, sign );
def _t5 = _gd( _t4,   period, volumeFactor, sign );
def _t6 = _gd( _t5,   period, volumeFactor, sign );

plot T3;
switch( indicator ) {
  case T1:
    T3 = _t1;
  case T2:
    T3 = _t2;
  case T3:
    T3 = _t3;
  case T4:
    T3 = _t4;
  case T5:
    T3 = _t5;
  case T6:
    T3 = _t6;
}

T3.AssignValueColor(if T3 > T3[1] then Color.GREEN else Color.RED);
T3.HideBubble();

AddLabel(Label, if T3 > T3[1] then "  A  " else "  A  ", if T3 > T3[1] then Color.GREEN else Color.RED);

assignPriceColor(if paintbars and T3 < T3[1] then color.DARK_RED else if paintbars and T3 > T3[1] then color.DARK_GREEN else color.CURRENT);
 
Last edited by a moderator:
@tomsk I saw the updates...Thanks!...as @netarchitech stated...no bubbles...And what can we do about the whole color selection I mentioned before? If that is too much work perhaps others can assist in this...I really do think it would make all the difference in the world to some folks here...myself included.
 
as far as the SuperTrends go...I have at least 4 different kinds...
@HighBredCloud Thanks for the swift reply :) ...out of the 4, which ones would you like to see the most?

.in TOS there is a CAM indicator and Impulse
I'm not familiar with these...are they 2 out of the 4 you previously referred to?

Tillson T-1 to T6 suite also comes with bars being painted...I was actually trying to test this personally as I think such a format as the CSA indicator would work really well with the Tillson T-1 through T6 lines...I don't think they repaint much if any...So perhaps maybe we could start there.
Thanks for the code...I'll check it out...

I fee that by combining certain indicators it will declutter the chart and make one more focused on actual price action more rather than paying attention to multiple indicators at once.
Well said, @HighBredCloud I wohleheartedly agree with you! :cool:

Perhaps maybe we should make a poll and ask the community to state their favorite SuperTrend and we can go from there...
I think that's a great idea! :) Let's frame it out and I'll put it out there...
 
And what can we do about the whole color selection I mentioned before?
@HighBredCloud @tomsk FWIW, I think the CSA Trading Dashboard is great the way it is...and the initial "reviews"/comments are very encouraging too :) Adding user-defined color capacity to it (if possible) may create an additional layer of unnecessary complexity that may, in the end, be utilitzed only by a small number of end users...

With that said, I think it's best that @tomsk provide his view/opinion on this since he has written the code from the ground up...
 
@netarchitech NO...the CAM and Impulse are not one of them as I think that they repaint too much...First I'd like to see what Tillson has to offer once all the lines would be plugged in in the CSA dot format...I have 3 Mobius SuperTrends that I can post and the BlastOFF SuperTrend that you made a while back...I'd like to see those and test those against the Price Trend SuperTrend that would actually be applied to the upper study and paint over the candles.

In regards to the CSA and color changes...The reason why its so vital to have such an option is because the strategy behind it is not just BUY or SELL when the dots line up...That could and will lead into false signals.

Here is the intention behind such an indicator:

MACD and the StochasticFULLDIFF should ONLY be the ones with the 4 color histogram colors.

FREMA should be 2 colors because its more of a "trend" indicator...and personally I wanted it to be in line number 3 in order to break up from an ENTRY indicator and an EXIT indicator such as PPO and EUO...

PPO should also be 2 colors especially when you change from Exponential to TEMA or DEMA moving averages...the histograms will not make much sense if you look at them in any other way...Go look for yourself...

EUO is very sensitive...This one could really go either way...BUT at least the histogram on EUO goes in the direction of the trend unlike the ones of PPO...

I mentioned the importance of color and being able for the user to change that themselves when the issue between going 2 or 4 color arose.
 
It appears that some of you appear to have a problem with the bubbles. All you need to do is to load the study and zoom in. It works both on daily as well as intraday on futures, equities, etc. Here is a snapshot image


If you'd like to change the color definitions, there is only one place in the code to change it:

DefineGlobalColor("Positive and Up", Color.GREEN);
DefineGlobalColor("Positive and Down", Color.DARK_GREEN);
DefineGlobalColor("Negative and Down", Color.RED);
DefineGlobalColor("Negative and Up", Color.DARK_RED);

Please note that by design of the study, the plot colors are dynamically set depending on the state of each individual study. That is the fundamental reason why you are unable to change the colors in the user interface. You are of course free to make whatever changes you deem necessary to suit your needs. My take is - keep things simple, the code is already complex as it stands

One final note - The PPO is identical to the MACD except the PPO measures percentage difference between two EMAs, while the MACD measures absolute (dollar) difference. Personally I would just drop one of them from consideration
 
@HighBredCloud Thanks for the clarification with respect to what you are proposing with the CSA-style SuperTrend project...I am going to need a little time to process and wrap my head around it, so please bear with me...

In the meantime, what about the poll? Would you like to work on the Poll format...Yes/No or multiple choice? What question should we ask? Let me know when you have a chance...Thanks :)
 
@tomsk Thank you for the clarification...Can the bubbles be affixed to the left side, instead of being in the "gutter" on the right side...Unless a user specifies for the chart to be expanded 10 periods to the right the bubbles will remain hidden...I tried zooming as you suggested, but they remained hidden...
 
@HighBredCloud The bubbles for the CSA are off to the right...In order to see them, go to Chart Settings - Time Axis then enter in 10 or larger value in the "Expansion area" field and you will see the CSA Bubbles on the right side of the CSA...
 
@tomsk The problem that needs to be avoided is false signals on different time frames...Both PPO set to TEMA and or DEMA along with EUO indicator aver very sensitive. You need to be able to distinguish a pullback from a reversal...while still maintaining "trend."

Both MACD and StochasticFULLDIFF can change from bright green to dark green and then back to bright green again to indicate a volume pick up in a LONG position...This is not as easily verifiable with PPO or EUO...Hence why we started with 3 histograms and added 2 more...

2 for entry MACD and StochasticFULLDIFF
1 for trend FREMA or Tillson T3
2 for exit PPO and EUO

No doubt that this code is complicated...it should be. We have 5 indicators crammed in there with no moving average lines what so ever or the ability to actually look at the histogram to see if the bars are falling or raising...We are solely relying on colors...This has to be made into a very customizable indicator or else you'll end up with a very beautifully coded indicator that can't pass the smell test. AND THAT...would be a shame.

I agree that keeping things simple is the key...Every indicator that @netarchitech made upon my requests have been just that...Simple yet effective...

Even the CSA indicator as complex as it is...its meant to be simple. But you need to understand the theory behind it. I wouldn't be asking for this if I didn't think it was necessary. The people commenting on this indicator need to understand how it works first and foremost. At the end of the day having an option makes both me and you right in our own respective ways.

What is needed is an option under each indicator to change the color if needed be. I am not a coder but how does having such an option throw off the whole code?

This is what is needed as an option under each indicator.

 
a.png
 
@netarchitech In regards to the poll...perhaps maybe we can make a thread and have people post their favorite SuperTrend indicators...We should ask people for SuperTrend indicators that don't repaint as much as others may...After that I can test them to see how they actually perform before we chose which ones to incorporate into the CSA style Ultimate SuperTrend...

In the mean time while we are awaiting such responses...I was thinking that perhaps we could start with the Tillson inspired SuperTrend based on the T1 thorugh T6...From using T3 set to 8 periods and T4 set to 4 periods I have noticed that this is a very precise way to determine trend and or pullback by utilizing the moving average crossover strategy...I did not try T1 or T2 as having too many moving averages on the chart complicates things...BUT having them on the bottom in the lower study in CSA format might actually do the trick...

The main emphasis would have to be T3 as T3 set to 8 periods on a 5 min chart acts the same way as if you used 5 8 13 MA crossovers...but it hits faster.

I did a little mock up of the moving averages...hopefully you can envision how the bars would be painted in CSA format in the lower study.


What are your thoughts?
 
@HighBredCloud In terms of the poll...I think a new thread is fine...I'm just wondering if we will get more responses if the respondents have only to click a button...how about both?

As far as the proposed Tillson project, I'm going to need to take a little time to figure it out...fortunately the weekend is coming up :)
 
@netarchitech Take your time...there's no hurry...I figured I'd toss that idea out there while its still fresh especially since its utilizing the same format at CSA that was just completed. And I agree both poll and allowing people to respond would probably gauge more interest.
 

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

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
445 Online
Create Post

Similar threads

Similar threads

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