ICT Killzones by MoziThe ICT Killzone and important times indicator.
It highlights:
London Killzone
New York Killzone
New York Lunch Hour
New York Day End Hour
Asian Range
Judas Swing Time
In addition to this, it highlights the US and UK holidays with a background color and a label, so that you don't miss any bank holiday and you are sitting in front of your charts and are wondering, why the chart is not moving ;-)
I manually draw vertical lines at specific times like 08:30 London, 09:30 London, 08:30 New York, 09:30 New York, 11:00 New York (Take Profit Time)
ابحث في النصوص البرمجية عن "欧元汇率走势30天"
Multi TF Trend Indicator
...Mark Douglas in his book Trading in the Zone wrote
The longer the time frame, the more significant the trend, so a trending market on a daily bar chart is more significant than a trending market on a 30-minute bar chart. Therefore, the trend on the daily bar chart would take precedence over the trend on the 30-minute bar chart and would be considered the major trend. To determine the direction of the major trend, look at what is happening on a daily bar chart. If the trend is up on the daily, you are only going to look for a sell-off or retracement down to what your edge defines as support on the 30-minute chart. That's where you will become a buyer. On the other hand, if the trend is down on the daily, you are only going to look for a rally up to what your edge defines as a resistance level to be a seller on the 30-minute chart. Your objective is to determine, in a downtrending market, how far it can rally on an intraday basis and still not violate the symmetry of the longer trend. In an up-trending market, your objective is to determine how far it can sell off on an intraday basis without violating the symmetry of the longer trend. There's usually very little risk associated with these intraday support and resistance points, because you don't have to let the market go very far beyond them to tell you the trade isn't working.
The purpose of this indicator to show both the major and minor trend on the same chart with no need to switch between timeframes
Script includes
timeframe to determine the major trend
price curve, close price is default, but you can pick MA you want
type of coloring, either curve color or the background color
Implementation details
major trend is determined by the slope of the price curve
Further improvements
a variation of techniques for determining the major trend (crossing MA, pivot points etc.)
major trend change alerts
Thanks @loxx for pullData helper function
TARVIS Labs - Bitcoin Macro Bottom/Top SignalsSCRIPT DESCRIPTION
This is a script specifically written to help provide indicators from a macro view. This script is best run on the 1 day interval on Bitstamp's $BTCUSD chart. It helps indicate when to accumulate bitcoin, and when its in a bull run when there are local tops, strong top warnings, and a signal to exit a bull run. This is described further below.
If you don't have interest in trading on the way to the top I suggest turning off the following indicators in the settings of the indicator:
- Opportunity To Buy Back In Indicator
- Local Top Near Bull Run Top Indicator
ACCUMULATION ZONE INDICATOR - LIGHT GREEN
Description
When we look at the history of Bitcoin every bottom has crossed below the 100 week EMA. Once it does its accompanied by hash ribbon cross with miner capitulation. After that is the prime time to accumulate as theres a clearer signal the bottom is in. Specifically, a signal to look for is the 14 day MACD/signal cross and the 14 day MACD continuing to stay above the signal until the price returns above the 100 week EMA. This is prime accumulation territory.
Strategy for Usage
A good strategy to use when accumulating the bottom is dollar-cost averaging over a 30 day period. The accumulation zone can last longer than 30 days but 30 days is a good range of time to DCA.
STRONG BUY IN ACCUMULATION ZONE INDICATOR - DARK GREEN
Description
We can add to the bottoming signal by looking for post-downtrend reversals inside the bottoming signal. We do this by using a 9/19 daily cross.
Strategy for Usage
These post-downtrend reversals can potentially provide better targeted days for accumulation than the broader bottoming signal and can be used to add more on that day than on an average day for the dollar cost average strategy. Say for example, use 1/3 of funds on these days rather than 1/30th.
OPPORTUNITY TO BUY BACK IN INDICATOR - BLUE
Description
When the 1d 18 EMA > 1d 63 EMA and the 12/52 1d crosses. These together provide good buy opportunities to buy bitcoin.
Strategy for Usage
If you happen to find yourself out of the market from your own TA or a trade, this signal can provide a buy opportunity to reenter the market if you're out of it.
BULL RUN LOCAL TOP INDICATOR - ORANGE
Description
We will similarly use the 100 week EMA to determine trend reversal into a bull run. When we see the 100 week EMA uptrending, we can begin to look for local tops using the 9/19 daily MACD/signal bearish cross along with the 12 EMA having a negative slope, which could be the beginning signal for a local top.
Strategy for Usage
This is a rather light indicator, but can be used in tandem with your own technical analysis to determine if you want to reenter after you exit from its signal.
LOCAL TOP NEAR BULL RUN TOP INDICATOR - RED
Description
When the 100 week EMA is in an uptrend we can look for significant loss of momentum in order to determine if a local top is in near a bull run top. Similar to the Bull Run Local Top Indicator, this strategy uses a MACD/signal cross but instead uses the 30/65 day EMAs.
Strategy for Usage
Ideally the right strategy to use here is to exit the market when this indicator starts. When the indicator ends if the "End of Bull Run Indicator" is not showing on the chart you can buy back into the market.
TOP IS LIKELY IN INDICATOR
Description
When the 100 week EMA is in a very strong uptrend and the 9/19 weekly MACD/signal bearish cross occurs, and the 63 EMA begins to downtrend.
Strategy for Usage
This signal typically accompanies the "Local Top Near Bull Run Top Indicator" therefore if you're following the strategy you would likely already be out of the market, but if you're not and this signal fires its a strong signal the top is in and we're likely going to start seeing a strong retrace. This is typically right before we see the "End of Bull Run Indicator". There is only one occurrence where it wasn't followed by a large drop & the "End of Bull Run Indicator" and that was in the 2017 bull run where there were many strong retracements post local top. The likelihood we see that again is low, but if it were to happen you can buy back into the market when the "Top is Likely In Indicator" and the "Local Top Near Bull Run Top Indicator" are not firing.
TOP IS LIKELY IN INDICATOR
Description
When the 100 week EMA is in a strong uptrend and the 9/19 weekly MACD/signal bearish cross occurs, and the 63 EMA begins to downtrend.
Strategy for Usage
This signal typically accompanies the "Local Top Near Bull Run Top Indicator" therefore if you're following the strategy you would likely already be out of the market, but if you're not and this signal fires its a strong signal the top is in and we're likely going to start seeing a strong retrace. This is typically right before we see the "End of Bull Run Indicator". There is only one occurrence where it wasn't followed by a large drop & the "End of Bull Run Indicator" and that was in the 2017 bull run where there were many strong retracements post local top. The likelihood we see that again is low, but if it were to happen you can buy back into the market when the "Top is Likely In Indicator" and the "Local Top Near Bull Run Top Indicator" are not firing.
END OF BULL RUN INDICATOR
Description
When the 100 week EMA is in an uptrend and the 1d 18 EMA crosses the 1d 63 EMA.
Strategy for Usage
When the 100 week EMA is a strong uptrend and the 18/63 cross occurs the top is very likely in. It has occurred in every bull run top leading to the bear market.
Time█ OVERVIEW
This library is a Pine Script™ programmer’s tool containing a variety of time related functions to calculate or measure time, or format time into string variables.
█ CONCEPTS
`formattedTime()`, `formattedDate()` and `formattedDay()`
Pine Script™, like many other programming languages, uses timestamps in UNIX format, expressed as the number of milliseconds elapsed since 00:00:00 UTC, 1 January 1970. These three functions convert a UNIX timestamp to a formatted string for human consumption.
These are examples of ways you can call the functions, and the ensuing results:
CODE RESULT
formattedTime(timenow) >>> "00:40:35"
formattedTime(timenow, "short") >>> "12:40 AM"
formattedTime(timenow, "full") >>> "12:40:35 AM UTC"
formattedTime(1000 * 60 * 60 * 3.5, "HH:mm") >>> "03:30"
formattedDate(timenow, "short") >>> "4/30/22"
formattedDate(timenow, "medium") >>> "Apr 30, 2022"
formattedDate(timenow, "full") >>> "Saturday, April 30, 2022"
formattedDay(timenow, "E") >>> "Sat"
formattedDay(timenow, "dd.MM.yy") >>> "30.04.22"
formattedDay(timenow, "yyyy.MM.dd G 'at' hh:mm:ss z") >>> "2022.04.30 AD at 12:40:35 UTC"
These functions use str.format() and some of the special formatting codes it allows for. Pine Script™ documentation does not yet contain complete specifications on these codes, but in the meantime you can find some information in the The Java™ Tutorials and in Java documentation of its MessageFormat class . Note that str.format() implements only a subset of the MessageFormat features in Java.
`secondsSince()`
The introduction of varip variables in Pine Script™ has made it possible to track the time for which a condition is true when a script is executing on a realtime bar. One obvious use case that comes to mind is to enable trades to exit only when the exit condition has been true for a period of time, whether that period is shorter that the chart's timeframe, or spans across multiple realtime bars.
For more information on this function and varip please see our Using `varip` variables publication.
`timeFrom( )`
When plotting lines , boxes , and labels one often needs to calculate an offset for past or future end points relative to the time a condition or point occurs in history. Using xloc.bar_index is often the easiest solution, but some situations require the use of xloc.bar_time . We introduce `timeFrom()` to assist in calculating time-based offsets. The function calculates a timestamp using 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 timeframe, or in seconds, minutes, hours, days, months or years. This function was ported from our Time Offset Calculation Framework .
`formattedNoOfPeriods()` and `secondsToTfString()`
Our final two offerings aim to confront two remaining issues:
How much time is represented in a given timestamp?
How can I produce a "simple string" timeframe usable with request.security() from a timeframe expressed in seconds?
`formattedNoOfPeriods()` converts a time value in ms to a quantity of time units. This is useful for calculating a difference in time between 2 points and converting to a desired number of units of time. If no unit is supplied, the function automatically chooses a unit based on a predetermined time step.
`secondsToTfString()` converts an input time in seconds to a target timeframe string in timeframe.period string format. This is useful for implementing stepped timeframes relative to the chart time, or calculating multiples of a given chart timeframe. Results from this function are in simple form, which means they are useable as `timeframe` arguments in functions like request.security() .
█ NOTES
Although the example code is commented in detail, the size of the library justifies some further explanation as many concepts are demonstrated. Key points are as follows:
• Pivot points are used to draw lines from. `timeFrom( )` calculates the length of the lines in the specified unit of time.
By default the script uses 20 units of the charts timeframe. Example: a 1hr chart has arrows 20 hours in length.
• At the point of the arrows `formattedNoOfPeriods()` calculates the line length in the specified unit of time from the input menu.
If “Use Input Time” is disabled, a unit of time is automatically assigned.
• At each pivot point a label with a formatted date or time is placed with one of the three formatting helper functions to display the time or date the pivot occurred.
• A label on the last bar showcases `secondsSince()` . The label goes through three stages of detection for a timed alert.
If the difference between the high and the open in ticks exceeds the input value, a timer starts and will turn the label red once the input time is exceeded to simulate a time-delayed alert.
• In the bottom right of the screen `secondsToTfString()` posts the chart timeframe in a table. This can be multiplied from the input menu.
Look first. Then leap.
█ FUNCTIONS
formattedTime(timeInMs, format)
Converts a UNIX timestamp (in milliseconds) to a formatted time string.
Parameters:
timeInMs : (series float) Timestamp to be formatted.
format : (series string) Format for the time. Optional. The default value is "HH:mm:ss".
Returns: (string) A string containing the formatted time.
formattedDate(timeInMs, format)
Converts a UNIX timestamp (in milliseconds) to a formatted date string.
Parameters:
timeInMs : (series float) Timestamp to be formatted.
format : (series string) Format for the date. Optional. The default value is "yyyy-MM-dd".
Returns: (string) A string containing the formatted date.
formattedDay(timeInMs, format)
Converts a UNIX timestamp (in milliseconds) to the name of the day of the week.
Parameters:
timeInMs : (series float) Timestamp to be formatted.
format : (series string) Format for the day of the week. Optional. The default value is "EEEE" (complete day name).
Returns: (string) A string containing the day of the week.
secondsSince(cond, resetCond)
The duration in milliseconds that a condition has been true.
Parameters:
cond : (series bool) Condition to time.
resetCond : (series bool) When `true`, the duration resets.
Returns: The duration in seconds for which `cond` is continuously true.
timeFrom(from, qty, units)
Calculates a +/- time offset in variable units from the current bar's time or from the current time.
Parameters:
from : (series string) 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 : (series int) The +/- qty of units of offset required. A "series float" can be used but it will be cast to a "series int".
units : (series string) String containing one of the seven allowed time units: "chart" (chart's timeframe), "seconds", "minutes", "hours", "days", "months", "years".
Returns: (int) The resultant time offset `from` the `qty` of time in the specified `units`.
formattedNoOfPeriods(ms, unit)
Converts a time value in ms to a quantity of time units.
Parameters:
ms : (series int) Value of time to be formatted.
unit : (series string) The target unit of time measurement. Options are "seconds", "minutes", "hours", "days", "weeks", "months". If not used one will be automatically assigned.
Returns: (string) A formatted string from the number of `ms` in the specified `unit` of time measurement
secondsToTfString(tfInSeconds, mult)
Convert an input time in seconds to target string TF in `timeframe.period` string format.
Parameters:
tfInSeconds : (simple int) a timeframe in seconds to convert to a string.
mult : (simple float) Multiple of `tfInSeconds` to be calculated. Optional. 1 (no multiplier) is default.
Returns: (string) The `tfInSeconds` in `timeframe.period` format usable with `request.security()`.
Realtime FootprintThe purpose of this script is to gain a better understanding of the order flow by the footprint. To that end, i have added unusual features in addition to the standard features.
I use "Real Time 5D Profile by LucF" main engine to create basic footprint(profile type) and added some popular features and my favorites.
This script can only be used in realtime, because tradingview doesn't provide historical Bid/Ask date.
Bid/Ask date used this script are up/down ticks.
This script can only be used by time based chart (1m, 5m , 60m and daily etc)
This script use many labels and these are limited max 500, so you can't display many bars.
If you want to display foot print bars longer, turn off the unused sub-display function.
Default setting is footprint is 25 labels, IB count is 1, COT high and Ratio high is 1, COT low and Ratio low is 1 and Delta Box Ratio Volume is 1 , total 29.
plus UA , IB stripes , ladder fading mark use several labels.
///////// General Setting ///////////
Resets on Volume / Range bar
: If you want to use simple time based Resets on, please set Total Volume is 0.
Your timeframe is always the first condition. So if you set Total Volume is 1000, both conditions(Volume >= 1000 and your timeframe start next bar) must be met. (that is, new footprint bar doesn't start at when total volume = exactly 1000).
Ticks per row and Maximum row of Bar
: 1 is minimum size(tick). "Maximum row of Bar" decide the number of rows used in one footprint. 1 row is created from 1 label, so you need to reduce this number to display many footprints (Max label is 500).
Volume Filter and For Calculation and Display
: "Volume Filter" decide minimum size of using volume for this script.
"For Calculation and Display" is used to convert volume to an integer.
This script only use integer to make profile look better (I contained Bid number and Ask number in one row( one label) to saving labels. This require to make no difference in width by the number of digits and this script corresponds integers from 0 to 3 digits).
ex) Symbol average volume size is from 0.0001 to 0.001. You decide only use Volume >= 0.0005 by "Volume Filter".
Next, you convert volume to integer, by setting "For Calculation and Display" is 1000 (0.0005 * 1000 = 5).
If 0.00052 → 5.2 → 5, 0.00058 → 5.8 → 6 (Decimal numbers are rounded off)
This integer is used to all calculation in this script.
//////// Main Display ///////
Footprint, Total, Row Delta, Diagonal Delta and Profile
: "Footprint" display Ask and Bid per row. "Total" display Ask + Bid per row.
"Row Delta" display Ask - Bid per row. "Diagonal Delta" display Ask(row N) - Bid(row N -1) per row.
Profile display Total Volume(Ask + Bid) per row by using Block. Profile Block coloring are decided by Row Delta value(default: positive Row Delta (Ask > Bid) is greenish colors and negative Row Delta (Ask < Bid) is reddish colors.)
Volume per Profile Block, Row Imbalance Ratio and Delta Bull/Bear/Neutral Colors
: "Volume per Profile Block" decide one block contain how many total volume.
ex) When you set 20, Total volume 70 display 3 block.
The maximum number of blocks that can be used per low is 20.
So if you set 20, Total volume 400 is 20 blocks. total volume 800 is 20 blocks too.
"Row Imbalance Ratio" decide block coloring. The row imbalance is that the difference between Ask and Bid (row delta) is large.
default is x3, x2 and x1. The larger the difference, the brighter the color.
ex) Ask 30 Bid 10 is light green. Ask 20 Bid 10 is green. Ask 11 Bid 10 is dark green.
Ask 0 Bid 1 is light red. Ask 1 Bid 2 is red. ask 30 Bid 59 is dark green.
Ask 10 Bid 10 is neutral color(gray)
profile coloring is reflected same row's other elements(Ask, Bid, Total and Delta) too.
It's because one label can only use one text color.
/////// Sub Display ///////
Delta, total and Commitment of Traders
: "Delta" is total Ask - total Bid in one footprint bar. Total is total Ask + total Bid in one footprint bar.
"Commitment of traders" is variation of "Delta". COT High is reset to 0 when current highest is touched. COT Low is opposite.
Basic concept of Delta is to compare price with Delta. Ordinary, when price move up, delta is positive. Price move down is negative delta.
This is because market orders move price and market orders are counted by Delta (although this description is not exactly correct).
But, sometimes prices do not move even though many market orders are putting pressure on price , or conversely, price move strongly without many market orders.
This is key point. Big player absorb market orders by iceberg order(Subdivide large orders and pretend to be small limit orders.
Small limit orders look weak in the order book, but they are added each time you fill, so they are more powerful than they look.), so price don't move.
On the other hand, when the price is moving easily, smart players may be aiming to attract and counterattack to a better price for them.
It's more of a sport than science, and there's always no right response. Pay attention to the relationship between price, volume and delta.
ex) If COT Low is large negative value, it means many sell market orders is coming, but iceberg order is absorbing their attack at limit order.
you should not do buy entry, only this clue. but this is one of the hints.
"Delta, Box Ratio and Total texts is contained same label and its color are "Delta" coloring. Positive Delta is Delta Bull color(green),Negative Delta is Delta Bear Color
and Delta = 0 is Neutral Color(gray). When Delta direction and price direction are opposite is Delta Divergence Color(yellow).
I didn't add the cumulative volume delta because I prefer to display the CVD line on the price chart rather than the number.
Box Ratio , Box Ratio Divisor and Heavy Box Ratio Ratio
: This is not ordinary footprint features, but I like this concept so I added.
Box Ratio by Richard W. Arms is simple but useful tool. calculation is "total volume (one bar) divided by Bar range (highest - lowest)."
When Bull and bear are fighting fiercely this number become large, and then important price move happen.
I made average BR from something like 5 SMA and if current BR exceeds average BR x (Heavy Box Ratio Ratio), BR box mark will be filled.
Box Ratio Divisor is used to good looking display(BR multiplied by Box Ratio Divisor is rounded off and displayed as an integer)
Diagonal Imbalance Count , D IB Mark and D IB Stripes
: Diagonal Imbalance is defined by "Diagonal Imbalance Ratio".
ex) You set 2. When Ask(row N) 30 Bid(row N -1)10, it's 30 > 10*2, so positive Diagonal Imbalance.
When Ask(row N) 4 Bid(row N -1)9, it's 4*2 < 9, so negative Diagonal Imbalance.
This calculation does not use equals to avoid Ask(row N) 0 Bid(row N -1)0 became Diagonal Imbalance.
Ask(row N) 0 Bid(row N -1)0, it's 0 = 0*2, not Diagonal Imbalance. Ask(row N) 10 Bid(row N -1)5, it's 10 = 5*2, not Diagonal Imbalance.
"D IB Mark" emphasize Ask or Bid number which is dominant side(Winner of Diagonal Imbalance calculation), by under line.
"Diagonal Imbalance Count" compare Ask side D IB Mark to Bid side D IB Mark in one footprint.
Coloring depend on which is more aggressive side (it has many IB Mark) and When Aggressive direction and price direction are opposite is Delta Divergence Color(yellow).
"D IB Stripes" is a function that further emphasizes with an arrow Mark, when a DIB mark is added on the same side for three consecutive row. Three consecutive arrow is added at third row.
Unfinished Auction, Ratio Bounds and Ladder fading Mark
: "Unfinished Auction" emphasize highest or lowest row which has both Ask and Bid, by Delta Divergence Color(yellow) XXXXXX mark.
Unfinished Auction sometimes has magnet effect, price may touch and breakout at UA side in the future.
This concept is famous as profit taking target than entry decision.
But, I'm interested in the case that Big player make fake breakout at UA side and trapped retail traders, and then do reversal with retail traders stop-loss hunt.
Anyway, it's not stand alone signal.
"Ratio Bounds" gauge decrease of pressure at extreme price. Ratio Bounds High is number which second highest ask is divided by highest ask.
Ratio Bounds Low is number which second lowest bid is divided by lowest bid. The larger the number, the less momentum the price has.
ex)first footprint bar has Ratio Bounds Low 2, second footprint bar has RBL 4, third footprint bar has RBL 20.
This indicates that the bear's power is gradually diminishing.
"Ladder fading mark" emphasizes the decrease of the value in 3 consecutive row at extreme price. I added two type Marks.
Ask/Bid type(triangle Mark) is Ask/Bid values are decreasing of three consecutive row at extreme price.
Row Imbalance type(Diamond Mark) are row Imbalance values are decreasing of three consecutive row at extreme price.
ex)Third lowest Bid 40, second lowest Bid 10 and lowest Bid 5 have triangle up Mark. That is bear's power is gradually diminishing.
(This Mark only check Bid value at lowest price and Ask value at highest price).
Third highest row delta + 60, second highest row delta + 5, highest delta - 20 have diamond Mark. That is Bull's power is gradually diminishing.
Sub display use Delta colors at bottom of Sub display section.
////// Candle & POC /////////
candle and POC
: Ordinary, "POC" Point of Control is row of largest total volume, but this script'POC is volume weighted average.
This is because the regular POC was visually displayed by the profile ,and I was influenced LucF's ideas.
POC coloring is decided in relation to the previous POC. When current POC is higher than previous POC, color is UP Bar Color(green).
In the opposite case, Down Bar color is used.
POC Divergence Color is used when Current POC is up but current bar close is lower than open (Down price Bar),or in the opposite case.
POC coloring has option also highlight background by Delta Divergence Color(yellow). but bg color is displayed at your time frame current price bar not current footprint bar.
The basic explanation is over.
I add some image to promote understanding basic ideas.
30min_breakEnglish:
It is an indicator that displays the high and low prices as of 30 minutes before the event,
and when you break it, you can see it with a balloon.
The high and low lines at 30 minutes before the front are shown as candidates for support lines and resistance lines.
Used in the minute chart
Japanese:
前場 30分時点の 高値・安値の線を表示し、そこをBreakしたら吹き出しでわかるようにしたインジケーターです
前場 30分時点の 高値安値の線を支持線・抵抗線の候補として図示します。
分足のチャートで利用します
30min_breakEnglish:
It is an indicator that displays the high and low prices as of 30 minutes before the event,
and when you break it, you can see it with a balloon.
The high and low lines at 30 minutes before the front are shown as candidates for support lines and resistance lines.
Used in the minute chart
Japanese:
前場 30分時点の 高値・安値の線を表示し、そこをBreakしたら吹き出しでわかるようにしたインジケーターです
前場 30分時点の 高値安値の線を支持線・抵抗線の候補として図示します。
分足のチャートで利用します
Timeframe Time of Day Buying and Selling StrategyThis strategy allows you to back test longing or shorting or do nothing during time increments of 30 minutes. The price trends in one direction every 30 minutes and this strategy allows you to test various 30 minute time frames across a range of dates to capitalize on this.
Make sure you are in the 30 minute time frame while viewing the performance and trade history.
McClellan Oscillator for DAX (GER30) [aftabmk modified]About McClellan Oscillator
Developed by Sherman and Marian McClellan, the McClellan Oscillator is a breadth indicator derived from Net Advances, the number of advancing issues less the number of declining issues. Subtracting the 39-day exponential moving average of Net Advances from the 19-day exponential moving average of Net Advances forms the oscillator.
As the formula reveals, the McClellan Oscillator is a momentum indicator that works similar to MACD .
McClellan Oscillator signals can be generated with breadth thrusts, centerline crossovers, overall levels and divergences.
About my version
This version here is a modification, though:
- It can only be used on the DAX index (DAX 30 or GER 30)
- It only considers the DAX 30 stocks
- The data window will provide a summary about rising and declining stocks
- The data window will output the last change for each of the 30 stocks
BUG
I am only publishing this version because I am not sure if my current version is saved when I leave tradingview.com without publishing the script.
This version still contains a bug - the if/else clauses do not correctly recognize declining stocks. So the oscillator should not be used as it is.
Working on it these days. Feel free to provide feedback!
Stuff I am working on
- Coloring the area green/red according to the value
- Fixing this bug/making this script more efficient
DISCLAIMER
This script was mainly written for educational purposes (training myself how to write custom indicatotors).
As you can see, the code is really messy.
Credits
Based on the simple version of aftabmk
You can find the original version by searching for McClellan Oscillator for nifty 50.
Gann RetracementThe indicator is based on W. D. Gann's method of retracement studies. Gann looked at stock retracement action in terms of Halves (1/2), Thirds (1/3, 2/3), Fifths (1/5, 2/5, 3/5, and 4/5) and more importantly the Eighths (1/8, 2/8, 3/8, 4/8, 5/8, 6/8, and 7/8). Needless to say, {2, 3, 5, 8} are the only Fibonacci numbers between 1 to 10. These ratios can easily be visualized in the form of division of a Circle as follows :
Divide the circle in 12 equal parts of 30 degree each to produce the Thirds :
30 x 4 = 120 is 1/3 of 360
30 x 8 = 240 is 2/3 of 360
The 30 degree retracement captures fundamental geometric shapes like a regular Triangle (120-240-360), a Square (90-180-270-360), and a regular Hexagon (60-120-180-240-300-360) inscribed inside of the circle.
Now, divide the circle in 10 equal parts of 36 degree each to produce the Fifths :
36 x 2 = 72 is 1/5 of 360
36 x 4 = 144 is 2/5 of 360
36 x 6 = 216 is 3/5 of 360
36 x 8 = 288 is 4/5 of 360
where, (72-144-216-288-360) is a regular Pentagon.
Finally, divide the circle in 8 equal parts of 45 degree each to produce the Eighths :
45 x 1 = 45 is 1/8 of 360
45 x 2 = 90 is 2/8 of 360
45 x 3 = 135 is 3/8 of 360
45 x 4 = 180 is 4/8 of 360
45 x 5 = 225 is 5/8 of 360
45 x 6 = 270 is 6/8 of 360
45 x 7 = 315 is 7/8 of 360
where, (45-90-135-180-225-270-315-360) is a regular Octagon.
How to Use this indicator ?
The indicator generates Gann retracement levels between any two significant price points, such as a high and a low.
Input :
Swing High (significant high price point, such as a top)
Swing Low (significant low price point, such as a bottom)
Degree (degree of retracement)
Output :
Gann retracement levels (color coded as follows) :
Swing High and Swing Low (BLUE)
50% retracement (ORANGE)
Retracements between Swing Low and 50% level (RED)
Retracements between 50% level and Swing High (LIME)
Bollinger Bands %B + ATR This indicator is best suitable for the 30-minutes interval OIL charts, due to ATR accuracy.
BB%B is great for showing oversold/overbought market conditions and offers excellent entry/exit opportunities for Day Trading (30 minutes chart), as well as reliable convergence/divergence patterns. ATR is conveniently combined and shows potential market volatility levels for the day when used in 30-minutes charts, thus demarcating your day trade exit point.
To use the ATR on this indicator: Just read the ATR value of the lowest (for a new bull trend) or the highest (for a new bear trend) candlestick of the newly formed trend leg. Let's suppose the ATR reads 0.2891, then you project a move of 2.891 points towards the given trend direction using the ruler tool (30-minutes charts). That's all, and there you have your take profit target!
Good Luck!!!
ADX strategy (considering ADX and +DI only )I have been checking the strategies on ADX indicator.
I have found that +DI crossing above ADX line under threshold 30 and exit on crossdown when ADX above 30 has better results than just following crossovers of +DI and -DI , ADX crossing above 30 .
BUY Rule
========
fast ema is above slow ema (default 13 and 55 , you can change these values in settings)
+DI cross above ADX well beloe threshold level (default 30)
Exit reule
========
when +DI cross down ADX , well above on threshold level
Stop Loss
=========
Default is set to 8%
Take a look and let me know how your symbol works with this strategy
Note : Bar color changes to yellow when the BUY condition is met.
Bar color and Background color shows to blue --- if Long position is active
fast ema and long ema doesnt print on the chart -- please add manually to the chart
Warning : for the use of educational purposes only
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 не получает промежуточные значения в реальном времени.
Чтобы увидеть результат, дождитесь закрытия бара или перейдите на меньший таймфрейм
Crypto Trading Hours UTC based on Berlin time (UTC +2)Although crypto markets trade 24/7, there are spikes in volume according to the general hours at which different parts of the world do the majority of their trading.
This Script highlights the US, European and Asian markets when they are most active. The normal market hours are always from 08:00 to 16:30 local time.
US market opens at 8:00 Silicon Valley local time, and closes at 16:30 New York local time.
European market opens at 8:00 London local time, and closes at 16:30 Frankfurt local time.
Asian market opens at 8:00 Hong Kong local time, and closes at 16:30 Sydney local time.
Supertrend MTF LAG ISSUEThis script based on
we all use Super trend but it main issue is the lag as it buy too late or sell too late
using Deavaet study of Heat map MTF we can do a little trick
if you look on his study you can see that major signal for example will happen in the time frame before it happen at larger time frame
so in this example if signal at MTF 30 min and signal at MTF 60 min happen at the same time at 2 hours or 4 hours candles then this signal are more likely to be true then random signal at each time frame specific.
since we use shorter time frame on larger time frame we can remove the lag issue that make supertrend not so effective
In this example I set the signal to be MTF 30 +60 om 2 hour TF , can be good also for 4 hour candles..
So you get the signal to close inside the larger candle
now if you want to make on even shorter TF then change the code to 15 and 30 MTF on candles on 1 hour
or 1 and 5 min on 30 min or 15 min
Panchang Time//This indicator is required in NimblrTA and can be used to define timeslots for the trend confirmation
study("Panchang Time", overlay=true)
timeinrange(res, sess) => time(res, sess) != 0
premarket = #C0C0C0
regular = #0000FF
regularslot2 = #00CCFF
postmarket = #5000FF
notrading = na
sessioncolor = timeinrange("30", "0915-0930") ? premarket : timeinrange("30", "0915-0930") ? regular : timeinrange("30", "0931-1200") ? regularslot2 : timeinrange("30", "1201-1305") ? postmarket : notrading
bgcolor(sessioncolor, transp=90)
extended session - Regular Opening-Range- JayyOpening Range and some other scripts updated to plot correctly (see comments below.) There are three variations of the fibonacci expansion beyond the opening range and retracements within the opening range of the US Market session - I have not put in the script for the other markets yet.
The three scripts have different uses and strengths:
The extended session script (with the script here below) will plot the opening range whether you are using the extended session or the regular session. (that is to say whether "ext" in the lower right hand corner is highlighted or not.). While in the extended session the opening range has some plotting issues with periods like 13 minutes or any period that is not divisible into 330 mins with a round number outcome (eg 330/60 =5.5. Therefore an hour long opening range has problems in the extended session.
The pre session script is only for the premarket. You can select any opening range period you like. I have set the opening range to be the full premarket session. If you select a different session you will have to unselect "pre open to 9:30 EST for Opening Range?" in the format section. The script defaults to 15 minutes in the "period Of Pre Opening Range?". To go back to the 4 am to 9:30 pre opening range select "pre open to 9:30 EST for Opening Range?" there is no automatic 330 minute selection.
The past days offset script only works in 5 min or 15 minute period. It will show the opening range from up to 20 days past over the current days price action. Use this for the regular session only. 0 shows the current day's opening range. Use the positive integers for number of days back ie 1, 2, 3 etc not -1, -2, -3 etc. The script is preprogrammed to use the current day (0).
Scripts updated to plot correctly: One thing they all have in common is a way of they deal with a somewhat random problem that shifts the plots 4 hours in one direction or the other ie the plot started at 9:30 EST or 1:30PM EST. This issue started to occur approximately June 22, 2015 and impacts any script that tried to use "session" times to manage a plot in my scripts. The issue now seems to have been resolved during this past week.
Just in case the problem reoccurs I have added a "Switch session plot?" to each script. If the plot looks funny check or uncheck the "Switch session plot?" and see the difference. Of course if a new issue crops up it will likely require a different fix.
I have updated all of the scripts shown on this chart. If you are using a script of mine that suffers from the compiler issue then you will find an update on this chart. You can get any and all of the scripts by clicking on the small sideways wishbone on the left middle of the chart. You will see a dialogue box. Then click "make it mine". This will import all of the scripts to your computer and you can play around with them all to decide what you want and what you don't want. This is the easiest way to get all of the scripts in one fell swoop. It is also the easiest way for me to make all of the scripts available. I do not have all of the plots visible since it is too messy and one of the scripts (pre OR) is only for the regular session. To view the scripts click on the blue eye to the right of the script title to show it on this script. If you can only use the regular session. The scripts will all (with the exception of the pre OR) work fine.
If for any reason this script seems flakey refresh the page r try a slightly different period. I have noticed that sometimes randomly the script loves to return to the 5 min OR. This is a very new issue transient issue. As always if you see an issue please let me know.
Cheers Jayy
RSI + Psy + ADXRSI + Psychological Line + ADX (with RCI-replacement logic)
This custom TradingView indicator combines three major technical analysis tools—RSI, Psychological Line (Psy), and ADX—to help traders identify trend strength, market momentum, and overbought/oversold conditions with improved clarity.
1. Multi-Period RSI
The indicator calculates three RSI values:
Short-term RSI (9)
Mid-term RSI (26)
Long-term RSI (52)
These help users observe short-, mid-, and long-term momentum simultaneously.
Threshold lines are drawn at 70, 50, and 30 for standard RSI overbought/oversold analysis.
2. Psychological Line (Psy) with Dynamic Column Display
The Psy indicator counts how many closes within the selected period (default: 12) were higher than the previous close.
Values above 75 indicate overbought markets.
Values below 25 indicate oversold markets.
When Psy crosses these thresholds, it is displayed as a column chart centered at 50, visually expanding upward (overbought) or downward (oversold).
3. ADX Trend Strength with Color Coding
ADX is calculated from DI+ and DI− values (using true range and directional movement).
The ADX line changes color based on trend strength:
Blue: Weak trend (below 20)
Yellow: Moderate trend (20–30)
Red: Strong trend (above 30)
This helps traders easily recognize when the market transitions from low-volatility to strong-trend conditions.
Pivot Reversal Signals - Multi ConfirmationPivot Reversal Signals - Multi-Confirmation System
Overview
A comprehensive reversal detection indicator designed for daytraders that combines six independent technical signals to identify high-probability pivot points. The indicator uses a scoring system to classify signal strength as Weak, Medium, or Strong based on the number of confirmations present.
How It Works
The indicator monitors six key reversal signals simultaneously:
1. RSI Divergence - Detects when price makes new highs/lows but RSI shows weakening momentum
2. MACD Divergence - Identifies divergence between price action and MACD histogram
3. Key Level Touch - Confirms price is at significant support/resistance (previous day high/low, premarket high/low, VWAP, 50 SMA)
4. Reversal Candlestick Patterns - Recognizes bullish/bearish engulfing, hammers, and shooting stars
5. Moving Average Confluence - Validates bounces/rejections at stacked moving averages (9/20/50)
6. Volume Spike - Confirms increased participation (default: 1.5x average volume)
Signal Strength Classification
• Weak (3/6 confirmations) - Small circles for situational awareness only
• Medium (4/6 confirmations) - Regular triangles, viable entry signals
• Strong (5-6/6 confirmations) - Large triangles with background highlight, highest probability setups
Visual Features
• Entry Signals: Green triangles (up) for long entries, red triangles (down) for short entries
• Exit Warnings: Orange X markers when opposing signals appear
• Signal Labels: Show confirmation score (e.g., "5/6") and strength level
• Key Levels Displayed:
o Previous Day High/Low - Solid green/red lines (uses actual daily data)
o Premarket High/Low - Blue/orange circles (4:00 AM - 9:30 AM EST)
o VWAP - Purple line
o Moving Averages - 9 EMA (blue), 20 EMA (orange), 50 SMA (red)
• Background Tinting: Subtle color on strongest reversal zones
Key Level Detection
The indicator uses request.security() to accurately fetch previous day's high/low from daily timeframe data, ensuring precise level placement. Premarket high/low levels are dynamically tracked during premarket sessions (4:00 AM - 9:30 AM EST) and plotted throughout the trading day, providing critical support/resistance zones that often influence price action during regular hours.
Customizable Parameters
• Signal strength thresholds (adjust required confirmations)
• RSI settings (length, overbought/oversold levels)
• MACD parameters (fast/slow/signal lengths)
• Moving average periods
• Volume spike multiplier
• Toggle individual display elements (levels, MAs, labels)
Best Practices
• Use on 5-minute charts for entries, confirm on 15-minute for direction
• Focus on Medium and Strong signals; Weak signals provide context only
• Strong signals (5-6 confirmations) have the highest win rate
• Pay special attention to reversals at premarket high/low - these levels frequently hold
• Previous day high/low often acts as major support/resistance
• Always use proper risk management and stop losses
• Works best in moderately trending markets
Alert Capabilities
Set custom alerts for:
• Strong long/short signals
• All entry signals (medium + strong)
• Exit warnings for open positions
Ideal For
• Daytraders and scalpers (especially SPY, QQQ, and liquid equities)
• Swing traders seeking precise entries
• Traders who prefer confirmation-based systems
• Anyone looking to reduce false signals with multi-factor validation
• Traders who utilize premarket levels in their strategy
Technical Notes
• Uses Pine Script v6
• Premarket hours: 4:00 AM - 9:30 AM EST
• Previous day levels pulled from daily timeframe for accuracy
• Maximum 500 labels to maintain chart performance
• All key levels update dynamically in real-time
________________________________________
Note: This indicator provides signal analysis only and should be used as part of a complete trading strategy. Past performance does not guarantee future results. Always practice proper risk management.
Moving VWAP-KAMA CloudMoving VWAP-KAMA Cloud
Overview
The Moving VWAP-KAMA Cloud is a high-conviction trend filter designed to solve a major problem with standard indicators: Noise. By combining a smoothed Volume Weighted Average Price (MVWAP) with Kaufman’s Adaptive Moving Average (KAMA), this indicator creates a "Value Zone" that identifies the true structural trend while ignoring choppy price action.
Unlike brittle lines that break constantly, this cloud is "slow" by design—making it exceptionally powerful for spotting genuine trend reversals and filtering out fakeouts.
How It Works
This script uses a unique "Double Smoothing" architecture:
The Anchor (MVWAP): We take the standard VWAP and smooth it with a 30-period EMA. This represents the "Fair Value" baseline where volume has supported price over time.
The Filter (KAMA): We apply Kaufman's Adaptive Moving Average to the already smoothed MVWAP. KAMA is unique because it flattens out during low-volatility (choppy) periods and speeds up during high-momentum trends.
The Cloud:
Green/Teal Cloud: Bullish Structure (MVWAP > KAMA)
Purple Cloud: Bearish Structure (MVWAP < KAMA)
🔥 The "Reversal Slingshot" Strategy
Backtests reveal a powerful behavior during major trend changes, particularly after long bear markets:
The Resistance Phase: During a long-term downtrend, price will repeatedly rally into the Purple Cloud and get rejected. The flattened KAMA line acts as a "concrete ceiling," keeping the bearish trend intact.
The Breakout & Flip: When price finally breaks above the cloud with conviction, and the cloud flips Green, it signals a structural regime change.
The "Slingshot" Retest: Often, immediately after this flip, price will drop back into the top of the cloud. This is the "Slingshot" moment. The old resistance becomes new, hardened support.
The Rally: From this support bounce, stocks often launch into a sustained, multi-month bull run. This setup has been observed repeatedly at the bottom of major corrections.
How to Use This Indicator
1. Dynamic Support & Resistance
The KAMA Wall: When price retraces into the cloud, the KAMA line often flattens out, acting as a hard "floor" or "wall." A break of this wall usually signals a genuine trend change, not just a stop hunt.
2. Trend Confirmation (Regime Filter)
Bullish Regime: If price is holding above the cloud, only look for Long setups.
Bearish Regime: If price is holding below the cloud, only look for Short setups.
No-Trade Zone: If price is stuck inside the cloud, the market is traversing fair value. Stand aside until a clear winner emerges.
3. Multi-Timeframe Versatility
While designed for trend confirmation on higher timeframes (4H, Daily), this indicator adapts beautifully to lower timeframes (5m, 15m) for intraday scalping.
On Lower Timeframes: The cloud reacts much faster, acting as a dynamic "VWAP Band" that helps intraday traders stay on the right side of momentum during the session.
Settings
Moving VWAP Period (30): The lookback period for the base VWAP smoothing.
KAMA Settings (10, 10, 30): Controls the sensitivity of the adaptive filter.
Cloud Transparency: Adjust to keep your chart clean.
Alerts Included
Price Cross Over/Under MVWAP
Price Cross Over/Under KAMA
Cloud Flip (Bullish/Bearish Trend Change)
Tip for Traders
This is not a signal entry indicator. It is a Trend Conviction tool. Use it to filter your entries from faster indicators (like RSI or MACD). If your fast indicator signals "Buy" but the cloud is Purple, the probability is low. Wait for the Cloud Flip
Smart RSI MTF Matrix [DotGain]Summary
Are you tired of trading trend signals, only to miss the bigger picture because you are focused on a single timeframe?
The Smart RSI MTF Matrix is the ultimate "Cockpit View" for momentum traders. Unlike chart overlays that can sometimes clutter your price action, this indicator organizes RSI conditions across 10 different timeframes simultaneously into a clean, separate Heatmap pane.
It monitors everything from the 5-minute chart all the way up to the 12-Month view , giving you a complete X-ray vision of the market's momentum structure instantly.
⚙️ Core Components and Logic
The Smart RSI MTF Matrix relies on a sophisticated hierarchy to deliver clear, actionable context:
Multi-Timeframe Engine: The script runs 10 independent RSI calculations in the background, organized in rows from bottom (Short Term) to top (Long Term).
Classic RSI Thresholds:
Overbought (> 70): Indicates price may be extended to the upside.
Oversold (< 30): Indicates price may be extended to the downside.
Smart Visibility System (The "Secret Sauce"): Not all signals are equal. A 5-minute signal is "noise" compared to a Yearly signal. This indicator automatically applies Transparency to differentiate importance. The visibility increases by 10% for each higher timeframe slot (Row).
🚦 How to Read the Matrix
The indicator plots dots in 10 stacked rows. The position and opacity tell you the direction and significance:
🟥 RED DOTS (Overbought Condition)
Trigger: RSI is above 70 on that specific timeframe.
Meaning: Potential bearish reversal or pullback.
🟩 GREEN DOTS (Oversold Condition)
Trigger: RSI is below 30 on that specific timeframe.
Meaning: Potential bullish reversal or bounce.
⚪ GRAY DOTS (Neutral)
Trigger: RSI is between 30 and 70.
Meaning: No extreme momentum present.
👻 TRANSPARENCY (Signal Strength)
The visibility of the dot tells you exactly which Timeframe (Row) is triggered. The higher the row, the more solid the color:
Faint (10-30% Visibility): Rows 1-3 (5m, 15m, 1h). Used for scalping entries.
Medium (40-60% Visibility): Rows 4-6 (4h, 1D, 1W). Used for swing trading context.
Solid (70-100% Visibility): Rows 7-10 (1M, 3M, 6M, 12M). Used for identifying major macro cycles.
Visual Elements
Structure: Row 1 (Bottom) represents the 5-minute timeframe. Row 10 (Top) represents the 12-Month timeframe.
Vertical Alignment: If you see a vertical column of Red or Green dots, it indicates Multi-Timeframe Confluence —a highly probable reversal point.
Key Benefit
The goal of the Smart RSI MTF Matrix is to keep your main chart clean while providing maximum information. You can instantly see if a short-term pullback (Faint Green Dot) is happening within a long-term uptrend (Solid Gray/Red Dot), allowing for precision entries.
Have fun :)
Disclaimer
This "Smart RSI MTF Matrix" indicator is provided for informational and educational purposes only. It does not, and should not be construed as, financial, investment, or trading advice.
The signals generated by this tool (both "Buy" and "Sell" indications) are the result of a specific set of algorithmic conditions. They are not a direct recommendation to buy or sell any asset. All trading and investing in financial markets involves substantial risk of loss. You can lose all of your invested capital.
Past performance is not indicative of future results. The signals generated may produce false or losing trades. The creator (© DotGain) assumes no liability for any financial losses or damages you may incur as a result of using this indicator.
You are solely responsible for your own trading and investment decisions. Always conduct your own research (DYOR) and consider your personal risk tolerance before making any trades.
Patrice - GC M1 Bot (MACD EMA RSI)//@version=6
indicator("Patrice - GC M1 Bot (MACD EMA RSI)", overlay = true)
//----------------------
// Inputs (optimisés GC)
//----------------------
emaLenFast = input.int(9, "EMA rapide")
emaLenSlow = input.int(14, "EMA lente")
rsiLen = input.int(14, "RSI length")
atrLen = input.int(14, "ATR length")
volLen = input.int(20, "Volume moyenne")
slMult = input.float(0.4, "SL = ATR x", step = 0.1)
tpMult = input.float(0.7, "TP = ATR x", step = 0.1)
minAtr = input.float(0.7, "ATR minimum pour trader", step = 0.1)
maxDistEmaPct = input.float(0.3, "Distance max EMA9 (%)", step = 0.1)
//----------------------
// Indicateurs
//----------------------
ema9 = ta.ema(close, emaLenFast)
ema14 = ta.ema(close, emaLenSlow)
= ta.macd(close, 12, 26, 9)
hist = macdLine - signalLine
rsi = ta.rsi(close, rsiLen)
atr = ta.atr(atrLen)
volMa = ta.sma(volume, volLen)
//----------------------
// Session 9:30 - 11:00 (NY)
//----------------------
hourSession = hour(time, "America/New_York")
minuteSession = minute(time, "America/New_York")
inSession = (hourSession == 9 and minuteSession >= 30) or
(hourSession > 9 and hourSession < 11) or
(hourSession == 11 and minuteSession == 0)
//----------------------
// Filtres vol / ATR / distance EMA
//----------------------
volFilter = volume > volMa
atrFilter = atr > minAtr
distEmaPct = math.abs(close - ema9) / close * 100.0
distFilter = distEmaPct < maxDistEmaPct
//----------------------
// Tendance
//----------------------
bullTrend = close > ema9 and close > ema14 and ema9 > ema14
bearTrend = close < ema9 and close < ema14 and ema9 < ema14
//----------------------
// MACD : 2e barre
//----------------------
bullSecondBar = hist > 0 and hist > 0 and hist <= 0
bearSecondBar = hist < 0 and hist < 0 and hist >= 0
//----------------------
// Filtres RSI
//----------------------
rsiLongOk = rsi < 70 and rsi >= 45 and rsi <= 65
rsiShortOk = rsi > 30 and rsi >= 35 and rsi <= 55
//----------------------
// Gestion du risque (simple pour l'instant)
//----------------------
canTradeRisk = true
//----------------------
// Conditions d'entrée
//----------------------
longCond = bullTrend and bullSecondBar and rsiLongOk and inSession and volFilter and atrFilter and distFilter and canTradeRisk
shortCond = bearTrend and bearSecondBar and rsiShortOk and inSession and volFilter and atrFilter and distFilter and canTradeRisk
//----------------------
// SL / TP (info seulement, pas d'ordres)
//----------------------
slPoints = atr * slMult
tpPoints = atr * tpMult
longSL = close - slPoints
longTP = close + tpPoints
shortSL = close + slPoints
shortTP = close - tpPoints
//----------------------
// Visuels
//----------------------
plot(ema9, title = "EMA 9")
plot(ema14, title = "EMA 14")
plotshape(longCond, title = "Signal Long", style = shape.triangleup, location = location.belowbar, size = size.tiny, text = "L")
plotshape(shortCond, title = "Signal Short", style = shape.triangledown, location = location.abovebar, size = size.tiny, text = "S")
//----------------------
// Conditions d'ALERTE
//----------------------
alertcondition(longCond, title = "ALERTE LONG", message = "Signal LONG Patrice GC bot")
alertcondition(shortCond, title = "ALERTE SHORT", message = "Signal SHORT Patrice GC bot")
Smart Money Flow - Exchange & TVL Composite# Smart Money Flow - Exchange & TVL Composite Indicator
## Overview
The **Smart Money Flow (SMF)** indicator combines two powerful on-chain metrics - **Exchange Flows** and **Total Value Locked (TVL)** - to create a composite index that tracks institutional and "smart money" movement in the cryptocurrency market. This indicator helps traders identify accumulation and distribution phases by analyzing where capital is flowing.
## What It Does
This indicator normalizes and combines:
- **Exchange Net Flow** (from IntoTheBlock): Tracks Bitcoin/Ethereum movement to and from exchanges
- **Total Value Locked** (from DefiLlama): Measures capital locked in DeFi protocols
The composite index is displayed on a 0-100 scale with clear zones for overbought/oversold conditions.
## Core Concept
### Exchange Flows
- **Negative Flow (Outflows)** = Bullish Signal
- Coins moving OFF exchanges → Long-term holding/accumulation
- Indicates reduced selling pressure
- **Positive Flow (Inflows)** = Bearish Signal
- Coins moving TO exchanges → Preparation for selling
- Indicates potential distribution phase
### Total Value Locked (TVL)
- **Rising TVL** = Bullish Signal
- Capital flowing into DeFi protocols
- Increased ecosystem confidence
- **Falling TVL** = Bearish Signal
- Capital exiting DeFi protocols
- Decreased ecosystem confidence
### Combined Signals
**🟢 Strong Bullish (70-100):**
- Exchange outflows + Rising TVL
- Smart money accumulating and deploying capital
**🔴 Strong Bearish (0-30):**
- Exchange inflows + Falling TVL
- Smart money preparing to sell and exiting positions
**⚪ Neutral (40-60):**
- Mixed or balanced flows
## Key Features
### ✅ Auto-Detection
- Automatically detects chart symbol (BTC/ETH)
- Uses appropriate exchange flow data for each asset
### ✅ Weighted Composite
- Customizable weights for Exchange Flow and TVL components
- Default: 50/50 balance
### ✅ Normalized Scale
- 0-100 index scale
- Configurable lookback period for normalization (default: 90 days)
### ✅ Signal Zones
- **Overbought**: 70+ (Strong bullish pressure)
- **Oversold**: 30- (Strong bearish pressure)
- **Extreme**: 85+ / 15- (Very strong signals)
### ✅ Clean Interface
- Minimal visual clutter by default
- Only main index line and MA visible
- Optional elements can be enabled:
- Background color zones
- Divergence signals
- Trend change markers
- Info table with detailed metrics
### ✅ Divergence Detection
- Identifies when price diverges from smart money flows
- Potential reversal warning signals
### ✅ Alerts
- Extreme overbought/oversold conditions
- Trend changes (crossing 50 line)
- Bullish/bearish divergences
## How to Use
### 1. Trend Confirmation
- Index above 50 = Bullish trend
- Index below 50 = Bearish trend
- Use with price action for confirmation
### 2. Reversal Signals
- **Extreme readings** (>85 or <15) suggest potential reversal
- Look for divergences between price and indicator
### 3. Accumulation/Distribution
- **70+**: Accumulation phase - smart money buying/holding
- **30-**: Distribution phase - smart money selling
### 4. DeFi Health
- Monitor TVL component for DeFi ecosystem strength
- Combine with exchange flows for complete picture
## Settings
### Data Sources
- **Exchange Flow**: IntoTheBlock real-time data
- **TVL**: DefiLlama aggregated DeFi TVL
- **Manual Mode**: For testing or custom data
### Indicator Settings
- **Smoothing Period (MA)**: Default 14 periods
- **Normalization Lookback**: Default 90 days
- **Exchange Flow Weight**: Adjustable 0-100%
- **Overbought/Oversold Levels**: Customizable thresholds
### Visual Options
- Show/Hide Moving Average
- Show/Hide Zone Lines
- Show/Hide Background Colors
- Show/Hide Divergence Signals
- Show/Hide Trend Markers
- Show/Hide Info Table
## Data Requirements
⚠️ **Important Notes:**
- Uses **daily data** from IntoTheBlock and DefiLlama
- Works on any chart timeframe (data updates daily)
- Auto-switches between BTC and ETH based on chart
- All other crypto charts default to BTC exchange flow data
## Best Practices
1. **Use on Daily+ Timeframes**
- On-chain data is daily, most effective on D/W/M charts
2. **Combine with Price Action**
- Use as confirmation, not standalone signals
3. **Watch for Divergences**
- Price making new highs while indicator falling = warning
4. **Monitor Extreme Zones**
- Sustained readings >85 or <15 indicate strong conviction
5. **Context Matters**
- Consider broader market conditions and fundamentals
## Calculation
1. **Exchange Net Flow** = Inflows - Outflows (inverted for index)
2. **TVL Rate of Change** = % change over smoothing period
3. **Normalize** both metrics to 0-100 scale
4. **Composite Index** = (ExchangeFlow × Weight) + (TVL × Weight)
5. **Smooth** with moving average
## Disclaimer
This indicator uses on-chain data for analysis. While valuable, it should not be used as the sole basis for trading decisions. Always combine with other technical analysis tools, fundamental analysis, and proper risk management.
On-chain data reflects blockchain activity but may lag price action. Use this indicator as part of a comprehensive trading strategy.
---
## Credits
**Data Sources:**
- IntoTheBlock: Exchange flow metrics
- DefiLlama: Total Value Locked data
**Indicator by:** @iCD_creator
**Version:** 1.0
**Pine Script™ Version:** 6
---
## Updates & Support
For questions, suggestions, or bug reports, please comment below or message the author.
**Like this indicator? Leave a 👍 and share your feedback!**






















