NexusFi: Find Your Edge


Home Menu

 





Help with thinkscript scan code


Discussion in ThinkOrSwim

Updated
    1. trending_up 1,539 views
    2. thumb_up 0 thanks given
    3. group 3 followers
    1. forum 1 posts
    2. attach_file 1 attachments




 
Search this Thread
  #1 (permalink)
kawizx62003
charlotte nc
 
Posts: 1 since Feb 2021
Thanks Given: 0
Thanks Received: 0

I'm hoping someone can help with this:

I want a scan that scans for 20SMA above 50SMA and 50SMA above 200SMA but allows me to define a percentage that they are within eachother.

I figured it out for the basics no clue how to add percentage conditions in.

I also want to add in price within x% of 20SMA, either above or below.

Here is what I have:

SimpleMovingAvg("length" = 20)."SMA" is greater than or equal to SimpleMovingAvg("length" = 50)."SMA"
and
SimpleMovingAvg("length" = 50)."SMA" is greater than or equal to SimpleMovingAvg("length" = 200)."SMA"

Thanks.


Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Strike Pause Holds, Oil Erases Monday Spike -- May CPI W …
Traders Hideout
Election Sunday Resolves: Peru Heads to Runoff at 42pct, …
Prediction Markets & Event Contracts
CME Cuts Precious Metals Margins Up to 21% Starting Toda …
Commodities
Post-Summit Market Verdict: ES -1%, NQ -1.5%, 10-Year Yi …
Traders Hideout
Rubios Good News Within Hours and the 30-Day Math: Why H …
Prediction Markets & Event Contracts
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Big Mike in Ecuador
205 thanks
Sober Journey With S&P
21 thanks
30 Sessions
20 thanks
Volume Indicators
8 thanks
Thanks Mike. Godspeed.
7 thanks
  #2 (permalink)
 JayC 
San Diego, CA
 
Experience: Beginner
Platform: TOS, Sierra
Trading: Emini ES, Crude CL
Posts: 55 since Mar 2019
Thanks Given: 9
Thanks Received: 43

I'm guessing you want the difference between the two moving averages to be less than or equal to the specified percentage.

Jay

 
Code
input pct2050 = 4;
input pct50200 = 10;
input pctPrice = 5;

def sma20 = SimpleMovingAvg(length = 20).SMA;
def sma50 = SimpleMovingAvg(length = 50).SMA;
def sma200 = SimpleMovingAvg(length = 200).SMA;

def diff2050 = sma20/sma50 - 1;
def diff50200 = sma50/sma200 - 1;
def priceTo20 = close/sma20 - 1;

plot result = sma20 >= sma50 and sma50 >= sma200 and
              diff2050 <= (pct2050 / 100) and
              diff50200 <= (pct50200 / 100) and 
              AbsValue(priceTo20) <= (pctPrice / 100);
And here's a separate study to view the current values on the chart...

 
Code
def diff2050 = sma20/sma50 - 1;
AddLabel(yes, "diff2050: " + AsPercent(diff2050), Color.CYAN);

def diff50200 = sma50/sma200 - 1;
AddLabel(yes, "diff50200: " + AsPercent(diff50200), Color.CYAN);

def priceTo20 = close/sma20 - 1;
AddLabel(yes, "priceTo20: " + AsPercent(priceTo20), Color.CYAN);



Reply With Quote




Last Updated on February 7, 2021


© 2026 NexusFi®, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Downloads - Top
no new posts