Scan for stocks touching or crossing SMA?

Buckbull

Active member
Code:
# Follow @KRose_TDA on twitter for updates to this and other trading scripts
#Stocks that have touched and or crossed the simple moving average
#Replace the 10 in line 5 with desired moving averge. 10 is default

input SMA_Length = 21;
def ma = simpleMovingAvg("length"= Sma_Length);
def triggerLow = open > ma and low <= ma;
def triggerHigh = open < ma and high >= ma;
def MasterTrigger = TriggerHigh and TriggerLow;
plot SmaTouch = triggerHigh or triggerLow;

#AssignBackgroundColor(if trigger then color.YELLOW else color.WHITE);
AddLabel(yes, if SmaTouch then "MaCross" else " ",Color.PLUM);

AssignBackgroundColor(if SmaTouch then color.CYAN else color.WHITE); #++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
Last edited by a moderator:

tomsk

Well-known member
VIP
@Buckbull You have all the code required for the scan, however you can dispense with the AddLabel and AssignBackgroundColor statements as it has no relevance to the scan result. Here then is your scan specific code

Code:
input SMA_Length = 21;

def ma = simpleMovingAvg("length"= Sma_Length);
def triggerLow = open > ma and low <= ma;
def triggerHigh = open < ma and high >= ma;
def MasterTrigger = TriggerHigh and TriggerLow;
plot SmaTouch = triggerHigh or triggerLow;
 
Last edited by a moderator:

Chiku83

New member
VIP
How can I find stock which was lower on 20SMA yesterday on hourly and reclaimed 20SMA by today premarket hourly chart. I mean anytime from yesterday till today pre market stock is above 20SMA.
 
Last edited:

XeoNoX

Well-known member
VIP
How can I find stock which was lower on 20SMA yesterday on hourly and reclaimed 20SMA by today premarket hourly chart. I mean anytime from yesterday till today pre market stock is above 20SMA.

this will scan the premarket time and for stocks whos close was lower the SMA20 premarket
you can change the time to your liking, its in EST timezone.

Code:
declare lower;
input StartTime = 0400;
input Endtime = 930;
def today=getday()==getlastDay();
def SelectedTime = if GetLastDay() == GetDay() and SecondsFromTime(StartTime) >= 0 and SecondsFromTime(Endtime) < 0 then 1 else 0;
def price = close;
def length = 20;
def displace = 0;
def AvgSMA = simpleMovingAvg(price[-displace], length);
plot scan  = today and selectedTime and (close<AvgSMA);
 

Similar threads

Top