Tick based chart [DotH]Version 1.0 - 2nd January 2023
Hi All,
This is my first published indicator, although I have written several hundreds for private use. 
 Description 
Tick based chart
I got intrigued while reading about tick based charts on  this page   (please note this link/website owner is not affiliated with me) , so I decided to see if it would be possible to recreate this type of chart in TradingView, and here's the results. 
This is an implementation for displaying a tick based chart in Trading View. There are benefits to using ticks based candles, as each candle represents the same number of "price moves" rather than an unknown number of moves.
Tick based charts are charts with candles that are rendered in the same way as traditional candles. However, instead of rendering a new candle at a specific time period,tick based candles are rendered after a set number of ticks have occured.  For example, in a 50 tick chart, each candle that you see represents exactly 50 ticks, i.e. 50 price changes/moves. Having a view of what happens on the tick level, may help some traders evaluate what is happening within very large candles, or even detect a change in trend, volatility or some other metric which otherwise may not be visible using a standard chart. 
 Please note that this indicator DOES NOT match/synchronize timewise with the main chart in TradingView. You must view it independently. If you need to see what times are represented in the tick chart, you can look at the custom time labels and X-Axis grid lines in it to get an idea what parts of the tick based chart correspond to the main chart.  
 Limitations/known issues: 
 
 Currently the indicator has been restricted to 100 candles. This is for limiting the line and box usage to a max of 300 objects.
 On timeframes above 1 minute, the seconds values will always be 0.  In order to be able to see seconds values in the chart scale you need to be on a second level chart, which requires a premium TradingView subscription.
 Changing the parameters in the settings will cause the chart to empty and start redrawing from its first candle again. This is because the tick chart is being drawn from realtime data, unlike the standard TradingView charts. 
 
 TODOs & Bugs: 
 
 Add some moving average indicators (SMA, EMA as a minimum)
 Add a corresponding tick based volume chart
 Create RSI, MACD, BB variations of this indicator
 
If you have any ideas/suggestions or bug reports, please feel free to let me know, however keep in mind that I do not have too much spare time to add things, so updates are going to be sporadic.
 ABOUT CODE REUSE: 
The code is free to use/change. However, if you plan to use this code to make a derivative indicator or strategy, it would be nice to know, so let me know if you feel like it!
"科创50成分股"に関するスクリプトを検索
VFIBs AgreementVFIBs Agreement is a custom oscillator, using Volume Weighted Fibonacci Bands (VFIBs).
The two values in yellow and teal relate to the price action and where they fall in the Fibonacci Bands for the 50 and 200 VWMAs, respectively. These values are scaled logarithmically, making it so that the 7 period moving averages of the values tend to 'stick' to the top (just above 20) or bottom (just below -20). When the background color is deep red, this indicates that there is bullish momentum and likely a bull market. The inverse, in green, represents bearish momentum or a bear market. These colors correspond to the 200 period VFIB.
The bands of the VFIBs are broken down by fibonacci values as different channels, moving alongside the mid-line above and below. The price action will go between these values, showing where it is in the extremes. This is what VFIBs agreement represents.
In order for an uptrend to begin, the two VFIBs must 'agree'. With the 50 period VFIB trending up, it doesn't matter if it keeps getting rejected by the 200 period, as we can see with Bitcoin. When the 50 period VFIB starts to pull the 200 period up or down, it could indicate an imminent reversal.
This indicator works well with any market that you would use the VFIBs in. Mid and large cap stocks, top cryptocurrencies, and indices are my top choices.
rt maax EMA cross strategythis just sample of our strategies we published with open source, to learning our investor the way of trading and analysis, this strategy just for study and learning 
in this strategy we use expontial moving avarage 20 , 50 , 200 and the we build this strategy when the price move up ema 200 and ema 20,50 cross up the 200 ema in this conditions the strargey will open long postion 
and the oppisit it is true for short postion in this sitation the price should be under ema 200 and the ema 20 , 50 should cross under 200 ema then the strategy will open the short postion 
we try this strategy on forex ,crypto and futures and it give us  very good result ,, also we try this postion on multi time frame we find the stragey give us good result on 1 hour time frame .
in the end our advice for you before you use any stratgy you should have the knowledg of the indecators how it is work and also you should have information about the market you trade and the last news for this market beacuse it effect so much on the price moving .
so we hope this strategy give you brefing of the way we work and build our strategy 
Volume Price and FundamentalsVolume Price and Fundamentals indicators contains 4 exponential moving averages based upon Fibonnaci numbers as period (8, 21, 55 & 144) with crossovers and crossunders.
It also contain a table for volume and 50 Day Avg. Volume, Relative volume, Change in Volume, Volume Value, Up-Down Closing Basis days in last 50 days, Volume ratio (U/D Ratio) on last 50-day Up / Down days and along with fundamental analysis table with various Fundamental Analysis parameters and QoQ & YoY comparison basis for better investment decision making.
[Old] TL with K/K and CustomizationThe old version of Trap Light before the most recent update. In order to facilitate the table functionality that is currently available for Trap Light, I had to make some values that are used in calculations hard-coded. By request, I'm quickly making this version available.
 Trap Light 
 Description 
