Replica of TradingView's Backtesting Engine with ArraysHello everyone,
Here is a perfectly replicated TradingView backtesting engine condensed into a single library function calculated with arrays. It includes TradingView's calculations for Net profit, Total Trades, Percent of Trades Profitable, Profit Factor, Max Drawdown (absolute and percent), and Average Trade (absolute and percent). Here's how TradingView defines each aspect of its backtesting system:
Net Profit: The overall profit or loss achieved.
Total Trades: The total number of closed trades, winning and losing.
Percent Profitable: The percentage of winning trades, the number of winning trades divided by the total number of closed trades.
Profit Factor: The amount of money the strategy made for every unit of money it lost, gross profits divided by gross losses.
Max Drawdown: The greatest loss drawdown, i.e., the greatest possible loss the strategy had compared to its highest profits.
Average Trade: The sum of money gained or lost by the average trade, Net Profit divided by the overall number of closed trades.
Here's how each variable is defined in the library function:
_backtest(bool _enter, bool _exit, float _startQty, float _tradeQty)
bool _enter: When the strategy should enter a trade (entry condition)
bool _exit: When the strategy should exit a trade (exit condition)
float _startQty: The starting capital in the account (for BTCUSD, it is the amount of USD the account starts with)
float _tradeQty: The amount of capital traded (if set to 1000 on BTCUSD, it will trade 1000 USD on each trade)
Currently, this library only works with long strategies, and I've included a commented out section under DEMO STRATEGY where you can replicate my results with TradingView's backtesting engine. There's tons I could do with this beyond what is shown, but this was a project I worked on back in June of 2022 before getting burned out. Feel free to comment with any suggestions or bugs, and I'll try to add or fix them all soon. Here's my list of thing to add to the library currently (may not all be added):
Add commission calculations.
Add support for shorting
Add a graph that resembles TradingView's overview graph.
Clean and optimize code.
Clean up in a way that makes it easy to add other TradingView calculations (such as Sharpe and Sortino ratio).
Separate all variables, so they become accessible outside of calculations (such as gross profit, gross loss, number of winning trades, number of losing trades, etc.).
Thanks for reading,
OztheWoz
Statistics
Aggregated Volume Profile Spot & Futures ⚉ OVERVIEW ⚉
Aggregate Volume Profile - Shows the Volume Profile from 9 exchanges. Works on almost all CRYPTO Tickers!
You can enter your own desired exchanges, on/off any others, as well as select the sources of SPOT, FUTURES and others.
The script also includes several input parameters that allow the user to control which exchanges and currencies are included in the aggregated data.
The user can also choose how volume is displayed (in assets, U.S. dollars or euros) and how it is calculated (sum, average, median, or dispersion).
WARNING Indicator is for CRYPTO ONLY.
______________________
⚉ SETTINGS ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
Data Type — Choose Single or Aggregated data.
• Single — Show only current Volume.
• Aggregated — Show Aggregated Volume.
Volume By — You can also select how the volume is displayed.
• COIN — Volume in Actives.
• USD — Volume in United Stated Dollar.
• EUR — Volume in European Union.
• RUB — Volume in Russian Ruble.
Calculate By — Choose how Aggregated Volume it is calculated.
• SUM — This displays the total volume from all sources.
• AVG — This displays the average price of the volume from all sources.
• MEDIAN — This displays the median volume from all sources.
• VARIANCE — This displays the variance of the volume from all sources.
• Delta Type — Select the Volume Profile type.
• Bullish — Shows the volume of buyers.
• Bearish — Shows the volume of sellers.
• Both — Shows the total volume of buyers and sellers.
Additional features
The remaining functions are responsible for the visual part of the Volume Profile and are intuitive and I recommend that you familiarize yourself with them simply by using them.
________________
⚉ NOTES ⚉
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
If you have any ideas what to add to my work to add more sources or make calculations cooler, suggest in DM .
Also I recommend exploring and trying out my similar work.
Expected Move Plotter IntradayHello everyone!
I am releasing my Intra-day expected move plotter indicator.
About the indicator:
This indicator looks at 3 differing time frames, the 15, 30 and 60 minute time frames.
It calculates the average move from high to low over the past 5 candle period and then plots out the expected move based on that average.
It also attempts to determine the sentiment. How it does this is by taking the average of the High, Low and Close of the previous 5 minute candle and comparing it in relation to the close of the current 5 minute candle. It essentially is the premise of pivot points.
Each time frame can be shut off or selected based on your preference, as well as the sentiment fills.
How to use:
Please play around with it and determine how you feel you could best use it, but I can share with you some tips that I have picked up from using this.
Wait for a clear rejection of respect of a level:
Once you have confirmed rejection or support, you can scalp to the next support level:
As well, you can switch between the 30 and 60 minute time frames as reference
30 Minute:
And that's it!
Its a very simplistic indicator, but it is quite helpful to help identify potential areas of reversal.
There really isn't much to it!
Also, it can be used on any stock!
As always, I have provided a quick tutorial video for your reference, linked below:
Let me know if you have any questions or recommendations for modification to make the indicator more useful and helpful.
Thanks so much for checking it out and trying it out everyone!
As always, safe trades and green days!
Probabilities Module - The Quant Science This module can be integrate in your code strategy or indicator and will help you to calculate the percentage probability on specific event inside your strategy. The main goal is improve and simplify the workflow if you are trying to build a quantitative strategy or indicator based on statistics or reinforcement model.
Logic
The script made a simulation inside your code based on a single event. For single event mean a trading logic composed by three different objects: entry, take profit, stop loss.
The script scrape in the past through a look back function and return the positive percentage probability about the positive event inside the data sample. In this way you are able to understand and calculate how many time (in percentage term) the conditions inside the single event are positive, helping to create your statistical edge.
You can adjust the look back period in you user interface.
How can set up the module for your use case
At the top of the script you can find:
1. entry_condition : replace the default condition with your specific entry condition.
2. TPcondition_exit : replace the default condition with your specific take profit condition.
3. SLcondition_exit : replace the default condition with your specific stop loss condition.
New Highs-New-Lows on US Stock Market - Main Chart Edition#### ENGLISH ####
This script visualizes divergences between the price and new highs and new lows in the US stock market. The indicator should be used exclusively on the US stock indices (timeframe >= D).
This is the indicator for the main chart. It should be used together with the subchart indicator of the same name. In order to get the same results between the main and subchart editions, the indicator settings must be manually adjusted equally in both charts.
The approach:
Let's take a bull market as an example. A bull market is characterized by rising highs and rising lows. We can therefore assume that with the rising prices, the number of stocks that form new highs also rises or at least remains constant. This confirms the upward trend and thus expresses that it is supported by the broad stock market. If the market forms new highs and the number of stocks forming new highs decreases at the same moment, these new index highs are no longer supported by the broad stock market but exclusively by a few highly capitalized stocks. This creates a bearish divergence between the index and the NHNL indicator. This means that the uptrend tends to be overheated and a correction becomes more likely. Stops should be drawn closer.
The approach applies conversely, of course, to downtrends as well.
The indicator itself:
The number of new highs and lows (NHNL) are determined using the data sources included in Tradingview, such as "INDEX:HIGN" for NYSE highs. This data is provided on a daily basis. For higher time units (week, month) the daily numbers are shown summed up and not only the Friday value like most other NHNL indicators.
The signal strength is determined on the basis of two factors. The stronger the signal, the clearer (less transparent) the line/arrow. The two factors are on the one hand the strength of the divergence in and of itself, and on the other hand the strength of the overriding trend. The trend strength is determined using a 50 EMA on the NHNL indicator.
To avoid displaying every small divergence and to reduce false signals, the threshold for the signal strength can be set in the indicator settings.
#### GERMAN #####
Dieses script visualisiert Divergenzen zwischen dem Preis und neuer Hochs sowie neuer Tiefs im US Aktienmarkt. Der Indikator sollte ausschließlich auf den US Aktienindizes verwendet werden (Timeframe >= D).
Dies ist der Indikator für den Hauptchart. Er sollte zusammen mit dem gleichnamigen Subchart Indikator verwendet werden. Um gleiche Ergebnisse zwischen Haupt- und Subchart Edition zu erhalten, müssen die Indikatoreistellung manuell in beiden Charts gleichermaßen eigestellt werden.
Der Ansatz:
Nehmen wir uns als Beispiel einen Bullenmarkt. Ein Bullenmarkt zeichnet sich durch steigende Hochs und steigende Tiefs aus. Man kann also annehmen, dass mit den steigenden Preisen auch die Anzahl der Aktien die neuen Hochs ausbilden steigt oder zumindest konstant bleibt. Dies bestätigt den Aufwärtstrend und drückt somit aus, dass dieser vom breiten Aktienmarkt mitgetragen wird. Wenn der Markt neue Hochs bildet und die Anzahl der Aktien, die neue Hochs bilden im selben Moment sinkt, so werden diese neuen Indexhochs vom breiten Aktienmarkt nicht mehr getragen sonder ausschließlich von wenigen hochkapitalisierten Aktien. Es entsteht eine bärische Divergenz zwischen Index und dem NHNL Indikator. Das bedeutet, dass der Aufwärtstrend tendenziell überhitzt ist und ein Korrektur wahrscheinlicher wird. Die Stops sollten näher herangezogen werden.
Der Ansatz gilt umgekehrt natürlich auch bei Abwärtstrends.
Der Indikator an sich:
Die Anzahl der neuen Hochs und Tiefs (NHNL) werden anhand der in Tradingview enthaltenen Datenquellen wie z.B. "INDEX:HIGN" für die NYSE Hochs ermittelt. Diese Daten werden auf Tagesbasis bereitgestellt. Für höher Zeiteinheiten (Woche, Monat) werden die Tageszahlen aufsummiert dargestellt und nicht wie bei den meisten anderen NHNL Indikatoren nur der Freitagswert.
Die Signalstärke wird Anhand zweier Faktoren ermittelt. Je stärker das Signal um so deutlicher (weniger transparent) die Linie/der Pfeil. Die zwei Faktoren sind zum einen die stärke der Divergenz an und für sich, sowie zum anderen die Stärke des übergeordneten Trends. Die Trendstärke wird anhand eines 50er-EMA auf den NHNL-Indikator ermittelt.
Um nicht jede kleine Divergenz anzuzeigen und um Fehlsignale zu reduzieren, kann die Schwelle für die Signalstärke in den Indikatoreinstellungen festgelegt werden.
New Highs-New-Lows on US Stock Market - Sub Chart Edition#### ENGLISH ####
This script visualizes divergences between the price and new highs and new lows in the US stock market. The indicator should be used exclusively on the US stock indices (timeframe >= D).
This is the indicator for the sub chart. It should be used together with the main chart indicator of the same name. In order to get the same results between the main and subchart editions, the indicator settings must be manually adjusted equally in both charts.
The approach:
Let's take a bull market as an example. A bull market is characterized by rising highs and rising lows. We can therefore assume that with the rising prices, the number of stocks that form new highs also rises or at least remains constant. This confirms the upward trend and thus expresses that it is supported by the broad stock market. If the market forms new highs and the number of stocks forming new highs decreases at the same moment, these new index highs are no longer supported by the broad stock market but exclusively by a few highly capitalized stocks. This creates a bearish divergence between the index and the NHNL indicator. This means that the uptrend tends to be overheated and a correction becomes more likely. Stops should be drawn closer.
The approach applies conversely, of course, to downtrends as well.
The indicator itself:
The number of new highs and lows (NHNL) are determined using the data sources included in Tradingview, such as "INDEX:HIGN" for NYSE highs. This data is provided on a daily basis. For higher time units (week, month) the daily numbers are shown summed up and not only the Friday value like most other NHNL indicators.
The signal strength is determined on the basis of two factors. The stronger the signal, the clearer (less transparent) the line/arrow. The two factors are on the one hand the strength of the divergence in and of itself, and on the other hand the strength of the overriding trend. The trend strength is determined using a 50 EMA on the NHNL indicator.
To avoid displaying every small divergence and to reduce false signals, the threshold for the signal strength can be set in the indicator settings.
#### GERMAN #####
Dieses script visualisiert Divergenzen zwischen dem Preis und neuer Hochs sowie neuer Tiefs im US Aktienmarkt. Der Indikator sollte ausschließlich auf den US Aktienindizes verwendet werden (Timeframe >= D).
Dies ist der Indikator für den Subchart. Er sollte zusammen mit dem gleichnamigen Hauptchart Indikator verwendet werden. Um gleiche Ergebnisse zwischen Haupt- und Subchart Edition zu erhalten, müssen die Indikatoreistellung manuell in beiden Charts gleichermaßen eigestellt werden.
Der Ansatz:
Nehmen wir uns als Beispiel einen Bullenmarkt. Ein Bullenmarkt zeichnet sich durch steigende Hochs und steigende Tiefs aus. Man kann also annehmen, dass mit den steigenden Preisen auch die Anzahl der Aktien die neuen Hochs ausbilden steigt oder zumindest konstant bleibt. Dies bestätigt den Aufwärtstrend und drückt somit aus, dass dieser vom breiten Aktienmarkt mitgetragen wird. Wenn der Markt neue Hochs bildet und die Anzahl der Aktien, die neue Hochs bilden im selben Moment sinkt, so werden diese neuen Indexhochs vom breiten Aktienmarkt nicht mehr getragen sonder ausschließlich von wenigen hochkapitalisierten Aktien. Es entsteht eine bärische Divergenz zwischen Index und dem NHNL Indikator. Das bedeutet, dass der Aufwärtstrend tendenziell überhitzt ist und ein Korrektur wahrscheinlicher wird. Die Stops sollten näher herangezogen werden.
Der Ansatz gilt umgekehrt natürlich auch bei Abwärtstrends.
Der Indikator an sich:
Die Anzahl der neuen Hochs und Tiefs (NHNL) werden anhand der in Tradingview enthaltenen Datenquellen wie z.B. "INDEX:HIGN" für die NYSE Hochs ermittelt. Diese Daten werden auf Tagesbasis bereitgestellt. Für höher Zeiteinheiten (Woche, Monat) werden die Tageszahlen aufsummiert dargestellt und nicht wie bei den meisten anderen NHNL Indikatoren nur der Freitagswert.
Die Signalstärke wird Anhand zweier Faktoren ermittelt. Je stärker das Signal um so deutlicher (weniger transparent) die Linie/der Pfeil. Die zwei Faktoren sind zum einen die stärke der Divergenz an und für sich, sowie zum anderen die Stärke des übergeordneten Trends. Die Trendstärke wird anhand eines 50er-EMA auf den NHNL-Indikator ermittelt.
Um nicht jede kleine Divergenz anzuzeigen und um Fehlsignale zu reduzieren, kann die Schwelle für die Signalstärke in den Indikatoreinstellungen festgelegt werden.
Average Range @coldbrewroshTaking the average daily range from low to high or high to low isn't the "best" way to get an idea of how much to set targets. So, I made this indicator to make the system better.
This indicator calculates the daily range from Open to High on Bullish Days & Open to Low on Bearish Days .
Nobody can catch the absolute low of the day on bullish days and get out at the high but one can enter at a reasonable price around the open ( 17:00 EST ) .
To complement the Average Range, another table shows the movement in the opposite direction.
For Instance: On Bullish Days how much it moved from Open to Low so that we have an idea of where to put the stop loss and vice versa. The time ranges calculated are the last 5 days, last 1 month, last 3 months & last 1 year.
Note #1: Even though the date range is predefined, it has a different meaning. For Instance: date range of last 5 days means "calculation of the range of last 5 bullish daily candles & not last 5 days" .
Note #2: Exclusive to Forex at the time of posting this.
Fiat Currency and Gold Indices (FGXY) CandlesA modification of my previous indicator "Crypto Index (DXY) Candles". The idea was to create a similar currency basket to the standard DXY, but from the perspective of other currencies. Still using the standard DXY weights, this indicator allows you to create a tailored index for other currencies, provided that a currency pair exists for each of the 6 components. This means that even currencies that aren't included should work in theory; just find the 3 character currency prefix used by tradingview and give it a shot! This indicator is useful for gauging how well countries/currencies are holding up and when paired with the standard DXY may help see potential inflection points. For use on longer time frames (~1h-~3d) as some of the data being pulled seems to have issues on lower timeframes.
SAFE MARGINE_OSHi dear Investors!
Here I present you my last prepared indicator that works with searching on the most visited prices in a period. It also take an average of them which is described here as balance line.
Inputs:
+BACKWARD: range of your search area on history from current moment.
+MEMORY: number of memory stacks that would be used to save previous calculated values for taking an average.
+REFRESH: this parameter is in mili-seconds and describe saving data in memory stacks.
+METHODOLOGY:
++OC-BASED: OPEN/CLOSE would be used for calculations
++HL-BASED: HIGH/LOW would be used for calculations
++MID-BASED: HL2/OHLC4 would be used for calculations
Please do not forget to 'BOOST' the script if you use it!
Happy trading!
PlanB4.
Financial Data Spreadsheet [By MUQWISHI]The Financial Data Spreadsheet indicator displays tables in the form of a spreadsheet containing a set of selected financial performances of a company within the most recent reported period. Analyzing Financial data is one of the classic methods to evaluate whether the company’s stock price is overvalued or undervalued based on its income statement, balance sheet, and cash flow statement. This indicator might be practical to investors to collect needed data of a company to analyze and compare it with other companies on a TradingView chart or print it in spreadsheet form.
█ OVERVIEW
█ BEST PRACTICES
Due to strict limitations on calling request.financial() function, I tried to develop the table with the best ways to be more dynamic to move and the ability to join multiple tables into a spreadsheet. Users can add up to 20 instruments and 2 financial metrics per table. However, it’s possible to add many tables with other financial metrics, then connect them to the main table.
Credits: The idea of joining multiple tables inspired by @QuantNomad Screener for 40+ instruments
█ INDICATOR SETTINGS
1- Moving Table toward right-left up-down from its origin.
2- Hiding Column Title checkmark. Useful for adding a joined table underneath with additional instruments.
3- Hiding Instruments Title checkmark. Useful for adding a joined table on the right with other financial metrics.
4- Shade Alternate Rows checkmark. I believe it’ll make the table easier to read.
5- Selecting Financial Period. (Year, Quarter).
6- Entering a currency.
7- Choosing a financial ID for each column. There’re over 200 financial IDs. Source: What financial data is available in Pine? — TradingView
8- Optional to highlight values in between.
9- Entering the ticker’s symbol with the ability to activate/deactivate.
█ TIP
For best technical performance, use the indicator in a 1D timeframe.
Please let me know if you have any questions.
Thank you.
Open Interest Denominated in QuoteOpen Interest indicator in TradingView doesn't have option to denominate in quote, so I made one.
TechnicalRating█ OVERVIEW
This library is a Pine Script™ programmer’s tool for incorporating TradingView's well-known technical ratings within their scripts. The ratings produced by this library are the same as those from the speedometers in the technical analysis summary and the "Rating" indicator in the Screener , which use the aggregate biases of 26 technical indicators to calculate their results.
█ CONCEPTS
Ensemble analysis
Ensemble analysis uses multiple weaker models to produce a potentially stronger one. A common form of ensemble analysis in technical analysis is the usage of aggregate indicators together in hopes of gaining further market insight and reinforcing trading decisions.
Technical ratings
Technical ratings provide a simplified way to analyze financial markets by combining signals from an ensemble of indicators into a singular value, allowing traders to assess market sentiment more quickly and conveniently than analyzing each constituent separately. By consolidating the signals from multiple indicators into a single rating, traders can more intuitively and easily interpret the "technical health" of the market.
Calculating the rating value
Using a variety of built-in TA functions and functions from our ta library, this script calculates technical ratings for moving averages, oscillators, and their overall result within the `calcRatingAll()` function.
The function uses the script's `calcRatingMA()` function to calculate the moving average technical rating from an ensemble of 15 moving averages and filters:
• Six Simple Moving Averages and six Exponential Moving Averages with periods of 10, 20, 30, 50, 100, and 200
• A Hull Moving Average with a period of 9
• A Volume-Weighted Moving Average with a period of 20
• An Ichimoku Cloud with a conversion line length of 9, base length of 26, and leading span B length of 52
The function uses the script's `calcRating()` function to calculate the oscillator technical rating from an ensemble of 11 oscillators:
• RSI with a period of 14
• Stochastic with a %K period of 14, a smoothing period of 3, and a %D period of 3
• CCI with a period of 20
• ADX with a DI length of 14 and an ADX smoothing period of 14
• Awesome Oscillator
• Momentum with a period of 10
• MACD with fast, slow, and signal periods of 12, 26, and 9
• Stochastic RSI with an RSI period of 14, a %K period of 14, a smoothing period of 3, and a %D period of 3
• Williams %R with a period of 14
• Bull Bear Power with a period of 50
• Ultimate Oscillator with fast, middle, and slow lengths of 7, 14, and 28
Each indicator is assigned a value of +1, 0, or -1, representing a bullish, neutral, or bearish rating. The moving average rating is the mean of all ratings that use the `calcRatingMA()` function, and the oscillator rating is the mean of all ratings that use the `calcRating()` function. The overall rating is the mean of the moving average and oscillator ratings, which ranges between +1 and -1. This overall rating, along with the separate MA and oscillator ratings, can be used to gain insight into the technical strength of the market. For a more detailed breakdown of the signals and conditions used to calculate the indicators' ratings, consult our Help Center explanation.
Determining rating status
The `ratingStatus()` function produces a string representing the status of a series of ratings. The `strongBound` and `weakBound` parameters, with respective default values of 0.5 and 0.1, define the bounds for "strong" and "weak" ratings.
The rating status is determined as follows:
Rating Value Rating Status
< -strongBound Strong Sell
< -weakBound Sell
-weakBound to weakBound Neutral
> weakBound Buy
> strongBound Strong Buy
By customizing the `strongBound` and `weakBound` values, traders can tailor the `ratingStatus()` function to fit their trading style or strategy, leading to a more personalized approach to evaluating ratings.
Look first. Then leap.
█ FUNCTIONS
This library contains the following functions:
calcRatingAll()
Calculates 3 ratings (ratings total, MA ratings, indicator ratings) using the aggregate biases of 26 different technical indicators.
Returns: A 3-element tuple: ( [(float) ratingTotal, (float) ratingOther, (float) ratingMA ].
countRising(plot)
Calculates the number of times the values in the given series increase in value up to a maximum count of 5.
Parameters:
plot : (series float) The series of values to check for rising values.
Returns: (int) The number of times the values in the series increased in value.
ratingStatus(ratingValue, strongBound, weakBound)
Determines the rating status of a given series based on its values and defined bounds.
Parameters:
ratingValue : (series float) The series of values to determine the rating status for.
strongBound : (series float) The upper bound for a "strong" rating.
weakBound : (series float) The upper bound for a "weak" rating.
Returns: (string) The rating status of the given series ("Strong Buy", "Buy", "Neutral", "Sell", or "Strong Sell").
Monthly ReturnsDisplays monthly and yearly returns in tabular format along with maximum, minimum, average returns and standard deviations.
This uses boxes to build the table and as maximum boxes that could be used is 500, it displays up to 32 years of returns. However, for maximum, minimum, average and standard deviation calculations, it uses data from all months since inception.
This requires timeframe to be set to one month (1M). Cell widths correspond to years. For the first year, cell widths may be shorter and there could be overlap of numbers as nothing could be drawn before the first bar.
Provide sufficient space for the table to render properly. Zooming out or less space may lead to overlapping of numbers.
Position Size ToolUpdated - Version 2
This tool is used to calculate the size of a trade.
Settings - Type in total account size and % of capital that can be risked on each trade.
The table will display:
Column 1 - Stop placement based on low, mid or high value of the current candle.
Column 2 - Percent risk on the trade.
Column 3 - Amount of shares that can be traded (calculated from account size, risk and selected stop placement).
Green color is intended for long position, stop at the low of the candle.
Red color is intended for short position, stop at the high of the candle.
Middle value can shift between either color since its measured from open to close.
AlexD Market annual seasonalityThe indicator displays the percentage of bullish days with a given date over several years.
This allows you to determine the days of the year when the price usually goes up or down.
Indicator has a built-in "simple moving average" shifted back by half a period, due to which the delay of this smoothing is removed.
Z-Score Buy and Sell SignalsHello everyone!
Happy Holidays, Merry/Happy Christmas!
Here is my Christmas gift to you to show my appreciation of your support and engagement over the past year!
This is the Z-Score Buy and Sell Signal indicator!
How it works:
It works by looking at the Z-Score of an equities close price and looking for previous areas over reversals over the defined period of time.
It also looks at areas that are overbought or oversold (manifested by Z-Scores greater than or less than 2 Standard Deviations away) and displays them as bar colour changes.
Historic reversals are signaled with buy and/or sell signals.
Oversold is signaled with a green bar colour change (colour can be customaized).
Overbought is signaled with an orange bar colour change.
How to use it:
You can use it with support resistance or other indicators. You can use this on both the larger and small timeframes, depending on the style of trader you are.
You can modify the input length to look back on shorter or longer periods.
As a general rule from my experience using it, if you are using the shorter timeframes (i.e. 1 minute tfs), its best to look back between 50 and 75 candles for most equities.
If you are looking at the larger timeframes (i.e. Daily, 1 to 2 hour, etc.) its best to set the input value to between 500 to 800.
But, as always, you should check to ensure the indicator is providing correct signals by reviewing the previous signals to ensure that they adequate identified reversals.
It is also best not to use this alone as your sole indicator. It is meant to be supplementary to other indicators/support resistance/chart patterns you are using to guide your trades. This will not replace good TA and a good understand of the stock and its likely trajectory.
As always, please feel free to share your comments/feedback/questions and recommendations below.
As always, I do customary tutorial videos for my indicators, so please see below for an in-depth video tutorial should you want to see it in action:
Otherwise, happy holidays everyone! And all of the best over this Christmas weekend to you and your loved ones!
Multi-Polar WorldA new macro analysis tool for easily analyzing the multi-polar world's economic powerhouses / spheres of influence, making for an easy to use visual when comparing a number of statistics:
GDP, GDP per Capita, External Debt, Government Debt, Exports, Imports, Gold Reserves, Employed Persons, Military Expenditure, Population, Bank Lending Rate, Balance of Trade, Central Bank Balance Sheet, M2 Money Supply, and CPI . Includes option to provide the total for each pole, or view individually for more detailed comparison. Meant to be used when analyzing the macro-economic conditions/trends in conjunction with other "Big Picture" type indicators when adjusting your macro framework.
Seasonal tendency: week-on-week % change and 10yr Averages-shows week-on-week % change, and 10yr averages of these % changes
-scan across the 10yr averages to get a good idea of the seasonality of an asset
-best used on commodities with strong seasonal tendencies (Gold, Wheat, Coffee, Lean hogs etc)
-works only on daily timeframe
-by default it will compare SMA(length) in the following way, BTC: Sunday cf previous Sunday | ES/Gold: Monday cf previous Monday
-for most assets, 5 daily bars in a week (SMA(5)) => that's the default. For BTC can change this to 7.
~~inputs:
-change input year to show any previous decade of asset's history; the table will display over that year on the chart
-choose expression for Average of % change week on week: SMA, ohlc4, vwma, vwap (default SMA)
-choose number of daily bars in a week (i.e. SMA length)
-change label sizes/colors
~~notes:
-When applied to current year: will print the 10yr average for previous weeks in the year; 9yr average for future weeks in the year
-drawings and SMA plot on the above chart are just to show visually how the week's average is calculated, and how this lines up with the label
-current week of year will highlight in large font orange by default
-the first 2 weeks of the year are omitted because of a bug i can't figure out, which throws out bad numbers.
-cannot print all the values for each of previous 10yrs; 'code too long' error. Could likely do this via using matrices but would require a rewrite
17th Dec 2022
@twingall
Economic Calendar Events NickShows Economic Events for possible trade setups. Different events like GOP and CPI. It also works in a way if you want to avoid a trade based on the news.
Signal AnalyzerThis library contains functions that try to analyze trading signals performance.
Like the % of average returns after a long or short signal is provided or the number of times that signal was correct, in the inmediate 2 candles after the signal.
Trend Finder with Coefficient of VariationCoefficient of variation (“COV”) is a statistical measure used to describe the variability of values within a data set, it’s calculated by taking the standard deviation divided by the mean.
Traditionally, COV is applied to the expected returns of competing investment portfolios. A risk adverse investor prefers to accept a portfolio with a relatively lower COV value.
On the other hand, when applying COV to price charts, the difference is that instead of looking at expected returns, we now treat price as the source of data. We look at price from a moving average perspective. This script purely focuses on price.
What this indicator does:
Firstly, to go over the parameters:
Let ‘n’ be the lookback period for computing COV, and ‘m’ be the period for comparing the ranking of COVs.
Logics in a nutshell:
This program will (A) calculate the COV by dividing the moving standard deviation by moving average over ‘n’ bars, and then (B) illustrate the relationship of how COV at each bar ranks compared to COVs over past ‘m’ bars. We use a color scale (default black and yellow) for visualizing ranking in terms of percentiles. If COV is below its median value, then we assume that price is consolidating.
Hypothesis:
Using COV on top of regular SMA signals should reduce a lot of unwanted noise such as consecutive crossovers during ranging-periods. Traders want volatility, but not too much of it when sniping for entry opportunities (speaking of initial position; need to add to winning positions after, but this is for another topic). For this reason, the median value of COV is suitable as a metric for signals.
Applications:
We use the median value of COV to form a decision rule. A signal is generated when COV > median(COV,m), and the direction of trend is determined based on relative position of price with respect to sma(price,n). When the value of COV is increasing, it can also be thought of seeing Bollinger Bands beginning to bulge. When trends begin, this program will plot triangles to signify entry opportunities.