Machine Learning : Cosine Similarity & Euclidean DistanceIntroduction:
This script implements a comprehensive trading strategy that adheres to the established rules and guidelines of housing trading. It leverages advanced machine learning techniques and incorporates customised moving averages, including the Conceptive Price Moving Average (CPMA), to provide accurate signals for informed trading decisions in the housing market. Additionally, signal processing techniques such as Lorentzian, Euclidean distance, Cosine similarity, Know sure thing, Rational Quadratic, and sigmoid transformation are utilised to enhance the signal quality and improve trading accuracy.
Features:
Market Analysis: The script utilizes advanced machine learning methods such as Lorentzian, Euclidean distance, and Cosine similarity to analyse market conditions. These techniques measure the similarity and distance between data points, enabling more precise signal identification and enhancing trading decisions.
Cosine similarity:
Cosine similarity is a measure used to determine the similarity between two vectors, typically in a high-dimensional space. It calculates the cosine of the angle between the vectors, indicating the degree of similarity or dissimilarity.
In the context of trading or signal processing, cosine similarity can be employed to compare the similarity between different data points or signals. The vectors in this case represent the numerical representations of the data points or signals.
Cosine similarity ranges from -1 to 1, with 1 indicating perfect similarity, 0 indicating no similarity, and -1 indicating perfect dissimilarity. A higher cosine similarity value suggests a closer match between the vectors, implying that the signals or data points share similar characteristics.
Lorentzian Classification:
Lorentzian classification is a machine learning algorithm used for classification tasks. It is based on the Lorentzian distance metric, which measures the similarity or dissimilarity between two data points. The Lorentzian distance takes into account the shape of the data distribution and can handle outliers better than other distance metrics.
Euclidean Distance:
Euclidean distance is a distance metric widely used in mathematics and machine learning. It calculates the straight-line distance between two points in Euclidean space. In two-dimensional space, the Euclidean distance between two points (x1, y1) and (x2, y2) is calculated using the formula sqrt((x2 - x1)^2 + (y2 - y1)^2).
Dynamic Time Windows: The script incorporates a dynamic time window function that allows users to define specific time ranges for trading. It checks if the current time falls within the specified window to execute the relevant trading signals.
Custom Moving Averages: The script includes the CPMA, a powerful moving average calculation. Unlike traditional moving averages, the CPMA provides improved support and resistance levels by considering multiple price types and employing a combination of Exponential Moving Averages (EMAs) and Simple Moving Averages (SMAs). Its adaptive nature ensures responsiveness to changes in price trends.
Signal Processing Techniques: The script applies signal processing techniques such as Know sure thing, Rational Quadratic, and sigmoid transformation to enhance the quality of the generated signals. These techniques improve the accuracy and reliability of the trading signals, aiding in making well-informed trading decisions.
Trade Statistics and Metrics: The script provides comprehensive trade statistics and metrics, including total wins, losses, win rate, win-loss ratio, and early signal flips. These metrics offer valuable insights into the performance and effectiveness of the trading strategy.
Usage:
Configuring Time Windows: Users can customize the time windows by specifying the start and finish time ranges according to their trading preferences and local market conditions.
Signal Interpretation: The script generates long and short signals based on the analysis, custom moving averages, and signal processing techniques. Users should pay attention to these signals and take appropriate action, such as entering or exiting trades, depending on their trading strategies.
Trade Statistics: The script continuously tracks and updates trade statistics, providing users with a clear overview of their trading performance. These statistics help users assess the effectiveness of the strategy and make informed decisions.
Conclusion:
With its adherence to housing trading rules, advanced machine learning methods, customized moving averages like the CPMA, and signal processing techniques such as Lorentzian, Euclidean distance, Cosine similarity, Know sure thing, Rational Quadratic, and sigmoid transformation, this script offers users a powerful tool for housing market analysis and trading. By leveraging the provided signals, time windows, and trade statistics, users can enhance their trading strategies and improve their overall trading performance.
Disclaimer:
Please note that while this script incorporates established tradingview housing rules, advanced machine learning techniques, customized moving averages, and signal processing techniques, it should be used for informational purposes only. Users are advised to conduct their own analysis and exercise caution when making trading decisions. The script's performance may vary based on market conditions, user settings, and the accuracy of the machine learning methods and signal processing techniques. The trading platform and developers are not responsible for any financial losses incurred while using this script.
By publishing this script on the platform, traders can benefit from its professional presentation, clear instructions, and the utilisation of advanced machine learning techniques, customised moving averages, and signal processing techniques for enhanced trading signals and accuracy.
I extend my gratitude to TradingView, LUX ALGO, and JDEHORTY for their invaluable contributions to the trading community. Their innovative scripts, meticulous coding patterns, and insightful ideas have profoundly enriched traders' strategies, including my own.
Educational
Support Resistance Classification (VR) [LuxAlgo]The Support Resistance Classification (VR) indicator shows SR levels on any chart's visible range using higher time-frame data (HTF). Levels are classified 1 through 10 based on their strength, with lower values indicating stronger support/resistance levels.
This indicator uses visible range functionality, whereas if you adjust your chart to show previous price data, the indicator may show new levels.
🔶 USAGE
Certain indicators on higher timeframes can provide longer term support/resistance levels on lower timeframes. Users can use the provided levels on a chart visible range and use them as reference for future support/resistance levels.
The classification algorithm measures the strength of a support/resistance level using the entire chart visible range and is in a range of 1 to 10, with higher values indicating a weaker support/resistance.
Supports/resistances highlighted by the indicator can be used for future applications by marking them on the chart (quickly done with alt + h).
🔶 DETAILS
All calculations are based on what you see on the Visible Chart, as such changing the chart will recalculate the indicator.
Since only Swings which are not broken are included, every break would exclude that swing. Therefore, even when 'value' is chosen at Settings ('Value'), breaks are always calculated on the entire line.
🔶 SETTINGS
Fade: After x breaks the line becomes invisible
Value:
value:
• SMA, upper/lower: the breaks are triggered on the moving average itself
• Fibonacci Pivot Point levels, Previous High, Previous Low: only last HTF values can be used for breaks
• Swings (see SWING SETTINGS)
line:
• SMA, upper/lower: the breaks are triggered on the entire line, based on its latest value
• Fibonacci Pivot Point Levels, Previous High, Previous Low: breaks are triggered on the entire line, based on its latest value
• Swings (see SWING SETTINGS)
🔹 Swing Settings
Swings are always calculated at current timeframe, setting a HTF is not applicable on Swings.
Left/Right: for Swing calculation ( pivothigh , pivotlow )
Show: enables you to see the pivot points
🔹 Set
N°: The concerning number
TYPE:
• SMA (Simple Moving Average)
• Previous High/Low
• Upper/Lower ( Bollinger Bands )
• Pivot Point levels : "Fibonacci"
LENGTH: sets the 'Number of bars', needed for calculations (applicable for SMA, upper/lower)
MULT: sets the 'Standard deviation factor' (only applicable for upper/lower - BB)
HTF: sets 'Higher Time Frame' (applicable for SMA, upper/lower, Previous High/Low, Fibonacci)
🔹 Show Values
You can make up to 5 values visible (if you want to check/verify), except for Swings (see SWING SETTINGS)
To do so, enable (A -> E), and choose the N° you want to see.
This also is a useful tool if you're not sure which value you want to set.
Rolling Risk-Adjusted Performance RatiosThis simple indicator calculates and provides insights into different performance metrics of an asset - Sharpe, Sortino and Omega Ratios in particular. It allows users to customize the lookback period and select their preferred data source for evaluation of an asset.
Sharpe Ratio:
The Sharpe Ratio measures the risk-adjusted return of an asset by considering both the average return and the volatility or riskiness of the investment. A higher Sharpe Ratio indicates better risk-adjusted performance. It allows investors to compare different assets or portfolios and assess whether the returns adequately compensate for the associated risks. A higher Sharpe Ratio implies that the asset generates more return per unit of risk taken.
Sortino Ratio:
The Sortino Ratio is a variation of the Sharpe Ratio that focuses specifically on the downside risk or volatility of an asset. It takes into account only the negative deviations from the average return (downside deviation). By considering downside risk, the Sortino Ratio provides a more refined measure of risk-adjusted performance, particularly for investors who are more concerned with minimizing losses. A higher Sortino Ratio suggests that the asset has superior risk-adjusted returns when considering downside volatility.
Omega Ratio:
The Omega Ratio measures the probability-weighted ratio of gains to losses beyond a certain threshold or target return. It assesses the skewed nature of an asset's returns by differentiating between positive and negative returns and assigning more weight to extreme gains or losses. The Omega Ratio provides insights into the potential asymmetry of returns, highlighting the potential for significant positive or negative outliers. A higher Omega Ratio indicates a higher probability of achieving large positive returns compared to large negative returns.
Utility:
Performance Evaluation: Provides assessment of an asset's performance, considering both returns and risk factors.
Risk Comparison: Allows for comparing the risk-adjusted returns of different assets or portfolios. Helps identify investments with better risk-reward trade-offs.
Risk Management: Assists in managing risk exposure by evaluating downside risks and volatility.
XAUXXXThis simple script is meant to get around the limitations some data providers have, in terms of the length of historical data they choose to provide traders. Inspired by OANDA's XAUCAD pair only having data as far back as 2005, whereas XAUUSD has data back to to the 19th century.
By taking the OHLC data from XAUUSD and multiplying it by the price of USD in a desired currency you are able to see further back in time, the limitation now being the length of FX data available instead of the price of Precious metal / currency pair. As shown in the chart you can now see the price of Gold in CAD as far back as the late 1960s, a nearly half century of data uncovered for all to see!
Monthly Strategy Performance TableWhat Is This?
This script code adds a Monthly Strategy Performance Table to your Pine Script strategy scripts so you can see a month-by-month and year-by-year breakdown of your P&L as a percentage of your account balance.
The table is based on realized equity rather than open equity, so it only updates the metrics when a trade is closed.
That's why some numbers will not match the Strategy Tester metrics (such as max drawdown), as the Strategy Tester bases metrics like max drawdown on open trade equity and not realized equity (closed trades).
The script is still a work-in-progress, so make sure to read the disclaimer below. But I think it's ready to release the code for others to play around with.
How To Use It
The script code includes one of my strategies as an example strategy. You need to replace my strategy code with your own. To do that just copy the source code below into a blank script, delete lines 11 -> 60 and paste your strategy code in there instead of mine. The script should work with most systems, but make sure to read the disclaimer below.
It works best with a significant amount of historical data, so it may not work very effectively on intraday timeframes as there is a severe limitation of available bars on TradingView. I recommend using it on 4HR timeframes and above, as anything less will produce very little usable data. Having a premium TradingView plan will also help boost the number of available bars.
You can hover your mouse over a table cell to get more information in the form of tooltips (such as the Long and Short win rate if you hover over your total return cell).
Credit
The code in this script is based on open-source code originally written by QuantNomad, I've made significant changes and additions to the original script but all credit for the idea and especially the display table code goes to them - I just built on top of it:
Why Did I Make This?
None of this is trading or investment advice, just my personal opinion based on my experience as a trader and systems developer these past 6+ years:
The TradingView Strategy Tester is severely limited in some important ways. And unless you use complex Excel formulas on exported test data, you can't see a granular perspective of your system's historical performance.
There is much more to creating profitable and tradeable systems than developing a strategy with a good win rate and a good return with a reasonable drawdown.
Some additional questions we need to ask ourselves are:
What did the system's worst drawdown look like?
How long did it last?
How often do drawdowns occur, and how quickly are they typically recovered?
How often do we have a break-even or losing month or year?
What is our expected compounded annual growth rate, and how does that growth rate compare to our max drawdown?
And many more questions that are too long to list and take a lifetime of trading experience to answer.
Without answering these kinds of questions, we run the risk of developing systems that look good on paper, but when it comes to live trading, we are uncomfortable or incapable of enduring the system's granular characteristics.
This Monthly Performance Table script code is intended to help bridge some of that gap with the Strategy Tester's limited default performance data.
Disclaimer
I've done my best to ensure the numbers this code outputs are accurate, and according to my testing with my personal strategy scripts it appears to work fine. But there is always a good chance I've missed something, or that this code will not work with your particular system.
The majority of my TradingView systems are extremely simple single-target systems that operate on a closed-candle basis to minimize many of the data reliability issues with the Strategy Tester, so I was unable to do much testing with multiple targets and pyramiding etc.
I've included a Debug option in the script that will display important data and information on a label each time a trade is closed. I recommend using the Debug option to confirm that the numbers you see in the table are accurate and match what your strategy is actually doing.
Always do your own due diligence, verify all claims as best you can, and never take anyone's word for anything.
Take care, and best of luck with your trading :)
Kind regards,
Matt.
PS. If you're interested in learning how this script works, I have a free hour-long video lesson breaking down the source code - just check out the links below this script or in my profile.
Advanced Choppiness Indicator with CPMA"The Advanced Choppiness Indicator with CPMA is a technical analysis tool designed to assist traders in identifying choppy market conditions and determining trend direction. It combines two key components: the Choppiness Index and a Custom Price Moving Average (CPMA).
The Choppiness Index is calculated using the Average True Range (ATR), which measures market volatility. It compares the ATR to the highest high and lowest low over a specified period. A higher Choppiness Index value indicates choppier market conditions, while a lower value suggests smoother and more directional price movements.
The CPMA is a custom moving average that takes into account various price types, including the close, high, low, and other combinations. It calculates the average of these price types over a specific length. The CPMA provides a smoother trend line that can help identify support and resistance levels more accurately than traditional moving averages.
When using this indicator, pay attention to the following elements:
Yellow range boxes: These indicate choppy zones, where market conditions are characterized by low momentum and erratic price action. Avoid entering trades during these periods.
Histogram bars: Green bars suggest an uptrend, while red bars indicate a downtrend. These bars are based on the CPMA and can help confirm the prevailing trend direction.
CPMA angle: The angle of the CPMA line provides further insight into the trend. A positive angle indicates an uptrend, while a negative angle suggests a downtrend.
Choppiness thresholds: The indicator includes user-defined thresholds for choppiness. Values above the high threshold indicate high choppiness, while values below the low threshold suggest low choppiness.
Trade decisions: Consider the information provided by the indicator to make informed trading decisions. Avoid trading during choppy zones and consider entering trades in the direction of the prevailing trend.
Remember that the indicator's parameters, such as ATR length and CPMA length, can be adjusted to suit your trading preferences and timeframe. However, it's important to use this indicator in conjunction with other technical analysis tools and your trading strategy for comprehensive market analysis."
By combining the Choppiness Index, CPMA, and other visual cues, this indicator aims to help traders identify suitable trading conditions and make more informed decisions based on market trends and volatility.
Lot Size CalculatorThis is a public release of my Lot Size Calculator. I received a request for the code from a user so I am republishing the script so I can make it public (TV doesn't seem to give me the option to simply make it public once published ).
This is a very simple script to use. Simply choose your entry level and stop level on the chart and the indicator will calculate the lots. You can change your account risk and base currency units in the settings along with changing the scaling of the calculation to adjust the results with the lot sizing units of your broker. This allows the calculator to be used with CFDs, forex, Gold, etc.. Hope it helps in your trading it has been the single most useful tool in my trading as it has helped me always keep my risk locked up and on point that is why I released it.
One final quick note: Remember you can save your settings for your own account size and risk so you do not always have to modify the defaults when loading the script. Just a ease of use tip. I only add the script to my chart when I am about to take a trade so it is helpful to have everything set up in advance.
SMT Divergences [LuxAlgo]The SMT Divergences indicator highlights SMT divergences between the chart symbol and two user-selected tickers (ES and YM by default).
A dashboard returning the SMT divergences statistics is also provided within the settings.
🔶 SETTINGS
Swing Lookback: Calculation window used to detect swing points.
Comparison Ticker: If enabled, will detect SMT divergences between the chart prices and the prices of the selected ticker.
🔹 Dashboard
Show Dashboard: Displays statistics dashboard on the chart.
Location: Location of the dashboard on the chart.
Size: Size of the displayed dashboard.
🔶 USAGE
SMT Divergences are characterized by diverging swing points between two securities.
The detection of SMT Divergences is performed by detecting swing points using the user chart prices as well as the prices of the selected external tickers. If a swing point on the chart ticker is detected at the same time on external tickers, comparison is performed.
Due to the detection requiring swing point confirmation (3 candles by default), this indicator can better be used to study price behaviors on the occurrence of an SMT divergence.
The dashboard highlights the number of SMT divergences that occurred on a swing high and swing low between the chart ticker and the selected external tickers.
The returned percentage indicates the proportion of swing highs or swing lows that led to an SMT divergence.
Draw Line For High Low Custom Range Interactive█ OVERVIEW
This indicator is an educational indicator to make pine coders easier to how to use interactive inputs with User-Defined Type (UDT) especially when dealing input.time.
█ NOTES
This indicator is not perfect but it is a good starting point or template to start develop custom range interactive indicator.
█ INSPIRATIONS
ABC 123 Harmonic Ratio Custom Range Interactive
XABCD Harmonic Pattern Custom Range Interactive
PriceTimeInteractive
█ CREDITS
CAGR Custom Range
Pine scripts are now interactive
█ FEATURES
1. High Low points are determined based on points selected.
2. Line will be drawn after points are correctly arranged.
3. Label show error once wrong point is selected, move the point as instructed in example.
█ EXAMPLES / USAGE
Scalping Strategy (5min)This indicator is designed for scalping strategies on a 5-minute timeframe. It generates signals based on two RSI crossovers and incorporates moving averages to identify trends. Additionally, a Bollinger Band is included to eliminate the need for an additional Bollinger Band on the chart.
Please note that this indicator does not guarantee 100% accurate signals and may produce false signals. It is recommended to use this indicator in conjunction with other indicators such as Stochastic, MACD, SuperTrend, or any other suitable indicators to enhance the accuracy of trading decisions.
1) Signal Generation: The indicator generates buy and sell signals based on two RSI crossovers. A buy signal is generated when the fast RSI crosses above the slow RSI, indicating potential bullish momentum. Conversely, a sell signal is generated when the fast RSI crosses below the slow RSI, suggesting potential bearish momentum.
2) To adjust the indicator to your specific chart and trading preferences, you have the flexibility to modify the RSI and moving average (MA) values. By changing the RSI values (slow RSI length and fast RSI length), you can fine-tune the sensitivity of the RSI crossovers to suit different timeframes and market conditions. Similarly, adjusting the MA values (slow MA period and fast MA period) allows you to adapt the indicator to the desired trend identification and short-term trend confirmation.
3) Pay attention to trades that are confirmed by the short-term moving average (MA) aligning with the desired direction. For buy signals, ensure that the short MA is tending upward, indicating a potential uptrend. For sell signals, confirm that the short MA is trending downward, suggesting a potential downtrend.
4) Moving Averages: The indicator uses a 200-period moving average (MA) to identify the overall trend and a short-term MA for additional confirmation.
5) Bollinger Band: The included Bollinger Band is not directly used in the indicator's calculations. However, it is provided for convenience so that users don't need to add another Bollinger Band to their chart separately.
6) Exercise caution when the short MA is below the 200-period MA but showing signs of attempting an upward move. These situations may indicate a potential reversal or consolidation, and it is advisable to avoid taking trades solely based on the 200-period MA crossover in such cases.
Remember that these guidelines are intended to provide additional insights and should be used in combination with your trading judgment and analysis.
Pi - Intraday High-Low Predictor
Pi - Intraday High-Low Predictor
This is not my Strategy/Research , I've just coded it into a indicator.
I found it interesting & useful so I'm sharing it here.
This Strategy/Research is by Kshirod Chandra Mohanty ( y-o-u-t-u-b-e : Trade with IITIAN )
You can watch his video on y-o-u-t-u-b-e for more info on this one.
the video has following title :
"1Cr Paid Strategy For Free || 10000 Subscribers Special Giveaway || How to find Day High or Low"
This will not tell you which is day high or day low, but it will help you to predict the day high from a day low and day low from a day high.
It will give you a possible range to which the prices could move to.
He has explained/used this on Banknifty.
How to Find out Day High from Day Low & Day Low from Day High :-
He uses the value of Pi (3.14) and the Range of 1st 5minute candle to find out the possible highs from day low and the possible lows from day high.
Range = value of Pi * 1st 5minutes Range
Small range = Range / 2
Large range = Range + Small range
so to find out the possible lows from day high we do following calculations
Small range low = day high - Small range
Range low = day high - Range
Large range low = day high - Large range
and to find out the possible highs from day low we do following calculations
Small range high = day low + Small range
Range high = day low + Range
Large range high = day low + Large range
Note :- This Indicator does Repaint in following ways,
As the script uses the Day High to predict the possible lows ,
so if it's an up-trending day and price keeps on making new High's then the ranges for lows will keep on changing.
similarly the script uses the Day Low to predict the possible high's ,
so if it's an down-trending day and price keeps on making new Low's then the ranges for highs will keep on changing.
My observations / thoughts about this :-
This script does not provide buy/sell recommendations. it just provides possible ranges to where prices can go from Day-High & Day-Low.
It's better to avoid trading when the price is trading between the Small range high & Small range low levels.
As it has high probability that it will be a range bound day and price will stay in between those two levels.
There is a high probability that it will be a trending day if price breaks either the Small range high/low ,
then the price could move to Range low/high.
If price breaks from Range High/Low then there is a high probability that it will be a trending day and the price could move to Large Range low/high.
Note :- If you want to use this on instruments/scripts/indexes which are active for large session such as forex/cryptos , then i suggest that you use the Opening Range period of 4Hours i.e 240minutes, to get better results.
using the default setting of 5minutes will not give good results on them.
play around with this value to find out which one suits that instrument/script/index the best.
Don't trust these levels blindly, do backtest or live testing of this then use for real trade if you want.
Use Price action near these levels to make any trading decision's.
The script provides following options :
1. Option to display Ranges in a Table (which you can enable/hide as you wish)
You can set the Table's location, size , background color & text color according to your preference.
2. Option to enable/hide Predicted-Highs from Day-Low on chart.
3. Option to enable/hide Predicted-Lows from Day-High on chart.
4. Option to set the Opening range period - here you can select your preferred opening range for calculation purpose.
5. Option to enable/hide historical levels on chart.
6. Options to customize the colors & line styles for lines.
7. Options to customize the colors , position & size for labels.
Farzan Paid CaliburnFarzan Paid Caliburn is used to identify trends and smoothen out price fluctuations. It was derived from the candlestick charting techniques, and it is based on open, high, low and close prices from the previous session
The Farzan Paid Caliburn indicator is plotted as a candlestick chart with a series of Blue and Black candles. The Blue candles indicate an uptrend while Black candles indicate a downtrend.
The Farzan Paid Caliburn indicator is a trend-following indicator that helps traders identify the direction of the current market trend.
To use this Farzan Paid Caliburn indicator you need to follow these steps :-
*1.Open the chart of a particular stock you want to trade.
*2.Fix the time interval of 10 minutes for the intraday trading. For that, you can use Tradingview charts.
*3.Insert the Farzan Paid Caliburn as your indicator.
The Farzan Paid Caliburn is shown under the main chart and their plots indicate the current trend. Farzan Paid Caliburn indicator can be used with varying periods (daily, weekly, intraday etc.) and on varying instruments (stocks, futures or forex) .
My personal preference is to use the Indicator on Weekly chart for best result.
Non Adaptive Moving Average - Quan DaoThis Non-Adaptive Moving Average (NAMA) is my origin work. It came from the issues that I always face when using existing famous MA like EMA or RMA:
- What length should I choose for the MA for this security?
- Is there a length that works for multiple timeframes?
- Is there a length that works for multiple securities in multiple markets?
Choosing the right length for an MA is a tedious and boring work and is very subjective. One day in early 2023, I decided to create a new MA that will not be dependant a lot (non-adaptive) on the length of it, to make my life a little bit easier. The idea came from the formula of EMA and RMA:
ma = alpha * src + (1 - alpha) * ma
in which,
alpha = 1 / length for RMA
alpha = 2 / (length + 1) for EMA
I decided to use a constant alpha for the formula, which happened to be: 1.618 / 100 (i.e., golden ratio / 100)
This NAMA is using the length in the start only, after running for a while the MA value will be the same for every value of its length, which resolves good my 3 questions above.
The application of this NAMA is wide, I think.
- It can be used like a normal MA but you don't have to choose its length anymore.
- It can be used like EMA in DEMA, TEMA (I called it DNAMA, TNAMA)
- It can be used in calculating some famous indicators (RSI, TR, ...) so that these indicators will not be dependant on the length as well
In this example script, I included an EMA (in blue color) as well so that you can see how the EMA changes and NAMA stays the same when changing the value of its Length.
VWAP + 2 Moving Averages + RSI + Buy and SellIndicator: VWAP + 2 Moving Averages + RSI + Buy and Sell
Buy and Sell Arrows (Great for use alone or in conjunction with other scripts on the chart)
This indicator displays BUY (BUY) and SELL (SELL) arrows on the chart based on a combination of moving averages, VWAP and RSI. Arrows are a visual way to identify trading opportunities and can be useful for traders who want to follow a strategy based on these conditions.
The indicator uses two moving averages (20 and 50 periods) to identify upward crosses (buy) and downward crosses (sell). In addition, it takes into account VWAP (Volume Weighted Average Price) and RSI (Relative Strength Index) as additional filters to confirm buy and sell signals.
This script is great for use both independently and in conjunction with other indicators and strategies. You can combine it with other indicators and customize it to your preferences to create a more comprehensive trading strategy.
Please remember that this indicator is provided for educational purposes only and does not constitute financial advice. It is always recommended to carry out a thorough analysis before making any trading decisions.
Give this indicator a try and enjoy clear visualization of buy and sell arrows on your chart. Happy trading!
OverNightSession @joshuuuThis indicator highlights the Overnightsession (ONS), taught by TheCurrenyMerchant.
The Overnightsession is from 4-8 am UTC-5. This session can be used to form trades, e.g. after one side has been taken out.
It has the options to display Projection and the equilibrium level. Equilibrium level (50%) can be used to identify if price is currently in premium/discount of the range and the projections (standard deviations of the range) can be used to identify possible targets.
A classic setup he teaches is:
Price trades agressively out of the range taking liquidity. As soon as we trade above the high of the candle that took liquidity, that candle can be considered an orderblock, where the 50% level can be used for long setups.
⚠️ Open Source ⚠️
Coders and TV users are authorized to copy this code base, but a paid distribution is prohibited. A mention to the original author is expected, and appreciated.
⚠️ Terms and Conditions ⚠️
This financial tool is for educational purposes only and not financial advice. Users assume responsibility for decisions made based on the tool's information. Past performance doesn't guarantee future results. By using this tool, users agree to these terms.
Cross Period Comparison IndicatorReally excited to be sharing this indicator!
This is the cross-period comparison indicator, AKA the comparison indicator.
What does it do?
The cross-period comparison indicator permits for the qualitative assessment of two points in time on a particular equity.
What is its use?
At first, I was looking for a way to determine the degree of similarity between two points, such as using Cosine similarity values, Euclidean distances, etc. However, these tend to trigger a lot of similarities but without really any context. Context matters in trading and thus what I wanted really was a qualitative assessment tool to see what exactly was happening at two points in time (i.e. How many buyers were there? What was short interest like? What was volume like? What was the volatility like? RSI? Etc.)
This indicator permits that qualitative assessment, displaying things like total buying volume during each period, total selling volume, short interest via Put to Call ratio activity, technical information such as Stochastics and RSI, etc.
How to use it?
The indicator is fairly self explanatory, but some things require a little more in-depth discussion.
The indicator will display the Max and Min technical values of a period, as well as a breakdown in the volume information and put to call information. The user can then make the qualitative determination of degrees of similarity. However, I have included some key things to help ascertain similarity in a more quantitative way. These include:
1. Adding average period Z-Score
2. Adding CDF probability distributions for each respective period
3. Adding Pearson correlations for each respective period over time
4. Providing the linear regression equation for each period
So let us discuss these 4 quantitative measures a bit more in-depth.
Adding Period Z-Score
For those who do not know, Z-Score is a measure of the distance from a mean. It generally spans 0 (at the mean) to 3 (3 standard deviations away from the mean). Z-Score in the stock market is very powerful because it is actually our indicator of volatility. Z-Score forms the basis of IV for option traders and it generally is the go to, to see where the market is in relation to its overall mean.
Adding Z-Score lets the user make 2 big determinations. First and foremost, it’s a measure of overall volatility during the period. If you are getting a Z-Score that is crazy high (1.5 or greater), you know there was a lot of volatility in that period marked by frequent deviations from its mean (since on average it was trading 1.5 standard deviations away from its mean).
The other thing it tells you is the overall sentiment of that time. If the average Z Score was 1.5 for example, we know that buying interest was high and the sentiment was somewhat optimistic, as the stock was trading, on average, + 1.5 SDs away from its mean.
If, on the other hand, the average was, say, - 1.2, then we know the sentiment was overall pessimistic. There was frequent selling and the stock was frequently being pushed below its mean with heavy selling pressure.
We can also check these assumptions of buying / selling buy verifying the volume information. The indicator will list the Buy to Sell Ratio (number of Buyers to Sellers), as well as the total selling volume and total buying volume. Thus, the user can see, objectively, whether sellers or buyers led a particular period.
Adding CDF Probability
CDF probabilities simply mean the extent a stock traded above or below its normal distribution levels.
To help you understand this, the indicator lists the average close price for a period. Directly below that, it lists the CDF probabilities. What this is telling you, is how often and how likely, during that period, the stock was trading below its average. For example, in the main chart, the average close price for BTC in Period A is 29869. The CDF probability is 0.51. This means, during Period A, 51% of the time, BTC was trading BELOW 29869. Thus, the other 49% of the time it was trading ABOVE 29869.
CDF probabilities also help us to assess volatility, similar to Z-Score. Generally speaking, the CDF should consistently be reading about 0.50 to 0.51. This is the point of an average value, half the values should be above the average and half the values should be below. But in times of heightened volatility, you may actually see the CDF creep up to 0.54 or higher, or 0.48 or lower. This means that there was extremely extensive volatility and is very indicative of true “whipsaw” type price action history where a stock refuses to average itself out in one general area and frequently jumps up and down.
Adding Pearson Correlation
Most know what this is, but just in case, the Pearson correlation is a measure of statistical significance. It ranges from 0 (not significant) to 1 (very significant). It can be positive or negative. A positive signifies a positive relationship (i.e. as one value increases so too does the other value being compared). If it is a negative value, it means an inverse relationship (i.e. one value increases proportionately to the other’s decline).
In this indicator, the Pearson correlation is measured against time. A strong positive relationship (a value of 0.5 or greater) indicates that the stock is trading positive to time. As time goes by, the stock goes up. This is a normal relationship and signifies a healthy uptrend.
Inversely, if the Pearson correlation is negative, it means that as time increases, the stock is going down proportionately. This signifies a strong downtrend.
This is another way for the user to interpret sentiment during a specific period.
IF the Pearson correlation is less than 0.5 or -0.5, this signifies an area of indecision. No real trend formed and there was no real strong relationship to time.
Adding Linear Regression Equation
A linear regression equation is simply the slope and the intercept. It is expressed with the formula y= mx + b.
The indicator does a regression analysis on each period and presents this formula accordingly. The user can see the slope and intercept.
Generally speaking, when two periods share the same slope (m value) but different intercept (b value), it can be said that the relationship to time is identical but the starting point is different.
If the slope and intercept are different, as you see in the BTC chart above, it represents a completely different relationship to time and trajectory.
Indicator Specific Information:
The indicator retains the customizability you would expect. You can customize all of your lengths for technical, change and Z-Score. You can toggle on or off Period data, if you want to focus on a single period. You can also toggle on a difference table that directly compares the % difference between Period A to Period B (see image below):
You will also see on the input menu a input for “Threshold” assessments. This simply modifies the threshold parameters for the technical readings. It is defaulted to 3, which means when two technical (for example Max Stochastics) are within +/- 3 of each other, the indicator will light these up as green to indicate similarities. They just clue the user visually to areas where there are similarities amongst the qualitative technical data.
Timeframes
This is best used on the daily timeframe. You can use it on the smaller timeframe but the processing time may take a bit longer. I personally like it for the Daily, Weekly and 4 hour charts.
And this is the indicator in a nutshell!
I will provide a tutorial video in the coming day on how to use it, so check back later!
As always, leave your comments/questions and suggestions below. I have been slowly modifying stuff based on user suggestions so please keep them coming but be patient as it does take some time and I am by no means a coder or expert on this stuff.
Safe trades to all!
Seasonality [TFO]This Seasonality indicator is meant to provide insight into an asset's average performance over specified periods of time (Daily, Monthly, and Quarterly). It is based on a 252 trading day calendar, not a 365 day calendar. Therefore, some estimations are used in order to aggregate the Daily data into higher timeframes, as we assume every Month to be 21 trading days, and every Quarter to be 63 trading days. Instead of collecting data on the 1st day of a given month, we are actually treating it as the "nth" trading day of the year. Some years exceed 252 trading days, some fall short; however 252 is the average that we are working with for US stocks and indices. Results may vary for non-US markets.
Main features:
- Statistics Table
- Performance Analysis
- Seasonal Pivots
The Statistics Table provides a summarized view of the current seasonality: whether the average Day/Month/Quarter tends to be bullish or bearish, what the average percent change is, and what the current (actual) change is relative to the historical value. It is shown in the top right of this chart.
The Performance Analysis shows a histogram of the average percentage performance for the selected timeframe. Here we have options for Daily, Monthly, and Quarterly. The previous chart showed the Monthly timeframe, here we have the Daily and Quarterly.
Lastly, Seasonal Pivots show where highs and lows tend to be created throughout the year, based on an aggregation of the Daily performance data collected over the available years. If we anchor our data to the beginning of the current year, and then manually offset it by ~252 (depending on the year), we can line this data up with the previous years' data and observe how well these Seasonal Pivots lined up with major Daily highs and lows.
Styling options are available for every major component of this indicator. Please consider sharing if you find it useful!
PSESS1 - Learn PineScript InputsThis is a script written exclusively for people who are trying to learn Pine Script.
PSESS stands for "Pine Script Educational Script Series" which is a series of scripts that helps Pine Script programmers in 2 ways:
1. Learn Pine Script at more depth by an interactive environment where they can immediately see the effects of any change in the pre-written code and also comparing different lines code having tiny differences so they can grasp the details.
2. Have this script open while coding in order to copy the line they find useful
Pine Script Library couldn't be used for this purpose since this script has educational aspect and needs to be executable individually.
This is Script 1 of PSESS and focuses on inputs in Pine Script.
The script is densly commented in order to make it understandable. here is the outline of the script:
1. Inputs that can be received through the indicator() function
2. 12 possible types of input
3. Input() function arguments: defval - title - tooltip - inline - group - confirm
4. The different display of tooltip when inputs are inline
5. Multiple price and time inputs (on single request or multiple requests)
6. What happens when title argument is not specified
7. References and key points from them
Pinescript Risk Reward boxes + Custom 'Time Elapsed' MarkersUsing Pinescript to create custom Risk Reward Ratio (RRR) boxes with custom vertical time markers to help traders stay mindful of how long they've been in a trade.
//Usage:
-Add indicator to chart and you'll be prompted to click three times:
-- 1: Choose time (clicking last bar will mark entry as current candle's open).
-- 2: Click BOX TOP of RRR box on chart (long or short is toggled later).
-- 3: Click BOX BOTTOM of RRR box on chart (long or short is toggled later).
- then toggle Long or short in the dialog box.
-toggle on/off vertical time line markers (as reminder of how long you've been sat in your trade).
-User input choice of time line marker spacings (in minutes).
//Notes:
-Percentage reward and percentage risk are displayed in each of the risk reward boxes. Risk-Reward ratio is also displayed in the upper box.
-Bars to extend the RRR box to the right is also a custom user input.
-Note the 'entry' of the trade will always be the open of the candle you click on (the first click on loading the indicator).
-You can drag the vertical entry time and the horizontal box-top and box-bottom times dynamically, as you like, as trade progresses.
//Use-Case:
-I wanted a RRR box which gave me custom vertical time markers to keep me mindful of overstaying my welcome in a trade that likely was running out of steam and wasn't likely to go my way. Forcing me to stay nimble. I have found in daytrading that if a trade doesn't go your way promptly, it's often not a good one to hold.
RGB Color Codes Chart█ OVERVIEW
This indicator is an educational indicator to make pine coders easier to input color code.
Color code displayed either in hex or rgb code or both.
█ INSPIRATIONS
RGB Color Codes Chart
Table Color For Pairing Black And White
█ FEATURES
Hover table cell to see all properties of color such as Hex code and RGB code via tooltip.
Cell can be show either Full, HEX, RGB, R, G, B or na.
█ LIMITATION
This code does not consider usage of color.new()
█ CONSIDERATION
Code consideration to be used such as color.r(), color.g(), color.b() and color.rgb()
█ EXAMPLE OF USAGE / EXPLAINATION
ICT Session Opening FVG / Silver Bullet [MK]Students of ICT concepts will know that the first FVG found within particular session periods can identify an important price level for intraday traders.
"Find the first FVG at the start of the session and drag a box from it to the right"....ICT
The script finds the first FVG (either bull or bear) within the following periods:
London Killzone (0200 - 0500) EST
02:00 - 0259
03:00 - 0359
0400 - 0459
Dead Zone (05-00 - 0600) EST
05-00 - 0559
0600 - 0659
NY AM Killzone (0700 - 1100) EST
0700 - 0759
0830 - 0929
0929 - 0959
1000 - 1100 (Silver Bullet)
A chart higher timeframe can be chosen to detect the FVGs and they will be displayed on lower timeframe. Default is 5min for detection. I like to then following price reacting to 5mi FVGs on a 1 min chart.
FVG boxes can be extended to the end of the session, or to any time within the current days trading hours. Colors/Labels/ Session Periods can all be edited. A maximum timeframe for display is available and
timezone can be adjusted.
FVGs are only shown for the current days trading hours.
Break even stop loss (% of instrument price)Simply proof of concept to place a stop loss a percentage below entry price and move it to break even if the price moves the same percentage above the entre price.
No Code SignalsNo Code Signals is an intuitive user interface for users to generate their own signals based on indicators they already have applied to their chart.
This indicator makes use of the new input.source() limits for importing data from external sources (indicators) into 1 indicator.
You are now able to import ANY number of sources from up to 10 different indicators.
Features:
- Import up to 10 unique values from up to 10 different indicators already on your chart!
- Compare those values against other imported indicator values, or chart ohlc values.
- Option to use a defined level instead of an active source.
- 5 Signal Options (Currently)
- Alerts, Each signal has its own alert condition.
- Labeled Signals, to tell which signal is which.
Potential Future Plans:
- More Signals & Analysis Options
- Possibly more imports
- Combining 2 (or more) signals into 1
Here is a Screenshot of a chart with signals, and the Interface creating the signals.
Enjoy!