# ToS Momentum Indicator with Moving Average For ThinkOrSwim

#### Enzo

##### New member
VIP
hi i need help would like to add a moving average exponential to the momentum indicator that is already available in Thinkorswim
can some one show me how to do it thank you

hi i need help would like to add a moving average exponential to the momentum indicator that is already available in Thinkorswim
can some one show me how to do it thank you
Hello Enzo. Your coding request is perfect for someone trying to learn how to write/edit thinkscripts.
If you simply click on the scroll with a lock on it situated in front of the indicators name you will be able to
view the code. Some indicators in TOS are protected and will not display, but most will. The next step is to highlight and copy the code to your clipboard. Next step is to open the edit studies window and click on the "create..." button. In the newly opened window paste the code you copied. Now you can make changes to the code and experiment with all the great insight you have gained from this awesome website.

I have created a simple thinkscript that meets the requirements of your request. You can select whatever moving average you wish to apply as the average of momentum. Hope it helps you and let me know if you have any questions.
Ruby:
``````#
# TD Ameritrade IP Company, Inc. (c) 2007-2023
#

declare lower;

input length = 12;
input price = close;
input showBreakoutSignals = no;
input AvgType = averageType.EXPONENTIAL;

assert(length > 0, "'length' must be positive: " + length);

plot Momentum = price - price[length];
plot MomentumAVG = movingAverage(AvgType, Momentum, 12);
plot ZeroLine = 0;
plot UpSignal = if Momentum crosses above ZeroLine then ZeroLine else Double.NaN;
plot DownSignal = if Momentum crosses below ZeroLine then ZeroLine else Double.NaN;

UpSignal.SetHiding(!showBreakoutSignals);
DownSignal.SetHiding(!showBreakoutSignals);

Momentum.SetDefaultColor(GetColor(1));
ZeroLine.SetDefaultColor(GetColor(0));
UpSignal.SetDefaultColor(Color.UPTICK);
UpSignal.SetPaintingStrategy(PaintingStrategy.ARROW_UP);
DownSignal.SetDefaultColor(Color.DOWNTICK);
DownSignal.SetPaintingStrategy(PaintingStrategy.ARROW_DOWN);``````

Last edited by a moderator:
thank you very much I have a question the input length = 12; is the length of the moving average ?

87k+ Posts
394 Online

## The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
• Exclusive indicators
• Proven strategies & setups
• Private Discord community
• Exclusive members-only content
• 1 full year of unlimited support

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?