Where Have I Gone Wrong? Sell Bar not Displaying Properly

a1cturner

Well-known member
I cannot figure out for the life of me why one of my sell triggers is not showing properly. I tried to define the crap out of it but it still isn't working.

I am trying to paint a red bar when the RSI crosses below 70 or when the RSI crosses above 30. As of now I am still getting my "hold signal"

I do get a red bar at the end of the day as well as when the EMAs cross but just not when the RSI crosses. It is supposed to be either the EMA cross or RSI cross but always at the end of the day.

Everywhere there is a Red Arrow should be a Red Bar instead.

ZlRn7KF.png


Code:
#JT EMA, MACD, AND RSI INDICATOR

declare upper;

#EMAs
input EMA1 = 5;
input EMA2 = 12;
input EMA3 = 34;
input EMA4 = 50;

def EMAFast1 = ExpAverage(close, EMA1);
def EMAFast2 = ExpAverage(close, EMA2);
def EMASlow1 = ExpAverage(close, EMA3);
def EMASlow2 = ExpAverage(close, EMA4);

def EMAFastBull = EMAFast1 > EMAFast2;
def EMASlowBull = EMASlow1 > EMASlow2;
def EMAFastBear = EMAFast1 < EMAFast2;
def EMASlowBear = EMASlow1 < EMASlow2;

def EMAFastCrossDown = EMAFast1 crosses below EMAFast2;
def EMAFastCrossUp = EMAFast1 crosses above EMAFast2;

#EMA PERCENT
def EMAPct = ((EMA1 / EMA2) * 100) - 100;
def EMAPctRound = Round(EMAPct, 2);
def EMAPctBull = EMAPct >= EMAPct[1];
def EMAPctBear = EMAPct <= EMAPct[1];

def EMABull = EMAFastBull and EMASlowBull and EMAPctBull;
def EMABear = EMAFastBear and EMASlowBear and EMAPctBear;

#MACD
input MACDFast = 10;
input MACDSlow = 22;
input MACDLength = 8;

def Value = ExpAverage(close, MACDFast) - ExpAverage(close, MACDSlow);
def Average = ExpAverage(Value, MACDLength);
def MACDDiff = Value - Average;
def ZeroLine = 0;

def MACDBull = MACDDiff >= MACDDiff[1];
def MACDBear = MACDDiff <= MACDDiff[1];

#RSI
input RSILength = 14;
input RSIOverBought = 70;
input RSIOverSold = 30;

def NetChgAvg = WildersAverage(close - close[1], RSILength);
def TotChgAvg = WildersAverage(AbsValue(close - close[1]), RSILength);
def ChgRatio = if TotChgAvg != 0 then NetChgAvg / TotChgAvg else 0;
def RSI = 50 * (ChgRatio + 1);

def RSIBull = RSI > 40 and RSI >= RSI[1];
def RSIBear = RSI < 60 and RSI <= RSI[1];
def RSICrossDown = RSI crosses below RSIOverBought;
def RSICrossUp = RSI crosses above RSIOverSold;

#START AND END TIME
input StartTime = 0930;
input StartTimeDelay = 30;
input EndTime = 1600;
input EndTimeDelay = 10;
input LastStop = 10;

def Start = SecondsFromTime(StartTime);
def StartSignalDelay = StartTimeDelay * 60;
def StartSignal = Start > StartSignalDelay;
def End = SecondsTillTime(EndTime);
def EndSignalDelay = EndTimeDelay * 60;
def EndSignal = End > EndSignalDelay;
def LastStopDelay = LastStop*60;
def TradingDay = StartSignal and EndSignal;
def EndDay = End == LastStopDelay;

#INDICATORS
def CallBuy = TradingDay and EMABull and MACDBull and RSIBull;
def CallHold = TradingDay and EMABull;
def CallPrev = CallBuy[1] or CallHold[1];
def PutBuy = TradingDay and EMABear and MACDBear and RSIBear;
def PutHold = TradingDay and EMABear;
def PutPrev = PutBuy[1] or PutHold[1];
def CallSell =  TradingDay and (EMAFastCrossDown or RSICrossDown);
def PutSell =  TradingDay and (EMAFastCrossUp or RSICrossUp);

def CallSignal = if
CallBuy == 1 and EndDay == 0 then CallBuy
 else if
CallHold == 1 and CallBuy == 0 and EndDay == 0 then CallHold
 else if
CallSell == 1 then CallSell
 else if
CallBuy == 1 and EndDay == 1 then EndDay
 else if
CallHold == 1 and EndDay ==1 then EndDay
 else if
CallBuy == 0 and CallHold == 0 and EndDay ==1 then EndDay
 else double.nan;

def PutSignal = if
PutBuy == 1 and EndDay == 0 then PutBuy
 else if
PutHold == 1 and PutBuy == 0 and EndDay == 0 then PutHold
 else if
PutSell == 1 and CallHold == 0 then PutSell
 else if
PutBuy ==1 and EndDay == 1 then EndDay
 else if
PutHold ==1 and EndDay == 1 then EndDay
 else if
PutBuy == 0 and PutHold == 0 and EndDay ==1 then EndDay
 else double.nan;

############TRYING TO ADD LINES AND PROFIT LABELS###############
#def CallOpen = if CallBuy then close else CallOpen[1];
#def CallClose = if CallSell then close else CallClose[1];
#def CallQty = 100;
#def CallProfit = (CallOpen * CallQty) - (CallClose * CallQty);

#addlabel(1, "   ", color.black);
#addlabel(1, "Call Profit " + CallProfit, color.green);
#addlabel(1, "Trades " + CallQty/100, color.yellow);
#addlabel(1, "Avg Call Trade $ " + (CallProfit/CallQty), color.yellow);

#plot CBuy = if CallBuy or CallHold then CallClose else double.nan;
##cbuy.setdefaultcolor(color.green);
################################################################

#COLOR BARS
AssignPriceColor(if CallBuy then createcolor(0, 255, 0) else if CallHold then createcolor(153, 255, 153) else if PutBuy then createcolor(0, 0, 255) else if PutHold then createcolor(153, 153, 255) else if CallSell then createcolor(255, 0, 0) else if PutSell then createcolor(255, 0, 0) else if  EndDay then createcolor(255, 0, 0) else color.dark_gray);