Trap Light is an indicator that uses the K value of the Stochastic RSI to indicate potential long or short entries. It was designed to operate like a traffic stop light that is displayed near the current candle so that you don't have to look away from the candlesticks while trading.
Kriss/Kross is simply a cross over/under strategy that utilizes the 10 EMA and the 50 EMA .
 Signals and Available Alerts: 
1. Max Sell (Red Sell Label)
When K is equal to 100.00.
This is the strongest sell signal, remember that you only need to make sure that the trend is reversing before you make an entry, because several of these signals can appear in a row if a strong trend hasn't yet reversed.
2. Sell (Red Sell Label)
When K is equal to or greater than 99.50.
A sell signal.
3. Close to Sell (Red Down Arrow)
When K is equal to or greater than 95.00.
A sell signal may be produced soon.
4. Not Ready (Yellow Circle)
When K is less than 95 and greater than 5.00.
This indicates that neither a sell nor buy signal are close to being produced.
5. Close to Buy (Green Up Arrow)
When K is equal to or less than 5.00.
A buy signal may be produced soon.
6. Buy (Green Buy Label)
When K is equal to or less than 0.50 and greater than 0.00.
A buy signal.
7. Max Buy (Green Buy Label)
When K is equal to 0.00.
Strongest buy signal, remember to make sure that the trend is reversing before making an entry.
8. Kriss (Buy)
A buy signal when the 10 EMA (Blue) crosses above the 50 EMA (Yellow). This is also illustrated by the triggering candle being colored blue.
9. Kross (Sell)
A sell signal when the 10 EMA (Blue) crosses below the 50 EMA (Yellow). This is also illustrated by the triggering candle being colored yellow.
Customization of many different options is available, and the code is open-source for your reference, etc.
Remember to do you own due diligence and feel free to leave a comment with questions, etc.
Moving Averages Ribbon (7 EMAs/SMAs)This Indicator provides a combination which is suitable for visualizing many Simple Moving Averages (SMAs) and Exponential Moving Averages (EMAs). There are 7 possible periods 5,9,20,50,100,200,250. There is a possibility to show only EMAs or only SMAs or both. EMAs have thinner curves by default, to be able to distinguish them from SMAs. Additionally, there are highlighted channels between the MAs of the highs and the MAs of the lows, showing a channel of specific moving averages. It comes with a presetting showing EMAs 5,9,20,50,200 and SMAs 9,20,50,200, while the MA channels are only visible for 9 and 50.
EMAs:
  
SMAs:
  
Both
  
Trade Pro - Rejection Zone IndicatorThe  Rejection Zone Indicator  can be used to help trend following traders know when to buy dips in up trends, and when to sell pull backs in down trends. 
The  Rejection Zone Indicator  is made up of the 20 and 50 period Exponential Moving Averages. This indicator has colored shading in between these two EMAs, which acts as a nice visual. When the 20 period Exponential Moving Average is below the 50 period Exponential Moving Average, the shaded cloud will be red, and when the 20 EMA is over the 50 EMA the cloud will be green. It is called the Rejection Zone indicator, because often in trends when price pulls back to the colored cloud, it will act as an area of support or resistance. 
The suggested use of the  Rejection Zone Indicator  is to look for long trades when the cloud is green, and once price has pulled back into the green cloud. If the cloud is red one can look for short trading opportunity when price pulls back into the red cloud.
MultiMA-v5 - Multiple Moving Average indicatorsMultiple Moving Average indicators (MultiMA)
This script is drawing several Moving Average (MA) indicators for different lengths and timeframes in the main chart pane.
MultiMA can be controlled as a single entity, which makes it very comfortable and space saving tool.
Each particular MA graph can be enabled or disabled and also marked with the corresponding text label.
MultiMA includes EMA (Exponential Moving Average) and SMA (Simple Moving Average).
The list of the lengths/timeframes are:
1) both EMA and SMA:
   for 1 hour, 4 hours, 1 day, 1 week timeframes and
   for 20, 50, 100 and 200 lengths.
   (excluding EMA/SMA 200 1 hour as they overlap with EMA/SMA 50 4 hours)
2) EMA only:
   1 minute 33, 84, 163 lengths,
   5 minutes 50, 84, 115, 144, 163 lengths,
   30 minutes 84, 163 lengths.
SGX Nifty Movement During Indian Market HoursSGX Nifty or Singapore Nifty is a derivative contract of the Nifty 50 index which is the benchmark index of NSE in India. SGX Nifty trades for 21 hours in a day while Nifty 50 trades only for 6 hours and 15 minutes. Traders in India miss out on a lot of price action which happens on the Singapore Nifty. This code which is originally inspired from @Gustavorubi has been modified to track SGX Nifty's movements outside Indian market hours. This will help intraday traders to identify support and resistance levels which are not seen on Nifty 50 futures. 
 This source code is inspired from GustavoRubi's code on FX Sessions. 
