Advanced Donchian Channels
Advanced Donchian Channels displays future donchian channel values based on the current information on the chart.
It displays a normal donchian channel at the specified user length with the future values extending from the current bar.
Depending on the direction of price movement, these values do not repaint. It is known when it does and does not repaint, and the actions are normal. See below for more information.
In a down trend, when the price is making new lows, the future "channel low" value will update every time the low is broken. The mean will also update, since the mean is the average of the channel high and channel low.
In a downtrend, the "channel high" value is concrete . It will not update until the high is broken.
Reverse these examples for uptrends.
Q;
How does it know the future values?
A:
Consider This: If we are below the current highest high, going down (aka: not setting new highs), the donchian channel "high" value will create a flat top, the flat top will start to decrease after we go further than our specified length. This is because the highest high within our specified length is no longer what it was previously. This action of time decay is a consistent movement of donchian channels . Because of this I am able to calculate these values before the current bar actually reaches them.
The indicator calculates the current length donchian channel at the current bar and then for every future bar up to your length specified it subtracts 1 from your length, calculates and displays the values accordingly.
The farthest future value is 1 length and the current bar is your specified length.
VALUES WILL ONLY BE UPDATED WHEN THE CHANNEL HIGH OR LOW IS BROKEN.
If price stays within the channel, all the future channel values will become solidified when the time reaches them.
This is not a gimmick, This data is accurate and can be used to help see future price trends
This chart should assist in visualizing what data you are seeing in this indicator.
Enjoy!
Educational
Trading range display with BoxThis script is just for reference to see the trading range.
Do not use this strategy logic, it is just Test strategy.
The trading range is colored depending on whether it is profitable or not.
You can change the color if you want.
When you declare the strategy, put (process_orders_on_close=true,calc_on_every_tick=true, max_boxes_count=500) in your script.
Then it can show you current open trading as well.
If you use switching strategy (e.g longposition to shortposition right away), it may not show you the range properly.
In that case, reduse the test period.
IT IS Repainting Reference.
If you want to see your strategy result visually,
Just copy and paste from line 22 in my script.
Good Luck everyone.
전략 거래 기간 동안을 보여주는 지표입니다.
이 지표에 쓰인 전략은 단순 테스트용 입니다. 절대 사용하지 마세요.
각 거래기간은 수익이냐 아니냐에 따라 색깔이 정해 집니다.
색깔은 여러분이 변경하실 수 있습니다.
전략을 선언부에 process_orders_on_close=true,calc_on_every_tick=true, max_boxes_count=500 을 넣으시면 현재 오픈 거래도 보실 수 있습니다.
스위칭 전략(롱에서 숏으로 바로 전환하는 전략)을 쓰시는 분들은 아마 테스트 기간을 줄이라는 경고를 받으실 수 있습니다.
이 지표는 리페이팅이 될 수 있습니다.
전략 결과를 눈으로 보고 싶으신 분들은 22번째 줄 부터 카피하시면 됩니다.
행운이 있길..
---strategy set---
default_qty_value=10
commission_value=0.04
slippage=2
ERDAL SARIDAS Visual RSIOne-stop shop for all your divergence needs, including:
(1) A single metric for divergence strength across multiple indicators.
(2) Labels that make it easy to spot where the truly strong divergence is by showing the overall divergence strength value along with the number of divergent indicators. Hovering over the label shows a breakdown of each divergent indicator and its individual divergence strength value.
(3) Fully customizable, including inputs for pivot lengths, divergence types, and weights for every component of the divergence strength calculation. This allows you to quickly and easily optimize the output for any chart. Don't worry, the default settings will have you covered if you're not interested in what's going on under the hood.
The Divergence Strength Calculation:
The total divergence strength value is the sum of the divergence strengths of all indicators for which divergence was detected at a given bar. Each indicator's individual divergence strength is comprised of two basic components: (1) |ΔPrice| - the magnitude of the change in price over the divergence period (pivot-to-pivot), and (2) |ΔIndicator| - the magnitude of the change in indicator value over the divergence period.
Because different indicators' scales and volatility can vary greatly, the Δ values are expressed in terms of standard deviation to ensure that the values are meaningful and equitable across all indicators and assets/instruments/currency pairs, etc:
|ΔIndicator| = |indicator_value_1 - indicator_value_2| / 2 * StDev(indicator_series,100)
Calculation Weights:
All components of the calculation are weighted and can be modified on the Inputs page in settings (weights are simply multipliers). For example, if you think hidden divergence should carry less weight than regular divergence, you can assign it a lesser weight. Or if you think RSI divergence is worth more than OBV divergence, you can adjust their weights accordingly. List of weights:
Regular divergence weight - default = 1
Hidden divergence weight - default = 1
ΔPrice weight - default = 0.5 (multiplied by the ΔPrice component)
ΔIndicator weight - default = 1.5 (multiplied by the ΔIndicator component)
RSI weight - default = 1.1
OBV weight - default = 0.8
MACD weight - default = 0.9
STOCH weight - default = 0.9
Development for additional indicators is ongoing, as is research into the optimal weight configuration(s).
Other Inputs:
Pivot lengths - specify the number of bars before and after each pivot high/low to consider it a valid candidate for divergence.
Lookback bars and Lookback pivots - specify the number of bars or the number of pivots to look back across.
Price sources - specify separate price sources for bullish and bearish divergence
Display settings - specify how lines and labels should display, including which divergence strength values should show the largest labels. Include/exclude specific divergence types and indicators.
Please report any bugs, or let me know if you have any enhancement suggestions or requests for additional indicators.
Coppock Unchanged
An implementation of the "Coppock Unchanged" plot concept by Tom McClellan.
Simply put, assume that for each bar, an alternative close creates a Coppock Plot that is unchanged , i.e. a close that generates a flat coppock curve.
This coppock unchanged plot can be used to:
1) identify a start of a trend on a long timescale (monthly) when the price goes above the coppock unchanged plot after a major correction
2) potentially identify an end of a trend when the prices goes below the coppock unchanged plot
See Tom McClellan's article 'Coppock Curve Still Working On a Major Bottom Signal' for a full explanation...
Newzage - Fed Net LiquidityThe Fed Net Liquidity indicator is a concept discovered by Max Anderson to calculate the fair value of SPX (S&P 500 Index).
The formula he shared on Twitter uses the Fed Balance Sheet, TGA (Treasury General Account), and Reverse Repo.
Net Liquidity = Fed Balance Sheet - (TGA + Reverse Repo)
The data for each component above is accessible on the FRED website.
Fed Balance Sheet fred.stlouisfed.org
Treasury General Account (TGA) fred.stlouisfed.org
Reverse Repo fred.stlouisfed.org
This script uses net liquidity (NL) fair value calculation for SPX, then estimates entry and next target exit target for both long and short trades on SPY.
The script added RSI oversold/overbought signal to the original NL signal from Max... improving the "precision" of the buy/sell signals.
The script also uses RSI to estimate targets based on how overbought or oversold the index/SPY is.
SpreadTrade - Auto-Cointegration (ps5)Decsription: Auto-Cointegration-Based Pair Trading Strategy (revised version)
To review, there are three popular styles of Pair trading: distance-based pair trading, correlation-based pair trading and cointegration-based pair trading. Typically, they require preliminary statistical estimation of the viability of the corresponding strategy.
Basically a pair trade strategy boils down to shorting the outperforming instrument and going long on the underperforming instrument whenever the temporary correlation weakens which means one instrument is going up and another is going down. Apart from the typical cointegration strategy which employs two cointegrated instruments, this script uses just one instrument, in base timeframe and in lagged timeframe, actually making it an auto-cointegration, or better still, an auto-correlation strategy.
Notice that each moving average function may require different Threshold settings.The orange cross symbol indicates the exit points. To filter out the signals use higher values for the LongWindow and the Threshold parameters. Also pay attention that in some cases with some moving averages the color of the signals has to be inverted.
Educational: lines, linefill, labels & boxesThis educational script contains different examples regarding lines , linefill , labels & boxes
First part shows the use of array.new() without first
retrieving line.new() which then are put in a linefill.new()
At every start of the week a linefill.new() is added with the top line being
previous Weekly high , and the bottom line being previous Weekly low ,
if close doesn't go above top line, or below bottom line, both lines will be made longer
with 1 bar_index ( line.set_x2 ), otherwise the lines stop, and change color
Please read the comments in the script as well
Cheers!
Fed Net Liquidity Indicator v2Updated script for jlb05013's original Fed Net Liquidity Indicator. TradingView was bringing in the FRED data in different units than they used to. This code fixes it.
This indicator aims to present a "Net Liquidity" indicator comprised of the Fed Balance sheet , less the TGA account and Overnight Reverse REPO agreements.
Net Liquidity = Fed Balance Sheet - ( TGA + Reverse REPO)
This is an overlay that can be added to stock or other charts (like SPY ) to see how the market may appear correlated to Net Liquidity - injection of liquidity into the markets.
This was hypothesized by Max Anderson, this is just a script realizing that posting.
New updates include a resolution feature, and an option to offset backwards by 2 days per original intent.
Daily Profile (Nephew_Sam_)From getting several requests to combine many of my indicators into one, this indicator plots everything you need for a Daily Profile.
1. Session = Current session + Daily dividers + day of the week
2. Open Lines = Plot the open of the day, midnight, week and month
3. Asian Range = Plots the asian range with an option for midpoint and extending lines
4. Previous OHLC = Plot the previous day/week/month OHLC
EVERY line/label/color/size/style is fully customizable in this indicator.
Important to adjust your timezone to get the correct data
[Sniper] SuperTrend + SSL Hybrid + QQE MODHi. I’m DuDu95.
**********************************************************************************
This is the script for the series called "Sniper".
*** What is "Sniper" Series? ***
"Sniper" series is the project that I’m going to start.
In "Sniper" Series, I’m going to "snipe and shoot" the youtuber’s strategy: to find out whether the youtuber’s video about strategy is "true or false".
Specifically, I’m going to do the things below.
1. Implement "Youtuber’s strategy" into pinescript code.
2. Then I will "backtest" and prove whether "the strategy really works" in the specific ticker (e.g. BTCUSDT) for the specific timeframe (e.g. 5m).
3. Based on the backtest result, I will rate and judge whether the youtube video is "true" or "false", and then rate the validity, reliability, robustness, of the strategy. (like a lie detector)
*** What is the purpose of this series? ***
1. To notify whether the strategy really works for the people who watched the youtube video.
2. To find and build my own scalping / day trading strategy that really works.
**********************************************************************************
*** Strategy Description ***
This strategy is from " QQE MOD + supertrend + ssl hybrid" by korean youtuber "코인투데이".
"코인투데이" claimed that this strategy will make you a lot of money in any crypto ticker in 15 minute timeframe.
### Entry Logic
1. Long Entry Logic
- Super Trend Short -> Long
- close > SSL Hybrid baseline upper k
- QQE MOD should be blue
2. Short Entry Logic
- Super Trend Long -> Short
- close < SSL Hybrid baseline lower k
- QQE MOD should be red
### Exit Logic
1. Long Exit Logic
- Super Trend Long -> Short
2. Short Entry Logic
- Super Trend Short -> Long
### StopLoss
1. Can Choose Stop Loss Type: Percent, ATR, Previous Low / High.
2. Can Chosse inputs of each Stop Loss Type.
### Take Profit
1. Can set Risk Reward Ratio for Take Profit.
- To simplify backtest, I erased all other options except RR Ratio.
- You can add Take Profit Logic by adding options in the code.
2. Can set Take Profit Quantity.
### Risk Manangement
1. Can choose whether to use Risk Manangement Logic.
- This controls the Quantity of the Entry.
- e.g. If you want to take 3% risk per trade and stop loss price is 6% below the long entry price,
then 50% of your equity will be used for trade.
2. Can choose How much risk you would take per trade.
### Plot
1. Added Labels to check the data of entry / exit positions.
2. Changed and Added color different from the original one. (green: #02732A, red: #D92332, yellow: #F2E313)
3. SuperTrend and SSL Hybrid Baseline is by default drawn on the chart.
4. If you check EMA filter, EMA would be drawn on the chart.
5. Should add QQE MOD indicator manually if you want to see QQE MOD.
**********************************************************************************
*** Rating: True or False?
### Rating:
→ 3.5 / 5 (0 = Trash, 1 = Bad, 2 = Not Good, 3 = Good, 4 = Great, 5 = Excellent)
### True or False?
→ True but not a 'perfect true'.
→ It did made a small profit on 15 minute timeframe. But it made a profit so it's true.
→ It worked well in longer timeframe. I think super trend works well so I will work on this further.
### Better Option?
→ Use this for Day trading or Swing Trading, not for Scalping. (Bigger Timeframe)
→ Although the result was not good at 15 minute timeframe, it was quite profitable in 1h, 2h, 4h, 8h, 1d timeframe.
→ Crypto like BTC, ETH was ok.
→ The result was better when I use EMA filter.
### Robust?
→ Yes. Although result was super bad in 5m timeframe, backtest result was "consistently" profitable on longer timeframe (when timeframe was bigger than 15m, it was profitable).
→ Also, MDD was good under risk management option on.
**********************************************************************************
*** Conclusion?
→ I recommend you not to use this on short timeframe as the youtuber first mentioned.
→ In my opinion, I can use on longer timeframe like 2h or bigger with EMA filter, stoploss and risk management.
[Sniper] SSL Hybrid + QQE MOD + Waddah Attar StrategyHi. I’m DuDu95.
**********************************************************************************
This is the script for the series called "Sniper".
*** What is "Sniper" Series? ***
"Sniper" series is the project that I’m going to start.
In "Sniper" Series, I’m going to "snipe and shoot" the youtuber’s strategy: to find out whether the youtuber’s video about strategy is "true or false".
Specifically, I’m going to do the things below.
1. Implement "Youtuber’s strategy" into pinescript code.
2. Then I will "backtest" and prove whether "the strategy really works" in the specific ticker (e.g. BTCUSDT) for the specific timeframe (e.g. 5m).
3. Based on the backtest result, I will rate and judge whether the youtube video is "true" or "false", and then rate the validity, reliability, robustness, of the strategy. (like a lie detector)
*** What is the purpose of this series? ***
1. To notify whether the strategy really works for the people who watched the youtube video.
2. To find and build my own scalping / day trading strategy that really works.
**********************************************************************************
*** Strategy Description ***
This strategy is from "SSL QQE MOD 5MIN SCALPING STRATEGY" by youtuber "Daily Investments".
"Daily Investments" claimed that this strategy will make you some money from 100 trades in any ticker in 5 minute timeframe.
### Entry Logic
1. Long Entry Logic
- close > SSL Hybrid Baseline.
- QQE MOD should turn into blue color.
- Waddah Attar Explosion indicator must be green.
2. Short Entry Logic
- close < SSL Hybrid Baseline
- QQE MOD should turn into red color.
- Waddah Attar Explosion indicator must be red.
### Exit Logic
1. Long Exit Logic
- When QQE MOD turn into red color.
2. Short Entry Logic
- When QQE MOD turn into blue color.
### StopLoss
1. Can Choose Stop Loss Type: Percent, ATR, Previous Low / High.
2. Can Chosse inputs of each Stop Loss Type.
### Take Profit
1. Can set Risk Reward Ratio for Take Profit.
- To simplify backtest, I erased all other options except RR Ratio.
- You can add Take Profit Logic by adding options in the code.
2. Can set Take Profit Quantity.
### Risk Manangement
1. Can choose whether to use Risk Manangement Logic.
- This controls the Quantity of the Entry.
- e.g. If you want to take 3% risk per trade and stop loss price is 6% below the long entry price,
then 50% of your equity will be used for trade.
2. Can choose How much risk you would take per trade.
### Plot
1. Added Labels to check the data of entry / exit positions.
2. Changed and Added color different from the original one. (green: #02732A, red: #D92332, yellow: #F2E313)
3. SSL Hybrid Baseline is by default drawn on the chart.
4. If you check EMA filter, EMA would be drawn on the chart.
5. Should add QQE MOD and Waddah Attar Explosion indicator manually if you want to see QQE MOD.
**********************************************************************************
*** Rating: True or False?
### Rating:
→ 1.5 / 5 (0 = Trash, 1 = Bad, 2 = Not Good, 3 = Good, 4 = Great, 5 = Excellent)
### True or False?
→ False
→ Doesn't Work on 5 minute timeframe. Also, it doesn't work on crypto.
### Better Option?
→ Use this for Day trading or Swing Trading, not for Scalping. (Bigger Timeframe)
→ Although the result was bad at 5 minute timeframe, it was profitable in 1h, 2h, 4h, 8h, 1d timeframe.
→ BTC, ETH was ok.
→ The result was better when I use EMA filter (only on longer timeframe).
### Robust?
→ So So. Although result was bad in short timeframe (e.g. 30m 15m 5m), backtest result was "consistently" profitable on longer timeframe.
→ Also, MDD was not that bad under risk management option on.
**********************************************************************************
*** Conclusion?
→ Don't use this on short timeframe.
→ Better use on longer timeframe with filter, stoploss and risk management.
Price Correction to fix data manipulation and mispricingPrice Correction corrects for index and security mispricing to the extent possible in TradingView on both daily and intraday charts. Price correction addresses mispricing issues for specific securities with known issues, or the user can build daily candles from intraday data instead of relying on exchange reported daily OHLC prices, which can include both legitimate special auction and off-exchange trades or illegitimate mispricing. The user can also detect daily OHLC prices that don’t reflect the intraday price action within a specified percent deviation. Price Correction functions as normal candles or bars for any time frame when correction is not needed.
On the 4th of October 2022, the AMEX exchange, owned by the New York Stock Exchange, decided to misprice the daily OHLC data for the SPY, the world’s largest ETF fund. The exchange eliminated the overnight gap that should have occurred in the daily chart that represents regular trading hours by showing a wick connecting near the close of the previous day. Neither the SPX, the SP500 cash index that the SPY ETF tracks, nor other SPX ETFs such as VOO or IVV show such a wick because significant price action at that level never occurred. The intraday SPY chart never shows the price drop below 372.31 that day, but there is a wick that extends to 366.57. On the 6th of October, they continued this practice of using a wick that connects with the close of the previous day to eliminate gaps in daily price action. The objective of this indicator is to fix such inconsistent mispricing practices in the SPY, NYA, and other indices or securities.
Price Correction corrects for the daily mispricing in the SPY to agree with the price action that actually occurred in the SPX index it tracks, as well as the other SPX ETFs, by using intraday data. The chart below compares the Price Correction of the SPY (top) to the SPX (middle) and the original mispriced SPY (bottom) with incorrect wicks. Price correction (top) removes those incorrect wicks (bottom) to match the SPX (middle).
The daily mispricing of the SPY follows after the successful deployment of the NYSE Composite Index mispricing, NYA, an index that represents all common stocks within the New York Stock Exchange, the largest exchange in the world. The importance of the NYA should not be understated. It is the price counterpart to NYSE’s market internals or statistics. Beginning in 2021, the New York Stock Exchange eliminated gaps in daily OHLC data for the NYA by using the close of the previous day as the open for the following day, in violation of their own NYSE Index Series Methodology. The Methodology states for the opening price that “The first index level is calculated and published around 09:30 ET, when the U.S. equity markets open for their regular trading session. The calculation of that level utilizes the most updated prices available at that moment.” You can verify for yourself that this is simply not the case. The first update of the NYA price for each day matches the close of the previous day, not the “most updated prices available at that moment”, causing data providers to often represent the first intraday bar with a huge sudden price change when an overnight price change occurred instead. For example, on 13 Jun 2022, TradingView shows a one-minute bar drop 2.3%. With a market capitalization of roughly 23 trillion dollars, the NYSE composite capitalization did not suddenly drop a half-trillion dollars in just one minute as the intraday chart data would have you believe. All major US indices, index ETFs, and even foreign indices like the Toronto TAX, the Australian ASXAL, the Bombay SENSEX, and German DAX had down gaps that day, except for the mispriced NYSE index. Price Correction corrects for this mispricing in daily OHLC data, as shown in the main chart at the top of this page comparing the original NYA (top) to the Price Corrected NYA (bottom).
Price Correction also corrects for the intraday mispricing in the NYA. The chart below shows how the Price Correction (top) replaces the incorrect first one-minute candles with gaps (bottom) from 22 Sep 2022 to 29 Sep 2022. TradingView is inconsistent in how intraday data is reported for overnight gaps by sometimes connecting the first intraday bar of the day to the close of the previous day, and other times not. This inconsistency may be due to manually changing the intraday data based on user support tickets. For example, after reporting the lack of a major gap in the NYA daily OHLC prices that existed intraday for 13 Jun 2022, TradingView opted to remove the true gap in intraday prices by creating a 2.3% half-a-trillion-dollar one-minute bar that connected the close of the previous day to show a sudden drop in price that didn’t occur, instead of adding the gap in the daily OHLC data that actually took place from overnight price action.
Price Correction allows users to detect daily OHLC data that does not reflect the intraday price action within a certain percent difference by changing the color of those candles or bars that deviate. The chart below clearly shows the start of the NYSE disinformation campaign for NYA that started in 2021 by painting blue those candles with daily OHLC values that deviated from the intraday values by 0.1%. Before 2021, the number of deviating candles is relatively sparse, but beginning in 2021, the chart is littered with deviating candles.
If there are other index or security mispricing or data issues you are aware of that can be incorporated into Price Correction, please let me know. Accurate financial data is indispensable in making accurate financial decisions. Assert your right to accurate financial data by reporting incorrect data and mispricing issues.
How to use the Price Correction
Simply add this “indicator” to your chart and remove the mispriced default candles or bars by right clicking on the chart, selecting Settings, and de-selecting Body, Wick, and Border under the Symbol tab. The Presets settings automatically takes care of mispricing in the NYA and SPY to the extent possible in TradingView. The user can also build their own daily candles based off of intraday data to address other securities that may have mispricing issues.
Simple Sessions - [TTF]In working with a lot of new traders, one of the most common hurdles that they tend to encounter is properly identifying the various major trading sessions around the world. While it's pretty intuitive to grasp the basic concept, the biggest struggle is around the time conversion. Most people are pretty familiar with the trading session most local to them (e.g. US residents are generally pretty familiar with when the US session is relative to their local timezone), but tend to have much more difficulty in determining when exactly the start and end times are of "foreign" sessions (e.g. Europe or Tokyo). This can be even more challenging when trying to account for regional time differences (like Daylight Savings Time), and larger global time differences (e.g. seasons in opposite hemispheres are reversed). It was with these things in mind that we took to making this version of a sessions indicator to help people better visualize and interact with the various sessions in a more intuitive manner.
Key features include:
Individual settings and configuration for each major session (America/New York, Europe/London, and Asia/Tokyo), along with customizable highlighting color for the Europe/US Mixed session
Session start and end times are configured as the local time for those session (e.g. America/New York session time is configured relative to the US Eastern timezone)
The indicator will automatically handle the timezone conversion and correctly display the sessions on chart regardless of the user's on-chart configured timezone
Users can customize which days of the week that they want the sessions to include or exclude based on their personal preferences and trading schedule (e.g. exclude Fridays since that is when most news events occur)
There is an additional fully-customizable session that can be configured (including reference timezone) for a fully-custom trading window visualization (helpful for people with constraints in their trading availability and can't align with one of the "major" sessions)
We hope that the community finds this as helpful as we hope, and feedback is always welcome!
Capital Asset Pricing Model (CAPM) [Loxx]Capital Asset Pricing Model (CAPM) demonstrates how to calculate the Cost of Equity for an underlying asset using Pine Script. This script will only work on the monthly timeframe. While you can change the default inputs, you should study what CAPM is and how this works before doing so. This indicator pulls various types of data from SPY from various timeframes to calculate risk-free rates, market premiums, and log returns. Alpha and Beta are computed using the regression between underlying asset and SPY. This indicator only calculates on the most recent data. If you wish to change this, you'll have to save the script and make adjustments. A few examples where CAPM is used:
Used as the mu factor Geometric Brownian Motion models for options pricing and forecasting price ranges and decay
Calculating the Weighted Average Cost of Capital
Asset pricing
Efficient frontier
Risk and diversification
Security market line
Discounted Cashflow Analysis
Investment bankers use CAPM to value deals
Account firms use CAPM to verify asset prices and assumptions
Real estate firms use variations of CAPM to value properties
... and more
Details of the calculations used here
Rm is calculated using yearly simple returns data from SPY, typically this is just hard coded as 10%.
Rf is pulled from US 10 year bond yields
Beta and Alpha are pulled form monthly returns data of the asset and SPY
In the past, typically this data is purchased from investments banks whose research arms produce values for beta, alpha, risk free rate, and risk premiums. In 2022 ,you can find free estimates for each parameter but these values might not reflect the most current data or research.
History
The CAPM was introduced by Jack Treynor (1961, 1962), William F. Sharpe (1964), John Lintner (1965) and Jan Mossin (1966) independently, building on the earlier work of Harry Markowitz on diversification and modern portfolio theory. Sharpe, Markowitz and Merton Miller jointly received the 1990 Nobel Memorial Prize in Economics for this contribution to the field of financial economics. Fischer Black (1972) developed another version of CAPM, called Black CAPM or zero-beta CAPM, that does not assume the existence of a riskless asset. This version was more robust against empirical testing and was influential in the widespread adoption of the CAPM.
Usage
The CAPM is used to calculate the amount of return that investors need to realize to compensate for a particular level of risk. It subtracts the risk-free rate from the expected rate and weighs it with a factor – beta – to get the risk premium. It then adds the risk premium to the risk-free rate of return to get the rate of return an investor expects as compensation for the risk. The CAPM formula is expressed as follows:
r = Rf + beta (Rm – Rf) + Alpha
Therefore,
Alpha = R – Rf – beta (Rm-Rf)
Where:
R represents the portfolio return
Rf represents the risk-free rate of return
Beta represents the systematic risk of a portfolio
Rm represents the market return, per a benchmark
For example, assuming that the actual return of the fund is 30, the risk-free rate is 8%, beta is 1.1, and the benchmark index return is 20%, alpha is calculated as:
Alpha = (0.30-0.08) – 1.1 (0.20-0.08) = 0.088 or 8.8%
The result shows that the investment in this example outperformed the benchmark index by 8.8%.
The alpha of a portfolio is the excess return it produces compared to a benchmark index. Investors in mutual funds or ETFs often look for a fund with a high alpha in hopes of getting a superior return on investment (ROI).
The alpha ratio is often used along with the beta coefficient, which is a measure of the volatility of an investment. The two ratios are both used in the Capital Assets Pricing Model (CAPM) to analyze a portfolio of investments and assess its theoretical performance.
To see CAPM in action in terms of calculate WACC, see here for an example: finbox.com
Further reading
en.wikipedia.org
[MT] Strategy Backtest Template| Initial Release | | EN |
An update of my old script, this script is designed so that it can be used as a template for all those traders who want to save time when programming their strategy and backtesting it, having functions already programmed that in normal development would take you more time to program, with this template you can simply add your favorite indicator and thus be able to take advantage of all the functions that this template has.
🔴Stop Loss and 🟢Take Profit:
No need to mention that it is a Stop Loss and a Take Profit, within these functions we find the options of: fixed percentage (%), fixed price ($), ATR, especially for Stop Loss we find the Pivot Points, in addition to this, the price range between the entry and the Stop Loss can be converted into a trailing stop loss, instead, especially for the Take Profit we have an option to choose a 1:X ratio that complements very well with the Pivot Points.
📈Heikin Ashi Based Entries:
Heikin Ashi entries are trades that are calculated based on Heikin Ashi candles but their price is executed to Japanese candles, thus avoiding false results that occur in Heikin candlestick charts, this making in certain cases better results in strategies that are executed with this option compared to Japanese candlesticks.
📊Dashboard:
A more visual and organized way to see the results and necessary data produced by our strategy, among them we can see the dates between which our operations are made regardless if you have activated some time filter, usual data such as Profit, Win Rate, Profit factor are also displayed in this panel, additionally data such as the total number of operations, how many were gains and how many losses, the average profit and loss for each operation and finally the maximum profits and losses followed, which are data that will be very useful to us when we elaborate our strategies.
Feel free to use this template to program your own strategies, if you find errors or want to request a new feature let me know in the comments or through my social networks found in my tradingview profile.
| Update 1.1 | | EN |
➕Additions: '
Time sessions filter and days of the week filter added to the time filter section.
Option to add leverage to the strategy.
5 Moving Averages, RSI, Stochastic RSI, ADX, and Parabolic Sar have been added as indicators for the strategy.
You can choose from the 6 available indicators the way to trade, entry alert or entry filter.
Added the option of ATR for Take Profit.
Ticker information and timeframe are now displayed on the dashboard.
Added display customization and color customization of indicator plots.
Added customization of display and color plots of trades displayed on chart.
📝Changes:
Now when activating the time filter it is optional to add a start or end date and time, being able to only add a start date or only an end date.
Operation plots have been changed from plot() to line creation with line.new().
Indicator plots can now be controlled from the "plots" section.
Acceptable and deniable range of profit, winrate and profit factor can now be chosen from the "plots" section to be displayed on the dashboard.
Aesthetic changes in the section separations within the settings section and within the code itself.
The function that made the indicators give inputs based on heikin ashi candles has been changed, see the code for more information.
⚙️Fixes:
Dashboard label now projects correctly on all timeframes including custom timeframes.
Removed unnecessary lines and variables to take up less code space.
All code in general has been optimized to avoid the use of variables, unnecessary lines and avoid unnecessary calculations, freeing up space to declare more variables and be able to use fewer lines of code.
| Lanzamiento Inicial | | ES |
Una actualización de mi antiguo script, este script está diseñado para que pueda ser usado como una plantilla para todos aquellos traders que quieran ahorrar tiempo al programar su estrategia y hacer un backtesting de ella, teniendo funciones ya programadas que en el desarrollo normal te tomaría más tiempo programar, con esta plantilla puedes simplemente agregar tu indicador favorito y así poder aprovechar todas las funciones que tiene esta plantilla.
🔴Stop Loss y 🟢Take Profit:
No hace falta mencionar que es un Stop Loss y un Take Profit, dentro de estas funciones encontramos las opciones de: porcentaje fijo (%), precio fijo ($), ATR, en especial para Stop Loss encontramos los Pivot Points, adicionalmente a esto, el rango de precio entre la entrada y el Stop Loss se puede convertir en un trailing stop loss, en cambio, especialmente para el Take Profit tenemos una opción para elegir un ratio 1:X que se complementa muy bien con los Pivot Points.
📈Entradas Basadas en Heikin Ashi:
Las entradas Heikin Ashi son operaciones que son calculados en base a las velas Heikin Ashi pero su precio esta ejecutado a velas japonesas, evitando así́ los falsos resultados que se producen en graficas de velas Heikin, esto haciendo que en ciertos casos se obtengan mejores resultados en las estrategias que son ejecutadas con esta opción en comparación con las velas japonesas.
📊Panel de Control:
Una manera más visual y organizada de ver los resultados y datos necesarios producidos por nuestra estrategia, entre ellos podemos ver las fechas entre las que se hacen nuestras operaciones independientemente si se tiene activado algún filtro de tiempo, datos usuales como el Profit, Win Rate, Profit factor también son mostrados en este panel, adicionalmente se agregaron datos como el número total de operaciones, cuantos fueron ganancias y cuantos perdidas, el promedio de ganancias y pérdidas por cada operación y por ultimo las máximas ganancias y pérdidas seguidas, que son datos que nos serán muy útiles al elaborar nuestras estrategias.
Siéntete libre de usar esta plantilla para programar tus propias estrategias, si encuentras errores o quieres solicitar una nueva función házmelo saber en los comentarios o a través de mis redes sociales que se encuentran en mi perfil de tradingview.
| Actualización 1.1 | | ES |
➕Añadidos:
Filtro de sesiones de tiempo y filtro de días de la semana agregados al apartado de filtro de tiempo.
Opción para agregar apalancamiento a la estrategia.
5 Moving Averages, RSI, Stochastic RSI, ADX, y Parabolic Sar se han agregado como indicadores para la estrategia.
Puedes escoger entre los 6 indicadores disponibles la forma de operar, alerta de entrada o filtro de entrada.
Añadido la opción de ATR para Take Profit.
La información del ticker y la temporalidad ahora se muestran en el dashboard.
Añadido personalización de visualización y color de los plots de indicadores.
Añadido personalización de visualización y color de los plots de operaciones mostradas en grafica.
📝Cambios:
Ahora al activar el filtro de tiempo es opcional añadir una fecha y hora de inicio o fin, pudiendo únicamente agregar una fecha de inicio o solamente una fecha de fin.
Los plots de operaciones han cambiados de plot() a creación de líneas con line.new().
Los plots de indicadores ahora se pueden controlar desde el apartado "plots".
Ahora se puede elegir el rango aceptable y negable de profit, winrate y profit factor desde el apartado "plots" para mostrarse en el dashboard.
Cambios estéticos en las separaciones de secciones dentro del apartado de configuraciones y dentro del propio código.
Se ha cambiado la función que hacía que los indicadores dieran entradas en base a velas heikin ashi, mire el código para más información.
⚙️Arreglos:
El dashboard label ahora se proyecta correctamente en todas las temporalidades incluyendo las temporalidades personalizadas.
Se han eliminado líneas y variables innecesarias para ocupar menos espacio en el código.
Se ha optimizado todo el código en general para evitar el uso de variables, líneas innecesarias y evitar los cálculos innecesarios, liberando espacio para declarar más variables y poder utilizar menos líneas de código.
[D] Dudu 95 Strategy Template ver.1.1.Hello Guys! Nice to meet you all!
This is my Second script after changing My Profile Name!
I updated my strategy template before - I added some filter conditions (EMA, ADX, DMI).
If there's something to update, I will update this script!
Thank you!
-----
I made this based on the open source strategies by jason5480, kevinmck100, myncrypto.
Thank you All!
### Filter
1. Can Choose whether to use filter.
2. Filters Based on ATR, EMA, ADX, and DMI are ready to use.
### StopLoss
1. Can Choose Stop Loss Type: Percent, ATR, Previous Low / High.
2. Can Chosse inputs of each Stop Loss Type.
### Take Profit
1. Can set Risk Reward Ratio for Take Profit.
- To simplify backtest, I erased all other options except RR Ratio.
- You can add Take Profit Logic by adding options in the code.
2. Can set Take Profit Quantity.
### Risk Manangement
1. Can choose whether to use Risk Manangement Logic.
- This controls the Quantity of the Entry.
- e.g. If you want to take 3% risk per trade and stop loss price is 6% below the long entry price,
then 50% of your equity will be used for trade.
2. Can choose How much risk you would take per trade.
### Plot
1. Added Labels to check the data of entry / exit positions.
2. Changed and Added color different from the original one. (green: #02732A, red: #D92332, yellow: #F2E313)
HMA w/ SSE-Dynamic EWMA Volatility Bands [Loxx]This indicator is for educational purposes to lay the groundwork for future closed/open source indicators. Some of thee future indicators will employ parameter estimation methods described below, others will require complex solvers such as the Nelder-Mead algorithm on log likelihood estimations to derive optimal parameter values for omega, gamma, alpha, and beta for GARCH(1,1) MLE and other volatility metrics. For our purposes here, we estimate the rolling lambda (λ) value used to calculate EWMA by minimizing of the sum of the squared errors minus the long-run variance--a rolling window of the one year mean of squared log-returns. In practice, practitioners will use a λ equal to a standardized value put out by institutions such as JP Morgan. Even simpler than this, others use a ratio of (per - 1) / (per + 1) to derive λ where per is the lookback period for EWMA. Due to computation limits in Pine, we'll likely not see a true GARCH(1,1) MLE on Pine for quite some time, but future closed source indicators will contain some very interesting industry hacks to get close by employing modifications to EWMA. Enjoy!
Exponentially weighted volatility and its relationship to GARCH(1,1)
Exponentially weighted volatility--also called exponentially weighted moving average volatility (EWMA)--puts more weight on more recent observations. EWMA is calculated as follows:
σ*2 = λσ(n - 1)^2 + (1 − λ)u(n - 1)^2
The estimate, σn, of the volatility for day n (made at the end of day n − 1) is calculated from σn −1 (the estimate that was made at the end of day n − 2 of the volatility for day n − 1) and u^n−1 (the most recent daily percentage change).
The EWMA approach has the attractive feature that the data storage requirements are modest. At any given time, we need to remember only the current estimate of the variance rate and the most recent observation on the value of the market variable. When we get a new observation on the value of the market variable, we calculate a new daily percentage change to update our estimate of the variance rate. The old estimate of the variance rate and the old value of the market variable can then be discarded.
The EWMA approach is designed to track changes in the volatility. Suppose there is a big move in the market variable on day n − 1 so that u2n−1 is large. This causes our estimate of the current volatility to move upward. The value of λ governs how responsive the estimate of the daily volatility is to the most recent daily percentage change. A low value of λ leads to a great deal of weight being given to the u(n−1)^2 when σn is calculated. In this case, the estimates produced for the volatility on successive days are themselves highly volatile. A high value of λ (i.e., a value close to 1.0) produces estimates of the daily volatility that respond relatively slowly to new information provided by the daily percentage change.
The RiskMetrics database, which was originally created by JPMorgan and made publicly available in 1994, used the EWMA model with λ = 0.94 for updating daily volatility estimates. The company found that, across a range of different market variables, this value of λ gives forecasts of the variance rate that come closest to the realized variance rate. In 2006, RiskMetrics switched to using a long memory model. This is a model where the weights assigned to the u(n -i)^2 as i increases decline less fast than in EWMA.
GARCH(1,1) Model
The EWMA model is a particular case of GARCH(1,1) where γ = 0, α = 1 − λ, and β = λ. The “(1,1)” in GARCH(1,1) indicates that σ^2 is based on the most recent observation of u^2 and the most recent estimate of the variance rate. The more general GARCH(p, q) model calculates σ^2 from the most recent p observations on u2 and the most recent q estimates of the variance rate.7 GARCH(1,1) is by far the most popular of the GARCH models. Setting ω = γVL, the GARCH(1,1) model can also be written:
σ(n)^2 = ω + αu(n-1)^2 + βσ(n-1)^2
What this indicator does
Calculate log returns log(close/close(1))
Calculates Lambda (λ) dynamically by minimizing the sum of squared errors. I've restricted this to the daily timeframe so as to not bloat the code with additional logic required to derive an annualized EWMA historical volatility metric.
After the Lambda is derived, EWMA is calculated one last time and the result is the daily volatility
This daily volatility is multiplied by the source and the multiplier +/- the HMA to create the volatility bands
Finally, daily volatility is multiplied by the square-root of days per year to derive annualized volatility. Years are trading days for the asset, for most everything but crypto, its 252, for crypto is 365.
MapMap - an indicator that shows the highest and lowest points on the price movement road.
The calculation is based on the type of price data specified in the "Source" parameter and the length of the time interval specified in the "Length" parameter.
The indicator helps to visually find a local trend and rebound points.
Thanks for your attention!
Average Volume ProfileAverage Volume Profile is an abstract based on a user suggestion.
The information displayed could be summed up as a volume profile divided by a market profile.
This indicator is a profile which displays the average volume of an area (of price).
It also calculates and displays the highest average volume point (HAV) and the relating value zones (calculated in the similar fashion to a volume profile).
Most of the code is directly from my "Volume/Market Profile" Indicator
I am not entirely sure of how to make use of the information displayed in this indicator or how useful it is.
However, I have added some things I figured would be useful to comprehend this information, such as:
- Read-out for highest average volume
- Read-out for current price average volume
- Read-out for current candle distributed volume (labeled as: "Vol")
- Floating line to visualize the current distributed volume in relation to the rest of the profile.
- Color changing labels for when the current distributed volume is higher than the current price avg volume.
Enjoy!
[DuDu95] SSL 4C MACD Laugerre RSI StrategyHello Guys! Nice to meet you all!
Before I start, my nickname has changed to 'DuDu95'!!
This is the Strategy introduced by youtube channel.
I made this based on the open source indicator by kevinmck100, vkno422, KivancOzbilgic. Thank you All!
### Entry Logic
1. Long Entry Logic
- close > SSL Hybrid baseline upper k (keltner channel)
- macd signal > 0 and current MACD value > previous MACD value
- Laguerre RSI < overbought Line.
2. short Entry Logic
- close < SSL Hybrid baseline lower k (keltner channel)
- macd signal < 0 and current MACD value < previous MACD value
- Laguerre RSI > overbought Line.
### Exit Logic
1. Long Exit Logic
- close < SSL Hybrid baseline lower k (keltner channel)
- macd signal < 0
2. short Entry Logic
- close > SSL Hybrid baseline upper k (keltner channel)
- macd signal > 0
### StopLoss
1. Can Choose Stop Loss Type: Percent, ATR, Previous Low / High.
2. Can Chosse inputs of each Stop Loss Type.
### Take Profit
1. Can set Risk Reward Ratio for Take Profit.
- To simplify backtest, I erased all other options except RR Ratio.
- You can add Take Profit Logic by adding options in the code.
2. Can set Take Profit Quantity.
### Risk Manangement
1. Can choose whether to use Risk Manangement Logic.
- This controls the Quantity of the Entry.
- e.g. If you want to take 3% risk per trade and stop loss price is 6% below the long entry price,
then 50% of your equity will be used for trade.
2. Can choose How much risk you would take per trade.
### Plot
1. Added Labels to check the data of entry / exit positions.
2. Changed and Added color different from the original one. (green: #02732A, red: #D92332, yellow: #F2E313)
RSI Buy & Sell Trading ScriptThis is my first attempt at a trading script using the RSI indicator for Buy & Sell signals (so please be nice but would appreciate any constructive comments).
Starting with $100 initial capital and using 10% per trade
You can select which month the backtesting starts
There is also a monthly table (sorry can’t remember who I got this from) that shows the total monthly profits, but you’ll need to turn it on by going into settings, Properties and in the Recalculate section tick the “On every tick” box
It should do the following:
Open Buy order if the RSI > 68 and the current Moving Average is greater than the previous Moving average
• TP1 = 50% of Order at 0.4%
• TP2 = 50% of order at 0.8%
• SL = 2% below entry
• Close Buy order if the RSI < 30
Open Sell order if the RSI < 28 and the current Moving Average is less than the previous Moving average
• TP1 = 50% of Order at 0.4%
• TP2 = 50% of order at 0.8%
• SL = 2% above entry
• Close Buy order if the RSI < 60
I would like to build on this if you have any ideas/ code that could help like the following:
• Move the SL to break even when it hits TP1
• Move the SL to TP1 when TP2 hits
• Moving take profit code so I can let the some of the trade stay in play (activate if it hits 1% profit and close trade if price retracts 0.5%)
[fpemehd] Strategy TemplateHello Guys! Nice to meet you all!
This is my fourth script!
This is the Strategy Template for traders who wants to make their own strategy.
I made this based on the open source strategies by jason5480, kevinmck100, myncrypto. Thank you All!
### StopLoss
1. Can Choose Stop Loss Type: Percent, ATR, Previous Low / High.
2. Can Chosse inputs of each Stop Loss Type.
### Take Profit
1. Can set Risk Reward Ratio for Take Profit.
- To simplify backtest, I erased all other options except RR Ratio.
- You can add Take Profit Logic by adding options in the code.
2. Can set Take Profit Quantity.
### Risk Manangement
1. Can choose whether to use Risk Manangement Logic.
- This controls the Quantity of the Entry.
- e.g. If you want to take 3% risk per trade and stop loss price is 6% below the long entry price,
then 50% of your equity will be used for trade.
2. Can choose How much risk you would take per trade.
### Plot
1. Added Labels to check the data of entry / exit positions.
2. Changed and Added color different from the original one. (green: #02732A, red: #D92332, yellow: #F2E313)