#ORDERS
input ShowOrders = no;
##BUY
AddOrder(OrderType.BUY_TO_OPEN, ShowOrders and CallBuy, open[-1], 100, Color.GREEN, Color.LIGHT_GREEN, "BUY CALL");
AddOrder(OrderType.SELL_TO_OPEN, ShowOrders and PutBuy, open[-1], 100, Color.GREEN, Color.LIGHT_GREEN, "BUY PUT");

##SELL
AddOrder(OrderType.SELL_TO_CLOSE, ShowOrders and CallSell or EndDay, open[-1], 100, Color.RED, Color.LIGHT_RED, "SELL CALL");
AddOrder(OrderType.BUY_TO_CLOSE, ShowOrders and PutSell or EndDay, open[-1], 100, Color.RED, Color.LIGHT_RED, "SELL PUT");
 
thank you very much for your response @a1cturner i did it but getting error.
AssignPriceColor(if CallSell2 then createcolor(255, 0, 0) else if CallBuy then createcolor(0, 255, 0) else if CallHold then createcolor(204, 255, 204) else if PutSell2 then createcolor(255, 0, 0) else if PutBuy then createcolor(0, 0, 255) else if PutHold then createcolor(102, 255, 255) else if EndDay then createcolor(255, 0, 0) else color.white);
 
AssignPriceColor(if CallSell2 then createcolor(255, 0, 0) else if CallBuy then createcolor(0, 255, 0) else if CallHold then createcolor(204, 255, 204) else if PutSell2 then createcolor(255, 0, 0) else if PutBuy then createcolor(0, 0, 255) else if PutHold then createcolor(102, 255, 255) else if EndDay then createcolor(255, 0, 0) else color.white);
thank you very much.. now it is working, keep up the good work
 
This is the most up to date code. THIS IS A STRATEGY and not a study! I am still testing, adding, and adjusting. I have made multiple trades and only one was a loser. I am still super picky and this is not the end all be all. Made over 500% on Friday trading BABA with this. I was using the 1 minute version when trading BABA which is what this defaults to but I recommend trading it on a 10 minute chart from what I am seeing so far. Refer to the notes at the top of the strategy to see what needs to be changed for the 10 minute chart. I actually have both the 1 minute and 10 minute up at home but only look at the 10 minute when I am not on my desktop. Backtesting is lacking and the results aren't that great. Still a work in progress and I think diving deep into the EMA cloud separation will be the key to reliable signals. Any findings would be appreciated.

I don't use a scanner. I use watchlist labels instead but I don't want to post those just yet until I get the code perfected.

Code:
#JT EMA, MACD, AND TSI INDICATOR

#If you want your last candle to be a stop than you need to change "Last Stop" to the time frame you're on. i.e. 1 for 1 minute, 10 for 10 minute, 60 for 1 hour etc.
#Change ThrHldFast to match the timeframe you are on. I use 0.1 for 1 minute and 0.7 for 10 minute.
#Change ThrHldFast to match the timeframe you are on. I use 1.0 for 1 minute and 1.0 for 10 minute.
#Change StopThrHld to match the timeframe you are on. I use 0.03 for 1 min and 0.1 for 10 minute.

declare upper;

#EMAs
input Ema_1 = 5;
input Ema_2 = 12;
input Ema_3 = 34;
input Ema_4 = 50;
input Ema_5 = 8;
input Ema_6 = 9;
input ThrHldFast = 0.1;
input ThrHldSlow = 1.0;
input StopThrHld = 0.03;

plot EMAFast1 = ExpAverage(close, EMA_1);
EMAFast1.setdefaultcolor(color.blue);
plot EMAFast2 = ExpAverage(close, EMA_2);
EMAFast2.setdefaultcolor(color.yellow);
AddCloud(EMAFast1, EMAFast2, Color.green, Color.red);
plot EMASlow1 = ExpAverage(close, EMA_3);
EMASlow1.setdefaultcolor(color.blue);
plot EMASlow2 = ExpAverage(close, EMA_4);
EMASlow2.setdefaultcolor(color.yellow);
AddCloud(EMASlow1, EMASlow2, Color.dark_green, Color.dark_red);
def EMAFast3 = ExpAverage(close, EMA_5);
def EMAFast4 = ExpAverage(close, EMA_6);
#AddCloud(EMAFast3, EMAFast4, Color.light_green, Color.red);

def EMAFastBull = EMAFast1 > EMAFast2;
def EMASlowBull = EMASlow1 > EMASlow2;
def EMAFastBear = EMAFast1 < EMAFast2;
def EMASlowBear = EMASlow1 < EMASlow2;

#EMA PERCENT
def EMAPctFast = ((EMAFast1 / EMAFast2) * 100) - 100;
def EMAPctRoundFast = Round(EMAPctFast, 2);
def EMAPctBullFast = EMAPctRoundFast >= EMAPctRoundFast[1] or EMAPctRoundFast >= ThrHldFast;
def EMAPctBearFast = EMAPctRoundFast <= EMAPctRoundFast[1] or EMAPctRoundFast <= -ThrHldFast;

def EMAPctSlow = ((EMASlow1 / EMASlow2) * 100) - 100;
def EMAPctRoundSlow = Round(EMAPctSlow, 2);
def EMAPctBullSlow = (EMAPctRoundSlow >= EMAPctRoundSlow[1]) or (EMAPctRoundSlow >= ThrHldSlow);
def EMAPctBearSlow = (EMAPctRoundSlow <= EMAPctRoundSlow[1]) or (EMAPctRoundSlow <= -ThrHldSlow);

def EMABull = EMAFastBull and EMASlowBull;
def EMABear = EMAFastBear and EMASlowBear;

def EMAFastCrossDown = (EMAPctRoundFast crosses below StopThrHld) or (EMAFast1 crosses below EMAFast2);
def EMAFastCrossUp = (EMAPctRoundFast crosses above -StopThrHld) or (EMAFast1 crosses above EMAFast2);

#MACD
input MACDFast = 10;
input MACDSlow = 22;
input MACDLength = 8;

def Value = ExpAverage(close, MACDFast) - ExpAverage(close, MACDSlow);
def Average = ExpAverage(Value, MACDLength);
def MACDDiff = Value - Average;
def ZeroLine = 0;

def MACDBull = MACDDiff >= MACDDiff[1];
def MACDBear = MACDDiff <= MACDDiff[1];

#TSI
input TSILongLength = 25;
input TSIShortLength = 13;
input TSISignalLength = 8;