Stochastic ATR Volatility OscillatorNOTES: As x, k and d use;
21-10-3 for 1 Hour candles
5-4-2 for 4 Hour candles
21-21-3 for 1 Day candles
Yellow plot is the main oscillator. Orange plot, and hlines at 20, 50 and 80 can be used as signal lines.
I personally use hlines as the signal in 1H as it's the best timeframe for the indicator.
If you are in a long position, sell when yellow plot crosses 80 or 50 line downwards;
and buy when the line crosses 20, 50 or 75 upwards while you are not in a trade.
matrixautotableLibrary   "matrixautotable" 
Automatic Table from Matrixes with pseudo correction for na values and default color override for missing values. uses overloads in cases of cheap float only, with additional addon for strings next, then cell colors, then text colors, and tooltips last..  basic size and location are auto, include the template to speed this up...
 TODO  : make bools version
 
var string  group_table    = ' Table'
var int     _tblssizedemo  = input.int    ( 10 )
string      tableYpos      = input.string ( 'middle'    , '↕'               , inline = 'place' , group = group_table, options= )
string      tableXpos      = input.string ( 'center'    , '↔'               , inline = 'place' , group = group_table, options= , tooltip='Position on the chart.')
int         _textSize      = input.int    ( 1           , 'Table Text Size' , inline = 'place' , group = group_table)
var matrix  _floatmatrix     = matrix.new  (_tblssizedemo, _tblssizedemo,  0            ) 
var matrix _stringmatrix     = matrix.new (_tblssizedemo, _tblssizedemo,  'test'       ) 
var matrix  _bgcolormatrix    = matrix.new  (_tblssizedemo, _tblssizedemo,  color.white  ) 
var matrix  _textcolormatrix  = matrix.new  (_tblssizedemo, _tblssizedemo,  color.black  ) 
var matrix _tooltipmatrix    = matrix.new (_tblssizedemo, _tblssizedemo,  'tool'       ) 
// basic table ready to go with the aboec matrixes (replace in your code)
//   for demo purpose, random colors, random nums, random na vals
if barstate.islast
    varip _xsize = matrix.rows    (_floatmatrix) -1
    varip _ysize = matrix.columns (_floatmatrix) -1
    for _xis = 0  to _xsize  -1  by 1
        for _yis  = 0 to _ysize  -1 by 1
            _randomr = int(math.random(50,250))
            _randomg = int(math.random(50,250))
            _randomb = int(math.random(50,250))
            _randomt = int(math.random(10,90 ))
            bgcolor  = color.rgb(250 - _randomr, 250 - _randomg, 250 - _randomb, 100 - _randomt )
            txtcolor = color.rgb(_randomr, _randomg, _randomb, _randomt                         )
            matrix.set(_bgcolormatrix    ,_yis,_xis, bgcolor )
            matrix.set(_textcolormatrix  ,_yis,_xis, txtcolor)
            matrix.set(_floatmatrix      ,_yis,_xis, _randomr)
            
            // random na
            _ymiss = math.floor(math.random(0, _yis))
            _xmiss = math.floor(math.random(0, _xis))
            matrix.set( _floatmatrix     ,_ymiss,  _xis, na)
            matrix.set( _stringmatrix    ,_ymiss,  _xis, na)
            matrix.set( _bgcolormatrix   ,_ymiss,  _xis, na)
            matrix.set( _textcolormatrix ,_ymiss,  _xis, na)
            matrix.set( _tooltipmatrix   ,_ymiss,  _xis, na)
// import here
import kaigouthro/matrixautotable/1 as mtxtbl
// and render table.. 
mtxtbl.matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _textcolormatrix, _tooltipmatrix, _textSize   ,tableYpos   ,tableXpos)
 
 matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _textcolormatrix, _tooltipmatrix, _textSize, tableYpos, tableXpos)  matrixtable
  Parameters:
     _floatmatrix :  float vals
     _stringmatrix :  string
     _bgcolormatrix :  color
     _textcolormatrix : color
     _tooltipmatrix :  string
     _textSize : int
     tableYpos : string
     tableXpos : string
 matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _textcolormatrix, _textSize, tableYpos, tableXpos)  matrixtable
  Parameters:
     _floatmatrix :  float vals
     _stringmatrix :  string
     _bgcolormatrix :  color
     _textcolormatrix : color
     _textSize : int
     tableYpos : string
     tableXpos : string
 matrixtable(_floatmatrix, _stringmatrix, _bgcolormatrix, _txtdefcol, _textSize, tableYpos, tableXpos)  matrixtable
  Parameters:
     _floatmatrix :  float vals
     _stringmatrix :  string
     _bgcolormatrix :  color
     _txtdefcol : color
     _textSize : int
     tableYpos : string
     tableXpos : string
 matrixtable(_floatmatrix, _stringmatrix, _txtdefcol, _bgdefcol, _textSize, tableYpos, tableXpos)  matrixtable
  Parameters:
     _floatmatrix :  float vals
     _stringmatrix :  string
     _txtdefcol : color
     _bgdefcol : color
     _textSize : int
     tableYpos : string
     tableXpos : string
 matrixtable(_floatmatrix, _txtdefcol, _bgdefcol, _textSize, tableYpos, tableXpos)  matrixtable
  Parameters:
     _floatmatrix :  float vals
     _txtdefcol : color
     _bgdefcol : color
     _textSize : int
     tableYpos : string
     tableXpos : string
