SMA Cross with a Price FilterA moving average strategy generates an entry (buy) signal when the price goes above the moving average, and an exit (sell) signal when the price goes below the moving average. But it gives lots of whipsaws and noise depends on the moving average we use. A fast moving average gives more whipsaws and a slow moving average gives less whipsaws. To reduce the noise/whipsaws, we can add a filter on a fast/slow moving average. It will improve entry/exit performance significantly specially for those who don't want to watch the market actively.
I created this indicator with a price filter. This means the price of an underlying asset must be at least a specific percentage above its moving average to generate a buy signal and a specific percentage below its moving average to generate a sell signal. This price filter can also be a confirmation after the price crosses above/below its SMA. I couldn't find any indicator yet based on this idea. So I wrote this indicator and publishing it so it helps those who are interested.
I use 200 SMA and 3% price filter as default and using SPY as an example. So,
ENTRY signal when the closing price of SPY is 3% above its 200 SMA.
EXIT signal when the closing price of SPY is 3% below its 200 SMA.
Enjoy and let me know if it works.
** This chart only generates entry (buy) and exit (sell) signals. Please, do your own diligence to make any investment or trading decisions.
ค้นหาในสคริปต์สำหรับ "spy"
Spot-Vol CorrelationSpot-Vol Correlation Script Guide
Purpose:
This TradingView script measures the correlation between percentage changes in the spot price (e.g., for SPY, an ETF that tracks the S&P 500 index) and the changes in volatility (e.g., as indicated by the VIX, the Volatility Index). Its primary objective is to discern whether the relationship between spot price and volatility behaves as expected ("normal" condition) or diverges from the expected pattern ("abnormal" condition).
Normal vs. Abnormal Correlation:
Normal Correlation: Historically, the VIX (or volatility) and the spot price of major indices like the S&P 500 have an inverse relationship. When the spot price of the index goes up, the VIX tends to go down, indicating lower volatility. Conversely, when the index drops, the VIX generally rises, signaling increased volatility.
Abnormal Correlation: There are instances when this inverse relationship doesn't hold, and both the spot price and the VIX move in the same direction. This is considered an "abnormal" condition and might indicate unusual market dynamics, potential uncertainty, or impending shifts in market sentiment.
Using the Script:
Inputs:
First Symbol: This is set by default to VIX, representing volatility. However, users can input any other volatility metric they prefer.
Second Symbol: This is set to SPY by default, representing the spot price of the S&P 500 index. Like the first symbol, users can substitute SPY with any other asset or index of their choice.
Length of Calculation Period: Users can define the lookback period for the correlation calculation. By default, it's set to 10 periods (e.g., days for a daily chart).
Upper & Lower Bounds of Normal Zone: These parameters define the range of correlation values that are considered "normal" or expected. By default, this is set between -0.60 and -1.00.
Visuals:
Correlation Line: The main line plot shows the correlation coefficient between the two input symbols. When this line is within the "normal zone", it indicates that the spot price and volatility are inversely correlated. If it's outside this zone, the correlation is considered "abnormal".
Green Color: Indicates a period when the spot price and VIX are behaving as traditionally expected (i.e., one rises while the other falls).
Red Color: Denotes a period when the spot price and VIX are both moving in the same direction, which is an abnormal condition.
Shaded Area (Normal Zone): The area between the user-defined upper and lower bounds is shaded in green, highlighting the range of "normal" correlation values.
Interpretation:
Monitor the color and position of the correlation line relative to the shaded area:
If the line is green and within the shaded area, the market dynamics are as traditionally expected.
If the line is red or outside the shaded area, users should exercise caution as this indicates a divergence from typical behavior, which can precede significant market moves or heightened uncertainty.
Statistical Package for the Trading Sciences [SS]
This is SPTS.
It stands for Statistical Package for the Trading Sciences.
Its a play on SPSS (Statistical Package for the Social Sciences) by IBM (software that, prior to Pinescript, I would use on a daily basis for trading).
Let's preface this indicator first:
This isn't so much an indicator as it is a project. A passion project really.
This has been in the works for months and I still feel like its incomplete. But the plan here is to continue to add functionality to it and actually have the Pinecoding and Tradingview community contribute to it.
As a math based trader, I relied on Excel, SPSS and R constantly to plan my trades. Since learning a functional amount of Pinescript and coding a lot of what I do and what I relied on SPSS, Excel and R for, I use it perhaps maybe a few times a week.
This indicator, or package, has some of the key things I used Excel and SPSS for on a daily and weekly basis. This also adds a lot of, I would say, fairly complex math functionality to Pinescript. Because this is adding functionality not necessarily native to Pinescript, I have placed most, if not all, of the functionality into actual exportable functions. I have also set it up as a kind of library, with explanations and tips on how other coders can take these functions and implement them into other scripts.
The hope here is that other coders will take it, build upon it, improve it and hopefully share additional functionality that can be added into this package. Hence why I call it a project. Okay, let's get into an overview:
Current Functions of SPTS:
SPTS currently has the following functionality (further explanations will be offered below):
Ability to Perform a One-Tailed, Two-Tailed and Paired Sample T-Test, with corresponding P value.
Standard Pearson Correlation (with functionality to be able to calculate the Pearson Correlation between 2 arrays).
Quadratic (or Curvlinear) correlation assessments.
R squared Assessments.
Standard Linear Regression.
Multiple Regression of 2 independent variables.
Tests of Normality (with Kurtosis and Skewness) and recognition of up to 7 Different Distributions.
ARIMA Modeller (Sort of, more details below)
Okay, so let's go over each of them!
T-Tests
So traditionally, most correlation assessments on Pinescript are done with a generic Pearson Correlation using the "ta.correlation" argument. However, this is not always the best test to be used for correlations and determine effects. One approach to correlation assessments used frequently in economics is the T-Test assessment.
The t-test is a statistical hypothesis test used to determine if there is a significant difference between the means of two groups. It assesses whether the sample means are likely to have come from populations with the same mean. The test produces a t-statistic, which is then compared to a critical value from the t-distribution to determine statistical significance. Lower p-values indicate stronger evidence against the null hypothesis of equal means.
A significant t-test result, indicating the rejection of the null hypothesis, suggests that there is statistical evidence to support that there is a significant difference between the means of the two groups being compared. In practical terms, it means that the observed difference in sample means is unlikely to have occurred by random chance alone. Researchers typically interpret this as evidence that there is a real, meaningful difference between the groups being studied.
Some uses of the T-Test in finance include:
Risk Assessment: The t-test can be used to compare the risk profiles of different financial assets or portfolios. It helps investors assess whether the differences in returns or volatility are statistically significant.
Pairs Trading: Traders often apply the t-test when engaging in pairs trading, a strategy that involves trading two correlated securities. It helps determine when the price spread between the two assets is statistically significant and may revert to the mean.
Volatility Analysis: Traders and risk managers use t-tests to compare the volatility of different assets or portfolios, assessing whether one is significantly more or less volatile than another.
Market Efficiency Tests: Financial researchers use t-tests to test the Efficient Market Hypothesis by assessing whether stock price movements follow a random walk or if there are statistically significant deviations from it.
Value at Risk (VaR) Calculation: Risk managers use t-tests to calculate VaR, a measure of potential losses in a portfolio. It helps assess whether a portfolio's value is likely to fall below a certain threshold.
There are many other applications, but these are a few of the highlights. SPTS permits 3 different types of T-Test analyses, these being the One Tailed T-Test (if you want to test a single direction), two tailed T-Test (if you are unsure of which direction is significant) and a paired sample t-test.
Which T is the Right T?
Generally, a one-tailed t-test is used to determine if a sample mean is significantly greater than or less than a specified population mean, whereas a two-tailed t-test assesses if the sample mean is significantly different (either greater or less) from the population mean. In contrast, a paired sample t-test compares two sets of paired observations (e.g., before and after treatment) to assess if there's a significant difference in their means, typically used when the data points in each pair are related or dependent.
So which do you use? Well, it depends on what you want to know. As a general rule a one tailed t-test is sufficient and will help you pinpoint directionality of the relationship (that one ticker or economic indicator has a significant affect on another in a linear way).
A two tailed is more broad and looks for significance in either direction.
A paired sample t-test usually looks at identical groups to see if one group has a statistically different outcome. This is usually used in clinical trials to compare treatment interventions in identical groups. It's use in finance is somewhat limited, but it is invaluable when you want to compare equities that track the same thing (for example SPX vs SPY vs ES1!) or you want to test a hypothesis about an index and a leveraged share (for example, the relationship between FNGU and, say, MSFT or NVDA).
Statistical Significance
In general, with a t-test you would need to reference a T-Table to determine the statistical significance of the degree of Freedom and the T-Statistic.
However, because I wanted Pinescript to full fledge replace SPSS and Excel, I went ahead and threw the T-Table into an array, so that Pinescript can make the determination itself of the actual P value for a t-test, no cross referencing required :-).
Left tail (Significant):
Both tails (Significant):
Distributed throughout (insignificant):
As you can see in the images above, the t-test will also display a bell-curve analysis of where the significance falls (left tail, both tails or insignificant, distributed throughout).
That said, I have not included this function for the paired sample t-test because that is a bit more nuanced. But for the one and two tailed assessments, the indicator will provide you the P value.
Pearson Correlation Assessment
I don't think I need to go into too much detail on this one.
I have put in functionality to quickly calculate the Pearson Correlation of two array's, which is not currently possible with the "ta.correlation" function.
Quadratic (Curvlinear) Correlation
Not everything in life is linear, sometimes things are curved!
The Pearson Correlation is great for linear assessments, but tends to under-estimate the degree of the relationship in curved relationships. There currently is no native function to t-test for quadratic/curvlinear relationships, so I went ahead and created one.
You can see an example of how Quadratic and Pearson Correlations vary when you look at CME_MINI:ES1! against AMEX:DIA for the past 10 ish months:
Pearson Correlation:
Quadratic Correlation:
One or the other is not always the best, so it is important to check both!
R-Squared Assessments:
The R-squared value, or the square of the Pearson correlation coefficient (r), is used to measure the proportion of variance in one variable that can be explained by the linear relationship with another variable. It represents the goodness-of-fit of a linear regression model with a single predictor variable.
R-Squared is offered in 3 separate forms within this indicator. First, there is the generic R squared which is taking the square root of a Pearson Correlation assessment to assess the variance.
The next is the R-Squared which is calculated from an actual linear regression model done within the indicator.
The first is the R-Squared which is calculated from a multiple regression model done within the indicator.
Regardless of which R-Squared value you are using, the meaning is the same. R-Square assesses the variance between the variables under assessment and can offer an insight into the goodness of fit and the ability of the model to account for the degree of variance.
Here is the R Squared assessment of the SPX against the US Money Supply:
Standard Linear Regression
The indicator contains the ability to do a standard linear regression model. You can convert one ticker or economic indicator into a stock, ticker or other economic indicator. The indicator will provide you with all of the expected information from a linear regression model, including the coefficients, intercept, error assessments, correlation and R2 value.
Here is AAPL and MSFT as an example:
Multiple Regression
Oh man, this was something I really wanted in Pinescript, and now we have it!
I have created a function for multiple regression, which, if you export the function, will permit you to perform multiple regression on any variables available in Pinescript!
Using this functionality in the indicator, you will need to select 2, dependent variables and a single independent variable.
Here is an example of multiple regression for NASDAQ:AAPL using NASDAQ:MSFT and NASDAQ:NVDA :
And an example of SPX using the US Money Supply (M2) and AMEX:GLD :
Tests of Normality:
Many indicators perform a lot of functions on the assumption of normality, yet there are no indicators that actually test that assumption!
So, I have inputted a function to assess for normality. It uses the Kurtosis and Skewness to determine up to 7 different distribution types and it will explain the implication of the distribution. Here is an example of SP:SPX on the Monthly Perspective since 2010:
And NYSE:BA since the 60s:
And NVDA since 2015:
ARIMA Modeller
Okay, so let me disclose, this isn't a full fledge ARIMA modeller. I took some shortcuts.
True ARIMA modelling would involve decomposing the seasonality from the trend. I omitted this step for simplicity sake. Instead, you can select between using an EMA or SMA based approach, and it will perform an autogressive type analysis on the EMA or SMA.
I have tested it on lookback with results provided by SPSS and this actually works better than SPSS' ARIMA function. So I am actually kind of impressed.
You will need to input your parameters for the ARIMA model, I usually would do a 14, 21 and 50 day EMA of the close price, and it will forecast out that range over the length of the EMA.
So for example, if you select the EMA 50 on the daily, it will plot out the forecast for the next 50 days based on an autoregressive model created on the EMA 50. Here is how it looks on AMEX:SPY :
You can also elect to plot the upper and lower confidence bands:
Closing Remarks
So that is the indicator/package.
I do hope to continue expanding its functionality, but as of now, it does already have quite a lot of functionality.
I really hope you enjoy it and find it helpful. This. Has. Taken. AGES! No joke. Between referencing my old statistics textbooks, trying to remember how to calculate some of these things, and wanting to throw my computer against the wall because of errors in the code, this was a task, that's for sure. So I really hope you find some usefulness in it all and enjoy the ability to be able to do functions that previously could really only be done in external software.
As always, leave your comments, suggestions and feedback below!
Take care!
EMA 9/21 with Target Price [SS]Hey everyone,
Coming back with my EMA 9/21 indicator.
My original one was removed a long time ago because I didn't really realize that there were already plenty of similar indicators (my bad!) but this one is my unique, Steversteves edition haha.
About the Indicator:
Essentially, it just combines the 2 only EMA's I ever really use (the 9 and 21) with an ATR based analysis to calculate the average range a ticker undergoes after an EMA 9 / 21 Cross-over and Cross-under.
You can see the major example being in the chart above. I use this for dramatic effect as SPY just happened to have topped at the second expected bull target on the daily. But obviously the intention for this indicator is to be used on the smaller timeframes. Let's take a look at some examples with various tickers.
TSLA:
So let's just use the previous day as example (which was Friday). If we look to the chart below:
TSLA did an EMA 9/21 crossover (bullish) in premarket. This put the immediate TP at 234.59. If we play out the chart:
We shot right to it at open.
We then did a cross under with a TP of 225.93, but that was not realized as the sentiment was too bullish. We then cross back over to the upside, putthing next TP at 238.88 which was realized:
NVDA:
On Friday, NVDA was a bit of a mess, lots of whipsaw off open. But once we finally had a cross under with 3 consecutive closes below the EMA9/21 on the 5 minute chart, it solidified the likelihood of a short:
And this was the result:
We came down to the first target, held it actually as support before finally crossing back over, setting the next TP at 475.05. We got 3 consecutive closes above the EMA 9/21, so let's see what happened:
Nothing really, we closed before we got there, but we did make progress towards it.
And last but not least SPY:
We opened the day with a bullish crossover and 3 consecutive closes above the EMA9/21, making our TP 441.38 (chart above). Let's see what happened:
We came just shy of it after the fed release volatility slammed it down, where we got a crossunder (bearish) to a TP of 436.21:
This ended up playing out, we did get a bullish crossover later in the day and so let's see what happened then:
So those are the real examples, most recent examples of trading using this. They are not all perfect, which is intentional because you need to use a bit of your own analysis, of course, when you are using this type of strategy or indicator. The EMA 9/21 is not sufficient generally on its own, but it is very helpful to gauge the immediate PA and whether the expected move aligns with your overall thesis on the day in terms of realistic target prices.
Customizability:
In terms of the customizability, this is a very basic indicator aside from the assessment of ranges. So there really is not a lot to customize.
You can toggle off and on the labels if you do not want them, you can also adjust the lookback length for the ATR assessment. The lookback length is defaulted to 500, I do really highly suggest you leave it at 500 because this has worked well for me and in back-testing, it has performed above my own expectations.
But, that said, you can take this and back-test as you wish with whatever parameters you feel are most appropriate. I haven't back-tested this on every stock known to man, my go to's are SPY, QQQ, sometimes MSFT and so it works well on those. But perhaps some others will have differing results.
Final Thoughts:
That is the indicator in a nutshell! It is really self explanatory and its likely a strategy most of you already know. This just helps to add realistic price targets and context to those cross-overs and cross-unders.
It also works fine on larger timeframes. We can see it on the 1 hour with MSFT:
On the 2 hour hour with QQQ:
And I am sure you can find other examples!
That's it everyone, safe trades!
Baseline Indicator [SS]Hello,
This is the Baseline Indicator. I modelled it after one of my favourite Tradingview chart types, the baseline type (shown in image below):
I really love this chart, but I wanted a way for it to:
a) Be static and not move with the chart; and
b) Auto calculate the baseline average for a specified period of time.
So I created this indicator which does essentially that.
What it does:
The indicator will calculate the average between the high and low of a user defined timeframe. The timeframe is customizable, but it defaults to daily. It will then plot the average (or baseline) of the high and low over that specified timeframe. The default plot is a candle plot. It will change the colours of the candles to green (for above the baseline) and red (for below the baseline). The chart below shows an example of the indicator with candles on SPY. The Baseline timeframe is set to 1 hour:
You can choose whether you want to plot the current baseline average or the previous.
The advantage to plotting the previous is that this provide a static reference point and can be helpful on the 30 and 60 minute timeframe. Here is an example:
In this example on SPY, the indicator is plotting the previous average. You can see SPY is using this as support and creating a "staircase" pattern. This is indicative of a trend.
The example above is using the previous day average on the daily timeframe during a sideways day. You can see that the price action accumulates and is consistently drawn to this point.
Inversely, you can manually select your own baseline price if you want a static, self-calculated baseline reference point.
Options and Settings:
Below is an outline of the menu as well as a brief explanation of the options and settings:
To view your chart as a baseline chart, make sure you select the "Line" input and then hide the candles on your chart using your chart settings (see image below):
The purple arrow shows how to hide the candles. You select the "Eye" Icon which should then become greyed out and you will be left with the baseline chart from the indicator.
Why use baseline average?
The average between the high and low of a designated timeframe is a very helpful value. In choppy markets, this acts as a key point of frequent return. In trendy markets, this acts as a reference point of trend direction and strength. I encourage you to play around with the indicator and review some historical charts using it, and you will see some patterns emerge!
Final thoughts:
I have also done a quick tutorial video on the indicator for your reference, you can check that out below:
Thanks for checking out the indicator and I hope you like it!
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
Portfolio Performance - Effects of RebalancingFunction:
- Can be used to evaluate the performance of a portfolio containing 2 assets over a set time interval
- Shows the % return of the portfolio over the time interval defined by the user
- Includes a threshold rebalancing algorithm to show the effects that rebalancing has on the portfolio over the long term
- Created to evaluate of the performance of portfolios containing different weightings of stocks and bonds over time assuming that the user would rebalance the portfolio when asset weights crossed a threshold
Instructions:
- To be used with dividends adjustments turned on
- Add this script to a symbol. e.g. AMEX:SPY
- Click the chart to define the entry time and the exit time. i.e. the time interval
- Define the initial investment of the portfolio. Default setting is $100,000
- Define the second asset to be included in the portfolio. e.g. BATS:AGG
- The strategy comes pre-populated with a portfolio that has a weight of 80% asset 1 and 20% asset 2. i.e. 80% AMEX:SPY and 20% BATS:AGG if the symbols mentioned above were chosen
- The 7 lines show the weighted % return of each portfolio over the time period defined by the user
- Each line (except the blue) is the return based on a different rebalancing threshold. The default settings are 1%, 2.5%, 5%, 10%, 15%, 20%, 30%
- The blue line is the % return of a portfolio that was made up of 100% asset 1 over the time interval. i.e. 100% AMEX:SPY
- Asset weights and rebalancing thresholds are adjustable via the settings
- Each plot can be turned on and turned off via a tick box in the settings
Zweig Market Breadth Thrust Indicator StrategyThe Breadth Thrust Indicator is a technical indicator which determines market momentum, signaling the start of a potential new bull market.
The Breadth Thrust Indicator was developed by Martin Zweig, an American stock investor, financial analyst, and investment adviser. According to Zweig, the concept is based on the principle that the sudden change of money in the investment markets elevates stocks and signals increased liquidity. In other words, this indicator is all about how quickly the NYSE's advancing and declining numbers go from poor to great in a compressed time period.
A "Thrust" indicates that the stock market has rapidly changed from an oversold condition to one of strength, but has not yet become overbought. This is very rare and has happened only a few times. Dr . Zweig also points out that most bull markets begin with a Breadth Thrust.
More info can be found at www.investopedia.com
I have inspired by indicator introduced in TradingView by LazyBear and adopted the logic from there. Thanks LazyBear !!!
Though indicator signals the new Bull market, but I have not found much information how to use it in daily market. So I had come up with a strategy, which would allow us to trade SPY, QQQ , AMEX and securities under these markets.
I have used MA setting as 65 (since Zweig indicator setting was 10 days , based on that I set 65 for Hourly chart ... 10d x 6.5 Hrs = 65 in my startegy). You have to change this setting if you change the timeframe. Also , note that this strategy is for Stock Market only.
Strategy Rule/Settings
===================
Select the market type based on your security symbol.
SPY => use NYSE
QQQ => use NASDAQ
any other security => check exchange it was listed and select the corresponding market.
if you dont know , use COMBINED option
BUY
====
when indicator cross 0.40 from below
Note:
1. see how well it picks the bottoms ... example : Nov 2020 ....
2. setting 0.45 is also produces good results , only thing is you get more signals.
EXIT
=====
Exit when indicator cross down from 0.60 . I have used RSI (5) for partial exits. These two are available in settings
Close the whole position when indicator crossing down 0.40
STOP LOSS
=========
defaulted to 5%
Please Note , I have tested SPY , QQQ on Horly chart with MA 65. You need to chnage the MA setting based on your time frame and check the results.
WARNING
========
For the use of educational purposes only
Waindrops [Makit0]█ OVERALL
Plot waindrops (custom volume profiles) on user defined periods, for each period you get high and low, it slices each period in half to get independent vwap, volume profile and the volume traded per price at each half.
It works on intraday charts only, up to 720m (12H). It can plot balanced or unbalanced waindrops, and volume profiles up to 24H sessions.
As example you can setup unbalanced periods to get independent volume profiles for the overnight and cash sessions on the futures market, or 24H periods to get the full session volume profile of EURUSD
The purpose of this indicator is twofold:
1 — from a Chartist point of view, to have an indicator which displays the volume in a more readable way
2 — from a Pine Coder point of view, to have an example of use for two very powerful tools on Pine Script:
• the recently updated drawing limit to 500 (from 50)
• the recently ability to use drawings arrays (lines and labels)
If you are new to Pine Script and you are learning how to code, I hope you read all the code and comments on this indicator, all is designed for you,
the variables and functions names, the sometimes too big explanations, the overall structure of the code, all is intended as an example on how to code
in Pine Script a specific indicator from a very good specification in form of white paper
If you wanna learn Pine Script form scratch just start HERE
In case you have any kind of problem with Pine Script please use some of the awesome resources at our disposal: USRMAN , REFMAN , AWESOMENESS , MAGIC
█ FEATURES
Waindrops are a different way of seeing the volume and price plotted in a chart, its a volume profile indicator where you can see the volume of each price level
plotted as a vertical histogram for each half of a custom period. By default the period is 60 so it plots an independent volume profile each 30m
You can think of each waindrop as an user defined candlestick or bar with four key values:
• high of the period
• low of the period
• left vwap (volume weighted average price of the first half period)
• right vwap (volume weighted average price of the second half period)
The waindrop can have 3 different colors (configurable by the user):
• GREEN: when the right vwap is higher than the left vwap (bullish sentiment )
• RED: when the right vwap is lower than the left vwap (bearish sentiment )
• BLUE: when the right vwap is equal than the left vwap ( neutral sentiment )
KEY FEATURES
• Help menu
• Custom periods
• Central bars
• Left/Right VWAPs
• Custom central bars and vwaps: color and pixels
• Highly configurable volume histogram: execution window, ticks, pixels, color, update frequency and fine tuning the neutral meaning
• Volume labels with custom size and color
• Tracking price dot to be able to see the current price when you hide your default candlesticks or bars
█ SETTINGS
Click here or set any impar period to see the HELP INFO : show the HELP INFO, if it is activated the indicator will not plot
PERIOD SIZE (max 2880 min) : waindrop size in minutes, default 60, max 2880 to allow the first half of a 48H period as a full session volume profile
BARS : show the central and vwap bars, default true
Central bars : show the central bars, default true
VWAP bars : show the left and right vwap bars, default true
Bars pixels : width of the bars in pixels, default 2
Bars color mode : bars color behavior
• BARS : gets the color from the 'Bars color' option on the settings panel
• HISTOGRAM : gets the color from the Bearish/Bullish/Neutral Histogram color options from the settings panel
Bars color : color for the central and vwap bars, default white
HISTOGRAM show the volume histogram, default true
Execution window (x24H) : last 24H periods where the volume funcionality will be plotted, default 5
Ticks per bar (max 50) : width in ticks of each histogram bar, default 2
Updates per period : number of times the histogram will update
• ONE : update at the last bar of the period
• TWO : update at the last bar of each half period
• FOUR : slice the period in 4 quarters and updates at the last bar of each of them
• EACH BAR : updates at the close of each bar
Pixels per bar : width in pixels of each histogram bar, default 4
Neutral Treshold (ticks) : delta in ticks between left and right vwaps to identify a waindrop as neutral, default 0
Bearish Histogram color : histogram color when right vwap is lower than left vwap, default red
Bullish Histogram color : histogram color when right vwap is higher than left vwap, default green
Neutral Histogram color : histogram color when the delta between right and left vwaps is equal or lower than the Neutral treshold, default blue
VOLUME LABELS : show volume labels
Volume labels color : color for the volume labels, default white
Volume Labels size : text size for the volume labels, choose between AUTO, TINY, SMALL, NORMAL or LARGE, default TINY
TRACK PRICE : show a yellow ball tracking the last price, default true
█ LIMITS
This indicator only works on intraday charts (minutes only) up to 12H (720m), the lower chart timeframe you can use is 1m
This indicator needs price, time and volume to work, it will not work on an index (there is no volume), the execution will not be allowed
The histogram (volume profile) can be plotted on 24H sessions as limit but you can plot several 24H sessions
█ ERRORS AND PERFORMANCE
Depending on the choosed settings, the script performance will be highly affected and it will experience errors
Two of the more common errors it can throw are:
• Calculation takes too long to execute
• Loop takes too long
The indicator performance is highly related to the underlying volatility (tick wise), the script takes each candlestick or bar and for each tick in it stores the price and volume, if the ticker in your chart has thousands and thousands of ticks per bar the indicator will throw an error for sure, it can not calculate in time such amount of ticks.
What all of that means? Simply put, this will throw error on the BITCOIN pair BTCUSD (high volatility with tick size 0.01) because it has too many ticks per bar, but lucky you it will work just fine on the futures contract BTC1! (tick size 5) because it has a lot less ticks per bar
There are some options you can fine tune to boost the script performance, the more demanding option in terms of resources consumption is Updates per period , by default is maxed out so lowering this setting will improve the performance in a high way.
If you wanna know more about how to improve the script performance, read the HELP INFO accessible from the settings panel
█ HOW-TO SETUP
The basic parameters to adjust are Period size , Ticks per bar and Pixels per bar
• Period size is the main setting, defines the waindrop size, to get a better looking histogram set bigger period and smaller chart timeframe
• Ticks per bar is the tricky one, adjust it differently for each underlying (ticker) volatility wise, for some you will need a low value, for others a high one.
To get a more accurate histogram set it as lower as you can (min value is 1)
• Pixels per bar allows you to adjust the width of each histogram bar, with it you can adjust the blank space between them or allow overlaping
You must play with these three parameters until you obtain the desired histogram: smoother, sharper, etc...
These are some of the different kind of charts you can setup thru the settings:
• Balanced Waindrops (default): charts with waindrops where the two halfs are of same size.
This is the default chart, just select a period (30m, 60m, 120m, 240m, pick your poison), adjust the histogram ticks and pixels and watch
• Unbalanced Waindrops: chart with waindrops where the two halfs are of different sizes.
Do you trade futures and want to plot a waindrop with the first half for the overnight session and the second half for the cash session? you got it;
just adjust the period to 1860 for any CME ticker (like ES1! for example) adjust the histogram ticks and pixels and watch
• Full Session Volume Profile: chart with waindrops where only the first half plots.
Do you use Volume profile to analize the market? Lucky you, now you can trick this one to plot it, just try a period of 780 on SPY, 2760 on ES1!, or 2880 on EURUSD
remember to adjust the histogram ticks and pixels for each underlying
• Only Bars: charts with only central and vwap bars plotted, simply deactivate the histogram and volume labels
• Only Histogram: charts with only the histogram plotted (volume profile charts), simply deactivate the bars and volume labels
• Only Volume: charts with only the raw volume numbers plotted, simply deactivate the bars and histogram
If you wanna know more about custom full session periods for different asset classes, read the HELP INFO accessible from the settings panel
EXAMPLES
Full Session Volume Profile on MES 5m chart:
Full Session Unbalanced Waindrop on MNQ 2m chart (left side Overnight session, right side Cash Session):
The following examples will have the exact same charts but on four different tickers representing a futures contract, a forex pair, an etf and a stock.
We are doing this to be able to see the different parameters we need for plotting the same kind of chart on different assets
The chart composition is as follows:
• Left side: Volume Labels chart (period 10)
• Upper Right side: Waindrops (period 60)
• Lower Right side: Full Session Volume Profile
The first example will specify the main parameters, the rest of the charts will have only the differences
MES :
• Left: Period size: 10, Bars: uncheck, Histogram: uncheck, Execution window: 1, Ticks per bar: 2, Updates per period: EACH BAR,
Pixels per bar: 4, Volume labels: check, Track price: check
• Upper Right: Period size: 60, Bars: check, Bars color mode: HISTOGRAM, Histogram: check, Execution window: 2, Ticks per bar: 2,
Updates per period: EACH BAR, Pixels per bar: 4, Volume labels: uncheck, Track price: check
• Lower Right: Period size: 2760, Bars: uncheck, Histogram: check, Execution window: 1, Ticks per bar: 1, Updates per period: EACH BAR,
Pixels per bar: 2, Volume labels: uncheck, Track price: check
EURUSD :
• Upper Right: Ticks per bar: 10
• Lower Right: Period size: 2880, Ticks per bar: 1, Pixels per bar: 1
SPY :
• Left: Ticks per bar: 3
• Upper Right: Ticks per bar: 5, Pixels per bar: 3
• Lower Right: Period size: 780, Ticks per bar: 2, Pixels per bar: 2
AAPL :
• Left: Ticks per bar: 2
• Upper Right: Ticks per bar: 6, Pixels per bar: 3
• Lower Right: Period size: 780, Ticks per bar: 1, Pixels per bar: 2
█ THANKS TO
PineCoders for all they do, all the tools and help they provide and their involvement in making a better community
scarf for the idea of coding a waindrops like indicator, I did not know something like that existed at all
All the Pine Coders, Pine Pros and Pine Wizards, people who share their work and knowledge for the sake of it and helping others, I'm very grateful indeed
I'm learning at each step of the way from you all, thanks for this awesome community;
Opensource and shared knowledge: this is the way! (said with canned voice from inside my helmet :D)
█ NOTE
This description was formatted following THIS guidelines
═════════════════════════════════════════════════════════════════════════
I sincerely hope you enjoy reading and using this work as much as I enjoyed developing it :D
GOOD LUCK AND HAPPY TRADING!
ADX_TSI_Bol Band Trend ChaserThe idea of this script is to be a low risk strategy on trending stocks (or any other trending market), aiming to achieve minimal draw down (e.g. at time of writing AAPL only had ~1.36% draw down, FB ~1.93% draw down and the SPY was 0.80% draw down and all remained profitable).
Testing proved it shouldn't be used in choppy stocks and best period was on daily charts. The back test filter goes back until 2010 so you can obtain 10 years of data.
The strategy utilizes the 200 Moving Average, a Custom Bollinger Band, a TSI with 52 period weighted moving average and ADX strength.
Although back test dates are set to 2010 - 2020, all other filters (moving average, ADX, TSI , Bollinger Band) are not locked so they can be user amended if desired. However the current settings have been tested with manual trading for quite some time to get this combination correct.
Buy signal is given when trading above the 200 moving average + 5 candles have closed above the upper custom Bollinger + the TSI is positive + ADX is above 20.
As back testing proved that this traded better only in tends then some Sell/Short conditions have been removed from the script and this only takes Long orders.
Only requires 2 additional lines of code to add shorting order and then remove the "buy" condition and this could be used for a downward trending stock instead.
Close for either long or short trades is signaled once the TSI crosses in the opposite direction indicating change in trend strength.
Further optimization could be achieved by adding a stop loss, which I may do in the future.
NOTE: This only shows the lower indicators however for visualization you can use my script "CUSTOM BOLLINGER WITH SMA", which is the upper indicators in this strategy.
This is my first attempt at coding a strategy so I'm happy to receive any feedback or hints on how this could be written better from any experienced coders!
NASDAQ:AAPL AMEX:SPY
Short in Bollinger Band Down trend (Weekly and Daily) // © PlanTradePlanMM
// 6/14/2020
// ---------------------------------------------------
// Name: Short in Bollinger Band Down trend (Weekly and Daily)
// ---------------------------------------------------
// Key Points in this study:
// 1. Short in BB Lower band, probability of price going down is more than 50%
// 2. Short at the top 1/4 of Lower band (EMA - Lower line), Stop is EMA, tartget is Lower line; it matches risk:/reward=1:3 naturally
//
// Draw Lines:
// BB Lower : is the Target (Black line)
// BB EMA : is the initial Stop (Black line)
// ShortLine : EMA - 1/4 of (Stop-target), which matches risk:/reward=1:3
// Prepare Zone : between EMA and ShortLine
// shortPrice : Blue dot line only showing when has Short position, Which shows entry price.
// StopPrice : Black dot line only showing when has Short position, Which shows updated stop price.
//
// Add SMA50 to filter the trend. Price <= SMA, allow to short
//
// What (Condition): in BB down trend band
// When (Price action): Price cross below ShortLine;
// How (Trading Plan): Short at ShortLine;
// Initial Stop is EMA;
// Initial Target is BB Lower Line;
// FollowUp: if price moves down first, and EMA is below Short Price. Move stop to EMA, At least "make even" in this trade;
// if Price touched Short Line again and goes down, new EMA will be the updated stop
//
// Exit: 1. Initial stop -- "Stop" when down first, Close above stop
// 2. Target reached -- "TR" when down quickly, Target reached
// 3. make even -- "ME" when small down and up, Exit at Entry Price
// 4. Small Winner -- "SM" when EMA below Entry price, Exit when Close above EMA
//
// --------------
// Because there are too many flags in up trend study already, I created this down trend script separately.
// Uptrend study is good for SPY, QQQ, and strong stocks.
// Downtrend Study is good for weak ETF, stock, and (-2x, -3x) ETFs, such as FAZ, UVXY, USO, XOP, AAL, CCL
// -----------------------------------------------------------------------------------------------------------------
// Back test Weekly and daily chart for SPY, QQQ, XOP, AAL, BA, MMM, FAZ, UVXY
// The best sample is FAZ Weekly chart.
// When SPY and QQQ are good in long term up trend, these (-2x, -3x) ETFs are always going down in long term.
// Some of them are not allowed to short. I used option Put/Put spread for the short entry.
//
Buy in Bollinger Band uptrend (Weekly and Daily) // © PlanTradePlanMM 6/14/2020
// ---------------------------------------------------
// Name: Buy in Bollinger Band uptrend (Weekly and Daily)
// ---------------------------------------------------
// Key Points in this study:
// 1. Long in BB Upper band, probability of price going up is more than 50%
// 2. Buy at the bottom 1/4 of upper band (Upper line - EMA), Stop is EMA, tartget is Upper line; it matches risk:reward=1:3;
//
// Draw Lines:
// BB Upper : is the Target (Black line)
// BB EMA : is the initial Stop (Black line)
// BuyLine : EMA20 + 1/4 of (Target-Stop), which matches risk:/reward=1:3 naturally
// Prepare Zone : between EMA and BuyLine
// buyPrice : Blue dot line only showing when has long position, Which shows entry price.
// StopPrice : Black dot line only showing when has long position, Which shows updated stop price.
//
// Add SMA(50) to filter the trend. Price >= SMA, allow to long
//
// What (Condition): in BB uptrend band
// When (Price action): Price cross over BuyLine;
// How (Trading Plan): Buy at BuyLine;
// Initial Stop is EMA;
// Initial Target is BB Upper Line;
//
// FollowUp: if price moves up first, and the EMA is higher than Entry point, Use EMA as new stop. At least "make even" in this trade;
//
// Exit: 1. Initial stop -- "Stop" when down first, close below stop price.
// 2. Target reached -- "TR" when up quickly, Target reached
// 3. make even -- "ME" when small up and down, Exit at entry Price
// 4. Small Winner -- "SM" when EMA above Entry price, Exit when close below EMA, and higher than entry Price
//
// --------------
// Because there are too many flags in up trend study already, I will create a down trend script separately.
// Uptrend study is good for SPY, QQQ, and strong stocks.
// Downtrend Study is good for weak ETF, stock, and (-2x, -3x) ETFs, such as FAZ, UVXY, USO, XOP, AAL, CCL
// -----------------------------------------------------------------------------------------------------------------
// Back test Weekly and daily chart for SPY, QQQ
// If it will be a big Gap down or a big down move, stop at close price could be a big loss; But this way could avoid may noise, to stay in a trending position longer.
// When buy in trending move, the position could be hold for a big range.
// The best samples are SPY and QQQ daily chart.
//
// Better to use another way to verify the long term up trend first.
// For single stock, it is better shows more relative strength than SPY.
Portfolio Simulator & BacktesterMulti-asset portfolio simulator with different metrics and ratios, DCA modeling, and rebalancing strategies.
Core Features
Portfolio Construction
Up to 5 assets with customizable weights (must total 100%)
Support for any tradable symbol: stocks, ETFs, crypto, indices, commodities
Real-time validation of allocations
Dollar Cost Averaging
Monthly or Quarterly contributions
Applies to both portfolio and benchmark for fair comparison
Model real-world investing behavior
Rebalancing
Four strategies: None, Monthly, Quarterly, Yearly
Automatic rebalancing to target weights
Transaction cost modeling (customizable fee %)
Key Metrics Table
CAGR: Annualized compound return (S&P 500 avg: ~10%)
Alpha: Excess return vs. benchmark (positive = outperformance)
Sharpe Ratio: Return per unit of risk (>1.0 is good, >2.0 excellent)
Sortino Ratio: Like Sharpe but only penalizes downside (better metric)
Calmar Ratio: CAGR / Max Drawdown (>1.0 good, >2.0 excellent)
Max Drawdown: Largest peak-to-trough decline
Win Rate: % of positive days (doesn't indicate profitability)
Visualization
Dual-chart comparison - Portfolio vs. Benchmark
Dollar or percentage view toggle
Customizable colors and line width
Two tables: Statistics + Asset Allocation
Adjustable table position and text size
🚀 Quick Start Guide
Enter 1-5 ticker symbols (e.g., SPY, QQQ, TLT, GLD, BTCUSD)
Make sure percentage weights total 100%
Choose date range (ensure chart shows full period - zoom out!)
Configure DCA and rebalancing (optional)
Select benchmark (default: SPX)
Analyze results in statistics table
💡 Pro Tips
Chart data matters: Load SPY or your longest-history asset as main chart
If you select an asset that was not available for the selected period, the chart will not show up! E.g. BTCUSD data: Only available from ~2017 onwards.
Transaction fees: 0.1% default (adjust to match your broker)
⚠️ Important Notes
Requires visible chart data (zoom out to show full date range)
Limited by each asset's historical data availability
Transaction fees and costs are modeled, but taxes/slippage are not
Past performance ≠ future results
Use for research and education only, not financial advice
Let me know if you have any suggestions to improve this simulator.
Market Sentiment Trend Gauge [LevelUp]Market Sentiment Trend Gauge simplifies technical analysis by mathematically combining momentum, trend direction, volatility position, and comparison against a market benchmark, into a single trend score from -100 to +100. Displayed in a separate pane below your chart, it resolves conflicting signals from RSI, moving averages, Bollinger Bands, and market correlations, providing clear insights into trend direction, strength, and relative performance.
THE PROBLEM MARKET SENTIMENT TREND GAUGE (MSTG) SOLVES
Traditional indicators often produce conflicting signals, such as RSI showing overbought while prices rise or moving averages indicating an uptrend despite market underperformance. MSTG creates a weighted composite score to answer: "What's the overall bias for this asset?"
KEY COMPONENTS AND WEIGHTINGS
The trend score combines
▪ Momentum (25%): Normalized 14-period RSI, capped at ±100.
▪ Trend Direction (35%): 10/21-period EMA relationships,
▪ Volatility Position (20%): Price position, 20-period Bollinger Bands, capped at ±100.
▪ Market Comparison (20%): Daily performance vs. SPY benchmark, capped at ±100.
Final score = Weighted sum, smoothed with 5-period EMA.
INTERPRETING THE MSTG CHART
Trend Score Ranges and Colors
▪ Bright Green (>+30): Strong bullish; ideal for long entries.
▪ Light Green (+10 to +30): Weak bullish; cautiously favorable.
▪ Gray (-10 to +10): Neutral; avoid directional trades.
▪ Light Red (-10 to -30): Weak bearish; exercise caution.
▪ Bright Red (<-30): Strong bearish; high-risk for longs, consider shorts.
Reference Lines
▪ Zero Line (Gray): Separates bullish/bearish; crossovers signal trend changes.
▪ ±30 Lines (Dotted, Green/Red): Thresholds for strong trends.
▪ ±60 Lines (Dashed, Green/Red): Extreme strength zones (not overbought/oversold); manage risk (tighten stops, partial profits) but trends may persist.
Background Colors
▪ Green Tint (>+20): Bullish environment; favorable for longs.
▪ Red Tint (<-20): Bearish environment; caution for longs.
▪ Light Gray Tint (-20 to +20): Neutral/range-bound; wait for signals.
Extreme Readings vs. Traditional Signals
MSTG ±60 indicates maximum alignment of all factors, not reversals (unlike RSI >70/<30). Use for risk management, not automatic exits. Strong trends can sustain extremes; breakdowns occur below +30 or above -30.
INFORMATION TABLE INTERPRETATION
Trend Score Symbols
▲▲ >+30 strong bullish
▲ +10 to +30
● -10 to +10 neutral
▼ -30 to -10
▼▼ <-30 strong bearish
Colors: Green (positive), White (neutral), Red (negative).
Momentum Score
+40 to +100 strong bullish
0 to +40 moderate bullish
-40 to 0 moderate bearish
-100 to -40 strong bearish
Market vs. Stock
▪ Green: Stock outperforming market
▪ Red: Stock underperforming market
Example Interpretations:
-0.45% / +1.23% (Green): Market down, stock up = Strong relative strength
+2.10% / +1.50% (Red): Both rising, but stock lagging = Relative weakness
-1.20% / -0.80% (Green): Both falling, but stock declining less = Defensive strength
UNDERSTANDING EXTREME READINGS VS TRADITIONAL OVERBOUGHT/OVERSOLD
⚠️ Critical distinctions
Traditional Overbought/Oversold Signals:
▪ Single indicator (like RSI >70 or <30) showing momentum excess
▪ Often suggests immediate reversal or pullback expected
▪ Based on "price moved too far, too fast" concept
MSTG Extreme Readings (±60):
▪ Composite alignment of 4 different factors (momentum, trend, volatility, relative strength)
▪ Indicates maximum strength in current direction
▪ NOT a reversal signal - means "all systems extremely bullish/bearish"
Key Differences:
▪ RSI >70: "Price got ahead of itself, expect pullback"
▪ MSTG >+60: "Everything is extremely bullish right now"
▪ Strong trends can maintain extreme MSTG readings during major moves
▪ Breakdowns happen when MSTG falls below +30, not at +60
Proper Usage of Extreme Readings:
▪ Risk Management: Tighten stops, take partial profits
▪ Position Sizing: Reduce new position sizes at extremes
▪ Trend Continuation: Watch for sustained extreme readings in strong markets
▪ Exit Signals: Look for breakdown below +30, not reversal from +60
TRADING WITH MSTG
Quick Assessment
1. Check trend symbol for direction.
2. Confirm momentum strength.
3. Note relative performance color.
Examples:
▲▲ 55.2 (Green), Momentum +28.4, Outperforming: Strong buy setup.
▼ -18.6 (Red), Momentum -43.2, Underperforming: Defensive positioning.
Entry Conditions
▪ Long: stock outperforming market
- Score >+30 (bright green)
- Sustained green background
- ▲▲ symbol,
▪ Short: stock underperforming market
- Score <-30 (bright red)
- Sustained red background
- ▼▼ symbol
Avoid Trading When:
▪ Gray zone (-10 to +10).
▪ Rapid color changes or frequent zero-line crosses (choppy market).
▪ Gray background (range-bound).
Risk Management:
▪ Stop Loss: Exit on zero-line crossover against position.
▪ Take Profit: Partial at ±60 for risk control.
▪ Position Sizing: Larger when signals align; smaller in extremes or mixed conditions.
KEY ADVANTAGES
▪ Unified View: Weighted composite reduces noise and conflicts.
▪ Visual Clarity: 5-color system with gradients for rapid recognition.
▪ Market Context: Relative strength vs. SPY identifies leaders/laggards.
▪ Flexibility: Works across timeframes (1-min to weekly); customizable table.
▪ Noise Reduction: EMA smoothing minimizes false signals.
EXAMPLES
Strong Bull: Trend Score 71.9, Momentum Score 76.9
Neutral: Trend Score 0.1, Momentum Score -9.2
Strong Bear: Trend Score -51.7, Momentum Score -51.5
PERFORMANCE AND LIMITATIONS
Strengths: Trend identification, noise reduction, relative performance versus market.
Limitations: Lags at turning points, less effective in extreme volatility or non-trending markets.
Recommendations: View on multiple timeframes, combine with price action and fundamentals.
Hosoda’s CloudsMany investors aim to develop trading systems with a high win rate, mistakenly associating it with substantial profits. In reality, high returns are typically achieved through greater exposure to market trends, which inevitably lowers the win rate due to increased risk and more volatile conditions.
The system I present, called “Hosoda’s Clouds” in honor of Goichi Hosoda , the creator of the Ichimoku Kinko Hyo indicator, is likely one of the first profitable systems many traders will encounter. Designed to capture trends, it performs best in markets with clear directional movements and is less suitable for range-bound markets like Forex, which often exhibit lateral price action.
This system is not recommended for low timeframes, such as minute charts, due to the random and emotionally driven nature of price movements in those periods. For a deeper exploration of this topic, I recommend reading my article “Timeframe is Everything”, which discusses the critical importance of selecting the appropriate timeframe.
I suggest testing and applying the “Hosoda’s Clouds” strategy on assets with a strong trending nature and a proven track record of performance. Ideal markets include Tesla (1-hour, 4-hour, and daily), BTC/USDT (daily), SPY (daily), and XAU/USD (daily), as these have consistently shown clear directional trends over time.
Commissions and Configuration
Commissions can be adjusted in the system’s settings to suit individual needs. For evaluating the effectiveness of “Hosoda’s Clouds,” I’ve used a standard commission of $1 per order as a baseline, though this can be modified in the code to accommodate different brokers or preferences.
The margin per trade is set to $1,000 by default, but users are encouraged to experiment with different margin settings in the configuration to match their trading style.
Rules of the “Hosoda’s Clouds” System (Bullish Strategy)
This strategy is designed to capture trending movements in bullish markets using the Ichimoku Kinko Hyo indicator. The rules are as follows:
Long Entry: A long position is triggered when the Tenkan-sen crosses above the Kijun-sen below the Ichimoku cloud, identifying potential reversals or bounces in a bearish context.
Stop Loss (SL): Placed at the low of the candle 12 bars prior to the entry candle. This setting has proven optimal in my tests, but it can be adjusted in the code based on risk tolerance.
Take Profit (TP): The position is closed when the Tenkan-sen crosses below the bottom of the Ichimoku cloud (the minimum of Senkou Span A and Senkou Span B).
Notes on the Code
margin_long=0: Ideal for strategies requiring a fixed position size, particularly useful for manual entries or testing with a constant capital allocation.
margin_long=100: Recommended for high-frequency systems where positions are closed quickly, simulating gradual growth based on realized profits and reflecting real-world broker constraints.
System Performance
The following performance metrics account for $1 per order commissions and were tested on the specified assets and timeframes:
Tesla (H1)
Trades: 148
Win Rate: 29.05%
Period: Jan 2, 2014 – Jan 6, 2020 (+172%)
Simple Annual Growth Rate: +34.3%
Trades: 130
Win Rate: 30.77%
Period: Jan 2, 2020 – Sep 24, 2025 (+858.90%)
Simple Annual Growth Rate: +150.7%
Tesla (H4)
Trades: 102
Win Rate: 32.35%
Period: Jun 29, 2010 – Sep 24, 2025 (+11,356.36%)
Simple Annual Growth Rate: +758.5%
Tesla (Daily)
Trades: 56
Win Rate: 35.71%
Period: Jun 29, 2010 – Sep 24, 2025 (+3,166.64%)
Simple Annual Growth Rate: +211.5%
BTC/USDT (Daily)
Trades: 44
Win Rate: 31.82%
Period: Sep 30, 2017 – Sep 24, 2025 (+2,592.23%)
Simple Annual Growth Rate: +324.8%
SPY (Daily)
Trades: 81
Win Rate: 37.04%
Period: Jan 23, 1993 – Sep 24, 2025 (+476.90%)
Simple Annual Growth Rate: +14.3%
XAU/USD (Daily)
Trades: 216
Win Rate: 32.87%
Period: Jan 6, 1833 – Sep 24, 2025 (+5,241.73%)
Simple Annual Growth Rate: +27.1%
SPX (Daily)
Trades: 217
Win Rate: 38.25%
Period: Feb 1, 1871 – Sep 24, 2025 (+16,791.02%)
Simple Annual Growth Rate: +108.1%
Conclusion
With the “ Hosoda’s Clouds ” strategy, I aim to showcase the potential of technical analysis to generate consistent profits in trending markets, challenging recent doubts about its effectiveness. My goal is for this system to serve as both a practical tool for traders and a source of inspiration for the trading community I deeply respect. I hope it encourages the creation of new strategies, fosters creativity in technical analysis, and empowers traders to approach the markets with confidence and discipline.
DynamoSent DynamoSent Pro+ — Professional Listing (Preview)
— Adaptive Macro Sentiment (v6)
— Export, Adaptive Lookback, Confidence, Boxes, Heatmap + Dynamic OB/OS
Preview / Experimental build. I’m actively refining this tool—your feedback is gold.
If you spot edge cases, want new presets, or have market-specific ideas, please comment or DM me on TradingView.
⸻
What it is
DynamoSent Pro+ is an adaptive, non-repainting macro sentiment engine that compresses VIX, DXY and a price-based activity proxy (e.g., SPX/sector ETF/your symbol) into a 0–100 sentiment line. It scales context by volatility (ATR%) and can self-calibrate with rolling quantile OB/OS. On top of that, it adds confidence scoring, a plain-English Context Coach, MTF agreement, exportable sentiment for other indicators, and a clean Light/Dark UI.
Why it’s different
• Adaptive lookback tracks regime changes: when volatility rises, we lengthen context; when it falls, we shorten—less whipsaw, more relevance.
• Dynamic OB/OS (quantiles) self-calibrates to each instrument’s distribution—no arbitrary 30/70 lines.
• MTF agreement + Confidence gate reduce false positives by highlighting alignment across timeframes.
• Exportable output: hidden plot “DynamoSent Export” can be selected as input.source in your other Pine scripts.
• Non-repainting rigor: all request.security() calls use lookahead_off + gaps_on; signals wait for bar close.
Key visuals
• Sentiment line (0–100), OB/OS zones (static or dynamic), optional TF1/TF2 overlays.
• Regime boxes (Overbought / Oversold / Neutral) that update live without repaint.
• Info Panel with confidence heat, regime, trend arrow, MTF readout, and Coach sentence.
• Session heat (Asia/EU/US) to match intraday behavior.
• Light/Dark theme switch in Inputs (auto-contrasted labels & headers).
⸻
How to use (examples & recipes)
1) EURUSD (swing / intraday blend)
• Preset: EURUSD 1H Swing
• Chart: 1H; TF1=1H, TF2=4H (default).
• Proxies: Defaults work (VIX=D, DXY=60, Proxy=D).
• Dynamic OB/OS: ON at 20/80; Confidence ≥ 55–60.
• Playbook:
• When sentiment crosses above 50 + margin with Δ ≥ signalK and MTF agreement ≥ 0.5, treat as trend breakout.
• In Oversold with rising Coach & TF agreement, take fade longs back toward mid-range.
• Alerts: Enable Breakout Long/Short and Fade; keep cooldown 8–12 bars.
2) SPY (daytrading)
• Preset: SPY 15m Daytrade; Chart: 15m.
• VIX (D) matters more; preset weights already favor it.
• Start with static 30/70; later try dynamic 25/75 for adaptive thresholds.
• Use Coach: in US session, when it says “Overbought + MTF agree → sell rallies / chase breakouts”, lean momentum-continuation after pullbacks.
3) BTCUSD (crypto, 24/7)
• Preset: BTCUSD 1H; Chart: 1H.
• DXY and BTC.D inform macro tone; keep Carry-forward ON to bridge sparse ticks.
• Prefer Dynamic OB/OS (15/85) for wider swings.
• Fade signals on weekend chop; Breakout when Confidence > 60 and MTF ≥ 1.0.
4) XAUUSD (gold, macro blend)
• Preset: XAUUSD 4H; Chart: 4H.
• Weights tilt to DXY and US10Y (handled by preset).
• Coach + MTF helps separate trend legs from news pops.
⸻
Best practices
• Theme: Switch Light/Dark in Inputs; the panel adapts contrast automatically.
• Export: In another script → Source → DynamoSent Pro+ → DynamoSent Export. Build your own filters/strategies atop the same sentiment.
• Dynamic vs Static OB/OS:
• Static 30/70: fast, universal baseline.
• Dynamic (quantiles): instrument-aware; use 20/80 (default) or 15/85 for choppy markets.
• Confidence gate: Start at 50–60% to filter noise; raise when you want only A-grade setups.
• Adaptive Lookback: Keep ON. For ultra-liquid indices, you can switch it OFF and set a fixed lookback.
⸻
Non-repainting & safety notes
• All request.security() calls use lookahead=barmerge.lookahead_off and gaps=barmerge.gaps_on.
• No forward references; signals & regime flips are confirmed on bar close.
• History-dependent funcs (ta.change, ta.percentile_linear_interpolation, etc.) are computed each bar (not conditionally).
• Adaptive lookback is clamped ≥ 1 to avoid lowest/highest errors.
• Missing-data warning triggers only when all proxies are NA for a streak; carry-forward can bridge small gaps without repaint.
⸻
Known limits & tips
• If a proxy symbol isn’t available on your plan/exchange, you’ll see the NA warning: choose a different symbol via Symbol Search, or keep Carry-forward ON (it defaults to neutral where needed).
• Intraday VIX is sparse—using Daily is intentional.
• Dynamic OB/OS needs enough history (see dynLenFloor). On short histories it gracefully falls back to static levels.
Thanks for trying the preview. Your comments drive the roadmap—presets, new proxies, extra alerts, and integrations.
1D Enter AlertsThis is only a remaining of an experiment. I had real swing enter alerts, but it just made more sense to use classic TradingView alerts for horizontal / trendline / SMA breaks.
(Btw you can set up a horizontal alert in TradingView just by hovering the mouse on the chart so it's at the price point you aim for, and pressing "Alt + A").
Once this horizontal alert triggered I would usually wait for confirmation of the move on the 5m. If it's f. e. a break of an SMA and I'm not convinced yet, I might wait until end of the day. For exactly that purpose the following alert comes in handy:
"X Candle Close":
Is triggered 15m before market close - good reminder to check a stock again to see whether a resistance / support break was valid - and the stock should be entered as a swing, or maybe whether it should be closed as a loss.
"Z Trend Change: UP" + "Z Trend Change: DOWN":
Same as on 5m Exit Alert: meant to be only applied on SPY, and to have it set up to never end!
Criteria:
SPY broke through daily EMA 8 or daily SMA today, indicating an important short-term change on the daily chart.
Is triggered 15m before market close
More infos: www.reddit.com
5m Exit AlertsThese can help a lot with Daytrading if you don't have a price target in mind when there's no clear resistance / support nearby, and you don't trust the market enough to hold it as a swing trade.
Keep in mind that its main purpose is to give you a "warning" that it might be good to look at your screen, instead of guaranteeing you "now is the best time to exit". You won't reach high winning stats by blindly following this alert.
"A Exit LONG":
(I'm using letters instead of numbers for all Exit alerts to make sure I don't accidentally confuse Enter and Exit alerts).
There are 4 conditions that might trigger it. The reasons show up in the exit alert message (unfortunately only as a number, since alert messages can't have "dynamic text" in TradingView), and can also be displayed as symbols in the chart (see image above - make sure to enable "Show Signals" in the indicator settings first though).
Here are the conditions sorted from best to worst:
Technical reversal: Bearish Hammer candle with Volume > 2 * avg volume (of last 30 candles), when 5m candle closed. Reversal very likely. This is usually the best time to take your gains for the rest of the day.
EMA 3/8 cross: standard 5m EMA 3/8 cross, indicating a trend reversal, or at least a pullback. Can also be helpful to detect double tops / double bottoms.
Trailing Stop Loss: Crossed below 30m EMA 8, 5m candle closed. This is a "fallback" alert in case EMA 3 was already below EMA 8 before you set up the alert. It's not unlikely that the stock might go further down to VWAP, so depending on the chart and market this might be a good opportunity to save the gains you have left.
"Final" Stop Loss: Crossed below VWAP. Usually not a good sign. If you entered around VWAP your losses shouldn't be big yet, but if you plan on holding the stock the Daily chart and market outlook should better be quite convincing, and you wouldn't have needed to use this alert in the first place.
Keep in mind these work of course best if you picked a "good" stock: clear movement, tidy price action, high volume. Otherwise alerts are more likely to be triggered redundantly.
Always consider how the market and stock looks like, then decide whether to exit or not! Usually it makes sense to wait a bit to see f. e. whether the stock bounces off the 30m EMA 8, and it's just a pullback.
"B Enter SHORT":
Similar, but for shorts...
"C 1m Scalp LONG" + "D 1m Scalp SHORT":
Simple Scalping alert for EMA 3/8 cross on a 1m chart - but without needing to use a 1m chart to set it up!
Unfortunately it's not as accurate as manually setting this alert up on a 1m chart. It might be an advantage though that it sometimes is triggered 1-2 min later, since this means there are less redundant triggerings.
It can be useful esp. on high momentum trades, but I honestly haven't used it in a looong while.
"X Candle Close":
same as in 5m Entry indicator: triggered when 5m candle is confirmed
"Z Trend Change: UP" + "Z Trend Change: DOWN":
This one is meant to be used only on SPY: It alerts you when SPY is changing its trending direction, which might mean entering or closing existing trades.
I have therefore set it up to never end (by setting it to "Once Per Bar Close" in the alert settings).
It's based on DMI positive or negative being > 25. I had it based on VWAP at the beginning, but there were days where it was triggered every 5 minutes...
More infos: www.reddit.com
Same-Direction Candles (Two Symbols)Same-Direction Candles (Two Symbols)
What it does
Highlights bars on your chart when two symbols print the same candle direction on the chosen timeframe:
Both Bullish → one color
Both Bearish → another color
Great for spotting synchronous moves (e.g., NQ & ES, QQQ & SPY), or confirming risk-on/risk-off with an inverse asset (e.g., NQ vs DXY with inversion).
How it works
For each bar, the script checks whether close > open (bullish), close < open (bearish), or equal (doji) for:
The chart’s symbol
A second symbol pulled via request.security() (optionally on a different timeframe)
If both symbols are bullish, it paints Bull color; if both are bearish, it paints Bear color. Dojis can be ignored.
Inputs
Second symbol: Ticker to compare (e.g., CME_MINI:ES1!, NASDAQ:QQQ, TVC:DXY).
Second symbol timeframe: Leave blank to use the chart’s TF, or set a specific one (e.g., 5, 15, D).
Invert second symbol direction?: Flips the second symbol’s candle direction (useful for inversely related assets like DXY vs indices).
Ignore doji candles: Skip highlights when either candle is neutral (open == close).
Coloring options: Toggle bar coloring and/or background shading; pick colors; set background transparency.
Alerts
Three alert conditions:
Both Bullish
Both Bearish
Both Same Direction (bullish or bearish)
Create alerts from the Add Alert dialog after adding the script.
Use cases
Index confluence: NQ & ES moving in lockstep
ETF confirmation: QQQ & SPY agreement
FX/Index risk signals: Invert DXY against NQ/ES to see when equity strength aligns with dollar weakness
Tips
For mixed timeframes (e.g., chart on 1m, ES on 5m), set Second symbol timeframe to the higher TF to reduce noise.
Keep Ignore dojis on for cleaner signals.
Combine with your own entry rules (structure, FVGs, liquidity sweeps).
Notes
Works on any symbol/timeframe supported by TradingView.
Overlay script; no strategy/entries/exits are executed.
Past performance ≠ future results; for education only.
Version: 1.0 – initial release (bar/background highlights, doji filter, inversion, multi-TF support, alerts).
Overnight Gap Dominance Indicator (OGDI)The Overnight Gap Dominance Indicator (OGDI) measures the relative volatility of overnight price gaps versus intraday price movements for a given security, such as SPY or SPX. It uses a rolling standard deviation of absolute overnight percentage changes divided by the standard deviation of absolute intraday percentage changes over a customizable window. This helps traders identify periods where overnight gaps predominate, suggesting potential opportunities for strategies leveraging extended market moves.
Instructions
A
pply the indicator to your TradingView chart for the desired security (e.g., SPY or SPX).
Adjust the "Rolling Window" input to set the lookback period (default: 60 bars).
Modify the "1DTE Threshold" and "2DTE+ Threshold" inputs to tailor the levels at which you switch from 0DTE to 1DTE or multi-DTE strategies (default: 0.5 and 0.6).
Observe the OGDI line: values above the 1DTE threshold suggest favoring 1DTE strategies, while values above the 2DTE+ threshold indicate multi-DTE strategies may be more effective.
Use in conjunction with low VIX environments and uptrend legs for optimal results.
US Macro Cycle (Z-Score Model)US Macro Cycle (Z-Score Model)
This indicator tracks the US economic cycle in real time using a weighted composite of seven macro and market-based indicators, each converted into a rolling Z-score for comparability. The model identifies the current phase of the cycle — Expansion, Peak, Contraction, or Recovery — and suggests sector tilts based on historical performance in each phase.
Core Components:
Yield Curve (10y–2y): Positive & steepening = growth; inverted = slowdown risk.
Credit Spreads (HYG/LQD): Tightening = risk-on; widening = risk-off.
Sector Leadership (Cyclicals vs. Defensives): Measures market leadership regime.
Copper/Gold Ratio: Higher copper = growth signal; higher gold = defensive.
SPY vs. 200-day MA: Equity trend strength.
SPY/IEF Ratio: Stocks vs. bonds relative strength.
VIX (Inverted): Low/falling volatility = supportive; high/rising = risk-off.
Methodology:
Each series is transformed into a rolling Z-score over the selected lookback period (optionally using median/MAD for robustness and winsorization to clip outliers).
Z-scores are combined using user-defined weights and normalized.
The smoothed composite is compared against phase thresholds to classify the macro environment.
Features:
Customizable Weights: Emphasize the indicators most relevant to your strategy.
Adjustable Thresholds: Fine-tune cycle phase definitions.
Background Coloring: Visual cue for the current phase.
Summary Table: Displays composite Z, confidence %, and individual Z-scores.
Alerts: Trigger when the phase changes, with details on the composite score and recommended tilt.
Use Cases:
Align sector rotation or relative strength strategies with the macro backdrop.
Identify favorable or defensive phases for tactical allocation.
Monitor macro turning points to manage portfolio risk.
It's doesn't fill nan gaps so there is quite a bit of zeroes, non-repainting.
Dynamic 5DMA/EMA with Color for Multiple Products🔹 Dynamic 5DMA/EMA with Slope-Based Coloring (All Timeframes)
This indicator plots a dynamic 5-period moving average that adapts intelligently to your chart's timeframe and product type — giving you a clean, slope-sensitive visual edge across intraday, daily, and weekly views.
✅ Key Features:
📈 Dynamic MA Length Scaling:
On intraday timeframes, the MA adjusts for your selected market session (RTH, ETH, VIX, or Futures), calculating a true 5-day average based on actual session length — not just a flat bar count.
🔄 Automatic Timeframe Detection:
Daily Chart: Uses standard 5DMA or 5EMA.
Weekly Chart: Applies a true 5-week MA.
Intraday Charts: Converts 5 days into bar-length equivalent dynamically.
🎨 Color-Coded Slope Logic:
Green = Rising MA (bullish slope)
Red = Falling MA (bearish slope)
Neutral slope = previous color held for visual continuity
No more guessing — direction is instantly clear.
⚠️ Built-In Slope Flip Alerts:
Set alerts when the slope of the MA turns up or down. Ideal for timing pullback entries or exits across any product.
⚙️ Session Settings for Proper Scaling:
Choose your product's market structure to ensure accurate 5-day conversion on intraday charts:
Stocks - RTH: 390 mins/day
Stocks - ETH: 780 mins/day
VIX: 855 mins/day
Futures: 1440 mins/day
This ensures the MA reflects 5 full trading days, regardless of session irregularities or bar interval.
📌 Why Use This Indicator?
Most MAs misrepresent trend direction on intraday charts because they assume static daily bar counts. This tool corrects that, then adds slope-based coloring to give you a fast, visual read on short-term momentum. Whether you’re swing trading SPY, scalping VIX, or position trading futures, this indicator keeps your view aligned with how institutions see moving averages across timeframes.
🔧 Best For:
VIX & volatility traders
Short-term SPY/SPX traders
Swing traders who value clean setups
Anyone wanting a true 5-day trend anchor on any chart
EMA Crossover Visual Setup (RS Clásico Confirmado)Overview
This script is designed to visually highlight classic swing trading setups based on the crossover of exponential moving averages (EMAs), with additional confirmation using Relative Strength (RS) compared to a benchmark asset (e.g., SPY).
The goal is to identify bullish momentum shifts that align both with technical structure (EMA crossover) and relative outperformance, helping traders focus on strong stocks in strong markets.
Logic
A signal is triggered when the following conditions are met:
The fast EMA (e.g., 10) crosses above the slow EMA (e.g., 20).
The closing price is above a third EMA (e.g., 50) to confirm bullish structure.
The asset's Relative Strength (RS) versus a benchmark is confirmed manually, based on an RSI comparison (not calculated inside the script).
The script is meant to be used alongside manual RS confirmation, using a secondary chart or overlay of the RS ratio.
Features
Visual labels and markers for clean charting of valid entry setups
Fully customizable EMA lengths
Optional highlighting of candle patterns near entry
Ideal for use with top-down analysis and watchlist filtering
Suggested Use
Works best on daily and 4H charts for swing trading setups
Combine with volume and price action analysis for higher probability trades
Use manual RS validation: confirm that the RSI of the selected stock is stronger than the RSI of SPY (or any benchmark of your choice)
Notes
This script does not execute trades or include stop loss/take profit logic, as it is intended for discretionary traders who want to visually scan for opportunities.
It also does not calculate RS internally, allowing flexibility in how you define strength (RS line, RSI comparison, or price ratio).