#TRUE STENGTH INDEX(TSI)
def DiffShort = close - close[1];
def DoubleSmoothedAbsDiffShort = ExpAverage(ExpAverage(AbsValue(diffShort), TSILongLength), TSIShortLength);

#TSI
def TSI = if DoubleSmoothedAbsDiffShort == 0 then 0 else round((100 * (ExpAverage(ExpAverage(DiffShort, TSILongLength), TSIShortLength)) / DoubleSmoothedAbsDiffShort), 2);
def ZeroLine2 = 0;

def TSIBull = TSI > 10 and TSI > TSI[1];
def TSIBear = TSI < -10 and TSI < TSI[1];
def TSICrossDown = TSI < (TSI[1] * 0.9);
def TSICrossUp = TSI > (TSI[1] * 0.9);

#START AND END TIME
input StartTime = 0930;
input StartTimeDelay = 19;
input EndTime = 1600;
input EndTimeDelay = 10;
input LastStop = 1;

def Start = SecondsFromTime(StartTime);
def StartSignalDelay = StartTimeDelay * 60;
def StartSignal = Start > StartSignalDelay;
def End = SecondsTillTime(EndTime);
def EndSignalDelay = EndTimeDelay * 60;
def EndSignal = End > EndSignalDelay;
def LastStopDelay = LastStop*60;
def TradingDay = StartSignal and EndSignal;
def EndDay = End == LastStopDelay;

#INDICATORS
def CallBuy = TradingDay and EMABull and EMAPctBullFast and EMAPctBullSlow and MACDBull and TSIBull;
def CallHold = TradingDay and EMABull and (CallBuy[1] or CallHold[1]);
def CallSell = TradingDay and (CallBuy[1] or CallHold[1]) and (EMAFastCrossDown or TSICrossDown);
def CallSell2 = CallSell and !CallSell[1];
def PutBuy = TradingDay and EMABear and EMAPctBearFast and EMAPctBearSlow and MACDBear and TSIBear;
def PutHold = TradingDay and EMABear and (PutBuy[1] or PutHold[1]);
def PutSell =  TradingDay and (PutBuy[1] or PutHold[1]) and (EMAFastCrossUp or TSICrossUp);
def PutSell2 = PutSell and !PutSell[1];

############TRYING TO ADD LINES AND PROFIT LABELS###############
#def CallOpen = if CallBuy and !CallBuy[1] then 1 else 0;
#def PutOpen = if PutBuy and !PutBuy[1] then 1 else 0;
#def CallClose = if CallSell then 1 else 0;
#def PutClose = if PutSell then 1 else 0;
#def LastClose = if EndDay then 1 else 0;

#COLOR BARS
AssignPriceColor(if CallSell2 then createcolor(255, 0, 0) else if CallBuy then createcolor(0, 255, 0) else if CallHold then createcolor(204, 255, 204) else if PutSell2 then createcolor(255, 0, 0) else if PutBuy then createcolor(0, 0, 255) else if PutHold then createcolor(102, 255, 255) else if EndDay then createcolor(255, 0, 0) else createcolor(40, 40, 40));

#ORDERS
input ShowOrders = no;

##BUY
AddOrder(OrderType.BUY_TO_OPEN, ShowOrders and CallBuy, open[-1], 100, Color.GREEN, Color.LIGHT_GREEN, "BUY CALL");
AddOrder(OrderType.SELL_TO_OPEN, ShowOrders and PutBuy, open[-1], 100, Color.GREEN, Color.LIGHT_GREEN, "BUY PUT");

##SELL
AddOrder(OrderType.SELL_TO_CLOSE, ShowOrders and CallSell or EndDay[-1], open[-1], 100, Color.RED, Color.LIGHT_RED, "SELL CALL");
AddOrder(OrderType.BUY_TO_CLOSE, ShowOrders and PutSell or EndDay[-1], open[-1], 100, Color.RED, Color.LIGHT_RED, "SELL PUT");

#ALERTS
Alert(CallSell2 or PutSell2, "SELL", Alert.BAR, Sound.Bell);

this is a mod for post17 code ,
a different way of doing the colors for the line , AssignPriceColor( )
( disable existing code line if you copy my code into it)

AssignPriceColor(if CallSell2 then createcolor(255, 0, 0) else if CallBuy then createcolor(0, 255, 0) else if CallHold then createcolor(204, 255, 204) else if PutSell2 then createcolor(255, 0, 0) else if PutBuy then createcolor(0, 0, 255) else if PutHold then createcolor(102, 255, 255) else if EndDay then createcolor(255, 0, 0) else createcolor(40, 40, 40));


you could define the colors, with names similar to the condition names. then use these names in the AssignPriceColor( ) line.
i think grouping the colors together makes it easier to interpret what it should look like. ( RGB color numbers )

Code:
DefineGlobalColor("CallSell2_c", createcolor(255, 0, 0));
DefineGlobalColor("CallBuy_c", createcolor(0, 255, 0));
DefineGlobalColor("CallHold_c", createcolor(204, 255, 204));
DefineGlobalColor("PutSell2_c", createcolor(255, 0, 0));
DefineGlobalColor("PutBuy_c", createcolor(0, 0, 255));
DefineGlobalColor("PutHold_c", createcolor(102, 255, 255));
DefineGlobalColor("EndDay_c", createcolor(255, 0, 0));
DefineGlobalColor("none_c", createcolor(40, 40, 40));

AssignPriceColor(
      if CallSell2 then GlobalColor("CallSell2_c")
 else if CallBuy then GlobalColor("CallBuy_c")
 else if CallHold then GlobalColor("CallHold_c")
 else if PutSell2 then GlobalColor("PutSell2_c")
 else if PutBuy then GlobalColor("PutBuy_c")
 else if PutHold then GlobalColor("PutHold_c")
 else if EndDay then GlobalColor("EndDay_c")
 else GlobalColor("none_c"));
 
Alright Boys. Tear it apart.

I use this strictly for options on a 10 minute chart with extended hours on. There is a "take profit cloud" option that can be turned on if you choose to use that. It does clutter the chart up a bit.

Feedback Welcome.

THIS IS A STRATEGY NOT A STUDY!

Code:
#JT Newest Strategy Based on EMAs, TSI, Premarket Highs/Lows, and MACD

#Notes
#Dont forget to add take profit