TICK strategy for SPY optionsImportant notes:
1. This strategy is designed for same day SPY option scalping. All profit shown in back testing report is based on Profit/Loss (P/L) estimates from trading options with approximately 6 months of data. By default, it is set to 10 option contracts. By default the initial capital is set to $5000. Pyramiding is set to 3.
2. This strategy works better with non-extended market data.
3. This strategy is mainly developed for SPY trading on 5 min chart, it probably will not be very profitable with other tickers or time frame without tweaking all the parameters first. 
4. This strategy will work with QQQ as well, but please adjust the profit multiplier to match the P/L of QQQ options.
 How it works: 
When trading the indices, many rely on the TICK for market directions. This strategy is a trend following strategy that uses a combination of conditions using the following indicators:
- TICK
- RSI
- VIX volatility index
- EMA
 For entries, the conditions are: 
1. TICK moving average crossover with a delayed signal line
2. Bullish or bearish RSI signal, RSI > 50 for bullish, < 50 for bearish
3. VIX must be above a certain threshold to take advantage of high market volatility
4. Price must be on top of EMA line for long, and below for short
 
For exits, there are 3 scenarios: 
1. Stop loss set by a percentage of the daily ATR value
2. Trend changes on the TICK and the RSI
3. Bearish or bullish divergence on price with TICK
 
This strategy automatically signal to close all trades at 3:50 pm EST at the end of the day. 
 Extras: 
- There is an option to show P/L for reinvesting profits
 Enjoy~!!! Let's all make $$$
Adaptive Ehlers Deviation Scaled Moving Average (AEDSMA)AEDSMA INTRODUCTION 
This indicator is a functional enhancement to “Ehlers Deviation Scaled Moving Average (EDSMA / DSMA)”. I’ve used  Volume Breakout  and  Volatility  for dynamic length adaption and further  Slope  too for trend evaluation.
EDSMA was originally developed by John F. Ehlers (Stocks & Commodities V. 36:8: The Deviation-Scaled Moving Average).
 IDEA PLACEMENT 
I’ve traded almost every kind of market with different volatility conditions using Moving Averages. It was too much of a hassle to select and use different MA length depending upon market trend. So, the journey started with adapting Moving Averages with another parameter and that’s how “MZ  SAMA ” came into being where  Slope  was used to adapt Adaptive Moving Average with trend change. The problem was still pretty much the same as SAMA might not be effective on every market condition. Hence, I worked on  Volume  to adapt Moving Averages accordingly. I cane up with “MZ  RVSI ” which I used in “MZ  DVAMA ” to adapt dynamic length in Adaptive Moving Average and also used “MZ  RVSI " alongside Slope as confirmation of trend changes.
Meanwhile, I started using  DVAMA  methodology on different types on Moving Averages that allow dynamic length for example Hull Moving Average, Linear Regression Curve, SMA, WMA, TMA and many more. All of my tested Mas showed too much flexibility because of volume based Adaptive length. 
I came across a script of “Adaptive  Hull  Moving Average” which pretty much used the similar methodology as  DVAMA  but when I looked into its depth, its volume oscillator wasn’t working at all and only volatility based dynamic length was used. It was an interesting idea so, I decided to use  Volume  and  Volatility  alongside for better results but was nearly impossible to achieve what I wanted using only Hull Moving Average.
I had been using EDSMA in “MA  MTF  Cross Strategy” and “MZ  SRSI  Strategy V1.0” previously. It was the perfect choice when comparing to usage of slope on it. DSMA works perfectly as support and resistance as its Deviation Scaled. So, I tried using it to adapt dynamic length based on  Volume  and  Volatility  and I wasn’t disappointed. It worked like a charm when I adapted dynamic length between 50 and 255.
 DYNAMIC LENGTH BENEFITS 
 
 Dynamic length adaption methodology works in a way of adapting Relatively Lower Length leading toward overfitting if trend is supported by  Volume  and  Volatility . Similarly, adapting Relatively Higher Length leading toward underfitting if trend isn’t supported by  Volume  and  Volatility .
 Dynamic length adaption makes Moving Average to work better for both Bull and Bear-runs avoiding almost every fake break-in and breakouts. Hence, adaptive MA becomes more reliable for breakout trading. 
 MA would be more useful as it would adapt almost every chart based on its  Volume  and  Volatility  data.
 
 DYNAMIC COLORS AND TREND CORRELATION 
