WhaleCrew BacktesterBacktesting indicators is easy , just add the following line of code to your script:
plot(longEntry ? 1 : shortEntry ? -1 : longTP ? 0.5 : shortTP ? -0.5 : 0, color=na, editable=false, title='Backtest')
These numbers are defined as constants in the backtester source-code.
After adding this indicator to your chart:
1. Open Settings
2. Select supported indicator to backtest
3. Select if you want to enter Longs and/or Shorts
4. Open the 'Strategy Tester' at the bottom to check the performance
Remember:
past performance is not indicative of future results
repainting indicators will create wrong/unrealistic results
Performance
benchLibrary "bench"
A simple banchmark library to analyse script performance and bottlenecks.
Very useful if you are developing an overly complex application in Pine Script, or trying to optimise a library / function / algorithm...
Supports artificial looping benchmarks (of fast functions)
Supports integrated linear benchmarks (of expensive scripts)
One important thing to note is that the Pine Script compiler will completely ignore any calculations that do not eventually produce chart output. Therefore, if you are performing an artificial benchmark you will need to use the bench.reference(value) function to ensure the calculations are executed.
Please check the examples towards the bottom of the script.
Quick Reference
(Be warned this uses non-standard space characters to get the line indentation to work in the description!)
```
// Looping benchmark style
benchmark = bench.new(samples = 500, loops = 5000)
data = array.new_int()
if bench.start(benchmark)
while bench.loop(benchmark)
array.unshift(data, timenow)
bench.mark(benchmark)
while bench.loop(benchmark)
array.unshift(data, timenow)
bench.mark(benchmark)
while bench.loop(benchmark)
array.unshift(data, timenow)
bench.stop(benchmark)
bench.reference(array.get(data, 0))
bench.report(benchmark, '1x array.unshift()')
// Linear benchmark style
benchmark = bench.new()
data = array.new_int()
bench.start(benchmark)
for i = 0 to 1000
array.unshift(data, timenow)
bench.mark(benchmark)
for i = 0 to 1000
array.unshift(data, timenow)
bench.stop(benchmark)
bench.reference(array.get(data, 0))
bench.report(benchmark,'1000x array.unshift()')
```
Detailed Interface
new(samples, loops) Initialises a new benchmark array
Parameters:
samples : int, the number of bars in which to collect samples
loops : int, the number of loops to execute within each sample
Returns: int , the benchmark array
active(benchmark) Determing if the benchmarks state is active
Parameters:
benchmark : int , the benchmark array
Returns: bool, true only if the state is active
start(benchmark) Start recording a benchmark from this point
Parameters:
benchmark : int , the benchmark array
Returns: bool, true only if the benchmark is unfinished
loop(benchmark) Returns true until call count exceeds bench.new(loop) variable
Parameters:
benchmark : int , the benchmark array
Returns: bool, true while looping
reference(number, string) Add a compiler reference to the chart so the calculations don't get optimised away
Parameters:
number : float, a numeric value to reference
string : string, a string value to reference
mark(benchmark, number, string) Marks the end of one recorded interval and the start of the next
Parameters:
benchmark : int , the benchmark array
number : float, a numeric value to reference
string : string, a string value to reference
stop(benchmark, number, string) Stop the benchmark, ending the final interval
Parameters:
benchmark : int , the benchmark array
number : float, a numeric value to reference
string : string, a string value to reference
report(Prints, benchmark, title, text_size, position)
Parameters:
Prints : the benchmarks results to the screen
benchmark : int , the benchmark array
title : string, add a custom title to the report
text_size : string, the text size of the log console (global size vars)
position : string, the position of the log console (global position vars)
unittest_bench(case) Cache module unit tests, for inclusion in parent script test suite. Usage: bench.unittest_bench(__ASSERTS)
Parameters:
case : string , the current test case and array of previous unit tests (__ASSERTS)
unittest(verbose) Run the bench module unit tests as a stand alone. Usage: bench.unittest()
Parameters:
verbose : bool, optionally disable the full report to only display failures
Relative PerformanceThis indicator takes the Performance Table from @BeeHolder and converts it to a Relative Performance table so you can compare the current chart vs. an Index (or whatever other ticker you want) to see the relative performance of one vs. the other. I also added a cell for ADR, which is also the same value as "Monthly Volatility" in the stock screener. This can be useful when screening stocks based on performance and volatility.
Sector PerformanceThis indicator shows real-time current day performance for 11 ETFs that divide the S&P 500 into eleven sector index funds. The list of different sector ETFs this indicator tracks is as follows -
1. SPY - S&P 500 Index
2. XLC - Communication Services
3. XLY - Consumer Discretionary
4. XLP - Consumer Staples
5. XLE - Energy
6. XLF - Financials
7. XLV - Health Care
8. XLI - Industrials
9. XLB - Materials
10. XLRE - Real Estate
11. XLF - Technology
12. XLU - Utilities
Acknowledgment - This indicator is adapted using the source code from another excellent performance indicator (). Thanks to BeeHolder (www.tradingview.com) for generously sharing the source code.
Momentum Performance This Indicator displays the momentum (performance) of the symbol in percent.
You can compare the performance with other symbols.
The default benchmarks are the S&P 500, the MSCI World and the FTSE All World EX US.
The default length corresponds to one year in the timeframes monthly, weekly and daily.
In intraday the default length is 200, but you can also set your own setting.
You have also the opportunity to display a average momentum performance of the main symbol.
Moving Average and PerformanceThis indicator combines several tools that are used daily for analysis:
The performance of the action we are seeing.
The percentage of retracement the stock has made from its all time high.
Possibility of using up to four exponential or simple moving averages in the length we want.
It allows to see or not the levels of four moving averages in daily temporality.
This indicator is unique since it allows you to see in real time the performance of the Stock or ETF that is being analyzed, which allows you to make a timely decision for short, medium or long-term investments.
If you are doing scalping, swing, or intraday trading, you can see the retracement it has made from the ATH (3, 5, 10 or 13%) which can become Supports or Resistances where the price can rebound, Likewise, the levels of the moving averages in 1D temporality can be observed at the same time, which are usually dynamic supports or resistances and it can also be observed in the same temporality of the chart four moving averages that the trader can configure in the length that you deem convenient to improve your analysis and make decisions as quickly as possible.
Este indicador es único ya que permite ver en tiempo real el rendimiento de la Acción o ETF que se está analizando, lo cual permite tomar una decisión oportuna para las inversiones a corto, mediano o largo plazo.
Si se está haciendo trading tipo scalping, swing, o intradía, se puede observar el retroceso que ha hecho desde el ATH (3, 5, 10 o 13%) el cual puede convertirse en Soportes o Resistencias en donde el precio puede hacer rebotes, así mismo se pueden estar observando al mismo tiempo los niveles de las medias móviles en temporalidad de 1D, los cuales usualmente son Soportes o resistencias dinámicas y también se puede observar en la misma temporalidad del gráfico cuatro medias móviles que el trader puede configurar en la longitud que crea conveniente para mejorar su análisis y tomar decisiones lo más rápido posible.
Technical Ratings Colored CandlesFor those that want technical ratings but don't want waste valuable screen real estate. Candles are colored to the rating strength. It also plots the results for "total", "MA" and "other" in a table on right of screen. Table and candle coloring can be turned off in style settings. This script uses the built in Technical Ratings indicator. For more informations on Technical Ratings please refer to official documentation.
Performance TableThis indicator is based on the Performance section in the TradingView's sidebar and uses new Pine tables functionality. It compares the current price of the symbol to its past price and calculates the rate of return to make it easier to track the performance of the symbol. Note that the Performance sidebar is not updated in real-time, while this indicator is, so on real-time charts the values between the two can differ (the indicator's values are more recent).
The formula of the calculation is (Current value - Past value) * 100 / Past value , where Past value is:
1W - close 5 daily bars ago
1M - close 21 daily bars ago
3M - close 63 daily bars ago
6M - close 126 daily bars ago
YTD - close of the past year
1Y - close 251 daily bars ago
Bollinger Bands - 22MADescription:
This indicator uses Bollinger Bands with a set of 22 different moving averages as a center MA plus a custom signal generation and performance measurement modules.
Preprosessed & Standardized RSIDescription:
This is a preprocessed and standardized version of RSI indicator. You can replace RSI with any other indicator of your choice. Use this code as a framework for your ideas.
Time Threshold parameter is useful in handling a repainting issue. By setting it to higher values you can effectively eliminate repainting!
Cumulative Return, Win/Loss and Win Rate are quick & dirty performance measures helpful in tuning parameters.
Enjoy!
Alpha & BetaAlpha & Beta Indicators for Portfolio Performance
β = Σ Correlation (RP, RM) * (σP/σM)
α P = E(RP) –
Where,
RP = Portfolio Return (or Investment Return)
RM = Market Return (or Benchmark Index)
RF = Risk-Free Rate
How to use the Indicator
RM = SPX (Default)
The Market Return for the indicator has the options of $SPX, $NDX, or $DJI (S&P 500, Nasdaq 100, Dow 30)
RF = FRED: DTB3
The Risk-Free Rate in the Indicator is set to the 3-Month Treasury Bill: Secondary Market Rate
The Default Timeframe is 1260 or 5-Years (252 Trading Days in One Year)
RP = The symbol you enter
HOWEVER , you can determine your portfolio value by following the following directions below.
Note: I am currently working on an indicator that will allow you to insert the weights of your positions.
Complete Portfolio Analysis Directions
You will first need...
a) spreadsheet application - Google Sheets is Free, but Microsoft Excel will convert ticker symbols to Stocks and Retrieve Data.
b) your current stock tickers, quantity of shares, and last price information
In the spreadsheet,
In the first column list the stock tickers...
AMZN
AAPL
TSLA
In the second column list the quantity of shares you own...
5
10
0.20
In the third column insert the last price
Excel: Three tickers will automatically give you the option to "Convert to Stocks",
after conversion, click once on cell and click the small tab in the upper right-hand of the highlighted cell.
Click the tab and a menu pops up
Find "Price", "Price Extended-Hours", or "Previous Close"...
$3,284.72
$497.48
$2,049.98
Next, multiply the number of shares by the price (Stock Market Value)
Excel: in fourth column type "=(B1*C1)", "=(B2*C2)", "=(B3*C3)"...
= $16,423.60
= $4,974.80
= $410.00
add the three calculated numbers together or click "ΣAutoSum" (Portfolio Market Value)
= $21,808.40
Last, divide the market value of AMZN ($16,423.60) by the Portfolio Market Value ($21,808.40) for each of the stocks.
= 0.7531
= 0.2281
= 0.0188
These values are the weight of the stock in your portfolio.
Go back to TradingView
Enter into the "search box" the following...
AMZN*0.7531 + AAPL*0.2281 + TSLA*0.0188
and click Enter
Now you can use the "Alpha & Beta" Indicator to analyze your entire portfolio!
Performance ComparatorThis indicator allows to compare the performance (% change) of a given symbol with the larger market ( AMEX:SPY ) and/or with a custom symbol, which defaults to AMEX:XLK (an ETF tracking technology companies from the S&P 500).
The performance for the current symbol is displayed as a blue histogram, while performance for the AMEX:SPY and the custom symbol are respectively displayed as orange and white lines, making it easy to spot when the symbol outperformed the market.
Features:
Configurable time resolution (default: same as chart)
Comparison using change percentage or its EMA/WMA/SMA (default: EMA)
Configurable moving average length
Optionally hide AMEX:SPY or the custom symbol from the chart
Alpha Performance of PeriodAlpha Performance of Period (PoP) produces a visualization of returns (gains and losses) over a quarterly, monthly, or annual period. It also displays the total % gain and loss over any length of days, months, and years as defined by the user.
Performance of Period (PoP) can be used to understand the performance of an asset over multiple periods using a single chart layout, and to compare the performance of different assets by using a multi-chart layout.
This can, for example, be used to compare the NASDAQ, S&P, and DJI over the past 20 years to create a dow vs. nasdaq vs. s&p performance chart. This can help you understand a comparison of historical returns by showing which performs the best month-over-month, quarter-to-quarter, year-to-year, throughout any custom period of days/months/years.
The ability to get a visualization of the % gain/loss can help to better understand how markets have performed over time and which markets have historically performed the best.
Check out the up and coming Educational Idea we will be releasing soon after this is live to see an example of how we use this tool.
Current Period Label
-----
Current Period : This label shows the current period's performance only when you hover over it.
(This label is located to the left of the current period's open candle and at the current candles close price)
TICKER "Time Period" Performance Label
-----
Total Period Gain : The total of all % gain periods from the start to end date.
Largest Period Gain : The biggest % gain period from the start to end date.
Total Period Loss : The total of all % loss periods from the start to end date.
Largest Period Loss : The biggest % loss period from the start to end date.
Total period Performance : The total % performance, the difference between the total gain and total loss.
NOTE : The "Current Period" performance is excluded from ALL five of the above-mentioned figures. This was done to avoid giving inaccurate comparison figures due to the period not being finished yet.
Inputs
-----
Current Script Version + Info : A drop-down list of instructions for the user to refer to.
Dark Mode Labels : Toggle on for Dark Mode. This is done since Labels text and background color can not be adjusted separately within the visual inputs so this is the best fit solution.
Time Period of Returns : Pick the period of performance you would like to emulate monthly/quarterly/annual.
Start Date : The day to start tracking performance.
Start Month : The month to start tracking performance.
Start Year : The year to start tracking performance.
End Date : The day to stop tracking performance.
End Month : The month to stop tracking performance.
End Year : The year to stop tracking performance.
As always if you have any feedback let us know in the comments and leave a like if you enjoy this tool :)
Rate of Return (RoR) by DGTA rate of return (RoR) is the net gain or loss of an investment over a specified time period, expressed as a percentage of the investment’s initial cost
Portfolio and Risk Management: Gold Based Net Growth CoefficientHello, if our topic is stocks, whatever signal we get, we have to divide and reduce the risk.
Apart from the risk, we need inflation-free figures to detect a clear growth.
Gold is one of the most successful tools to beat inflation in this regard in the historical context.
When the economy is good, we have to beat both commodities and inflation.
For this purpose, I found it appropriate to develop a net growth factor free from gold growth.
Investors need several stocks with a high growth rate and as much risk-free as possible.
Personally, I think that the science of portfolio and risk management will last a lifetime and should continue.
I think this subject is a research and development subject.(R & D)
My research and publications on this matter will continue publicly.
I wish everyone a good day.
NOTE : You can determine the return in the time period you want to look back by adjusting the period in the rate you want from the menu.
The standard value is 200 days. (1 year)
Gold-Stocks RatioA historic risk-off flag.
When the Gold-Stocks Ratio is above the 200 week moving average, investors may fair better holding gold and avoiding equities, as was the case for the last 20 years.
Current vs. Average price performance (daily and weekly)This indicator is to be used only by the values it gives back, don't use the lines .
In "current week days" choose number of days that already BEGAN this week (ex. on Wednesday type 3)
Green1 - Current Daily Range
Orange1 - Average Daily Range
Green2 - Current Weekly Range
Red1 - Average Weekly Range
Orange2 - Today's price movement compared to the average daily price movement (in percentage)
Red2 - This week price movement compared to the average weekly price movement (in percentage)
By these values you can check how price performed today and this week in comparison to the average daily and weekly values - you can check with some probability if the movement is already exhausted or price can do some more action.
High Performance Candlestick Patterns Colors//Candle Patterns Ranked by Performance THOMAS N. BULKOWSKI
//1. Bearish Three Line Strike +Up 67.38%
//2. Bullish Three Line Strike -Down 65.23%
//3. Bearish Three Black Crows -Down 59.83%
//4. Bearish Evening Star -Down 55.85%
//5. Bullish Upside Tasuki Gap +Up 54.44%
//6. Bullish Inverted Hammer -Down 51.73%
//7. Bullish Matching Low -Down 50.00%
//8. Bullish Abandone Baby +Up 49.73%
//9. Bearish Two Black Gapping -Down 49.64%
//10. Brearish Breakaway -Down 49.24%
//11. Bullish Morning Star +Up 49.05%
//12. Bullish Piercing Line +Up 48.37%
//13. Bullish Stick Sandwich +Up 48.20%
//14. Bearish Thrusting Line During Dowtrend +Up 48.10%
//15. Bearish Meeting Line +Up 48.07%
//Down=Yellow Bar Color and Black Text
//Up=Blue Bar Color and Blue Text
//High Performance Candlestick Patterns Colors Top 15
High Performance Candlestick Patterns//Candle Patterns Ranked by Performance THOMAS N. BULKOWSKI
//1. Bearish Three Line Strike +Up 67.38%
//2. Bullish Three Line Strike -Down 65.23%
//3. Bearish Three Black Crows -Down 59.83%
//4. Bearish Evening Star -Down 55.85%
//5. Bullish Upside Tasuki Gap +Up 54.44%
//6. Bullish Inverted Hammer -Down 51.73%
//7. Bullish Matching Low -Down 50.00%
//8. Bullish Abandone Baby +Up 49.73%
//9. Bearish Two Black Gapping -Down 49.64%
//10. Brearish Breakaway -Down 49.24%
//11. Bullish Morning Star +Up 49.05%
//12. Bullish Piercing Line +Up 48.37%
//13. Bullish Stick Sandwich +Up 48.20%
//14. Bearish Thrusting Line During Dowtrend +Up 48.10%
//15. Bearish Meeting Line +Up 48.07%
//Down=Yellow Bar Color and Black Text
//Up=Blue Bar Color and Blue Text
//High Performance Candlestick Patterns Top 15
[RS]Lagging Performance OscillatorExperimental:
Use at your own discretion.
Measures the current performance versus the past.