Declare Upper;

##################################################################
#                                 TIMES                          #
##################################################################

#START AND END TIMES
input PreMarketStart = 0730; #EST
input PreMarketEnd = 0929; #EST
input StartTime = 0930; #EST
input BuySignalDelay = 29;
input EndTime = 1600; #EST
input BuySignalStop = 60; #Minutes Before End of Day
input LastCandleStop = 10; #Last Candle is Sell Candle

def TradingDayStart= SecondsFromTime(StartTime);
def BuySignalDelaySeconds = BuySignalDelay * 60;
def SignalStart = TradingDayStart > BuySignalDelaySeconds;
def TradingDayEnd = SecondsTillTime(EndTime);
def EndSignalDelaySeconds = BuySignalStop * 60;
def SignalEnd = TradingDayEnd > EndSignalDelaySeconds;
def TradingDay = SignalStart and SignalEnd; #10:00EST - 1500EST
def LastStopDelaySeconds = LastCandleStop * 60;
def EndDay = TradingDayEnd == LastStopDelaySeconds; #1550EST
def TradingDayExt = TradingDayEnd > LastStopDelaySeconds;

##################################################################
#                              INDICATORS                        #
##################################################################

#EMAS
input Ema1Length = 5;
input Ema2Length = 12;
input Ema3Length = 34;
input Ema4Length = 50;
#input Ema5Length = 8; #If Needed
#input Ema6LEngth = 9; #If Needed

plot FastEMA1 = ExpAverage(close, Ema1Length);
FastEMA1.SetDefaultColor(color.light_green);
FastEMA1.HideBubble();
plot FastEMA2 = ExpAverage(close, Ema2Length);
FastEMA2.SetDefaultColor(color.light_red);
FastEMA2.HideBubble();
AddCloud(FastEMA1, FastEMA2, createcolor(0, 255, 153), createcolor(0, 153, 255));
plot SlowEMA1 = ExpAverage(close, Ema3Length);
SlowEMA1.SetDefaultColor(color.light_green);
SlowEMA1.HideBubble();
plot SlowEMA2 = ExpAverage(close, Ema4Length);
SlowEMA2.SetDefaultColor(color.light_red);
SlowEMA2.HideBubble();
AddCloud(SlowEMA1, SlowEMA2, createcolor(0, 255, 0), createcolor(0, 0, 255));
#def FastEMA3 = ExpAverage(close, EMA5Length); #If Needed
#def FastEMA4 = ExpAverage(close, EMA6Length); #If Needed
#AddCloud(FastEMA3, FastEMA4, Color.light_gray, Color.light_gray); #If Needed

    #EMAS BULLISH OR BEARISH
    def FastEMABullish = FastEMA1 > FastEMA2;
    def SlowEMABullish = SlowEMA1 > SlowEMA2;
    def FastEMABearish = FastEMA1 < FastEMA2;
    def SlowEMABearish = SlowEMA1 < SlowEMA2;
    #EMA BUY SIGNAL
    def BothEMASBullish = FastEMABullish and SlowEMABullish;
    def BothEMASBearish = FastEMABearish and SlowEMABearish;

        #EMA PERCENT SEPERATION
        def FastEMAPctBull = ((FastEMA1 / FastEMA2) * 100) - 100; #Distance Between Fast EMA 1 and Fast EMA 2
        def FastEMAPctBullRound = Round(FastEMAPctBull, 2);
        def FastEMAPctBear = ((FastEMA2 / FastEMA1) * 100) - 100; #Distance Between Fast EMA 2 and Fast EMA 1
        def FastEMAPctBearRound = Round(FastEMAPctBear, 2);
        #FAST EMA PERCENT SEPERATION BUY SIGNAL
        def FastEMAPctBullish = FastEMAPctBullRound >= FastEMAPctBullRound[1];
        def FastEMAPctBearish = FastEMAPctBearRound >= FastEMAPctBearRound[1];

        def SlowEMAPctBull = ((SlowEMA1 / SlowEMA2) * 100) - 100; #Distance Between Slow EMA 1 and Slow EMA 2
        def SlowEMAPctBullRound = Round(SlowEMAPctBull, 2);
        def SlowEMAPctBear = ((SlowEMA2 / SlowEMA1) * 100) - 100; #Distance Between Slow EMA 1 and Slow EMA 2
        def SlowEMAPctBearRound = Round(SlowEMAPctBear, 2);
        #SLOW EMA PERCENT SEPERATION BULLISH
        def SlowEMAPctBullish = SlowEMAPctBullRound >= SlowEMAPctBullRound[1];
        def SlowEMAPctBearish = SlowEMAPctBearRound <= SlowEMAPctBearRound[1];

            #EMA SELL SIGNALS
            def FastEMACrossDown = FastEMA1 crosses below FastEMA2;
            def FastEMACrossUp = FastEMA1 crosses above FastEMA2;
            def FastEMAPctBullDecrease = if BothEMASBullish and FastEMAPctBullRound < (FastEMAPctBullRound[1] * 0.75) then 1 else 0;
            def FastEMAPctBearDecrease = if BothEMASBearish and FastEMAPctBearRound < (FastEMAPctBearRound[1] * 0.75) then 1 else 0;
            #TESTING
            #addchartbubble(if FastEMAPctBullDecrease == 1 then 1 else 0, SlowEMA2*0.995, "E%", color.red, no);
            #addchartbubble(if FastEMAPctBearDecrease == 1 then 1 else 0, SlowEMA2*1.005, "E%", color.red, yes);

            #EMA TAKE PROFIT CLOUD (IDENTIFY IF PRICE IS EXTENDED FROM EMAS)
            input ShowOverExtCloud = no;

            def OvrExtUp1 = if ShowOverExtCloud and BothEMASBullish then FastEMA1 * 1.01 else Double.NaN; 
            def OvrExtUp2 = if ShowOverExtCloud and BothEMASBullish then FastEMA1 * 1.02 else Double.NaN;
            AddCloud(OvrExtUp1, OvrExtUp2, color.light_green, color.light_green);
            def OvrExtDn1 = if ShowOverExtCloud and BothEMASBearish then FastEMA1 * 0.99 else Double.NaN;
            def OvrExtDn2 = if ShowOverExtCloud and BothEMASBearish then FastEMA1 * 0.98 else Double.NaN;
            AddCloud(OvrExtDn1, OvrExtDn2, color.light_green, color.light_green);

                #SLOWEMA2 SLOPE (NOT USING AT THIS TIME)
                def Height = SlowEMA2 - SlowEMA2[11];
                def SlopeDeg = Round((ATan(Height / 10) * 180 / Double.Pi), 0);
                #SLOWEMA2 SLOPE SELL SIGNAL
                def BullSlopeSell = BothEMASBullish and SlopeDeg < SlopeDeg[1];
                def BearSlopeSell = BothEMASBearish and SlopeDeg > SlopeDeg[1];
                #TESTING
                #addchartbubble(if BullSlopeSell == 1 then 1 else 0, SlowEMA2*0.995, "Slope", color.red, no);
                #addchartbubble(if BearSlopeSell == 1 then 1 else 0, SlowEMA2*1.005, "Slope", color.red, yes);