I’ve used dynamic coloring to identify trends with more detail which are as follows:
 
 Lime Color:  Strong Uptrend supported by  Volume  and  Volatility  or whatever you’ve chosen from both of them.
 Fuchsia Color:  Weak uptrend only supported by  Slope  or whatever you’ve selected.
 Red Color:  Strong Downtrend supported by  Volume  and  Volatility  or whatever you’ve chosen from both of them.
 Grey Color:  Weak Downtrend only supported by  Slope  or whatever you’ve selected.
 Yellow Color:  Possible reversal indication by  Slope  if enabled. Market is either sideways, consolidating or showing choppiness during that period.
 
 SIGNALS 
 
 Green Circle:  Market good for long with support of  Volume  and  Volatility  or whatever you’ve chosen from both of them.
 Red Circle:  Market good to short with support from  Volume  and  Volatility  or whatever you’ve chosen from both of them.
 Yellow Cross:  Market either touched top or bottom ATR band and can act as good TP or SL.
 EDSMA EVELOPE/BANDS:  I’ve included ATR based bands to the Adaptive EDSMA which act as good support/resistance despite from main Adaptive EDSMA Curve.
 
 DEFAULT SETTINGS 
 
 I’ve set default Minimum length to 50 and Maximum length to 255 which I’ve found works best for almost all timeframes but you can change this delta to adapt your timeframe accordingly with more precision.
 Dynamic length adoption is enabled based on both   Volume  and  Volatility  but only one or none of them can also be selected.
 Trend signals are enabled based on  Slope  and  Volume  but  Volatility  can be enabled for more precise confirmations.
 In “ RVSI ” settings TFS Volume Oscillator is set to default but others work good too especially Volume Zone Oscillator. For more details about  Volume Breakout  you can check “MZ  RVSI  Indicator".
 ATR breakout is set to be positive if period 14 exceeds period 46 but can be changed if more adaption with volatility is required.
 EDSMA super smoother filter length is set to 20 which can be increased to 50 or more for better smoothing but this will also change slope results accordingly.
 EDSMA super smoother filter poles are set to 2 because found better results with 2 instead of 3.
 
 FURTHER ENHANCEMENTS 
So far, I’ve seen better results with  Volume Breakout  and  Volatility  but other parameters such as Linear Slope of Particular MA, MACD, “MZ  SRSI ”, a Conditional Uptrend  MA  or simply KDJ can also be used for dynamic length adaption. 
I haven't yet gotten used to pine script arrays so, defining and using conditional operators is pretty much lazy programming for me. Would be great redefining everything through truth matrix instead of using if-else conditions.
High-Low IndexHello All, 
 High-Low Index  is a breadth indicator based on  Record High Percent  (RHP). RHP is based on new 52-week highs and new 52-week lows. RHP => 100 * (new highs) / (new highs + new lows). High-Low Index is a 10-day Simple Moving Average of the RHP, which makes it a smoothed version of RHP. You can find many articles about High-Low Index on the net.
High-Low Index above 50 indicates that there are more new highs than new lows, and considered as Bullish. 
High-Low Index below 50 indicates that there are more new lows than new highs, and considered as Bearish.
High-Low Index = 0 indicates there is no new highs (0% new highs). 
High-Low Index = 100 indicates that there is at least 1 new high and no new lows. 
and High-Low Index = 50 indicates that new highs and new lows is equal.
by default 40 cryptos are used in the script and shows High-Low Index for these cryptos. but you can change them as you wish. for example you can set all of them as stocks and see High-Low Index for these stocks.
You can set " Time frame " and the " Length " using the options. For example; if you set " Time frame " = 1 Week and the " Length " = 52 then it finds High-Low Index for  52weeks .
or another example; if you set " Time frame " = 1 Day and the " Length " = 22 the High-Low Indexn it finds High-Low Index for 22days.
You can enable/disable Record High Percent or Simple Moving Average of High-Low Index. Some traders use High-Low Index with its SMA, for example; High-Low Index generates a buy signal when it crosses above its moving average, and a sell signal when it crosses below its moving average.
Optionally you can see the securities in a table on the left bottom, you can change table size by usşng the options. 
In the Table, for each security/cell;
 => if background is green then it has New High
=> if background is red then it has New Low
=> if background is gray then no New High, no New Low
=> if background is back then Data is not available for the security 
As you can see in the screenshot below, the securities were changed and stocks are used instead of cryptos, so it calculates & shows High-Low Index for these stocks.
you can also find explanation in this screenshot:
 Enjoy! 
Indicators Combination Framework v3 IND  [DTU]Hello All,
This script is a framework to analyze and see the results by combine selected indicators for (long, short, longexit, shortexit) conditions. 
I was designed this for beginners and users to facilitate to see effects of the technical indicators combinations on the chart  WITH NO CODE 
You can improve your strategies according the results of this system by connecting the framework to a strategy framework/template such as Pinecoder, Benson, daveatt or custom.
This is enhanced version of my previous indicator "Indicators & Conditions Test Framework  "
Currently there are 93 indicators (23 newly added) connected over library. You can also import an External Indicator or add Custom indicator (In the source)
It is possible to change it from Indicator to strategy (simple one) by just remarking strategy parts in the source code and see real time profit of your combinations
Feel free to change or use it in your source
Special thanks goes to Pine wizards:  Trading view (built-in Indicators),  @Rodrigo, @midtownsk8rguy, @Lazybear, @Daveatt and others for their open source codes and contributions
 SIMPLE USAGE 
