5 Reasons Why You NEED to Learn Pine Script
Why Learn Pine Script?
In today’s article I’m going to lay down the 5 top reasons I think you’d be nuts not to learn Pine Script for the TradingView platform.
I’ve already covered this topic before, but I realized this week that I hadn’t yet created a video presentation explaining why traders ought to learn how to code their own trading scripts.
Today’s blog post is a written version of this video presentation:
If you’re on the fence about diving into this new world, or you’ve never heard of Pine Script before, then today’s presentation will shed some light on the value of acquiring this new skill and enhancing your edge and setting yourself apart from those traders who do not have this rare and specialized weapon in their trading arsenal.
Here are five reasons why I think learning Pine Script is a good idea:
Reason #1: Systematize Your Trading
Learning to code your own trading scripts helps you to systematize parts of your trading process.
Define Your Trading Process With Clear Rules
Learning how to script parts of your trading process helps you to be able to define your trading process with clear, concise and objective rules.
When you tell a script to do something, you need to be extremely clear and explicit in what you’re telling it to do.
Many traders cannot objectively define what it is they’re looking for in the markets, and this often leads to inconsistent outcomes in their trading as a result of inconsistent actions.
Remove Some Subjectivity & Uncertainty
By systematizing parts of your trading process we can remove some subjectivity and uncertainty that we might experience when analyzing a chaotic and often times random market.
Obviously we cannot remove ALL subjectivity or uncertainty from our trading – but we can remove a significant amount of it from our trading process by defining it in a systemized format.
Reason #2: Automate Parts of Your Trading Process
Learning to script allows you to automate parts of your trading process entirely.
Automate Analysis, Setup Detection & Even Trade Execution
Once you become proficient in Pine Script, you can automate parts of your analysis, as well as detecting setups you like to trade and generating alerts so that you can stay on top of the markets, and once you get good enough at scripting it can even allow you to automate your trade execution on some of your simpler strategies.
Save Time in Backtesting & Analysis
Learning to code can also save you a lot of time in the backtesting process, and during your live analysis throughout the day.
For example, when I’m day trading I usually don’t need to sit and stare at the charts all day.
I can set up alerts and scripts that can detect the market conditions I’m looking to trade, and the setups that meet my rules for my strategies, and I can be sure that I will always be notified when a setup is detected.
Avoid Missed Opportunities
This allows me to also avoid any missed opportunities.
I can’t remember the last time I missed a trade because I didn’t see it.
Coding your own trading scripts is like having a second pair of eyes on the markets that never miss a beat.
Reason #3: Enhance Your Edge Over the Markets
Learning how to code can significantly enhance your edge over the markets.
If You Don’t Have An Edge, Scripting Can Help Build One
If you don’t already have an edge over the markets that is profitable, scripting can help you to build one.
Most traders who can’t find a profitable approach to trading usually don’t have a consistent strategy or an objective method of approaching the markets.
As I mentioned in reason number one, learning to script and automate and systematize parts of your trading process allows you to define your trading process with clear rules.
You can then backtest those rules, or forward-test those rules, and collect the relevant statistics to determine whether or not what you are doing is profitable over time.
If You Do Have An Edge, Scripting Can Help Enhance It
And if you’ve already gone through that process and you have a profitable strategy or approach to trading, be that rules-based like I’m talking about here, or completely discretionary where you trade mostly on experience, feel and pattern recognition – you can still use scripting to help enhance your trading process.
In my personal trading, my scripts do a lot of the heavy lifting when it comes to setup detection and just generally staying on top of the markets at all times – and never missing anything important.
Learning to code in general when it comes to trading, is a win/win.
Whether you’re not profitable yet, or you are profitable, there is always something to be gained out of learning how to code your own trading scripts.
And as you’ll see later in this article, I’ll make a great case for why learning Pine Script in particular is a better option than any of the other languages that you could choose from as a beginner programmer.
I myself have been programming for over 15 years in all kinds of languages from Java to Python to C++, PHP, HTML – all of them. And I have still fallen back on Pine Script being my main trading language purely for its simplicity and the power that it allows me to have with such a small cost in time and development.
But we’ll come back to that later.
Reason #4: Remain Competitive & Cutting Edge
The fourth reason for why you should learn Pine Script is so that you can remain competitive and on the cutting edge of trading – which is one of the most competitive industries in the world.
Automation Is Only Increasing
Automation in our world is only going to increase over time.
Completely automated self-driving cars are only years away.
Driving a car might seem simple on the surface, but when you think about how much interpretation and subjectivity is involved in analyzing what decision to make when you’re on the road – it’s remarkable how far technology has come and the fact that we can now automate something that typically requires so much human discretion.
Automation in trading is also only going to increase over time – which is not good for those of you who do not learn how to code.
Trading is an extremely competitive industry. One way to stay ahead of your competition and beat them is by leveraging your rare and specialized skills.
And coding is one of the most powerful of all when it comes to trading.
ALL the best traders in the world use some form of automation and scripting in their trading process.
I’m talking the Big Dogs – the multimillionaire traders, the hedge funds, the prop firms – all of them without exception use some form of automation and scripting and coding to fully exploit every advantage their edge gives them in the markets.
And those who don’t use automation in their process are trading at a significant – and unnecessary – disadvantage.
Reason #5: It’s Incredibly Easy to Learn
And the final reason why I think learning Pine Script is a great idea for ALL traders – retail and professional – is because it is by far the easiest coding language for traders to learn, especially if it’s your first language.
Now I’m not saying that Pine Script is the “best” language to learn when it comes to trade automation and analysis. The best language would probably be something like Python, however… Python is exceptionally difficult for a beginner trader to learn – and time consuming.
Python Is Exceptionally Difficult
I’ve been learning how to automate some parts of my process through Python over the past year or two, and when I compare it to Pine Script it’s unbelievably convoluted.
Now the pay-off for that is that you can leverage some extremely powerful tools in Python, however – it can take you years to learn how to properly utilize a language like Python.
MQL Is Not Beginner-Friendly
Then of course there’s the popular MQL language for the MetaTrader platform, but this language, let me tell you, is definitely NOT beginner-friendly.
I personally have been finding it easier to learn Python than MQL.
Now, again, MQL is more powerful than Pine Script and allows you to do some complex things that Pine Script cannot do.
But the cost of time to learn this language is not insignificant.
Other Languages Can Take Years to Master
Then of course there are other languages out there, like Java which was the very first language I ever specialized in and I got quite proficient with that language.
But it took me years & years to master that language, and even though I’m still very proficient with Java, I still prefer to use Pine Script when it comes to automating parts of my trading process purely due to the incredible simplicity of the Pine Script language.
The fact that it’s cloud-based and runs on TradingView’s servers is also fantastic – I don’t need to have virtual private servers running or extra computers in my house, I don’t need to worry about development environments and APIs and code libraries and all of that stuff that just adds layers and layers of complexity to your coding projects.
When it comes to Pine Script everything’s in your browser, everything is run on the TradingView platform, and you can turn off your computer and still have your scripts running 24/7 on their servers so that you never miss a beat in the markets.
You can have your second pair of eyes watching price action 24/7 on crypto, stocks, forex, commodities, futures, it doesn’t matter.
Pine Script can handle it.
The World’s Best Traders Make Computers An Ally
Here you can see Mike Bellafiore from SMB Capital, one of the most successful and well-known proprietary trading firms in New York.
He has personally mentored dozens of traders and taken them from struggling to Top Dog, seven-figure and beyond traders who turn millions to tens of millions of profits in the markets each and every year.
And as Mike said during an interview a few years ago, he strongly advises any aspiring trader to learn to code. He says:
“Learn to code. Custom filters built with code help you make more as a trader. Automated models built in code can supplement your discretionary trading. Our Junior Traders all build their own filters and models through Python.”Mike Bellafiore, SMB Capital
And if it’s important to a prop trader, then it should be important to you – whether you’re a retail trader, a hobbyist trader, or a professional trader.
These guys are your competition. You don’t need to be on their level of skill in order to be a profitable trader, but you BETTER try and utilize the same tools as them if you want to remain competitive.
But as I said earlier, Python may not be the best choice for you to learn as your first language if you’re a beginner programmer.
And it may not even be the best choice if you’re an experienced programmer, but you’re new to trading.
I don’t see any reason why learning Pine Script first is not a good idea, no matter what your level of skill in programming or in trading.
Plus, it’s completely free so you have nothing to lose.
Whatever you learn in Pine Script can only help you to become a better coder in any other language you choose to pursue, even if that is Python down the line.
Python vs. Pine Script
Let’s look at an example of what we would have to do in Python to achieve something that is actually extremely simple in Pine Script.
Imagine we want to get an RSI overbought or oversold signal in Python and then generate an alert.
- Step 1: First, we need to connect our script to a broker’s data feed API.
(Straight away, the advantage of using Pine Script is that all of that is inbuilt into the platform. You don’t need to connect to your broker’s data feed to get price sources – it’s all right there at your fingertips in the TradingView browser, and you can access the open, high, low and close data with a single line of code. To do the same thing in Python would require hundreds of lines of code, if not thousands!)
- Step 2: Observe the last 14 closing prices of a market.
- Step 3: Determine whether the current day’s closing price is higher or lower than the previous day. This is the algorithm for the RSI indicator.
- Step 4: Calculate the average gain and loss over the last 14 days.
- Step 5: Compute the relative strength (RS), which is the Average Gain over those 14 days divided by the Average Loss.
- Step 6: Calculate the relative strength index (RSI), which is done by subtracting 100 from 100 divided by 1 plus the relative strength value.
- Step 7: Finally, we need to detect when the RSI value exceeds 30 or 70.
In Python, you would need to do all of this manually. In Pine Script, this is all done for you in a single line of code using an inbuilt function, which we’ll get to in a moment.
But next let’s look at what we would need to do in order to generate an alert to your phone whenever these conditions are met. This is just getting the signal, now we need to send that signal to our phone.
To keep things “simple”, I’m going to focus on sending an email notification to our phone rather than a push notification, which adds a whole new layer of complexity to this process.
- Step 1: First, we need to set up an SMTP server or an email server.
- Step 2: Connect our Python script to that mail server and authenticate ourselves.
- Step 3: Create a MIMEMultipart message object and load it with appropriate headers for the From, To and Subject fields.
- Step 4: Add our message text body to that object.
- Step 5: Finally, we need to send the message using the SMTP server object.
If you understood everything I just said, then you’re going to find Pine Script incredibly easy to learn.
But if none of that made sense to you, then you’re definitely in the right place.
Let me show you what some of my simple Python scripts look like before we go and look at some Pine code.
Here’s a script that does something extremely simple. It might not look like it, but all this script does is test a bunch of different moving average crossover strategies (this is just a snippet of the project):
Now I don’t trade MA crossovers in my own trading, this project was purely a learning experience for me to attempt a simple strategy test in Python.
And even though this is a simple test, look at how much code is involved in just getting some price data from my broker’s API (this video shows more examples of my project’s code).
Then I have a bunch of other script files that handle retrieving and storing my instrument data for each timeframe and market.
Although this is very powerful and I can achieve some awesome things with Python that Pine Script cannot do (such as complex analysis of patterns in the data), if I just wanted to detect a very simple RSI overbought or oversold signal, my script would look just as long and complex as this – if not worse.
Demonstrating Pine Script’s Simplicity
Now let’s compare doing the exact same thing in Pine Script.
- Step 1: First, I want to declare the RSI value and get it from the inbuilt Pine Script RSI function. This alone eliminates the first six steps of doing the same thing in Python.
- Step 2: Check if that value is above 70 or below 30.
- Step 3: Finally, we need to simply send an alert through TradingView. This can be to our phone, to our email, via a popup message on our charts, play a sound, etc. And we can achieve any of these – or all of these – with just a single line of code.
This is what our script would look like in Pine Script:
If you ignore the first line of code which is just telling the Pine Script Editor which version of the language you want to use (4 is the latest version), the next four lines of code achieve everything we need in order to send an alert to our phone or to our computer as soon as the RSI exceeds 30 or 70.
As far as programming goes, you cannot get any more simple than this.
And don’t worry if there’s anything you see there that doesn’t make sense to you. By the end of the Basics Course, or especially the Mastery Course, all of this will make perfect sense to you.
But in today’s article, I just want to demonstrate the simplicity and elegance of Pine Script compared to other, more advanced programming languages.
This is the main advantage of having a domain-specific language.
In this case, Pine Script is custom-built to do one thing and one thing only – analyze price data.
There exists a multitude of inbuilt functions and tools which Pine Script gives us that allows us to dramatically speed up the analysis process.
Quite frankly, I think you’d have to be crazy not to learn this language if you’ve got the time and the interest.
It can help you enhance your edge, it’s easy to code – it could not be any easier to code – and it’s cloud-based, meaning everything is handled remotely.
There’s no complex server setup required, you don’t need to run your scripts on your home computer like you might with MetaTrader or any other automated platform.
All of your code and scripts are saved on the TradingView servers so if you write a script and then you go to work at your office and you want to play around with it there, you don’t need to use USBs or upload files or anything like that.
You simply open up your TradingView charts, click on the Pine Editor, and all of your code and scripts and projects are saved on the TradingView platform, ready to be accessed in your browser.
Just for reference, here is every script I’ve ever written in Pine Script to help me do all manner of things when it comes to analyzing price action in various markets.
This even includes fully automating certain strategies, like I’ve done with my Pullback Strategy and other simple strategies that I’ve developed.
If I want to edit my script or apply it to my chart from anywhere in the world, from any computer, any device – all I need to do is open the Indicators list in the chart interface, click on My Scripts, find the relevant script I want to work with, click on it, and then just open up the source code by clicking on this button here:
And here is the source code to my script.
I can edit the source code on any computer, anywhere, anytime. I can leave it running 24/7 on the TradingView servers and it will generate alerts and detect trading setups. In some cases, it can even fully automate my trade execution through a third-party API.
That’s a more advanced application of Pine Script, but as you can see here, this script is detecting a certain setup that occurs during a certain time of day on a certain market, and over the past several years, has had a greater than 60% win rate.
All of that is detected in code – no subjectivity, no discretion required. It’s black and white – either I have a signal or I don’t. I know that this has an edge, I know that this is profitable, I know that my code doesn’t lie.
I’ve double-confirmed all of this through manual backtesting and trading this on a live account for several months.
And thanks to Pine Script, all I need to do is click a few buttons and set up my automated alerts.
Or if I want to manually trade this, I just wait until I get my notification that a trade is set up, I come into my office and draw out my trade opportunity or my setup, my stop loss and take profit, I right-click and click “Create limit order”, put in my risk, click the Sell button, and my work is done for the day.
How to Learn Pine Script for FREE
It is my personal belief that any trader who does not know how to write their own scripts, whether that be in Pine Script or Python or any other language, is trading with one hand tied behind their back.
It’s completely unnecessary. Learning to code is easier than you might think, especially if you’ve never written a line of code before. It’s certainly no more complex than dealing with a spreadsheet in Excel. And any trader of any level of experience should at least know how to handle a simple spreadsheet.
If you can handle a simple spreadsheet then you can learn how to write Pine Script. I can guarantee that.
If you’re interested in learning more, go to pinescriptmastery.com and sign up to my free Basics Course. Stop trading with one hand tied behind your back and take your trading to the next level.
It would be my honor and pleasure to be the one to help guide you through the learning process when it comes to Pine Script.
I have over four years of experience with this language, I have over two years of experience in consistently profitable trading, and with those two facts combined I think I’m uniquely positioned to be the perfect person to teach you how to write your own scripts in Pine Script.
I have a few playlists and hours of free educational content on YouTube, as well as several written lessons on this blog.
I’ve already had thousands of traders go through my Basics Course which is completely free, and I’ve had hundreds of traders go through my Mastery Course and really take their coding and trading to the next level.
If you’re interested in that, you can come to this page here and read the reviews:
Every trader who has finished the course has gone on to do great things with their trading and their coding.
I rarely receive any negative feedback for the course and when I do, normally I just record a lesson on whatever it is that student is struggling with – especially if it’s a concept that I overlooked or missed in the course content.
But the response has been overwhelmingly positive from everyone who has gone through it, from total beginners at trading and coding to professional traders – including one trader (I won’t mention his name) who runs a world-famous stock trading course where they teach traders how to navigate the stock market using rules-based strategies and approaches.
He went through the course so that he could create his own proprietary indicators to give out to his students.
All I can say is that I haven’t had a single student who completed the course regret taking the course. And some of them have gone on to achieve amazing progress, both in their trading and in their scripting. I’m constantly impressed with what some of my students are able to achieve.
Trading can be a lonely game, especially when you’re a solo retail trader like I am. I spend the majority of my day doing nothing, sitting on my hands, waiting for the next trading opportunity that meets my rules to appear.
That’s why I started this course – I get a kick out of teaching people. I’m told I’m good at it. But I’ll let you be the judge of that.
And so in my spare time, this is what I do – I teach people how to write their own scripts and do the same thing I do when it comes to automating and systematizing parts of my trading process through the elegance and the convenience of code.
I hope I’ve convinced you to at least take coding seriously, and to go and pursue it.
All of this is really just a work of passion for me. It’s something I do for fun, and I really hope to inspire other traders to see what I see in coding when it comes to utilizing it in your trading as a tool.
That’ll do it for today’s article – make sure to check out my YouTube channel for more information, I also have a new podcast where I basically read these articles that I’ve written (but I plan to expand into other content in the future), I’m on Twitter, I’m on Facebook, I’m on Instagram – and now, I’m out.
Take care and best of luck with your trading and coding!