#MACD
input MACDFast = 10;
input MACDSlow = 22;
input MACDLength = 8;

def MACDValue = ExpAverage(close, MACDFast) - ExpAverage(close, MACDSlow);
def MACDAverage = ExpAverage(MACDValue, MACDLength);
def MACDDiff = MACDValue - MACDAverage;
def ZeroLine = 0;

    #MACD BUY SIGNAL
    def MACDBull = MACDDiff >= MACDDiff[1];
    def MACDBear = MACDDiff <= MACDDiff[1];

        #MACD SELL SIGNAL
        #No Sell SIgnals At This Time

#TSI
input TSILongLength = 25;
input TSIShortLength = 13;
input TSISignalLength = 8;

def TSIDiff = close - close[1];
def DoubleSmoothedAbsDiff = ExpAverage(ExpAverage(AbsValue(TSIDiff), TSILongLength), TSIShortLength);
def TSIRound = Round((100 * (ExpAverage(ExpAverage(TSIDiff, TSILongLength), TSIShortLength)) / DoubleSmoothedAbsDiff), 2);

    #TSI BUY SIGNAL
    def TSIBull = (TSIRound > 10) and (TSIRound >= TSIRound[1]);
    def TSIBear = (TSIRound < -10) and (TSIRound <= TSIRound[1]);

        #TSI SELL SIGNAL
        def TSICrossDown = TSIRound < (TSIRound[1] * 0.9);
        def TSICrossUp = TSIRound > (TSIRound[1] * 0.9);

        #TSI TAKE PROFIT
        #No TSI Take Profit At This Time

#PREMARKET HIGHS AND LOWS
def PreMarketTimeRange = secondsFromTime(PreMarketStart) >= 0 and secondsTillTime(PreMarketEnd) >= 0;
def PreMarket = PreMarketTimeRange and !PremarketTimeRange[1];
def Pre_Market_High = compoundValue(1, if((high > Pre_Market_High[1] and PremarketTimeRange) or PreMarket, high, Pre_Market_High[1]), high);
def Pre_Market_Low = compoundValue(1, if((low < Pre_Market_Low[1] and PremarketTImeRange) or PreMarket, low, Pre_Market_Low[1]), low);

plot PreMarketHigh = Pre_Market_High;
PreMarketHigh.SetStyle(curve.short_dash);
PreMarketHigh.SetDefaultColor(color.light_gray);
PreMarketHigh.setLineWeight(1);
plot PreMarketLow = Pre_Market_Low;
PreMarketLow.SetStyle(curve.short_dash);
PreMarketLow.SetDefaultColor(color.light_gray);
PreMarketLow.setLineWeight(1);
AddCloud (PreMarketHigh, PreMarketLow, color.light_gray, color.light_gray);

    #PREMARKET HIGH/LOW BUY SIGNAL
    def PreMarketBull = low > Pre_Market_High;
    def PreMarketBear = high < Pre_Market_Low;
    #TESTING
    #addchartbubble(if PreMarketBull == 1 then 1 else 0, SlowEMA2*0.995, "Pre", color.green, no);
    #addchartbubble(if PreMarketBear == 1 then 1 else 0, SlowEMA2*1.005, "Pre", color.green, yes);

        #PREMARKET HIGH/LOW SELL SIGNAL
        def PreMarketBullSell = PreMarketBull[1] and low < Pre_Market_High;
        def PreMarketBearSell = PreMarketBear[1] and high > Pre_Market_Low;
        #TESTING
        #addchartbubble(if PreMarketBullSell == 1 then 1 else 0, SlowEMA2*0.995, "Pre", color.red, no);
        #addchartbubble(if PreMarketBearSell == 1 then 1 else 0, SlowEMA2*1.005, "Pre", color.red, yes);

##################################################################
#                               SIGNALS                          #
##################################################################

#GET READY
def GetReadyBull = TradingDay and BothEMASBullish and PreMarketBull;
def GetReadyBear = TradingDay and BothEMASBearish and PreMarketBear;

#INDICATOR BUY SIGNALS
def CallBuyInd = BothEMASBullish and FastEMAPctBullish and MACDBull and TSIBull and PreMarketBull and low <= FastEMA1 and low >= FastEMA2;
def PutBuyInd = BothEMASBearish and FastEMAPctBearish and MACDBear and TSIBear and PreMarketBear and high >= FastEMA1 and high <=FastEMA2;
#TESTING
#addchartbubble(if CallBuyInd == 1 then 1 else 0, SlowEMA2*0.995, "Call", color.green, no);
#addchartbubble(if PutBuyInd == 1 then 1 else 0, SlowEMA2*1.005, "Put", color.green, yes);

##################################################################
#         ADDED FAST EMA PCT HERE BASED OF BUY SIGNAL            #
##################################################################

def EMAPctAtCallBuy = if CallBuyInd then FastEMAPctBullRound else EMAPctAtCallBuy[1]; #Used to Calculate Sell Trigger
def EMAPctAtPutBuy = if PutBuyInd then FastEMAPctBearRound else EMAPctAtPutBuy[1]; #Used to Calculate Sell Trigger

    #FAST EMA CLOUD SELL TRIGGER BASED OFF BUY INDICATOR
    def CallEMAPctSell = FastEMAPctBullRound < EMAPctAtCallBuy * 0.65;
    def PutEMAPctSell = FastEMAPctBearRound < EMAPctAtPutBuy * 0.65;

##################################################################
#                         SIGNALS CONT.                          #
##################################################################