1. SETTING: Show Alerts= True (To see your entries and Exists)
2. Define your Indicators (ex: INDICATOR1: ema(close,14), INDICATOR2: ema(close,21), INDICATOR3: ema(close,200)
3. Define Your Combinations for long & Short Conditions
	a. For Long: (INDICATOR1 crossover INDICATOR2) AND (INDICATOR3 < close)
	b. For Short: (INDICATOR1 crossunder INDICATOR2) AND (INDICATOR3 > close)
4. Select Strategy/template (Import strategy to chart) that you export your signals from the list
5. Analyze the best profit by changing Indicators values
 SOME INDICATORS DETAILS 
Each Indicator includes: 
-  Factorization : Converting the selected indicator to Double, triple Quadruple such as EMA to DEMA, TEMA QEMA
-  Log : Simple or log10 can be used for calculation on function entries
-  Plot Type : You can overlay the indicator on the chart (such ema) or you can use stochastic/Percentrank approach to display in the variable hlines range
-  Extended Parametes : You can use default parameters or you can use extended (P1,P2) parameters regarding to indicator type and your choice
-  Color : You can define indicator color and line properties
-  Smooth : you can enable swma smooth 
-  indicators : you can select one of the 93 function like ema(),rsi().. to define your indicator 
-  Source : you can select from already defined indicators (IND1-4), External Indicator (EXT), Custom Indicator (CUST), and other sources (close, open...) 
 CONDITION DETAILS 
- There are are 4 type of conditions, long entry, short entry, long exit, short exit.
- Each condition are built up from 4 combinations that joined with "AND" & "OR" operators
- You can see the results by enabling show alerts check box
- If you only wants to enter long entry and long exit, just fill these conditions
- If "close on opposite" checkbox selected on settings, long entry will be closed on short entry and vice versa
 COMBINATIONS DETAILS 
- There are 4 combinations that joined with "AND" & "OR" operators for each condition
- combinations are built up from compare 1st entry with 2nd one by using operator
- 1st and 2nd entries includes already defined indicators (IND1-5), External Indicator (EXT), Custom Indicator (CUST), and other sources (close, open...) 
- Operators are comparison values such as >,<, crossover,...
- 2nd entry include "VALUE" parameter that will use to compare 1st indicator with value area
- If 2nd indicator selected different than "VALUE",  value are will mean previous value of the selection. (ex: value area= 2, 2nd entry=close, means close )
- Selecting "NONE" for the 1st entry will disable  calculation of current and following combinations
 JOINS DETAILS 
- Each combination will join wiht the following one with the JOIN (AND, OR) operator (if the following one is not equal "NONE")
 CUSTOM INDICATOR 
- Custom Indicator defines harcoded in the source code.
- You can call it with "CUST" in the Indicator definition source or combination entries source 
- You can change or implement your custom indicator by updating the source code
 EXTERNAL INDICATOR 
- You can import an external indicator by selecting it from the ext source.
- External Indicator should be already imported to the chart and it have an plot function to output its signal
 EXPORTING SIGNAL 
- You can export your result to an already defined strategy template such as Pine coders, Benson, Daveatt Strategy templates 
- Or you can define your custom export for other future strategy templates
 ALERTS 
- By enabling show alerts checkbox, you can see long entry exits on the bottom, and short entry exits aon the top of the chart
 ADDITIONAL INFO 
- You can see all off the inputs descriptions in the tooltips. (You can also see the previous version for details)
- Availability to set start, end dates
- Minimize repainting by using security function options (Secure, Semi Secure, Repaint) 
- Availability of use timeframes
- 
Version 3 INDICATORS LIST (More to be added):
▼▼▼ OVERLAY INDICATORS ▼▼▼
alma(src,len,offset=0.85,sigma=6).-------Arnaud Legoux Moving Average 
ama(src,len,fast=14,slow=100).-----------Adjusted Moving Average
accdist().-------------------------------Accumulation/distribution index. 
cma(src,len).----------------------------Corrective Moving average    
dema(src,len).---------------------------Double EMA  (Same as EMA with 2 factor)
ema(src,len).----------------------------Exponential Moving Average 
gmma(src,len).---------------------------Geometric Mean Moving Average
highest(src,len).------------------------Highest value for a given number of bars back.   
hl2ma(src,len).--------------------------higest lowest moving average
hma(src,len).----------------------------Hull Moving Average.
lagAdapt(src,len,perclen=5,fperc=50).----Ehlers Adaptive Laguerre filter
lagAdaptV(src,len,perclen=5,fperc=50).---Ehlers Adaptive Laguerre filter variation
laguerre(src,len).-----------------------Ehlers Laguerre filter
lesrcp(src,len).-------------------------lowest exponential esrcpanding moving line
lexp(src,len).---------------------------lowest exponential expanding moving line 
linreg(src,len,loffset=1).---------------Linear regression
lowest(src,len).-------------------------Lovest value for a given number of bars back.
mcginley(src, len.-----------------------McGinley Dynamic adjusts for market speed shifts, which sets it apart from other moving averages, in addition to providing clear moving average lines
percntl(src,len).------------------------percentile nearest rank. Calculates percentile using method of Nearest Rank.
percntli(src,len).-----------------------percentile linear interpolation. Calculates percentile using method of linear interpolation between the two nearest ranks.
previous(src,len).-----------------------Previous n (len) value of the source   
pivothigh(src,BarsLeft=len,BarsRight=2).-Previous pivot high. src=src, BarsLeft=len, BarsRight=p1=2
pivotlow(src,BarsLeft=len,BarsRight=2).--Previous pivot low. src=src, BarsLeft=len, BarsRight=p1=2
rema(src,len).---------------------------Range EMA (REMA)   
rma(src,len).----------------------------Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length.
sar(start=len, inc=0.02, max=0.02).------Parabolic SAR (parabolic stop and reverse) is a method to find potential reversals in the market price direction of traded goods.start=len, inc=p1, max=p2. ex: sar(0.02, 0.02, 0.02)    
sma(src,len).----------------------------Smoothed Moving Average
smma(src,len).---------------------------Smoothed Moving Average
super2(src,len).-------------------------Ehlers super smoother, 2 pole 
super3(src,len).-------------------------Ehlers super smoother, 3 pole
supertrend(src,len,period=3).------------Supertrend indicator
swma(src,len).---------------------------Sine-Weighted Moving Average
tema(src,len).---------------------------Triple EMA  (Same as EMA with 3 factor)
tma(src,len).----------------------------Triangular Moving Average
vida(src,len).---------------------------Variable Index Dynamic Average   
vwma(src,len).---------------------------Volume Weigted Moving Average
volstop(src,len,atrfactor=2).------------Volatility Stop is a technical indicator that is used by traders to help place effective stop-losses. atrfactor=p1
wma(src,len).----------------------------Weigted Moving Average 
vwap(src_).------------------------------Volume Weighted Average Price (VWAP) is  used to measure the average price weighted by volume     
▼▼▼ NON OVERLAY INDICATORS ▼▼
adx(dilen=len, adxlen=14, adxtype=0).----adx. The Average Directional Index (ADX) is a used to determine the strength of a trend. len=>dilen, p1=adxlen (default=14), p2=adxtype 0:ADX, 1:+DI, 2:-DI (def:0)
angle(src,len).--------------------------angle of the series   (Use its Input as another indicator output)
aroon(len,dir=0).------------------------aroon indicator. Aroons major function is to identify new trends as they happen.p1 = dir: 0=mid (default), 1=upper, 2=lower
atr(src,len).----------------------------average true range. RMA of true range.                
awesome(fast=len=5,slow=34,type=0).------Awesome Oscilator is an indicator used to measure market momentum. defaults : fast=len= 5, p1=slow=34, p2=type: 0=Awesome, 1=difference
bbr(src,len,mult=1).---------------------bollinger %%
bbw(src,len,mult=2).---------------------Bollinger Bands Width. The Bollinger Band Width is the difference between the upper and the lower Bollinger Bands divided by the middle band.
cci(src,len).----------------------------commodity channel index
cctbbo(src,len).-------------------------CCT Bollinger Band Oscilator
change(src,len).-------------------------A.K.A. Momentum. Difference between current value and previous, source - source . is most commonly referred to as a rate and measures the acceleration of the price and/or volume of a security
cmf(len=20).-----------------------------Chaikin Money Flow Indicator used to measure Money Flow Volume over a set period of time. Default use is len=20
cmo(src,len).----------------------------Chande Momentum Oscillator. Calculates the difference between the sum of recent gains and the sum of recent losses and then divides the result by the sum of all price movement over the same period.
cog(src,len).----------------------------The cog (center of gravity) is an indicator based on statistics and the Fibonacci golden ratio.
copcurve(src,len).-----------------------Coppock Curve.  was originally developed by Edwin Sedge Coppock (Barrons Magazine, October 1962).
correl(src,len).-------------------------Correlation coefficient. Describes the degree to which two series tend to deviate from their ta.sma values.
count(src,len).--------------------------green avg - red avg
cti(src,len).----------------------------Ehler s Correlation Trend Indicator by 
dev(src,len).----------------------------ta.dev()  Measure of difference between the series and its ta.sma
dpo(len).--------------------------------Detrended Price OScilator is used to remove trend from price.   
efi(len).--------------------------------Elders Force Index (EFI) measures the power behind a price movement using price and volume.
eom(len=14,div=10000).-------------------Ease of Movement.It is designed to measure the relationship between price and volume.p1 = div: 10000= (default)
falling(src,len).------------------------ta.falling() Test if the `source` series is now falling for `length` bars long. (Use its Input as another indicator output)
fisher(len).-----------------------------Fisher Transform is a technical indicator that converts price to Gaussian normal distribution and signals when prices move significantly by referencing recent price data
histvol(len).----------------------------Historical volatility is a statistical measure used to analyze the general dispersion of security or market index returns for a specified period of time.
kcr(src,len,mult=2).---------------------Keltner Channels Range  
kcw(src,len,mult=2).---------------------ta.kcw(). Keltner Channels Width. The Keltner Channels Width is the difference between the upper and the lower Keltner Channels divided by the middle channel.
klinger(type=len).-----------------------Klinger oscillator aims to identify money flow’s long-term trend. type=len: 0:Oscilator 1:signal
macd(src,len).---------------------------MACD (Moving Average Convergence/Divergence)
mfi(src,len).----------------------------Money Flow Index s a tool used for measuring buying and selling pressure
msi(len=10).-----------------------------Mass Index (def=10) is used to examine the differences between high and low stock prices over a specific period of time
nvi().-----------------------------------Negative Volume Index
obv().-----------------------------------On Balance Volume
pvi().-----------------------------------Positive Volume Index 
pvt().-----------------------------------Price Volume Trend
ranges(src,upper=len, lower=-5).---------ranges of the source. src=src, upper=len, v1:lower=upper .  returns: -1 source=upper otherwise 0
rising(src,len).-------------------------ta.rising() Test if the `source` series is now rising for `length` bars long. (Use its Input as another indicator output)
roc(src,len).----------------------------Rate of Change
rsi(src,len).----------------------------Relative strength Index
rvi(src,len).----------------------------The Relative Volatility Index (RVI) is calculated much like the RSI, although it uses high and low price standard deviation instead of the RSI’s method of absolute change in price.
smi_osc(src,len,fast=5, slow=34).--------smi Oscillator
smi_sig(src,len,fast=5, slow=34).--------smi Signal
stc(src,len,fast=23,slow=50).------------Schaff Trend Cycle (STC) detects up and down trends long before the MACD. Code imported from 
stdev(src,len).--------------------------Standart deviation
trix(src,len) .--------------------------the rate of change of a triple exponentially smoothed moving average.
tsi(src,len).----------------------------The True Strength Index indicator is a momentum oscillator designed to detect, confirm or visualize the strength of a trend.
ultimateOsc(len.-------------------------Ultimate Oscillator indicator (UO) indicator is a technical analysis tool used to measure momentum across three varying timeframes
variance(src,len).-----------------------ta.variance(). Variance is the expectation of the squared deviation of a series from its mean (ta.sma), and it informally measures how far a set of numbers are spread out from their mean.
willprc(src,len).------------------------Williams %R
wad().-----------------------------------Williams Accumulation/Distribution.
wvad().----------------------------------Williams Variable Accumulation/Distribution.
 HISTORY 
v3.01
ADD:  23 new indicators added to indicators list from the library. Current Total number of Indicators are 93. (to be continued to adding)
ADD:  2 more Parameters (P1,P2) for indicator calculation added. Par:(Use Defaults) uses only indicator(Source, Length) with library's default parameters. Par:(Use Extra Parameters P1,P2) use indicator(Source,Length,p1,p2) with additional parameters if indicator needs.
ADD:  log calculation (simple, log10) option added on indicator function entries  
ADD:  New Output Signals added for compatibility on exporting condition signals to different Strategy templates.
ADD:  Alerts Added according to conditions results
UPD:  Indicator source inputs now display with indicators descriptions 
UPD:  Most off the source code rearranged and some functions moved to the new library. Now system work like a little bit frontend/backend
UPD:  Performance improvement made on factorization and other source code
UPD:  Input GUI rearranged
UPD:  Tooltips corrected
REM:  Extended indicators removed 
UPD:  IND1-IND4 added to indicator data source. Now it is possible to create new indicators with the previously defined indicators value. ex: IND1=ema(close,14) and IND2=rsi(IND1,20) means IND2=rsi(ema(close,14),20) 
UPD:  Custom Indicator (CUST) added to indicator data source and Combination Indicator source. 
UPD:  Volume added to indicator data source and Combination Indicator source. 
REM:  Custom indicators removed and only one custom indicator left
REM:  Plot Type "Org. Range (-1,1)" removed
UPD:  angle, rising, falling type operators moved to indicator library
KDJ stochastic indicatorThis is a special calculation of KDJ indicator. As you may know this is based on stochastic indicator. Stochastic indicator is a method to normalize a trending time serie (here price). the calculation of stochastic itself is a built in function in pine but it is straight forward:
In sudo code:
RSV for n days=(Cn-Ln)/(Hn-Ln)×100
In which, Cn is the closing price on the nth day; Ln is the lowest price in n days; Hn is the highest price in n days.
To calculate other indices K, D and J we use this formulas:
K = (2/3) * K  + (1/3) * RSV
D = (2/3) * D  + (1/3) * K
J = 3 * K - 2 * D
As you can see it is a recursive calculation. It means any value of the indices are affected by it's own previous value (and I'm passionate about recursive functions!) It may concern you that in the initial calculation there is no previous value and you are right. For the initial values we use value of 50 because it is an oscillator and the mean value is always 50 so we replace the first NAs with 50 using nz() function in pine.
After doing this calculations we reach to the smoothing section. I used simple moving averages, you may replace it with other more advanced smoothing techniqes like EMA or ALMA.
After I wrote this indicator I saw that it is a good indicator for reading divergences. As you can see I showed couple of these divergences to you on the chart. Notice that I analyzed divergence between price and J (very light green) line and not to K or D. I really appreciate any suggestion on this indicator and hope to improve it. The other ones present in the public library wasn't good and they differ a lot in the calculation and also the graphics doesn't look good.
Be free to change the parameter i saw these parameter are good to daily Bitcoin chart.















