Bollinger Bands SRThis simple script base on Bollinger Bands to defined Support and Resistance and marked Bar False broken SR by Reversal Arrow. Detail of rule as below:
================================================
1.Defined Support and Resistance
1.1.Support
+ Key bar:
- Open Price lower than BB lower band, Close Price higher than BB lower band
+ Support Zone:
- Bottom Zone place at Low Price of Key bar
- Top Zone place at Median Price (HL2) of Key bar
1.2.Resistance
+ Key bar:
- Open Price higher than BB upper band, Close Price lower than BB upper band
+ Resistance Zone:
- Bottom Zone place at Median Price (HL2) of Key bar
- Top Zone place at High Price of Key bar
1.3.Median Line
+ Median Line place at half of Range limit by Support and Resistance
================================================
2.Defined False Break
2.1.Defined Bull Trap
+ High Price higher than Top of Resistance Zone
+ Close Price lower than Top of Resistance Zone
+ Open Price higher than Bottom of Resistance Zone
+ Bar Direction is downward
+ Body of current Bar greater than Body of previous bar
2.2.Defined Bear Trap
+ Low Price lower than Bottom of Support Zone
+ Close Price higher than Bottom of Support Zone
+ Open Price lower than Top of Support Zone
+ Bar Direction is upward
+ Body of current Bar greater than Body of previous bar
================================================
3.Defined Reversal Arrow and Alert
+ Arrow Down when Bull Trap appear
+ Arrow Up when Bear Trap appear
+ Alert when Reversal Arrow appear
================================================
4.Trading
4.1.Long Position
+ Consider open positon when Arrow Up appear
+ Stoploss place at Low Price of Arrow Bar
+ Take profit at Resistance Zone
+ Consider Exit Position when:
- Price moving above Median Line and has Bearish Reversal Pattern
4.2.Short Position
+ Consider open positon when Arrow Down appear
+ Stoploss place at High Price of Arrow Bar
+ Take profit at Support Zone
+ Consider Exit Position when:
- Price moving below Median Line and has Bullish Reversal Pattern
ค้นหาในสคริปต์สำหรับ "bar"
[BCT] Can BTC be predicted or is it purely random?Variance Ratio**This indicator can be applied to the ticker of your choice (not just BTC)**
Markets are said to be "efficient". An efficient market is by definition unpredictable - no matter the amount of ML, computation, or indicators thrown at it. In particular, in an efficient market, TA will not be of help.
An illustration of efficient markets is the WSJ's longstanding monkey vs. human contest:Blindfolded Monkey Beats Humans With Stock Picks, granted there are several flaws to it.
BTC is a relatively new market. New markets are typically highly inefficient (easier to make money) and become more and more efficient over time (harder to make money). How much more efficient is BTC becoming?
We apply the Variance Ratio method and apply it to BTC.
BACKGROUND ON THE VARIANCE RATIO METHOD
Based on 1988 MacKinlay's seminal paper "Stock Market Prices do not Follow a Random Walk", the idea is to exploit a phenomenon called "variance scaling".
For those keen on looking into the math, the short version of it is under the assumption of iid (random walk) we have the following:
H0: Var(Sum(returns over K bars))=Sum(Var(returns over 1 bar))=k*Var(return over 1 bar)
We look to reject or not H0 depending on the observations.
In this script, we compare the variance of the (log) returns for the chart selected between:
(1) The (average) variance over k bars (call this Vk)
(2) The (average) variance over 1 bar (call this V1)
H0 simply says that Vk=k*V1 if the stock follows a random walk.
We compute the Variance Ratio VR(k)=Variance(returns over k bar)/(Sum(Var(returns over 1 bar)))-1
We then compute the associated Z-score which we chart out for a configurable k number of bars.
HOW TO INTERPRET THE CHART
The line drawn is the Z-Score for VR(k). It represents the number of standard deviations of VR(k) from 0 - the further out, the less random.
- If the line is close / hovers around 0, the ticker appears to follow a random walk (i.e. may not be predictable)
- If the line is consistently > 2 or <-2, the ticker likely does not follow a random walk (i.e. may have predictable features)
- If the line is positive, it means that the Variance on the k bars is larger than the variance on 1 bar (more variance on longer timeframes)
- If the line is negative, it means that the Variance on the k bars is smaller than the variance on 1 bar (more variance on smaller timeframes)
USE CASES
- Identify timeframes where you won't be able to make money
- Identify whether a stock cannot be predicted (forget about TA, indicators etc. -- a random walk is not predictable)
- Identify whether a stock is becoming less and less predictable (Z-score amplitude will decrease over time)
FEATURES
- select the number of K bar to compare vs. 1 bar (default = 16) - ideally a power of 2 but any other number will work. The chart is based off this selection
- select the lookback period for the analysis (500 bars by default)
- select the source to analyze (default = close, but you may select other inputs to calculate the returns from)
- results form the statistical tests on different K's in the table on the right/bottom side of the chart (H0 rejected = not random walk; H0 not rejected = it essentially looks rather random and we can't conclude that it's not a random walk)
COMMENTARY ON BTC
- It appears BTC's absolute value of the ZScore on the Variance Ratio is declining year after year - corroborating an increasingly efficient market as new participants join.
- However, we can still detect a fair amount of potential inefficiency using this simple test.
As usual, this is not investment advice. DYOR.
With love,
🐵BCT🐵
Tape [LucF]█ OVERVIEW
This script prints an ersatz of a trading console's "tape" section to the right of your chart. It displays the time, price and volume of each update of the chart's feed. It also calculates volume delta for the bar. As it calculates from realtime information, it will not display information on historical bars.
█ FEATURES
Calculations
Each new line in the tape displays the last price/volume update from the TradingView feed that's building your chart. These updates do not necessarily correspond to ticks from the originating broker/exchange's matching engine. Multiple broker/exchange ticks are often aggregated in one chart update.
The script first determines if price has moved up or down since the last update. The polarity of the price change, in turn, determines the polarity of the volume for that specific update. If price does not move between consecutive updates, then the last known polarity is used. Using this method, we can calculate a running volume delta accumulation for the bar, which becomes the bar's final volume delta value when the bar closes (you can inspect values of elapsed realtime bars in the Data Window or the indicator's values). Note that these values will all reset if the script re-executes because of a change in inputs or a chart refresh.
While this method of calculating volume delta is not perfect, it is currently the most precise way of calculating volume delta available on TradingView at the moment. Calculating more precise results would require scripts to have access to bid/ask levels from any chart timeframe. Charts at seconds timeframes do use exchange/broker ticks when the feeds you are using allow for it, and this indicator will run on them, but tick data is not yet available from higher timeframes, for now. Also note that the method used in this script is far superior to the intrabar inspection technique used on historical bars in my other "Delta Volume" indicators. This is because volume delta here is calculated from many more realtime updates than the available intrabars in history.
Inputs
You can use the script's inputs to configure:
• The number of lines displayed in the tape.
• If new lines appear at the top or bottom.
• If you want to hide lines with low volume.
• The precision of volume values.
• The size of the text and the colors used to highlight either the tape's text or background.
• The position where you want the tape on your chart.
• Conditions triggering three different markers.
Display
Deltas are shown at the bottom of the tape. They are reset on each bar. Time delta displays the time elapsed since the beginning of the bar, on intraday timeframes only. Contrary to the price change display by TradingView at the top left of charts, which is calculated from the close of the previous bar, the price delta in the tape is calculated from the bar's open, because that's the information used in the calculation of volume delta. The time will become orange when volume delta's polarity diverges from that of the bar. The volume delta value represents the current, cumulative value for the bar. Its color reflects its polarity.
When new realtime bars appear on the chart, a ↻ symbol will appear before the volume value in tape lines.
Markers
There are three types of markers you can choose to display:
• Marker 1 on volume bumps. A bump is defined as two consecutive and increasing/decreasing plus/minus delta volume values,
when no divergence between the polarity of delta volume and the bar occurs on the second bar.
• Marker 2 on volume delta for the bar exceeding a limit of your choice when there is no divergence between the polarity of delta volume and the bar. These trigger at the bar's close.
• Marker 3 on tape lines with volume exceeding a threshold. These trigger in realtime. Be sure to set a threshold high enough so that it doesn't generate too many alerts.
These markers will only display briefly under the bar, but another marker appears next to the relevant line in the tape.
The marker conditions are used to trigger alerts configured on the script. Alert messages will mention the marker(s) that triggered the specific alert event, along with the relevant volume value that triggered the marker. If more than one marker triggers a single alert, they will overprint under the bar, which can make it difficult to distinguish them.
For more detailed on-chart analysis of realtime volume delta, see my Delta Volume Realtime Action .
█ NOTES FOR CODERS
This script showcases two new Pine features:
• Tables, which allow Pine programmers to display tabular information in fixed locations of the chart. The tape uses this feature.
See the Pine User Manual's page on Tables for more information.
• varip -type variables which we can use to save values between realtime updates.
See the " Using `varip` variables " publication by PineCoders for more information.
LPS PLSY INDICATOR for VSA( Google translation from Russian.)
Signal conditions:
1. There is a bar with an increased volume
2. The next bar after the bar with increased volume closes in the other direction
Arguments:
Comparison period - the period during which the volumes are compared with each other to calculate the bars with the increased volume.
sensitivity of increased volumes - according to the percentrank indicator - the border above which the volume will be considered large, the same as in the Volume on bar VSA indicator - indicator V2 - for clarity of how it works, I recommend looking at it.
efficiency of the next bar - (efficiency of the next bar from 0 to 100) ") - the efficiency of buying or selling on the next bar, bar field with a large volume. If the value is closer to 100, then the bars whose spread corresponds to the inserted volume will be taken into account, if closer to 0, then bars with a small spread and a large volume can be taken into account.
This argument is calculated similarly to the efficiency of bulls and bears for VSA
Attention.
In its original form, this indicator can give a large number of false signals. To filter out false signals, it should be used after studying the theory of VSA.
Russian language
Условия для сигнала:
1. Имеется бар с повышенным объёмом
2. Следующий бар после бара с повышенным объемом закрывается в другую сторону
Аргументы:
период для сравнения – период, на котором сравниваются между собой объёмы, для вычисления баров с повышенным объемом.
чувствительность повышенных объемов – согласно индикатору percentrank – граница выше которой̆ объем будет считаться большим, то же самое, что в индикаторе Volume on bar VSA - indicator V2 – для наглядности как это работает рекомендую посмотреть его.
эффективность следующего бара от 0 до 100 - эффективность покупок или продаж на следующем баре, поле бара с большим объемом. Если значение ближе к 100 то будут учитываться бары у которых спред соответствует вложенному объему, если ближе к 0 то могут учитываться бары у которых спред маленький а объем большой.
Расчёт этого аргумента производится аналогично индикатору efficiency of bulls and bears for VSA
Примечание
В исходном виде этот индикатор может давать большое количество ложных сигналов. Для отсеивания ложных сигналов его следует применять после изучения теории VSA.
Time Offset Calculation Framework - PineCoders FAQ█ OVERVIEW
Calculating time-based offsets is necessary when coders need to draw lines or labels into the future because using `xloc = xloc.bar_time` in `label.new()` or `line.new()` is then mandatory.
This script provides a function to help with those calculations:
f_timeFrom(_from, _qty, _units)
The function calculates a negative (into the past) or positive (into the future) offset from the current bar's starting or closing time, or from the current time of day.
The offset can be expressed in units of chart resolution, or in seconds, minutes, hours, days, months or years.
█ HOW TO USE THE FRAMEWORK
1. You will need to include the supplied `f_resInMinutes()` function in your script in order to use `f_timeFrom()`.
It is used to calculate offsets using chart units when `f_timeFrom(_, _, "chart")` is used.
2. Whether you use `f_timeFrom()` for labels or lines, remember to use `xloc = xloc.bar_time`, as the default is `xloc = xloc.bar_index`.
3. Use `f_timeFrom()` for the `x` argument in `label.new()`, or for `x1` or `x2` in `line.new()`.
It can of course also be used in the relevant `label.set_*()` or `line.set_*()` functions.
Examples
// Label 3 days into the future from current bar's time.
label.new(f_timeFrom("bar", 3, "days"), high, "time + 3 days", xloc.bar_time)
// Label 2 hours into the future from current time
label.new(f_timeFrom("now", 2, "hours"), high, "timenow + 3 hours", xloc.bar_time)
// Label at bar's time plus 4 units of the chart's resolution.
label.new(f_timeFrom("bar", 4, "chart"), high, "time + 3 chart units", xloc.bar_time)
The parameters are:
f_timeFrom(_from, _qty, _units) =>
// _from : starting time from where the offset is calculated: "bar" to start from the bar's starting time, "close" to start from the bar's closing time, "now" to start from the current time.
// _qty : the +/- qty of _units of offset required. A "series float" can be used but it will be cast to a "series int".
// _units : string containing one of the seven allowed time units: "chart" (chart's resolution), "seconds", "minutes", "hours", "days", "months", "years".
█ LIMITATIONS
While this function makes it easier for coders to calculate time offsets using a variety of methods, it does not solve the inherent problematic that offsets do not calculate accurately when bars are missing between the start and end times of the offset. There is currently no way to circumvent this challenge in Pine.
Missing bars will occur on holidays, during no-trade periods (including normal periods where markets are closed) and when there are irregularities in data feeds. Charts at seconds resolutions, for example, will often miss bars when there are no trades to update the feed. On hourly charts of non 24x7 markets, periods when the markets are closed will also cause irregularities, as will holidays on day charts.
Other irregularities can occur because of how the offsets are calculated. A calculation of a one second offset from the bar's time will end one bar further on daily charts, for example. `f_timeFrom()` is no panacea; it simply makes offsets easier to calculate, however imprecise they are.
█ HOW TO USE THIS SCRIPT
The script's Inputs allow you to specify an offset, its units and starting time, and control the frequency of bars where lines are drawn.
Use the Inputs to play around with the parameters; you will quickly notice the irregularities mentioned above and be able to judge the usefulness of time-based offsets on the type of chart you use.
Look first. Then leap.
efficiency of bulls and bears for VSA(Google translation from Russian.)
This indicator shows the effectiveness of selling or buying.
It is calculated as follows: using percentrank, the volume and the value of the spread are estimated (momentum = 1)
the resulting estimate of the volume value is divided by the estimate of the spread (momentum = 1) and thus we obtain the value. The larger it is, the more efficient and easier the price movement was.
If the indicator value is small, then this means that the movement was ineffective, because the volume (money) was invested. but no result.
The color of the volume bars is assigned as follows:
Buyers:
If the volume is large - Blue - green
If middle, then blue
Small - light blue
Sellers:
If the volume is large - Burgundy color
If middle, then purple
Small volume - light purple
Indicator parameters:
Comparison period - the period at which the volumes and spread are compared with each other - by default it is 50, selected as the most universal period suitable for different timeframes. But for daytime ones. Weekly and monthly timeframes may need to be shortened. This is true after significant spikes in volume that are exceptional over the long term.
Period spread - Bars from close to close - or in other words, it is momentum - defaults to 1
sensitivity of increased volumes - according to the percentrank indicator - the limit above which the volume will be considered large, the same as in the Volume on bar VSA - indicator V2 - for clarity, I recommend looking at it.
The default is 85, which means. that if the current value of the volume is greater than 85% of the remaining values in this period, then such a value of the volume will be considered high.
medium volume sensitivity - the same sensitivity of increased volumes but for medium volumes.
multiplier of increased volumes - this is an empirical factor to emphasize the importance of increased volumes - default = 20
multiplier of average volumes - the same. As above, but for medium volumes - the default is 10
reduced volume multiplier - Default is 1.
Knowledge of VSA is required to read this indicator
This indicator is recommended for use with indicators:
Volume on bar VSA - indicator V2
BAR for VSA
Russian language
Этот индикатор показывает эффективность продаж или покупок.
Рассчитывается следующим образом: с помощью percentrank оценивается величина объема и велечина спреда (momentum = 1)
полученная оценка велечины объема делится на оценку спреда (momentum = 1) и таким образом получаем значение. Чем оно больше, тем движение цены было эффективнее и легче.
Если значение индикатора маленькое, то это означает, что движение было неэффективным, поскольку объем (деньги) вложили. а результата нет.
Цвет барам объемов присваиваются следующим образом:
У покупателей:
Если объем большой - Сине – зелёный цвет
Если средний – то голубой
Маленький – свело-голубой
У продавцов:
Если объем большой - Бордовый цвет
Если средний – то пурпурный
Маленький объем – светло-пурпурный
Параметры индикатора:
Comparison period (период для сравнения) – период на котором между собой сравниваются объемы и спред – по умолчанию равно 50 , выбрано как наиболее универсальный период подходящий для различных таймфреймов. Но для дневных. Недельных и месячных таймфреймов может потребоваться уменьшить период. Это актуально после значительных всплесков объемов, которые являются исключительными на длительном периоде.
Period spread - Bars from close to close (Период спреда - Баров от закрытия до закрытия) – или другими словами это momentum – по умолчанию равно 1
sensitivity of increased volumes (чувствительность повышенных объемов) – согласно индикатору percentrank – граница выше которой объем будет считаться большим, то же самое, что в индикаторе Volume on bar VSA - indicator V2 – для наглядности как это работает рекомендую посмотреть его.
По умолчанию задано 85 – это означает. что если текущее значение объема больше, чем 85% остальных значений на этом периоде, то такое значение объема будет считаться высоким.
medium volume sensitivity (чувствительность средних объемов) – то же самое sensitivity of increased volumes но для средних объемов.
multiplier of increased volumes (множитель (вес) повышенных объемов) – это эмперический коэффициент для придания особой важности повышенным объемам- по умолчанию = 20
multiplier of average volumes (множитель (вес) средних объемов) – то же самое. Что и выше, но для средних объемов – по умолчанию равно 10
reduced volume multiplier (множитель (вес) пониженных объемов) – по умолчанию равно 1.
Для чтения данного индикатора необходимо знание VSA
Этот индикатор рекомендуется использовать с индикаторами:
Volume on bar VSA - indicator V2
BAR for VSA
ADX with Color like MACD HistogramThis is a usual ADX Indicator but the colors change when the next bar falls or grows from the previous bar.
I think that the use of ADX can be maximized by seeing whether the movement is lower or higher than the previous like MACD Histogram.
The ADX indicator is very powerful for driving long-term trends and is effectively used for 4-hour or 1-hour Time Frames.
When ADX is above level 20, the color of the Bar will be blue or light blue. The blue bar means that the bar is higher than the previous bar. The light blue bar means the bar is lower than the previous one.
When ADX is below level 20, the color of the bar will be dark gray or light gray. The dark gray bar means that the bar is lower than the previous bar. The light gray bar means the bar is higher than the previous bar.
When the bar turns blue that's when we can add shares to our winning position.
When the price is above level 40, the background of the bars will be red, indicating that the price is in a very strong trend and will run out of its thrust soon. That's when we get ready to take profit, which is when the ADX Bar which is blue turns light blue.
-
FYI, I use ADX just for adding the shares to my winning position and exiting the market. I don't wait for ADX turns blue to enter the market.
Ruckard TradingLatinoThis strategy tries to mimic TradingLatino strategy.
The current implementation is beta.
Si hablas castellano o espanyol por favor consulta MENSAJE EN CASTELLANO más abajo.
It's aimed at BTCUSDT pair and 4h timeframe.
STRATEGY DEFAULT SETTINGS EXPLANATION
max_bars_back=5000 : This is a random number of bars so that the strategy test lasts for one or two years
calc_on_order_fills=false : To wait for the 4h closing is too much. Try to check if it's worth entering a position after closing one. I finally decided not to recheck if it's worth entering after an order is closed. So it is false.
calc_on_every_tick=false
pyramiding=0 : We only want one entry allowed in the same direction. And we don't want the order to scale by error.
initial_capital=1000 : These are 1000 USDT. By using 1% maximum loss per trade and 7% as a default stop loss by using 1000 USDT at 12000 USDT per BTC price you would entry with around 142 USDT which are converted into: 0.010 BTC . The maximum number of decimal for contracts on this BTCUSDT market is 3 decimals. E.g. the minimum might be: 0.001 BTC . So, this minimal 1000 amount ensures us not to entry with less than 0.001 entries which might have happened when using 100 USDT as an initial capital.
slippage=1 : Binance BTCUSDT mintick is: 0.01. Binance slippage: 0.1 % (Let's assume). TV has an integer slippage. It does not have a percentage based slippage. If we assume a 1000 initial capital, the recommended equity is 142 which at 11996 USDT per BTC price means: 0.011 BTC. The 0.1% slippage of: 0.011 BTC would be: 0.000011 . This is way smaller than the mintick. So our slippage is going to be 1. E.g. 1 (slippage) * 0.01 (mintick)
commission_type=strategy.commission.percent and commission_value=0.1 : According to: binance . com / en / fee / schedule in VIP 0 level both maker and taker fees are: 0.1 %.
BACKGROUND
Jaime Merino is a well known Youtuber focused on crypto trading
His channel TradingLatino
features monday to friday videos where he explains his strategy.
JAIME MERINO STANCE ON BOTS
Jaime Merino stance on bots (taken from memory out of a 2020 June video from him):
'~
You know. They can program you a bot and it might work.
But, there are some special situations that the bot would not be able to handle.
And, I, as a human, I would handle it. And the bot wouldn't do it.
~'
My long term target with this strategy script is add as many
special situations as I can to the script
so that it can match Jaime Merino behaviour even in non normal circumstances.
My alternate target is learn Pine script
and enjoy programming with it.
WARNING
This script might be bigger than other TradingView scripts.
However, please, do not be confused because the current status is beta.
This script has not been tested with real money.
This is NOT an official strategy from Jaime Merino.
This is NOT an official strategy from TradingLatino . net .
HOW IT WORKS
It basically uses ADX slope and LazyBear's Squeeze Momentum Indicator
to make its buy and sell decisions.
Fast paced EMA being bigger than slow paced EMA
(on higher timeframe) advices going long.
Fast paced EMA being smaller than slow paced EMA
(on higher timeframe) advices going short.
It finally add many substrats that TradingLatino uses.
SETTINGS
__ SETTINGS - Basics
____ SETTINGS - Basics - ADX
(ADX) Smoothing {14}
(ADX) DI Length {14}
(ADX) key level {23}
____ SETTINGS - Basics - LazyBear Squeeze Momentum
(SQZMOM) BB Length {20}
(SQZMOM) BB MultFactor {2.0}
(SQZMOM) KC Length {20}
(SQZMOM) KC MultFactor {1.5}
(SQZMOM) Use TrueRange (KC) {True}
____ SETTINGS - Basics - EMAs
(EMAS) EMA10 - Length {10}
(EMAS) EMA10 - Source {close}
(EMAS) EMA55 - Length {55}
(EMAS) EMA55 - Source {close}
____ SETTINGS - Volume Profile
Lowest and highest VPoC from last three days
is used to know if an entry has a support
VPVR of last 100 4h bars
is also taken into account
(VP) Use number of bars (not VP timeframe): Uses 'Number of bars {100}' setting instead of 'Volume Profile timeframe' setting for calculating session VPoC
(VP) Show tick difference from current price {False}: BETA . Might be useful for actions some day.
(VP) Number of bars {100}: If 'Use number of bars (not VP timeframe)' is turned on this setting is used to calculate session VPoC.
(VP) Volume Profile timeframe {1 day}: If 'Use number of bars (not VP timeframe)' is turned off this setting is used to calculate session VPoC.
(VP) Row width multiplier {0.6}: Adjust how the extra Volume Profile bars are shown in the chart.
(VP) Resistances prices number of decimal digits : Round Volume Profile bars label numbers so that they don't have so many decimals.
(VP) Number of bars for bottom VPOC {18}: 18 bars equals 3 days in suggested timeframe of 4 hours. It's used to calculate lowest session VPoC from previous three days. It's also used as a top VPOC for sells.
(VP) Ignore VPOC bottom advice on long {False}: If turned on it ignores bottom VPOC (or top VPOC on sells) when evaluating if a buy entry is worth it.
(VP) Number of bars for VPVR VPOC {100}: Number of bars to calculate the VPVR VPoC. We use 100 as Jaime once used. When the price bounces back to the EMA55 it might just bounce to this VPVR VPoC if its price it's lower than the EMA55 (Sells have inverse algorithm).
____ SETTINGS - ADX Slope
ADX Slope
help us to understand if ADX
has a positive slope, negative slope
or it is rather still.
(ADXSLOPE) ADX cut {23}: If ADX value is greater than this cut (23) then ADX has strength
(ADXSLOPE) ADX minimum steepness entry {45}: ADX slope needs to be 45 degrees to be considered as a positive one.
(ADXSLOPE) ADX minimum steepness exit {45}: ADX slope needs to be -45 degrees to be considered as a negative one.
(ADXSLOPE) ADX steepness periods {3}: In order to avoid false detection the slope is calculated along 3 periods.
____ SETTINGS - Next to EMA55
(NEXTEMA55) EMA10 to EMA55 bounce back percentage {80}: EMA10 might bounce back to EMA55 or maybe to 80% of its complete way to EMA55
(NEXTEMA55) Next to EMA55 percentage {15}: How much next to the EMA55 you need to be to consider it's going to bounce back upwards again.
____ SETTINGS - Stop Loss and Take Profit
You can set a default stop loss or a default take profit.
(STOPTAKE) Stop Loss % {7.0}
(STOPTAKE) Take Profit % {2.0}
____ SETTINGS - Trailing Take Profit
You can customize the default trailing take profit values
(TRAILING) Trailing Take Profit (%) {1.0}: Trailing take profit offset in percentage
(TRAILING) Trailing Take Profit Trigger (%) {2.0}: When 2.0% of benefit is reached then activate the trailing take profit.
____ SETTINGS - MAIN TURN ON/OFF OPTIONS
(EMAS) Ignore advice based on emas {false}.
(EMAS) Ignore advice based on emas (On closing long signal) {False}: Ignore advice based on emas but only when deciding to close a buy entry.
(SQZMOM) Ignore advice based on SQZMOM {false}: Ignores advice based on SQZMOM indicator.
(ADXSLOPE) Ignore advice based on ADX positive slope {false}
(ADXSLOPE) Ignore advice based on ADX cut (23) {true}
(STOPTAKE) Take Profit? {false}: Enables simple Take Profit.
(STOPTAKE) Stop Loss? {True}: Enables simple Stop Loss.
(TRAILING) Enable Trailing Take Profit (%) {True}: Enables Trailing Take Profit.
____ SETTINGS - Strategy mode
(STRAT) Type Strategy: 'Long and Short', 'Long Only' or 'Short Only'. Default: 'Long and Short'.
____ SETTINGS - Risk Management
(RISKM) Risk Management Type: 'Safe', 'Somewhat safe compound' or 'Unsafe compound'. ' Safe ': Calculations are always done with the initial capital (1000) in mind. The maximum losses per trade/day/week/month are taken into account. ' Somewhat safe compound ': Calculations are done with initial capital (1000) or a higher capital if it increases. The maximum losses per trade/day/week/month are taken into account. ' Unsafe compound ': In each order all the current capital is gambled and only the default stop loss per order is taken into account. That means that the maximum losses per trade/day/week/month are not taken into account. Default : 'Somewhat safe compound'.
(RISKM) Maximum loss per trade % {1.0}.
(RISKM) Maximum loss per day % {6.0}.
(RISKM) Maximum loss per week % {8.0}.
(RISKM) Maximum loss per month % {10.0}.
____ SETTINGS - Decimals
(DECIMAL) Maximum number of decimal for contracts {3}: How small (3 decimals means 0.001) an entry position might be in your exchange.
EXTRA 1 - PRICE IS IN RANGE indicator
(PRANGE) Print price is in range {False}: Enable a bottom label that indicates if the price is in range or not.
(PRANGE) Price range periods {5}: How many previous periods are used to calculate the medians
(PRANGE) Price range maximum desviation (%) {0.6} ( > 0 ): Maximum positive desviation for range detection
(PRANGE) Price range minimum desviation (%) {0.6} ( > 0 ): Mininum negative desviation for range detection
EXTRA 2 - SQUEEZE MOMENTUM Desviation indicator
(SQZDIVER) Show degrees {False}: Show degrees of each Squeeze Momentum Divergence lines to the x-axis.
(SQZDIVER) Show desviation labels {False}: Whether to show or not desviation labels for the Squeeze Momentum Divergences.
(SQZDIVER) Show desviation lines {False}: Whether to show or not desviation lines for the Squeeze Momentum Divergences.
EXTRA 3 - VOLUME PROFILE indicator
WARNING: This indicator works not on current bar but on previous bar. So in the worst case it might be VP from 4 hours ago. Don't worry, inside the strategy calculus the correct values are used. It's just that I cannot show the most recent one in the chart.
(VP) Print recent profile {False}: Show Volume Profile indicator
(VP) Avoid label price overlaps {False}: Avoid label prices to overlap on the chart.
EXTRA 4 - ZIGNALY SUPPORT
(ZIG) Zignaly Alert Type {Email}: 'Email', 'Webhook'. ' Email ': Prepare alert_message variable content to be compatible with zignaly expected email content format. ' Webhook ': Prepare alert_message variable content to be compatible with zignaly expected json content format.
EXTRA 5 - DEBUG
(DEBUG) Enable debug on order comments {False}: If set to true it prepares the order message to match the alert_message variable. It makes easier to debug what would have been sent by email or webhook on each of the times an order is triggered.
HOW TO USE THIS STRATEGY
BOT MODE: This is the default setting.
PROPER VOLUME PROFILE VIEWING: Click on this strategy settings. Properties tab. Make sure Recalculate 'each time the order was run' is turned off.
NEWBIE USER: (Check PROPER VOLUME PROFILE VIEWING above!) You might want to turn on the 'Print recent profile {False}' setting. Alternatively you can use my alternate realtime study: 'Resistances and supports based on simplified Volume Profile' but, be aware, it might consume one indicator.
ADVANCED USER 1: Turn on the 'Print price is in range {False}' setting and help us to debug this subindicator. Also help us to figure out how to include this value in the strategy.
ADVANCED USER 2: Turn on the all the (SQZDIVER) settings and help us to figure out how to include this value in the strategy.
ADVANCED USER 3: (Check PROPER VOLUME PROFILE VIEWING above!) Turn on the 'Print recent profile {False}' setting and report any problem with it.
JAIME MERINO: Just use the indicator as it comes by default. It should only show BUY signals, SELL signals and their associated closing signals. From time to time you might want to check 'ADVANCED USER 2' instructions to check that there's actually a divergence. Check also 'ADVANCED USER 1' instructions for your amusement.
EXTRA ADVICE
It's advised that you use this strategy in addition to these two other indicators:
* Squeeze Momentum Indicator
* ADX
so that your chart matches as close as possible to TradingLatino chart.
ZIGNALY INTEGRATION
This strategy supports Zignaly email integration by default. It also supports Zignaly Webhook integration.
ZIGNALY INTEGRATION - Email integration example
What you would write in your alert message:
||{{strategy.order.alert_message}}||key=MYSECRETKEY||
ZIGNALY INTEGRATION - Webhook integration example
What you would write in your alert message:
{ {{strategy.order.alert_message}} , "key" : "MYSECRETKEY" }
CREDITS
I have reused and adapted some code from
'Directional Movement Index + ADX & Keylevel Support' study
which it's from TradingView console user.
I have reused and adapted some code from
'3ema' study
which it's from TradingView hunganhnguyen1193 user.
I have reused and adapted some code from
'Squeeze Momentum Indicator ' study
which it's from TradingView LazyBear user.
I have reused and adapted some code from
'Strategy Tester EMA-SMA-RSI-MACD' study
which it's from TradingView fikira user.
I have reused and adapted some code from
'Support Resistance MTF' study
which it's from TradingView LonesomeTheBlue user.
I have reused and adapted some code from
'TF Segmented Linear Regression' study
which it's from TradingView alexgrover user.
I have reused and adapted some code from
"Poor man's volume profile" study
which it's from TradingView IldarAkhmetgaleev user.
FEEDBACK
Please check the strategy source code for more detailed information
where, among others, I explain all of the substrats
and if they are implemented or not.
Q1. Did I understand wrong any of the Jaime substrats (which I have implemented)?
Q2. The strategy yields quite profit when we should long (EMA10 from 1d timeframe is higher than EMA55 from 1d timeframe.
Why the strategy yields much less profit when we should short (EMA10 from 1d timeframe is lower than EMA55 from 1d timeframe)?
Any idea if you need to do something else rather than just reverse what Jaime does when longing?
FREQUENTLY ASKED QUESTIONS
FAQ1. Why are you giving this strategy for free?
TradingLatino and his fellow enthusiasts taught me this strategy. Now I'm giving back to them.
FAQ2. Seriously! Why are you giving this strategy for free?
I'm confident his strategy might be improved a lot. By keeping it to myself I would avoid other people contributions to improve it.
Now that everyone can contribute this is a win-win.
FAQ3. How can I connect this strategy to my Exchange account?
It seems that you can attach alerts to strategies.
You might want to combine it with a paying account which enable Webhook URLs to work.
I don't know how all of this works right now so I cannot give you advice on it.
You will have to do your own research on this subject. But, be careful. Automating trades, if not done properly,
might end on you automating losses.
FAQ4. I have just found that this strategy by default gives more than 3.97% of 'maximum series of losses'. That's unacceptable according to my risk management policy.
You might want to reduce default stop loss setting from 7% to something like 5% till you are ok with the 'maximum series of losses'.
FAQ5. Where can I learn more about your work on this strategy?
Check the source code. You might find unused strategies. Either because there's not a substantial increases on earnings. Or maybe because they have not been implemented yet.
FAQ6. How much leverage is applied in this strategy?
No leverage.
FAQ7. Any difference with original Jaime Merino strategy?
Most of the times Jaime defines an stop loss at the price entry. That's not the case here. The default stop loss is 7% (but, don't be confused it only means losing 1% of your investment thanks to risk management). There's also a trailing take profit that triggers at 2% profit with a 1% trailing.
FAQ8. Why this strategy return is so small?
The strategy should be improved a lot. And, well, backtesting in this platform is not guaranteed to return theoric results comparable to real-life returns. That's why I'm personally forward testing this strategy to verify it.
MENSAJE EN CASTELLANO
En primer lugar se agradece feedback para mejorar la estrategia.
Si eres un usuario avanzado y quieres colaborar en mejorar el script no dudes en comentar abajo.
Ten en cuenta que aunque toda esta descripción tenga que estar en inglés no es obligatorio que el comentario esté en inglés.
CHISTE - CASTELLANO
¡Pero Jaime!
¡400.000!
¡Tu da mun!
EulerMethod: DeltaEN
Shows the Integral Volume Delta (IVD)
It is a detailed OBV. Each bar sums up the volume for bars of a shorter timeframe.
For example, inside a 1M bar, every 12h bar is added up, and inside a 1h bar, every 1min bar is added. Thus, a conditional volume delta inside the bar is obtained.
The indicator for each bar shows the volume of purchases (positive), sales (negative) and the difference — IVD
The delta histogram is thicker than the volume histograms
Settings detalisation
M — 6 hours, 12 hours and 1 day for the M timeframe (720 by default)
W — 4 hours, 6 hours and 12 hours for the W timeframe (240 by default)
D — 30 minutes, 1 hour and 2 hours for the D timeframe (60 by default)
H — 1 minute, 5 minutes and 15 minutes for timeframes [1h, D) (default is 1)
For timeframes of 15m and less, the calculation is carried out by minute bars
VSA mode
The classic OBV adds volume to the cumulative sum under the condition Сlose (n) > Close (n-1) and subtracts it under the condition Close (n) < Close (n-1)
When VSA mode is disabled, all volumes are summed up under these conditions.
When the VSA approximation is turned on, the volume per bar of detail is divided by the factor (Close - Low) / (High - Low)
That is, it takes into account the spread per bar and closing relative to the spread. VSA is enabled by default
A/D mode
Shows the cumulative Accumulation / Distribution Index
The delta of the detail bar is multiplied by (High + Low + Close) / 3 bars, the result is added to the cumulative sum
No additional price conversions required due to integral summation
Index line view is customizable
EM Delta does not receive intermediate values in real time.
To see the result, wait until the bar closes or switch to a smaller timeframe
RU
Показывает Интегральную Дельту Объёма (ИДО)
Представляет собой детализированный OBV. В каждом баре суммируется объём за бары меньшего таймфрейма.
Например, внутри 1М-бара суммируется каждый 12h-бар, а внутри 1h — каждый 1m-бар. Таким образом получается условная дельта объёма внутри бара
Индикатор на каждый бар показывает объём покупок (положительный), объём продаж (отрицательный) и разницу — ИДО
Гистограмма дельты толще гистограмм объёмов
Настройки детализации внутри бара
M — 6 часов, 12 часов и 1 день для таймфрейма M (по-умолчанию 720)
W — 4 часа, 6 часов и 12 часов для таймфрейма W (по-умолчанию 240)
D — 30 минут, 1 час и 2 часа для таймфрейма D (по-умолчанию 60)
H — 1 минута, 5 минут и 15 минут для таймфреймов [1h, D) (по-умолчанию 1)
Для таймфреймов 15m и меньше расчёт ведётся по минутным барам
Режим VSA
Классический OBV прибавляет объём к кумулятивной сумме при условии Сlose(n) > Close(n-1) и отнимает при условии Close(n) < Close(n-1)
При отключении режима VSA все объёмы суммируются по этим условиям
При включённой VSA-аппроксимации объём за бар детализации делится по фактору (Close - Low) / (High - Low)
То есть учитывает спред за бар и закрытие относительно спреда. По-умолчанию режим VSA включен
Режим A/D
Показывает кумулятивный индекс Накопления/Распределения
Дельта бара детализации умножается на (High + Low + Close) / 3 бара, результат прибавляется к кумулятивной сумме
Дополнительные преобразования цены не требуются ввиду интегрального суммирования
Вид линии индекса настраивается
EM Delta не получает промежуточные значения в реальном времени.
Чтобы увидеть результат, дождитесь закрытия бара или перейдите на меньший таймфрейм
Reversal finderThis script is used to visually highlight candles which may signal a reversal following a false break of a support or resistance level.
Inputs are:
Lookback period: look for the highest high and the lowest low of the prior x bars.
SMA length: used for a simple moving average of the range (high minus low) of the prior x bars.
Range multiple: used to filter out signals for any bars with a range smaller than the average range of the preceding bars (determined by SMA length above) e.g. a range multiple of 2 will only show signals for bars with a range twice of that of the average range of the preceding bars.
Range threshold: used to filter signals for bars both the open and close of the bar are at the extreme end of the bar e.g. a threshold setting of 33% will only show buy signals for bars which open and close within the upper 1/3rd of the bar’s high/low range (vice versa for sell signals). This helps highlight, for example, bars with a high which exceeds resistance in a current range but which close back inside the range.
Highlight signal bars?: This will highlight bars with a buy signal in green, sell signal bars in red, and all other bars in grey. The script was designed for use with a dark background, so you will need to play around with the bar colours in the style settings to suit your preferences.
Settings used in the example chart are not the default – they are lookback: 5, SMA length: 20, range multiple: 1.2, range threshold: 33%.
Enjoy!
Volume Profile Free Pro (25 Levels Value Area VWAP) by RRBVolume Profile Free Pro by RagingRocketBull 2019
Version 1.0
All available Volume Profile Free Pro versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: style columns implementation
ver 2.0: style histogram implementation
ver 3.0: style line implementation
This indicator calculates Volume Profile for a given range and shows it as a histogram consisting of 25 horizontal bars.
It can also show Point of Control (POC), Developing POC, Value Area/VWAP StdDev High/Low as dynamically moving levels.
Free accounts can't access Standard TradingView Volume Profile, hence this indicator.
There are 3 basic methods to calculate the Value Area for a session.
- original method developed by Steidlmayr (calculated around POC)
- classical method using StdDev (calculated around the mean VWAP)
- another method based on the mean absolute deviation (calculated around the median)
POC is a high volume node and can be used as support/resistance. But when far from the day's average price it may not be as good a trend filter as the other methods.
The 80% Rule: When the market opens above/below the Value Area and then returns/stays back inside for 2 consecutive 30min periods it has 80% chance of filling VA (like a gap).
There are several versions: Free, Free Pro, Free MAX. This is the Free Pro version. The Differences are listed below:
- Free: 30 levels, Buy/Sell/Total Volume Profile views, POC
- Free Pro: 25 levels, +Developing POC, Value Area/VWAP High/Low Levels, Above/Below Area Dimming
- Free MAX: 50 levels, packed to the limit
Features:
- Volume Profile with up to 25 levels (3 implementations)
- POC, Developing POC Levels
- Buy/Sell/Total/Side by Side View modes
- Side Cover
- Value Area, VAH/VAL dynamic levels
- VWAP High/Low dynamic levels with Source, Length, StdDev as params
- Show/Hide all levels
- Dim Non Value Area Zones
- Custom Range with Highlighting
- 3 Anchor points for Volume Profile
- Flip Levels Horizontally
- Adjustable width, offset and spacing of levels
- Custom Color for POC/VA/VWAP levels and Transparency for buy/sell levels
Usage:
- specify max_level/min_level for a range (required in ver 1.0/2.0, auto/optional in ver 3.0 = set to highest/lowest)
- select range (start_bar, range length), confirm with range highlighting
- select mode Value Area or VWAP to show corresponding levels.
- flip/select anchor point to position the buy/sell levels, adjust width and spacing as needed
- select Buy/Sell/Total/Side by Side view mode
- use POC/Developing POC/VA/VWAP High/Low as S/R levels. Usually daily values from 1-3 days back are used as levels for the current day.
- Green - buy volume of a specific price level in a range, Red - sell volume. Green + Red = Total volume of a price level in a range
There's no native support for vertical histograms in Pinescript (with price axis as base)
Basically, there are 4 ways to plot a series of horizontal bars stacked on top of each other:
1. plotshape style labeldown (ver 0 prototype discarded)
- you can have a set of fixed width/height text labels consisting of a series of underscores and moving dynamically as levels. Level offset controls visible length.
- you can move levels and scale the base width of the volume profile histogram dynamically
- you can calculate the highest/lowest range values automatically. max_level/min_level inputs are optional
- you can't fill the gaps between levels/adjust/extend width, height - this results in a half baked volume profile and looks ugly
- fixed text level height doesn't adjust and looks bad on a log scale
- fixed font width also doesn't scale and can't be properly aligned with bars when zooming
2. plot style columns + hist_base (ver 1.0)
- you can plot long horizontal bars using a series of small adjacent vertical columns with level offsets controlling visible length.
- you can't hide/move levels of the volume profile histogram dynamically on each bar, they must be plotted at all times regardless - you can't delete the history of a plot.
- you can't scale the base width of the volume profile histogram dynamically, can't set show_last from input, must use a preset fixed width for each level
- hist_base can only be a static const expression, can't be assigned highest/lowest range values automatically - you have to specify max_level/min_level manually from input
- you can't control spacing between columns - there's an equalizer bar effect when you zoom in, and solid bars when you zoom out
- using hist_base for levels results in ugly load/redraw times - give it 3-5 sec to finalize its shape after each UI param change
- level top can be properly aligned with another level's bottom producing a clean good looking histogram
- columns are properly aligned with bars automatically
3. plot style histogram + hist_base (ver 2.0)
- you can plot long horizontal bars using a series of small vertical bars (horizontal histogram) instead of columns.
- you can control the width of each histogram bar comprising a level (spacing/horiz density). Large enough width will cause bar overlapping and give level a "solid" look regardless of zoom
- you can only set width <= 4 in UI Style - custom textbox input is provided for larger values. You can set width and plot transparency from input
- this method still uses hist_base and inherits other limitations of ver 2.0
4. plot style lines (ver 3.0)
- you can also plot long horizontal bars using lines with level offsets controlling visible length.
- lines don't need hist_base - fast and smooth redraw times
- you can calculate the highest/lowest range values automatically. max_level/min_level inputs are optional
- level top can't be properly aligned with another level's bottom and have a proper spacing because line width uses its own units and doesn't scale
- fixed line width of a level (vertical thickness) doesn't scale and looks bad on log (level overlapping)
- you can only set width <= 4 in UI Style, a custom textbox input is provided for larger values. You can set width and plot transparency from input
Notes:
- hist_base for levels results in ugly load/redraw times - give it 3-5 sec to finalize its shape after each UI param change
- indicator is slow on TFs with long history 10000+ bars
- Volume Profile/Value Area are calculated for a given range and updated on each bar. Each level has a fixed width. Offsets control visible level parts. Side Cover hides the invisible parts.
- Custom Color for POC/VA/VWAP levels - UI Style color/transparency can only change shape's color and doesn't affect textcolor, hence this additional option
- Custom Widh for levels - UI Style supports only width <= 4, hence this additional option
- POC is visible in both modes. In VWAP mode Developing POC becomes VWAP, VA High and Low => VWAP High and Low correspondingly to minimize the number of plot outputs
- You can't change buy/sell level colors (only plot transparency) - this requires 2x plot outputs exceeding max 64 limit. That's why 2 additional plots are used to dim the non Value Area zones
- Use Side by Side view to compare buy and sell volumes between each other: base width = max(total_buy_vol, total_sell_vol)
- All buy/sell volume lengths are calculated as % of a fixed base width = 100 bars (100%). You can't set show_last from input
- Sell Offset is calculated relative to Buy Offset to stack/extend sell on top of buy. Buy Offset = Zero - Buy Length. Sell Offset = Buy Offset - Sell Length = Zero - Buy Length - Sell Length
- If you see "loop too long error" - change some values in UI and it will recalculate - no need to refresh the chart
- There's no such thing as buy/sell volume, there's just volume, but for the purposes of the Volume Profile method, assume: bull candle = buy volume, bear candle = sell volume
- Volume Profile Range is limited to 5000 bars for free accounts
P.S. Cantaloupia Will be Free!
Links on Volume Profile and Value Area calculation and usage:
www.tradingview.com
stockcharts.com
onlinelibrary.wiley.com
Complete Trend Trading System [Fhenry0331]This system was designed for the beginner trader to make money swing trading. Your losses will be small and your gains will be mostly large. You will show consistent profit. Period.
The system works on any security you like to trade. I used GBPUSD as an example because of the up swing and down swing it had recently. I tried to put as much information of how the system works in the chart. Hope it helps and is not to cluttered.
I will reiterate how the system works here: Everything is based off of closed price.
Legend
Uptrend: Buy
Green bar: initial start of an uptrend or uptrend continuing. Place order above that bar. If the initial bar does not stray too far from the MVWAP , I will place orders above subsequent bars if no filled occurred.
If initial start of the trend is missed, I will wait for the pullback. A pullback is a close below the MVWAP, and a close above the EMA (Low), RSI is above 50. Orders are placed above the pullback bars with plotted char "B" and also plotted green triangle up. Again orders are placed above those bars. the bars do not notate automatic buys. Don't chase anything. You will miss the initial bar on something because of news or earnings and it rocket up. Just wait, it will pullback. If it doesn't, to hell with it, on to the next.
Take profits: In the indicator you will see "T." That notates to take some profits. It is a suggestion. I was always told to take profits into spikes, as well as you can never lose money if you take profits. Up to you if you want to scale out and take the suggested profits or not.
Exit Completely: In an uptrend, close your entire position on bars colored yellow or red. (Again, closed bars)
In uptrend bars colored orange and black, do nothing, they are just pullback bars. Look for the buy pullback signal, then follow pullback buy rules for an uptrend.
Downtrend: Short
Red bar: initial start of a downtrend or downtrend continuing. Place order below the bar. If the initial bar does not stray too far fro the MVWAP, place orders below subsequent bars.
If initial start on the downtrend is missed, wait for the pullback. A pullback is a close above the MVWAP, and close below the EMA(Low). RSI is below 50. Orders are placed below the pullback bars with the plotted char "S" and also plotted red triangle. Again those bars are not automatic shorts, orders are placed below them. Don't chase anything. Wait for price to come into your plan. The idea FOMO is the stupidest thing ever, how can you miss out on something when it is always there. The market is always there and something will come into your zone. Chill.
"T": same as in uptrend, suggestion to take some profits.
Exit Completely: In a downtrend, close your entire position on bars colored orange or green.
In downtrend you will see bars colored yellow and black, do nothing, they are pullback bars. Look for the pullback short signal and follow pullback short rules.
If you have any questions get at me. Take a look at it on what you trade. Flip it through different securities.
Best of luck in all you do.
P.S. You should not take a trade right before earnings. You should also exit a trade right before earnings.
PivotBoss Outside Reversal SetupPATTERN SUMMARY
1. The engulfing bar of a bullish outside reversal setup has a low that is below the prior bar's low (L < L ) and a
close that is above the prior bar's high (C > H ).
2. The engulfing bar of a bearish outside reversal setup has a high that is above the prior bar's high (H > H )
and a close that is below the prior bar's low (C < L ).
3. The engulfing bar is usually 5 to 25 percent larger than the size of the average bar in the lookback period.
PATTERN PSYCHOLOGY
The power behind this pattern lies in the psychology behind the traders involved in this setup. If you have
ever participated in a breakout at support or resistance only to have the market reverse sharply against you, then
you are familiar with the market dynamics of this setup. What exactly is going on at these levels? To understand
this concept is to understand the outside reversal pattern. Basically, market participants are testing the waters
above resistance or below support to make sure there is no new business to be done at these levels. When no
initiative buyers or sellers participate in range extension, responsive participants have all the information they
need to reverse price back toward a new area of perceived value.
As you look at a bullish outside reversal pattern, you will notice that the current bar's low is lower than the
prior bar's low. Essentially, the market is testing the waters below recently established lows to see if a downside
follow-through will occur. When no additional selling pressure enters the market, the result is a flood of buying
pressure that causes a springboard effect, thereby shooting price above the prior bar's highs and creating the
beginning of a bullish advance.
If you recall the child on the trampoline for a moment, you'll realize that the child had to force the bounce
mat down before he could spring into the air. Also, remember Jennifer the cake baker? She initially pushed price
to $20 per cake, which sent a flood of orders into her shop. The flood of buying pressure eventually sent the price
of her cakes to $35 apiece. Basically, price had to test the $20 level before it could rise to $35.
Let's analyze the outside reversal setup in a different light for a moment. One of the reasons I like this setup
is because the two-bar pattern reduces into the wick reversal setup, which we covered earlier in the chapter. If
you are not familiar with candlestick reduction, the idea is simple. You are taking the price data over two or more
candlesticks and combining them to create a single candlestick. Therefore, you will be taking the open, high, low,
and close prices of the bars in question to create a single composite candlestick.
Take a look at Figure 2.13, which illustrates the candlestick reduction of the outside reversal setup.
Essentially, taking the highest high and the lowest low over the two-bar period gives you the range of the
composite candlestick. Then, taking the opening price of the first candle and the closing price of the last candle
will finish off the composite candlestick. Depending on the structure of the bars of the outside reversal setup, the
result of the candlestick reduction will usually be the transformation into a wick reversal setup, which we know to
be quite powerful. Therefore, in many cases the physiology of the outside reversal pattern basically demonstrates
the inherent psychological traits of the wick reversal pattern. This is just another level of analysis that reinforces
my belief in the outside reversal setup.
MFI v1.0 Normal and Dinamic (Totals)The normal MFI script use an RSI in the formula so the quantity of movments are not visible, this script allows you to see how much volume is being trade at the moment, so you can detect unusual levels, but you will no be allowed to see the RSI (0-100)* so I suggest to use this script with a normal MFI
Features:
+ Normal MFI length (14)
+ Green bars show the total of money trade of the bars that are going up
+ Red bars show the total of money trade when of the bars that are going down
+ Dinamic calculation (Optional)(Bellow)
Normal MFI use hlc3 ((high+low+close)/3) * (volume) to calculate each bar
The dinamic MFI: (This is an optional feature, if you dont active it you will use the normal MFI calculation)
(The information bellow is experimental and theorical only, you can use it or not in the script with the Dinamic option)
Dinamic MFI divides the bar and volume in three parts.
Volume is corresponding on each part ex. If the bar has not a top or lower wick the 100% of volume is in the middle... ex 2 If the 50% of the bar is a top wick, the 50% of volume is in the top wick
Top wick: Is calculated this way
If the bar is red (high-open)*volume of top wick
or
If the bar is green (high-close)*volume of top wick
Middle: Is calculated this way
If the bar is green (close-open)*volumemiddle
or
If the bar is red (open-close)*volumemiddle
Lower wick
If the bar is red (close-low)*volume of lower wick
or
If the bar is green (open- low)*volume of lower wick
MIDAS VWAP Jayy his is just a bash together of two MIDAS VWAP scripts particularly AkifTokuz and drshoe.
I added the ability to show more MIDAS curves from the same script.
The algorithm primarily uses the "n" number but the date can be used for the 8th VWAP
I have not converted the script to version 3.
To find bar number go into "Chart Properties" select " "background" then select Indicator Titles and "Indicator values". When you place your cursor over a bar the first number you see adjacent to the script title is the bar number. Put that in the dialogue box midline is MIDAS VWAP . The resistance is a MIDAS VWAP using bar highs. The resistance is MIDAS VWAP using bar lows.
In most case using N will suffice. However, if you are flipping around charts inputting a specific date can be handy. In this way, you can compare the same point in time across multiple instruments eg first trading day of the year or an election date.
Adding dates into the dialogue box is a bit cumbersome so in this version, it is enabled for only one curve. I have called it VWAP and it follows the typical VWAP algorithm. (Does that make a difference? Read below re my opinion on the Difference between MIDAS VWAP and VWAP ).
I have added the ability to start from the bottom or top of the initiating bar.
In theory in a probable uptrend pick a low of a bar for a low pivot and start the MIDAS VWAP there using the support.
For a downtrend use the high pivot bar and select resistance. The way to see is to play with these values.
Difference between MIDAS VWAP and the regular VWAP
MIDAS itself as described by Levine uses a time anchored On-Balance Volume (OBV) plotted on a graph where the horizontal (abscissa) arm of the graph is cumulative volume not time. He called his VWAP curves Support/Resistance VWAP or S/R curves. These S/R curves are often referred to as "MIDAS curves".
These are the main components of the MIDAS chart. A third algorithm called the Top-Bottom Finder was also described. (Separate script).
Additional tools have been described in "MIDAS_Technical_Analysis"
Midas Technical Analysis: A VWAP Approach to Trading and Investing in Today’s Markets by Andrew Coles, David G. Hawkins
Copyright © 2011 by Andrew Coles and David G. Hawkins.
Denoting the different way in which Levine approached the calculation.
The difference between "MIDAS" VWAP and VWAP is, in my opinion, much ado about nothing. The algorithms generate identical curves albeit the MIDAS algorithm launches the curve one bar later than the VWAP algorithm which can be a pain in the neck. All of the algorithms that I looked at on Tradingview step back one bar in time to initiate the MIDAS curve. As such the plotted curves are identical to traditional VWAP assuming the initiation is from the candle/bar midpoint.
How did Levine intend the curves to be drawn?
On a reversal, he suggested the initiation of the Support and Resistance VVWAP (S/R curve) to be started after a reversal.
It is clear in his examples this happens occasionally but in many cases he initiates the so-called MIDAS S/R VWAP right at the reversal point. In any case, the algorithm is problematic if you wish to start a curve on the first bar of an IPO .
You will get nothing. That is a pain. Also in Levine's writings, he describes simply clicking on the point where a
S/R VWAP is to be drawn from. As such, the generally accepted method of initiating the curve at N-1 is a practical and sensible method. The only issue is that you cannot draw the curve from the first bar on any security, as mentioned without resorting to the typical VWAP algorithm. There is another difference. VWAP is launched from the middle of the bar (as per AlphaTrends), You can also launch from the top of the bar or the bottom (or anywhere for that matter). The calculation proceeds using the top or bottom for each new bar.
The potential applications are discussed in the MIDAS Technical Analysis book.
Static K-means Clustering | InvestorUnknownStatic K-Means Clustering is a machine-learning-driven market regime classifier designed for traders who want a data-driven structure instead of subjective indicators or manually drawn zones.
This script performs offline (static) K-means training on your chosen historical window. Using four engineered features:
RSI (Momentum)
CCI (Price deviation / Mean reversion)
CMF (Money flow / Strength)
MACD Histogram (Trend acceleration)
It groups past market conditions into K distinct clusters (regimes). After training, every new bar is assigned to the nearest cluster via Euclidean distance in 4-dimensional standardized feature space.
This allows you to create models like:
Regime-based long/short filters
Volatility phase detectors
Trend vs. chop separation
Mean-reversion vs. breakout classification
Volume-enhanced money-flow regime shifts
Full machine-learning trading systems based solely on regimes
Note:
This script is not a universal ML strategy out of the box.
The user must engineer the feature set to match their trading style and target market.
K-means is a tool, not a ready made system, this script provides the framework.
Core Idea
K-means clustering takes raw, unlabeled market observations and attempts to discover structure by grouping similar bars together.
// STEP 1 — DATA POINTS ON A COORDINATE PLANE
// We start with raw, unlabeled data scattered in 2D space (x/y).
// At this point, nothing is grouped—these are just observations.
// K-means will try to discover structure by grouping nearby points.
//
// y ↑
// |
// 12 | •
// | •
// 10 | •
// | •
// 8 | • •
// |
// 6 | •
// |
// 4 | •
// |
// 2 |______________________________________________→ x
// 2 4 6 8 10 12 14
//
//
//
// STEP 2 — RANDOMLY PLACE INITIAL CENTROIDS
// The algorithm begins by placing K centroids at random positions.
// These centroids act as the temporary “representatives” of clusters.
// Their starting positions heavily influence the first assignment step.
//
// y ↑
// |
// 12 | •
// | •
// 10 | • C2 ×
// | •
// 8 | • •
// |
// 6 | C1 × •
// |
// 4 | •
// |
// 2 |______________________________________________→ x
// 2 4 6 8 10 12 14
//
//
//
// STEP 3 — ASSIGN POINTS TO NEAREST CENTROID
// Each point is compared to all centroids.
// Using simple Euclidean distance, each point joins the cluster
// of the centroid it is closest to.
// This creates a temporary grouping of the data.
//
// (Coloring concept shown using labels)
//
// - Points closer to C1 → Cluster 1
// - Points closer to C2 → Cluster 2
//
// y ↑
// |
// 12 | 2
// | 1
// 10 | 1 C2 ×
// | 2
// 8 | 1 2
// |
// 6 | C1 × 2
// |
// 4 | 1
// |
// 2 |______________________________________________→ x
// 2 4 6 8 10 12 14
//
// (1 = assigned to Cluster 1, 2 = assigned to Cluster 2)
// At this stage, clusters are formed purely by distance.
Your chosen historical window becomes the static training dataset , and after fitting, the centroids never change again.
This makes the model:
Predictable
Repeatable
Consistent across backtests
Fast for live use (no recalculation of centroids every bar)
Static Training Window
You select a period with:
Training Start
Training End
Only bars inside this range are used to fit the K-means model. This window defines:
the market regime examples
the statistical distributions (means/std) for each feature
how the centroids will be positioned post-trainin
Bars before training = fully transparent
Training bars = gray
Post-training bars = full colored regimes
Feature Engineering (4D Input Vector)
Every bar during training becomes a 4-dimensional point:
This combination balances: momentum, volatility, mean-reversion, trend acceleration giving the algorithm a richer "market fingerprint" per bar.
Standardization
To prevent any feature from dominating due to scale differences (e.g., CMF near zero vs CCI ±200), all features are standardized:
standardize(value, mean, std) =>
(value - mean) / std
Centroid Initialization
Centroids start at diverse coordinates using various curves:
linear
sinusoidal
sign-preserving quadratic
tanh compression
init_centroids() =>
// Spread centroids across using different shapes per feature
for c = 0 to k_clusters - 1
frac = k_clusters == 1 ? 0.0 : c / (k_clusters - 1.0) // 0 → 1
v = frac * 2 - 1 // -1 → +1
array.set(cent_rsi, c, v) // linear
array.set(cent_cci, c, math.sin(v)) // sinusoidal
array.set(cent_cmf, c, v * v * (v < 0 ? -1 : 1)) // quadratic sign-preserving
array.set(cent_mac, c, tanh(v)) // compressed
This makes initial cluster spread “random” even though true randomness is hardly achieved in pinescript.
K-Means Iterative Refinement
The algorithm repeats these steps:
(A) Assignment Step, Each bar is assigned to the nearest centroid via Euclidean distance in 4D:
distance = sqrt(dx² + dy² + dz² + dw²)
(B) Update Step, Centroids update to the mean of points assigned to them. This repeats iterations times (configurable).
LIVE REGIME CLASSIFICATION
After training, each new bar is:
Standardized using the training mean/std
Compared to all centroids
Assigned to the nearest cluster
Bar color updates based on cluster
No re-training occurs. This ensures:
No lookahead bias
Clean historical testing
Stable regimes over time
CLUSTER BEHAVIOR & TRADING LOGIC
Clusters (0, 1, 2, 3…) hold no inherent meaning. The user defines what each cluster does.
Example of custom actions:
Cluster 0 → Cash
Cluster 1 → Long
Cluster 2 → Short
Cluster 3+ → Cash (noise regime)
This flexibility means:
One trader might have cluster 0 as consolidation.
Another might repurpose it as a breakout-loading zone.
A third might ignore 3 clusters entirely.
Example on ETHUSD
Important Note:
Any change of parameters or chart timeframe or ticker can cause the “order” of clusters to change
The script does NOT assume any cluster equals any actionable bias, user decides.
PERFORMANCE METRICS & ROC TABLE
The indicator computes average 1-bar ROC for each cluster in:
Training set
Test (live) set
This helps measure:
Cluster profitability consistency
Regime forward predictability
Whether a regime is noise, trend, or reversion-biased
EQUITY SIMULATION & FEES
Designed for close-to-close realistic backtesting.
Position = cluster of previous bar
Fees applied only on regime switches. Meaning:
Staying long → no fee
Switching long→short → fee applied
Switching any→cash → fee applied
Fee input is percentage, but script already converts internally.
Disclaimers
⚠️ This indicator uses machine-learning but does not predict the future. It classifies similarity to past regimes, nothing more.
⚠️ Backtest results are not indicative of future performance.
⚠️ Clusters have no inherent “bullish” or “bearish” meaning. You must interpret them based on your testing and your own feature engineering.