#INDICATOR HOLD SIGNALS
def CallHoldInd = BothEMASBullish and PreMarketBull; #and FastEMAPctBullish 
def PutHoldInd = BothEMASBearish and PreMarketBear; #and FastEMAPctBearish
#TESTING
#addchartbubble(if CallHoldInd == 1 then 1 else 0, SlowEMA2*0.995, "Hold", color.green, no);
#addchartbubble(if PutHoldInd == 1 then 1 else 0, SlowEMA2*1.005, "Hold", color.green, yes);

#INDICATOR SELL SIGNALS
def CallSellInd = FastEMACrossDown or TSICrossDown or CallEMAPctSell; #(CallBuyInd[1] or CallHoldInd[1]) and 
def PutSellInd = FastEMACrossUp or TSICrossUp or PutEMAPctSell; #(PutBuyInd[1] or PutHoldInd[1]) and 
#TESTING
#addchartbubble(if CallSellInd == 1 then 1 else 0, SlowEMA2*0.995, "Sell", color.red, no);
#addchartbubble(if PutSellInd == 1 then 1 else 0, SlowEMA2*1.005, "Sell", color.red, yes);

    #BUY SIGNALS
    def CallBuy = TradingDay and CallBuyInd;
    def PutBuy = TradingDay and PutBuyInd;
    #TESTING
    #addchartbubble(if CallBuy == 1 then 1 else 0, SlowEMA2*0.995, "Call", color.green, no);
    #addchartbubble(if PutBuy == 1 then 1 else 0, SlowEMA2*1.005, "Put", color.green, yes);

    #HOLD SIGNALS
    def CallHold = TradingDayExt and CallHoldInd and (CallBuy[1] or CallHold[1]); #and !CallSellInd
    def PutHold = TradingDayExt and PutHoldInd and (PutBuy[1] or PutHold[1]); #and !PutSellInd
    #TESTING
    #addchartbubble(if CallHold == 1 then 1 else 0, SlowEMA2*0.995, "Hold", color.green, no);
    #addchartbubble(if PutHold == 1 then 1 else 0, SlowEMA2*1.005, "Hold", color.green, yes);

    #SELL SIGNALS
    def CallSell = TradingDayExt and CallSellInd and !CallSellInd[1] and (CallBuy[1] or CallHold[1]);
    def PutSell = TradingDayExt and PutSellInd and !PutSellInd[1] and (PutBuy[1] or PutHold[1]);

##################################################################
#                                 BARS                           #
##################################################################

#COLOR BARS
AssignPriceColor(if CallSell then CreateColor(255, 0, 0) else if CallBuy then CreateColor(0, 255, 0) else if CallHold then CreateColor(204, 255, 204) else if PutSell then CreateColor(255, 0, 0) else if PutBuy then CreateColor(0, 0, 255) else if PutHold then CreateColor(102, 255, 255) else if EndDay then CreateColor(255, 0, 0) else if GetReadyBull then CreateColor(204, 153, 0) else if GetReadyBear then CreateColor(204, 153, 0) else CreateColor(40, 40, 40));

##################################################################
#                                ORDERS                          #
##################################################################

#ORDERS
input ShowOrders = no;

#BUY
AddOrder(OrderType.BUY_TO_OPEN, ShowOrders and CallBuy and (!CallSell or !CallSell[1]), FastEMA1, 100, Color.GREEN, Color.LIGHT_GREEN); #and EMAPctBullFast and open <= FastEMA1
AddOrder(OrderType.SELL_TO_OPEN, ShowOrders and PutBuy and (!PutSell or !PutSell[1]), FastEMA1, 100, Color.GREEN, Color.LIGHT_GREEN); #and EMAPctBearFast and open >= FastEMA1

#SELL
AddOrder(OrderType.SELL_TO_CLOSE, ShowOrders and CallSell or EndDay[-1], midbodyval(), 100, Color.RED, Color.LIGHT_RED);
AddOrder(OrderType.BUY_TO_CLOSE, ShowOrders and PutSell or EndDay[-1], midbodyval(), 100, Color.RED, Color.LIGHT_RED);

##################################################################
#                                ALERTS                          #
##################################################################

#ALERTS
Alert(CallSell or PutSell, "SELL", Alert.BAR, Sound.Bell);

##################################################################
#                        PROFIT/LOSS LABEL                       #
##################################################################

#CALL
AddLabel(yes, "          ", color.black);
def CallOpen = if CallBuy and !CallHold then FastEMA1 else CallOpen[1];
def CallEnd = if (CallBuy[1] or CallHold[1]) and CallSell then close else CallEnd[1];
def CallOpenCost = CallOpen * 100;
def CallCloseCost = CallEnd * 100;
def CallDiff = CallCloseCost - CallOpenCost;
AddLabel(yes, "Last Call P/L - $ " + CallDiff + " ", if CallDiff > 0 then color.light_green else if CallDiff < 0 then color.light_red else color.gray);

#PUT
def PutOpen = if PutBuy and !PutHold then FastEMA1 else PutOpen[1];
def PutEnd = if (PutBuy[1] or PutHold[1]) and PutSell then close else PutEnd[1];
def PutOpenCost = PutOpen * 100;
def PutCloseCost = PutEnd * 100;
def PutDiff = PutOpenCost - PutCloseCost;
AddLabel(yes, "Last Put P/L - $ " + PutDiff + " ", if PutDiff > 0 then color.light_green else if PutDiff < 0 then color.light_red else color.gray);

I also don't scan. It is too slow. I use a watchlist indicator instead.

Feel free to use this as well and provide feedback if needed. Make sure you set the time to 10 minutes and include extended hours.

Code:
#JT Newest Strategy Based on EMAs, TSI, Premarket Highs/Lows, and MACD Watchlist Indicator 10 MIN

##################################################################
#                                 TIMES                          #
##################################################################

#START AND END TIMES
input PreMarketStart = 0730; #EST
input PreMarketEnd = 0929; #EST
input StartTime = 0930; #EST
input BuySignalDelay = 29;
input EndTime = 1600; #EST
input BuySignalStop = 60; #Minutes Before End of Day
input LastCandleStop = 10; #Last Candle is Sell Candle

def TradingDayStart= SecondsFromTime(StartTime);
def BuySignalDelaySeconds = BuySignalDelay * 60;
def SignalStart = TradingDayStart > BuySignalDelaySeconds;
def TradingDayEnd = SecondsTillTime(EndTime);
def EndSignalDelaySeconds = BuySignalStop * 60;
def SignalEnd = TradingDayEnd > EndSignalDelaySeconds;
def TradingDay = SignalStart and SignalEnd; #10:00EST - 1500EST
def LastStopDelaySeconds = LastCandleStop * 60;
def EndDay = TradingDayEnd == LastStopDelaySeconds; #1550EST
def TradingDayExt = TradingDayEnd > LastStopDelaySeconds;

##################################################################
#                              INDICATORS                        #
##################################################################

#EMAS
input Ema1Length = 5;
input Ema2Length = 12;
input Ema3Length = 34;
input Ema4Length = 50;

def FastEMA1 = ExpAverage(close, Ema1Length);
def FastEMA2 = ExpAverage(close, Ema2Length);
def SlowEMA1 = ExpAverage(close, Ema3Length);
def SlowEMA2 = ExpAverage(close, Ema4Length);

    #EMAS BULLISH OR BEARISH
    def FastEMABullish = FastEMA1 > FastEMA2;
    def SlowEMABullish = SlowEMA1 > SlowEMA2;
    def FastEMABearish = FastEMA1 < FastEMA2;
    def SlowEMABearish = SlowEMA1 < SlowEMA2;
    #EMA BUY SIGNAL
    def BothEMASBullish = FastEMABullish and SlowEMABullish;
    def BothEMASBearish = FastEMABearish and SlowEMABearish;

        #EMA PERCENT SEPERATION
        def FastEMAPctBull = ((FastEMA1 / FastEMA2) * 100) - 100;
        def FastEMAPctBullRound = Round(FastEMAPctBull, 2);
        def FastEMAPctBear = ((FastEMA2 / FastEMA1) * 100) - 100;
        def FastEMAPctBearRound = Round(FastEMAPctBear, 2);
        #FAST EMA PERCENT SEPERATION BUY SIGNAL
        def FastEMAPctBullish = FastEMAPctBullRound >= FastEMAPctBullRound[1];
        def FastEMAPctBearish = FastEMAPctBearRound >= FastEMAPctBearRound[1];

        def SlowEMAPctBull = ((SlowEMA1 / SlowEMA2) * 100) - 100;
        def SlowEMAPctBullRound = Round(SlowEMAPctBull, 2);
        def SlowEMAPctBear = ((SlowEMA2 / SlowEMA1) * 100) - 100;
        def SlowEMAPctBearRound = Round(SlowEMAPctBear, 2);
        #SLOW EMA PERCENT SEPERATION BULLISH
        def SlowEMAPctBullish = SlowEMAPctBullRound >= SlowEMAPctBullRound[1];
        def SlowEMAPctBearish = SlowEMAPctBearRound <= SlowEMAPctBearRound[1];

            #EMA SELL SIGNALS
            def FastEMACrossDown = FastEMA1 crosses below FastEMA2;
            def FastEMACrossUp = FastEMA1 crosses above FastEMA2;
            def FastEMAPctBullDecrease = if BothEMASBullish and FastEMAPctBullRound < (FastEMAPctBullRound[1] * 0.75) then 1 else 0;
            def FastEMAPctBearDecrease = if BothEMASBearish and FastEMAPctBearRound < (FastEMAPctBearRound[1] * 0.75) then 1 else 0;

            #EMA TAKE PROFIT CLOUD (IDENTIFY IF PRICE IS EXTENDED FROM EMAS)
            input ShowOverExtCloud = no;

            def OvrExtUp1 = if ShowOverExtCloud and BothEMASBullish then FastEMA1 * 1.01 else Double.NaN;
            def OvrExtUp2 = if ShowOverExtCloud and BothEMASBullish then FastEMA1 * 1.02 else Double.NaN;
            AddCloud(OvrExtUp1, OvrExtUp2, color.light_green, color.light_green);
            def OvrExtDn1 = if ShowOverExtCloud and BothEMASBearish then FastEMA1 * 0.99 else Double.NaN;
            def OvrExtDn2 = if ShowOverExtCloud and BothEMASBearish then FastEMA1 * 0.98 else Double.NaN;
            AddCloud(OvrExtDn1, OvrExtDn2, color.light_green, color.light_green);

                #SLOWEMA2 SLOPE (NOT USING AT THIS TIME)
                def Height = SlowEMA2 - SlowEMA2[11];
                def SlopeDeg = Round((ATan(Height / 10) * 180 / Double.Pi), 0);
                #SLOWEMA2 SLOPE SELL SIGNAL
                def BullSlopeSell = BothEMASBullish and SlopeDeg < SlopeDeg[1];
                def BearSlopeSell = BothEMASBearish and SlopeDeg > SlopeDeg[1];

#MACD
input MACDFast = 10;
input MACDSlow = 22;
input MACDLength = 8;

def MACDValue = ExpAverage(close, MACDFast) - ExpAverage(close, MACDSlow);
def MACDAverage = ExpAverage(MACDValue, MACDLength);
def MACDDiff = MACDValue - MACDAverage;
def ZeroLine = 0;

    #MACD BUY SIGNAL
    def MACDBull = MACDDiff >= MACDDiff[1];
    def MACDBear = MACDDiff <= MACDDiff[1];

        #MACD SELL SIGNAL
        #No Sell SIgnals At This Time

#TSI
input TSILongLength = 25;
input TSIShortLength = 13;
input TSISignalLength = 8;

def TSIDiff = close - close[1];
def DoubleSmoothedAbsDiff = ExpAverage(ExpAverage(AbsValue(TSIDiff), TSILongLength), TSIShortLength);
def TSIRound = Round((100 * (ExpAverage(ExpAverage(TSIDiff, TSILongLength), TSIShortLength)) / DoubleSmoothedAbsDiff), 2);

    #TSI BUY SIGNAL
    def TSIBull = (TSIRound > 10) and (TSIRound >= TSIRound[1]);
    def TSIBear = (TSIRound < -10) and (TSIRound <= TSIRound[1]);

        #TSI SELL SIGNAL
        def TSICrossDown = TSIRound < (TSIRound[1] * 0.9);
        def TSICrossUp = TSIRound > (TSIRound[1] * 0.9);

        #TSI TAKE PROFIT
        #No TSI Take Profit At This Time

#PREMARKET HIGHS AND LOWS
def PreMarketTimeRange = secondsFromTime(PreMarketStart) >= 0 and secondsTillTime(PreMarketEnd) >= 0;
def PreMarket = PreMarketTimeRange and !PremarketTimeRange[1];
def Pre_Market_High = compoundValue(1, if((high > Pre_Market_High[1] and PremarketTimeRange) or PreMarket, high, Pre_Market_High[1]), high);
def Pre_Market_Low = compoundValue(1, if((low < Pre_Market_Low[1] and PremarketTImeRange) or PreMarket, low, Pre_Market_Low[1]), low);

def PreMarketHigh = Pre_Market_High;
def PreMarketLow = Pre_Market_Low;

    #PREMARKET HIGH/LOW BUY SIGNAL
    def PreMarketBull = low > Pre_Market_High;
    def PreMarketBear = high < Pre_Market_Low;

        #PREMARKET HIGH/LOW SELL SIGNAL
        def PreMarketBullSell = PreMarketBull[1] and low < Pre_Market_High;
        def PreMarketBearSell = PreMarketBear[1] and high > Pre_Market_Low;

##################################################################
#                               SIGNALS                          #
##################################################################

#GET READY
def GetReadyBull = TradingDay and BothEMASBullish and PreMarketBull;
def GetReadyBear = TradingDay and BothEMASBearish and PreMarketBear;

#INDICATOR BUY SIGNALS
def CallBuyInd = BothEMASBullish and FastEMAPctBullish and MACDBull and TSIBull and PreMarketBull and low <= FastEMA1 and low >= FastEMA2;
def PutBuyInd = BothEMASBearish and FastEMAPctBearish and MACDBear and TSIBear and PreMarketBear and high >= FastEMA1 and high <=FastEMA2;

##################################################################
#         ADDED FAST EMA PCT HERE BASED OF BUY SIGNAL            #
##################################################################

def EMAPctAtCallBuy = if CallBuyInd then FastEMAPctBullRound else EMAPctAtCallBuy[1];
def EMAPctAtPutBuy = if PutBuyInd then FastEMAPctBearRound else EMAPctAtPutBuy[1];

    #FAST EMA CLOUD SELL TRIGGER BASED OFF BUY INDICATOR
    def CallEMAPctSell = FastEMAPctBullRound < EMAPctAtCallBuy * 0.75;
    def PutEMAPctSell = FastEMAPctBearRound < EMAPctAtPutBuy * 0.75;

#################################################################

#INDICATOR HOLD SIGNALS
def CallHoldInd = BothEMASBullish and PreMarketBull;
def PutHoldInd = BothEMASBearish and PreMarketBear;

#INDICATOR SELL SIGNALS
def CallSellInd = FastEMACrossDown or TSICrossDown or CallEMAPctSell;
def PutSellInd = FastEMACrossUp or TSICrossUp or PutEMAPctSell;

    #BUY SIGNALS
    def CallBuy = TradingDay and CallBuyInd;
    def PutBuy = TradingDay and PutBuyInd;
  
    #HOLD SIGNALS
    def CallHold = TradingDayExt and CallHoldInd and (CallBuy[1] or CallHold[1]); #and !CallSellInd
    def PutHold = TradingDayExt and PutHoldInd and (PutBuy[1] or PutHold[1]); #and !PutSellInd
  
    #SELL SIGNALS
    def CallSell = TradingDayExt and CallSellInd and !CallSellInd[1] and (CallBuy[1] or CallHold[1]);
    def PutSell = TradingDayExt and PutSellInd and !PutSellInd[1] and (PutBuy[1] or PutHold[1]);

AddLabel (yes, if CallSell then "7. Call Sell" else if CallBuy then "1. Call Buy" else if CallHold then "5. Call Hold" else if PutSell then "8. Put Sell" else if PutBuy then "2. Put Buy" else if PutHold then "6. Put Hold" else if EndDay then "9. End Day" else if GetReadyBull then "3. Bull" else if GetReadyBear then "4. Bear" else "99.");

AssignBackgroundColor (if CallSell then createcolor(255, 0, 0) else if CallBuy then createcolor(0, 255, 0) else if CallHold then createcolor(204, 255, 204) else if PutSell then createcolor(255, 0, 0) else if PutBuy then createcolor(0, 0, 255) else if PutHold then createcolor(102, 255, 255) else if EndDay then createcolor(255, 0, 0) else if GetReadyBull then createcolor(255, 153, 0) else if GetReadyBear then createcolor(255, 153, 0) else createcolor(40, 40, 40));
 
Last edited:
@halcyonguy How do I change the profit loss label to show me the total profit or loss for the entire day/chart (5 days)? Currently I am only seeing the most recent Call and the most recent Put.

##################################################################
# PROFIT/LOSS LABEL #
##################################################################

#CALL
AddLabel(yes, " ", color.black);
def CallOpen = if CallBuy and !CallHold then FastEMA1 else CallOpen[1];
def CallEnd = if (CallBuy[1] or CallHold[1]) and CallSell then close else CallEnd[1];
def CallOpenCost = CallOpen * 100;
def CallCloseCost = CallEnd * 100;
def CallDiff = CallCloseCost - CallOpenCost;
AddLabel(yes, "Last Call P/L - $ " + CallDiff + " ", if CallDiff > 0 then color.light_green else if CallDiff < 0 then color.light_red else color.gray);

#PUT
def PutOpen = if PutBuy and !PutHold then FastEMA1 else PutOpen[1];
def PutEnd = if (PutBuy[1] or PutHold[1]) and PutSell then close else PutEnd[1];
def PutOpenCost = PutOpen * 100;
def PutCloseCost = PutEnd * 100;
def PutDiff = PutOpenCost - PutCloseCost;
AddLabel(yes, "Last Put P/L - $ " + PutDiff + " ", if PutDiff > 0 then color.light_green else if PutDiff < 0 then color.light_red else color.gray);
 
Last edited:
As you can see in this screen shot I have a label in the upper left box that says MARA 0.19 which is the distance between the 5 and 12 EMA on the 1 minute chart and MARA 0.31 which is the distance between the 5 and 12 EMA on the 10 minute chart. This is just another confirmation of trend for me. I want them both to be green for Calls or both blue for Puts.

Not important but my 1 min criteria is >0.1 or <-0.1 and for the 10 min chart it is >0.8 or <-0.8

View attachment 14012
Would you be willing to share your grid/chart?
 

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
353 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