taLibrary "ta"
█ OVERVIEW
This library holds technical analysis functions calculating values for which no Pine built-in exists.
Look first. Then leap.
█ FUNCTIONS
cagr(entryTime, entryPrice, exitTime, exitPrice)
It calculates the "Compound Annual Growth Rate" between two points in time. The CAGR is a notional, annualized growth rate that assumes all profits are reinvested. It only takes into account the prices of the two end points — not drawdowns, so it does not calculate risk. It can be used as a yardstick to compare the performance of two instruments. Because it annualizes values, the function requires a minimum of one day between the two end points (annualizing returns over smaller periods of times doesn't produce very meaningful figures).
Parameters:
entryTime : The starting timestamp.
entryPrice : The starting point's price.
exitTime : The ending timestamp.
exitPrice : The ending point's price.
Returns: CAGR in % (50 is 50%). Returns `na` if there is not >=1D between `entryTime` and `exitTime`, or until the two time points have not been reached by the script.
█ v2, Mar. 8, 2022
Added functions `allTimeHigh()` and `allTimeLow()` to find the highest or lowest value of a source from the first historical bar to the current bar. These functions will not look ahead; they will only return new highs/lows on the bar where they occur.
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `high`.
Returns: (float) The highest value tracked.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
Parameters:
src : (series int/float) Series to track. Optional. The default is `low`.
Returns: (float) The lowest value tracked.
█ v3, Sept. 27, 2022
This version includes the following new functions:
aroon(length)
Calculates the values of the Aroon indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the Aroon-Up and Aroon-Down values.
coppock(source, longLength, shortLength, smoothLength)
Calculates the value of the Coppock Curve indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
longLength (simple int) : (simple int) Number of bars for the fast ROC value (length).
shortLength (simple int) : (simple int) Number of bars for the slow ROC value (length).
smoothLength (simple int) : (simple int) Number of bars for the weigted moving average value (length).
Returns: (float) The oscillator value.
dema(source, length)
Calculates the value of the Double Exponential Moving Average (DEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `source`.
dema2(src, length)
An alternate Double Exponential Moving Average (Dema) function to `dema()`, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The double exponentially weighted moving average of the `src`.
dm(length)
Calculates the value of the "Demarker" indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
ema2(src, length)
An alternate ema function to the `ta.ema()` built-in, which allows a "series float" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int/float) Number of bars (length).
Returns: (float) The exponentially weighted moving average of the `src`.
eom(length, div)
Calculates the value of the Ease of Movement indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
div (simple int) : (simple int) Divisor used for normalzing values. Optional. The default is 10000.
Returns: (float) The oscillator value.
frama(source, length)
The Fractal Adaptive Moving Average (FRAMA), developed by John Ehlers, is an adaptive moving average that dynamically adjusts its lookback period based on fractal geometry.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The fractal adaptive moving average of the `source`.
ft(source, length)
Calculates the value of the Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
ht(source)
Calculates the value of the Hilbert Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
ichimoku(conLength, baseLength, senkouLength)
Calculates values of the Ichimoku Cloud indicator, including tenkan, kijun, senkouSpan1, senkouSpan2, and chikou. NOTE: offsets forward or backward can be done using the `offset` argument in `plot()`.
Parameters:
conLength (int) : (series int) Length for the Conversion Line (Tenkan). The default is 9 periods, which returns the mid-point of the 9 period Donchian Channel.
baseLength (int) : (series int) Length for the Base Line (Kijun-sen). The default is 26 periods, which returns the mid-point of the 26 period Donchian Channel.
senkouLength (int) : (series int) Length for the Senkou Span 2 (Leading Span B). The default is 52 periods, which returns the mid-point of the 52 period Donchian Channel.
Returns: ( [float, float, float, float, float ]) A tuple of the Tenkan, Kijun, Senkou Span 1, Senkou Span 2, and Chikou Span values. NOTE: by default, the senkouSpan1 and senkouSpan2 should be plotted 26 periods in the future, and the Chikou Span plotted 26 days in the past.
ift(source)
Calculates the value of the Inverse Fisher Transform indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
Returns: (float) The oscillator value.
kvo(fastLen, slowLen, trigLen)
Calculates the values of the Klinger Volume Oscillator.
Parameters:
fastLen (simple int) : (simple int) Length for the fast moving average smoothing parameter calculation.
slowLen (simple int) : (simple int) Length for the slow moving average smoothing parameter calculation.
trigLen (simple int) : (simple int) Length for the trigger moving average smoothing parameter calculation.
Returns: ( [float, float ]) A tuple of the KVO value, and the trigger value.
pzo(length)
Calculates the value of the Price Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
rms(source, length)
Calculates the Root Mean Square of the `source` over the `length`.
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The RMS value.
rwi(length)
Calculates the values of the Random Walk Index.
Parameters:
length (simple int) : (simple int) Lookback and ATR smoothing parameter length.
Returns: ( [float, float ]) A tuple of the `rwiHigh` and `rwiLow` values.
stc(source, fast, slow, cycle, d1, d2)
Calculates the value of the Schaff Trend Cycle indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
fast (simple int) : (simple int) Length for the MACD fast smoothing parameter calculation.
slow (simple int) : (simple int) Length for the MACD slow smoothing parameter calculation.
cycle (simple int) : (simple int) Number of bars for the Stochastic values (length).
d1 (simple int) : (simple int) Length for the initial %D smoothing parameter calculation.
d2 (simple int) : (simple int) Length for the final %D smoothing parameter calculation.
Returns: (float) The oscillator value.
stochFull(periodK, smoothK, periodD)
Calculates the %K and %D values of the Full Stochastic indicator.
Parameters:
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
stochRsi(lengthRsi, periodK, smoothK, periodD, source)
Calculates the %K and %D values of the Stochastic RSI indicator.
Parameters:
lengthRsi (simple int) : (simple int) Length for the RSI smoothing parameter calculation.
periodK (simple int) : (simple int) Number of bars for Stochastic calculation. (length).
smoothK (simple int) : (simple int) Number of bars for smoothing of the %K value (length).
periodD (simple int) : (simple int) Number of bars for smoothing of the %D value (length).
source (float) : (series int/float) Series of values to process. Optional. The default is `close`.
Returns: ( [float, float ]) A tuple of the slow %K and the %D moving average values.
supertrend(factor, atrLength, wicks)
Calculates the values of the SuperTrend indicator with the ability to take candle wicks into account, rather than only the closing price.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is false.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
szo(source, length)
Calculates the value of the Sentiment Zone Oscillator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
t3(source, length, vf)
Calculates the value of the Tilson Moving Average (T3).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
t3Alt(source, length, vf)
An alternate Tilson Moving Average (T3) function to `t3()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
vf (simple float) : (simple float) Volume factor. Affects the responsiveness.
Returns: (float) The Tilson moving average of the `source`.
tema(source, length)
Calculates the value of the Triple Exponential Moving Average (TEMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
tema2(source, length)
An alternate Triple Exponential Moving Average (TEMA) function to `tema()`, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The triple exponentially weighted moving average of the `source`.
trima(source, length)
Calculates the value of the Triangular Moving Average (TRIMA).
Parameters:
source (float) : (series int/float) Series of values to process.
length (int) : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `source`.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a "series int" length argument.
Parameters:
src : (series int/float) Series of values to process.
length : (series int) Number of bars (length).
Returns: (float) The triangular moving average of the `src`.
trix(source, length, signalLength, exponential)
Calculates the values of the TRIX indicator.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Length for the smoothing parameter calculation.
signalLength (simple int) : (simple int) Length for smoothing the signal line.
exponential (simple bool) : (simple bool) Condition to determine whether exponential or simple smoothing is used. Optional. The default is `true` (exponential smoothing).
Returns: ( [float, float, float ]) A tuple of the TRIX value, the signal value, and the histogram.
uo(fastLen, midLen, slowLen)
Calculates the value of the Ultimate Oscillator.
Parameters:
fastLen (simple int) : (series int) Number of bars for the fast smoothing average (length).
midLen (simple int) : (series int) Number of bars for the middle smoothing average (length).
slowLen (simple int) : (series int) Number of bars for the slow smoothing average (length).
Returns: (float) The oscillator value.
vhf(source, length)
Calculates the value of the Vertical Horizontal Filter.
Parameters:
source (float) : (series int/float) Series of values to process.
length (simple int) : (simple int) Number of bars (length).
Returns: (float) The oscillator value.
vi(length)
Calculates the values of the Vortex Indicator.
Parameters:
length (simple int) : (simple int) Number of bars (length).
Returns: ( [float, float ]) A tuple of the viPlus and viMinus values.
vzo(length)
Calculates the value of the Volume Zone Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
williamsFractal(period)
Detects Williams Fractals.
Parameters:
period (int) : (series int) Number of bars (length).
Returns: ( [bool, bool ]) A tuple of an up fractal and down fractal. Variables are true when detected.
wpo(length)
Calculates the value of the Wave Period Oscillator.
Parameters:
length (simple int) : (simple int) Length for the smoothing parameter calculation.
Returns: (float) The oscillator value.
█ v7, Nov. 2, 2023
This version includes the following new and updated functions:
atr2(length)
An alternate ATR function to the `ta.atr()` built-in, which allows a "series float" `length` argument.
Parameters:
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The ATR value.
changePercent(newValue, oldValue)
Calculates the percentage difference between two distinct values.
Parameters:
newValue (float) : (series int/float) The current value.
oldValue (float) : (series int/float) The previous value.
Returns: (float) The percentage change from the `oldValue` to the `newValue`.
donchian(length)
Calculates the values of a Donchian Channel using `high` and `low` over a given `length`.
Parameters:
length (int) : (series int) Number of bars (length).
Returns: ( [float, float, float ]) A tuple containing the channel high, low, and median, respectively.
highestSince(cond, source)
Tracks the highest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the highest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `high`.
Returns: (float) The highest `source` value since the last time the `cond` was `true`.
lowestSince(cond, source)
Tracks the lowest value of a series since the last occurrence of a condition.
Parameters:
cond (bool) : (series bool) A condition which, when `true`, resets the tracking of the lowest `source`.
source (float) : (series int/float) Series of values to process. Optional. The default is `low`.
Returns: (float) The lowest `source` value since the last time the `cond` was `true`.
relativeVolume(length, anchorTimeframe, isCumulative, adjustRealtime)
Calculates the volume since the last change in the time value from the `anchorTimeframe`, the historical average volume using bars from past periods that have the same relative time offset as the current bar from the start of its period, and the ratio of these volumes. The volume values are cumulative by default, but can be adjusted to non-accumulated with the `isCumulative` parameter.
Parameters:
length (simple int) : (simple int) The number of periods to use for the historical average calculation.
anchorTimeframe (simple string) : (simple string) The anchor timeframe used in the calculation. Optional. Default is "D".
isCumulative (simple bool) : (simple bool) If `true`, the volume values will be accumulated since the start of the last `anchorTimeframe`. If `false`, values will be used without accumulation. Optional. The default is `true`.
adjustRealtime (simple bool) : (simple bool) If `true`, estimates the cumulative value on unclosed bars based on the data since the last `anchor` condition. Optional. The default is `false`.
Returns: ( [float, float, float ]) A tuple of three float values. The first element is the current volume. The second is the average of volumes at equivalent time offsets from past anchors over the specified number of periods. The third is the ratio of the current volume to the historical average volume.
rma2(source, length)
An alternate RMA function to the `ta.rma()` built-in, which allows a "series float" `length` argument.
Parameters:
source (float) : (series int/float) Series of values to process.
length (float) : (series int/float) Length for the smoothing parameter calculation.
Returns: (float) The rolling moving average of the `source`.
supertrend2(factor, atrLength, wicks)
An alternate SuperTrend function to `supertrend()`, which allows a "series float" `atrLength` argument.
Parameters:
factor (float) : (series int/float) Multiplier for the ATR value.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
wicks (simple bool) : (simple bool) Condition to determine whether to take candle wicks into account when reversing trend, or to use the close price. Optional. Default is `false`.
Returns: ( [float, int ]) A tuple of the superTrend value and trend direction.
vStop(source, atrLength, atrFactor)
Calculates an ATR-based stop value that trails behind the `source`. Can serve as a possible stop-loss guide and trend identifier.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (simple int) : (simple int) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
vStop2(source, atrLength, atrFactor)
An alternate Volatility Stop function to `vStop()`, which allows a "series float" `atrLength` argument.
Parameters:
source (float) : (series int/float) Series of values that the stop trails behind.
atrLength (float) : (series int/float) Length for the ATR smoothing parameter calculation.
atrFactor (float) : (series int/float) The multiplier of the ATR value. Affects the maximum distance between the stop and the `source` value. A value of 1 means the maximum distance is 100% of the ATR value. Optional. The default is 1.
Returns: ( [float, bool ]) A tuple of the volatility stop value and the trend direction as a "bool".
Removed Functions:
allTimeHigh(src)
Tracks the highest value of `src` from the first historical bar to the current bar.
allTimeLow(src)
Tracks the lowest value of `src` from the first historical bar to the current bar.
trima2(src, length)
An alternate Triangular Moving Average (TRIMA) function to `trima()`, which allows a
"series int" length argument.
Cari dalam skrip untuk "wave"
MathSpecialFunctionsTestFunctionsLibrary "MathSpecialFunctionsTestFunctions"
Methods for test functions.
rosenbrock(input_x, input_y) Valley-shaped Rosenbrock function for 2 dimensions: (x,y) -> (1-x)^2 + 100*(y-x^2)^2.
Parameters:
input_x : float, common range within (-5.0, 10.0) or (-2.048, 2.048).
input_y : float, common range within (-5.0, 10.0) or (-2.048, 2.048).
Returns: float
rosenbrock_mdim(samples) Valley-shaped Rosenbrock function for 2 or more dimensions.
Parameters:
samples : float array, common range within (-5.0, 10.0) or (-2.048, 2.048).
Returns: float
himmelblau(input_x, input_y) Himmelblau, a multi-modal function: (x,y) -> (x^2+y-11)^2 + (x+y^2-7)^2
Parameters:
input_x : float, common range within (-6.0, 6.0 ).
input_y : float, common range within (-6.0, 6.0 ).
Returns: float
rastrigin(samples) Rastrigin, a highly multi-modal function with many local minima.
Parameters:
samples : float array, common range within (-5.12, 5.12 ).
Returns: float
drop_wave(input_x, input_y) Drop-Wave, a multi-modal and highly complex function with many local minima.
Parameters:
input_x : float, common range within (-5.12, 5.12 ).
input_y : float, common range within (-5.12, 5.12 ).
Returns: float
ackley(input_x) Ackley, a function with many local minima. It is nearly flat in outer regions but has a large hole at the center.
Parameters:
input_x : float array, common range within (-32.768, 32.768 ).
Returns: float
bohachevsky1(input_x, input_y) Bowl-shaped first Bohachevsky function.
Parameters:
input_x : float, common range within (-100.0, 100.0 ).
input_y : float, common range within (-100.0, 100.0 ).
Returns: float
matyas(input_x, input_y) Plate-shaped Matyas function.
Parameters:
input_x : float, common range within (-10.0, 10.0 ).
input_y : float, common range within (-10.0, 10.0 ).
Returns: float
six_hump_camel(input_x, input_y) Valley-shaped six-hump camel back function.
Parameters:
input_x : float, common range within (-3.0, 3.0 ).
input_y : float, common range within (-2.0, 2.0 ).
Returns: float
MACD PlusMoving Average Convergence Divergence – MACD
The MACD is an extremely popular indicator used in technical analysis. It can be used to identify aspects of a security's overall trend. Most notably these aspects are momentum, as well as trend direction and duration. What makes the MACD so informative is that it is actually the combination of two different types of indicators. First, the MACD employs two Moving Averages of varying lengths (which are lagging indicators) to identify trend direction and duration. Then, it takes the difference in values between those two Moving Averages (MACD Line) and an EMA of those Moving Averages (Signal Line) and plots that difference between the two lines as a histogram which oscillates above and below a center Zero Line. The histogram is used as a good indication of a security's momentum.
Added Color Plots to Settings Pane.
Switched MTF Logic to turn ON/OFF automatically w/ TradingView's Built in Feature.
Added Ability to Turn ON/OFF Show MacD & Signal Line.
Added Ability to Turn ON/OFF Show Histogram.
Added Ability to Change MACD Line Colors Based on Trend.
Added Ability to Highlight Price Bars Based on Trend.
Added Alerts to Settings Pane.
Customized Alerts to Show Symbol, TimeFrame, Closing Price, MACD Crosses Up & MACD Crosses Down Signals in Alert.
Alerts are Pre-Set to only Alert on Bar Close.
Added ability to show Dots when MACD Crosses.
Added Ability to Change Plot Widths in Settings Pane.
Added in Alert Feature where Cross Up if above 0 or cross down if below 0 (OFF By Default).
Squeeze Pro
Traditionally, John Carter's version uses 20 period SMAs as the basis lines on both the BB and the KC.
In this version, I've given the freedom to change this and try out different types of moving averages.
The original squeeze indicator had only one Squeeze setting, though this new one has three.
The gray dot Squeeze, call it a "low squeeze" or an "early squeeze" - this is the easiest Squeeze to form based on its settings.
The orange dot Squeeze is the original from the first Squeeze indicator.
And finally, the yellow dot squeeze, call it a "high squeeze" or "power squeeze" - is the most difficult to form and suggests price is under extreme levels of compression.
Colored Directional Movement Index (CDMI) , a custom interpretation of J. Welles Wilder’s Directional Movement Index (DMI), where :
DMI is a collection of three separate indicators ( ADX , +DI , -DI ) combined into one and measures the trend’s strength as well as its direction
CDMI is a custom interpretation of DMI which presents ( ADX , +DI , -DI ) with a color scale - representing the trend’s strength, color density - representing momentum/slope of the trend’s strength, and triangle up/down shapes - representing the trend’s direction. CDMI provides all the information in a single line with colored triangle shapes plotted on the bottom. DMI can provide quality information and even trading signals but it is not an easy indicator to master, whereus CDMI simplifies its usage. The CDMI adds additional insight of verifying/confirming the trend as well as its strength
Label :
Displaying the trend strength and direction
Displaying adx and di+/di- values
Displaying adx's momentum (growing or falling)
Where tooltip label describes "howto read colored dmi line"
Ability to display historical values of DMI readings displayed in the label.
Added "Expert Trend Locator - XTL"
The XTL was developed by Tom Joseph (in his book Applying Technical Analysis ) to identify major trends, similar to Elliott Wave 3 type swings.
Blue bars are bullish and indicate a potential upwards impulse.
Red bars are bearish and indicate a potential downwards impulse.
White bars indicate no trend is detected at the moment.
Added "Williams Vix Fix" signal. The Vix is one of the most reliable indicators in history for finding market bottoms. The Williams Vix Fix is simply a code from Larry Williams creating almost identical results for creating the same ability the Vix has to all assets.
The VIX has always been much better at signaling bottoms than tops. Simple reason is when market falls retail traders panic and increase volatility , and professionals come in and capitalize on the situation. At market tops there is no one panicking... just liquidity drying up.
The FE green triangles are "Filtered Entries"
The AE green triangles are "Aggressive Filtered Entries"
Pivot Target (5m Futures)I am new to both Futures Trading and Pivots. Looking for shorter-term profitable opportunities, I have investigated the use of pivots from a higher timeframe. All the work of this script is performed using two lines. It calculates the pivot from the previous 2-hour bar and draws this pivot line on the 5-minute timeframe. Many many times, the price will reach back to this pivot point - sometimes fairly quickly within the same horizontal pivot line and sometimes farther out (4-hours to 6-hours, or within the next few days). Price tends to reach the level around ninety percent of the time, making for plenty of short-term trading opportunities.
I get the best results when I see the price rise or fall from the pivot, along with a second indicator indicating a possible reversal (my favorite is Divergence for Many Indicators v4 by LonesomeTheBlue . Who knew divergence (both regular and hidden) was so common and useful for finding probable reversals? If I find the price above or below the pivot line with a second signal, I'll place a buy or sell within that same 2-hour window the price tends to return back to the higher timeframe pivot for a nice profit very quickly. Other times it does take a little longer to return with only a small percentage of time not returning within a reasonable amount of time, or very unusually, not at all. The image above shows a number of profitable trading opportunities using a combination of the Pivot Target and LonesomeTheBlue's Divergence for Many Indicators v4. You can further limit risk by only taking trades that are in the same direction of the overall trend, possibly confirmed on a higher timeframe.
This script will only be visible on the 5-minute timeframe the way it is written right now. I wouldn't suggest shorter or longer timeframes unless some editing is done by you. It doesn't seem to work as well with stocks, but is best on Futures due to the wave-like natures of the futures market. Trade safe, trade with the trend, use stops and limits appropriately and stay safe.
[RedK] Stepped Moving Average Channel (SMAC)The Stepping Moving Average Channel (SMAC) is not an indicator - It is more of a trading tool that was put together to enable a trader to take advantage of relatively fast price moves with quick incremental gain - maybe by exploiting opportunities to trade basic options (Calls, Puts) or to help with in/out-type swing trades. This is more a price-level visualization tool so please use it with this in mind, and not as a trading tool by itself.
While it looks very similar to a Donchian channel, SMAC plots a stepping channel of the moving average of the high & low prices (channel borders) - with an envelope that is at a user-specified % distance from the channel borders.
This setup, when combined with other Moving Averages and lower indicators, may make it easier for a trader to prepare for a trade with clear entry and exit price levels being planned upfront.
For example, a trader wants to capture 2% of the next move, will set the envelope to 2% and have clearer view of entry/exit price levels for such a scenario. once the trader receives confirmation (from other indicators or charts) that the price is heading in the way expected, the SMAC may make it simpler and quicker to estimate (and visualize) the entry/exit price levels and track the movement.
* The stepping feature helps remove price noise and the auto-stepping feature is designed to "snap to" those mental price levels that trader gravitate towards.
* The moving average type I used here is the Compound Ratio MA (CoRA_Wave) .
* This MA type was selected because it has a very high responsiveness and good smoothness, and tracks the price values very closely.
* The MA type can be replaced within the code with any other MA as preferred.
The auto-stepping feature:
----------------------------------
User can override the auto-stepping by entering a manual step value
when the auto-stepping is active, it will attempt to pick the best step size based on the underlying price range and the timeframe selected.
The step selection may not be ideal in some combination of value / TF - i will continue to improve these combinations
Stepping can also be completely disabled - this bring SMAC back to a regular (though highly responsive) Hi/Lo MA channel with envelope
The Excel table snippet in the chart above shows the various step value / TF combinations.
Also the stepping values can be further customized by changing the appropriate part in the script.
Other features:
--------------------
* Rounding Options: The stepping calculations uses one of 2 selectable methods:
1 -- regular rounding (uses the round() function): which rounds the price up & down depending on where it is compared to the half-step value
example: a value of 17 with a step of 10 will be rounded to 20. a value of 13 in that case will be rounded to 10
2 -- Whole Step (uses the int() function): this will only consider whole/fully completed steps - if the average (hi or low) does not explicitly exceed the next step level, we will not get that next value.
example: both values of 17 and 13 with a step of 10 will be rounded to 10.
* The "Quick Table":
The Quick Table shows on the top-left - and can be disabled in the script settings - It shows the currently selected stepping mode and value - since the auto-step changes dynamically with the selected chart timeframe, this makes it easier for the trader to view the active "configuration"
overall, i hope some traders find this quick utility useful - if not to use, maybe to inspire other ideas
- please feel free to use or customize in any way you need. Feel free to share feedback and observations.
[pp] Signal GeneratorResearch and Development Tool.
For anyone who is familiar with working with digital signals (audio/electrical engineers) you might appreciate this Signal Generator.
You can select and vary 4 different types of signals.
Logistic Map
If you're not familiar with the logistic map, then go watch a youtube video. By default the equation is meant to represent chaos and is a good alternative for random number generation.
Random
This uses the built-in random number generator. I'm not sure if it's better to use this or the logmap default settings. Either way, you have a choice.
Unit Impulse
Good for creating a transient impulse.
Step Impulse
Similar to the unit impulse. Except constant and not a transient.
Synthesizer
It comes with 4 wave functions (Sine, Triangle, Square, Saw) that can be combined for additive synthesis. Each wave function contains its own respective phase and amplitude control.
Credits
Many of these functions were taken from www.pinecoders.com with the exception of the logistic map. I simply aggregated them all into this toolkit for ease of use.
How to use
This is not a trading indicator. This is meant to be used for research and development. You could use it to test strategies, by generating white noise with the logmap and creating trading signals. Or you could use it for teaching and learning. Using the constant data as a dependable, repeatable resource.
RedK Magic RibbonRedK Magic Ribbon is simple script that combines a fast and a slow moving averages to create a 2-Moving Average Cross-over / trend visualization tool.
We utilize the Compound Ratio Weighted Average (CoRa Wave) as the fast MA line and the RedK Slow Smooth Weighted Moving Average (RSS_WMA) aka LazyLine as the slow MA line.
i put this script together when i found that i started using these 2 moving average lines in my trading charts most of the time. thought others may find it useful.
The simple idea is that when the 2 lines "agree" on direction, then this is possibly a confirmed trend in that direction.
Visually, when the 2 lines agree on a trend direction, Magic Ribbon gives either a green (up) or red (down) fill, when they disagree, it gives a gray fill - Gray areas are considered "no trade" or "get ready" zones depending on the situation.
This ribbon can be used to support trend-following trades, swing trading, or as a visual trend tracking tool
Suggested Usage Tips:
----------------------------
* Position entry should be made as close to the RSS_WMA/LazyLine as possible to maximize gain.
* The RSS_WMA can act as a guide for Stop Loss
* An aggressive (or swing) trader may consider entries as soon as the CoRa Wave line changes color, but in context of the prevailing trend.
* if you intend to use this tool for trading, please test it using the PaperTrading or Rewind features of TV to get used to how it behaves and adjust accordingly.
* The Magic Ribbon should work on any timeframe.
* The basic settings are available - they enable adjusting the length and smoothness of the CoRa Wave and the Smoothness of the RSS_WMA - as well as the source price for each. Style settings enable to adjust color, line width, or hide/show various elements as needed.
* The most important tip for using the Magic Ribbon: when you first add it to your chart, is to fine-tune the length settings to your preference. start by adjusting the LazyLine (RSS_WMA) Smoothness value, so it tracks and barely touches the highs / lows of price bars - with the least amount of lag possible - then adjust the CoRa Wave length to make it as responsive as you need. Keep smoothness to the lowest you can use (i like 3 or 4 max) - the default settings are generic usable values based on my testing.
* as usual, please use this tool only as a guide - make your own detailed chart analysis and support your trading decision with signals and confirmations from other indicators .
*** This script does not repaint.
Trading ABCHello Traders,
For a few months I have been getting requests from my followers about ABC pattern and finally I decided to make this indicator.
How it works?
- It creates Trend Cloud using Simple and Exponential moving averages with the lenghts 50, 100, 150, 200, 20, 40 by default and checks the trend. you can change the lengths as you wish
- It also creates ZigZag using the ZigZag Period in the options.
- Using last 2 zigzag waves it checks if there is suitable ABC pattern according the Trend, the Min/Max Fibonacci levels and Error Rate
- Then it check if the price bounces after this ABC pattern
- And if all these conditions met then it plot triangle
- If there are multiple bouncing then you can see multiple triangles
You can change/set;
- Zigzag Period
- Fibonacci Max level
- Fibonacci Min Level
- Error Rate
- The Lengths that are used for Moving Averages
- Keeping old ABC lines/labels
- Show Zigzag and min/max Fibonacci levels
- Show Trend Cloud
- and colors
if you don't want to see old ABC lines/labels you can disable it:
if you don't want to see Trend Cloud you can disable it:
Zigzag and Fibonacci levels:
P.S. if you have new ideas to improve this indicator then let me know please. We together can do this life easier!
Enjoy!
Zigzag SARThis is another ZigZag script. But the difference between this and other ZigZag indicators on TV is that here we find highs and lows based on Parabolic SAR.
It repaints?
YES.
On last line of ZigZag you get repainting, because the highs and lows get confirmation only if direction (SAR dots) changes.
This shouldn't be used to forecast highs and lows directly anyway, it's just a visual guide for past highs and lows.
I'm using it to spot harmonic patterns and Wolfe waves more easily. The plan is to draw these automatically in the future, but my skills at Pinescript are limited at the moment.
PS. Ideas for my scripts are coming from @Jegejig1 on Stocktwits, if you want to know who to blame lol
Trend Strength Directional IndicatorThis study was inspired by two famous Trading View contributors. Shout out to Lazy Bear and Crypto Face!
In this study you have a live view of the strength of direction the market is heading. The indicator that looks like a black wave is showing us the momentum of price action. When a green dot appears under the lower level it is a indication that we should consider buying, and if the red dot appears over the upper level we should sell. The custom MFI indicator determines how much money is flowing into the market. If it is green that means money is flowing into the market and if it shows red it means that money is flowing out of the market.
Crypto Squeeze StrategyThis strategy was inspired by two famous Trading View contributors. Shout out to Lazy Bear and Crypto Face!
The strategy includes a similar replication of the blue wave, and MFI indicator. The point of the strategy is to buy when the blue wave crosses up the zero value, and the MFI is greater than zero value. This indicates that there is strong bullish momentum and money flowing into the market.
Weis BB StrategyThis is a strategy based on Weis Wave & EMA. Weis Wave Volume is used to determine the overall trend and Bollinger Band to determine the Price breaking out from resistance zones.
[bjb] tEMAs - Triple Exponential Moving Averages, by BlueJayBirdIs it not a pain in the butt not to find a simple script like this one in TV? I didn't find one, so I made it.
Features:
- Simple script with 3 simple Exponential Moving Averages.
Special features:
- Settable time resolution.
- Colored fill between EMA20/50 pair, and between EMA50/200 pair.
More useful than you think:
- I've found it specially useful for detecting Elliot Wave patterns. The fill colors make them stand out. Use EMA20/50 pair for this.
- The resolution change makes EMAs studies from higher timeframes, at lower time frames, more accurate. Try from 1m timeframe, setting the tEMAs resolution to 1h.
Like, follow and comment. 💯
Bollinger Bands Touch MapThis simple script based on Bollinger Bands to collect Touch Point at bandsand display them on the map. Detail of rule as below:
1.Define Touch Point
1.1.Touch Point at Lower Band
+ Key bar:
- Open Price lower than BB lower band, Close Price higher than BB lower band
+ Touch Point:
- Median Price (HL2) of Key bar
1.2.Touch Point at Upper Band
+ Key bar:
- Open Price higher than BB upper band, Close Price lower than BB upper band
+ Touch Point:
- Median Price (HL2) of Key bar
1.3.Zero Point
- Close Price of Current bar
===================================
2.Touch Map
+ Last 5 Touch Point will be show on the map
+ Newest Touch point is numbered as (1) and show at the left of Zero Point
+ Each Point has a label show point's value
===================================
3.Fibonacci
+ Enable: Apply to number of Touch Points indicated
+ Style Up: 0 Level at the bottom
+ Style Down: 0 Level at the top
===================================
4.123 Pattern
+ Pattern: dot 2 and dot 3 at the Top and the Bottom of group 1234
+ M Pattern: dot 3 at the Top of group 135 and at the Bottom of group 234
+ W Pattern: dot 3 at the Bottom of group 135 and at the Top of group 234
===================================
5.Supply Demand Zone
5.1.Supply Zone
+ Supply Zone is area map structure change from upward to downward
+ Supply Zone is limited by 2 dots highest before upward structure broken
5.2.Demand Zone
+ Demand Zone is area map structure change from downward to upward
+ Demand Zone is limited by 2 dots lowest before downward structure broken
============================================================================
6.6.Over Block
6.1.Overbought Block
+ Overbought Block is location Long position covering
+ Ovb Block is limited by higest high and upper band at top of map
6.2.Oversold Block
+ Oversold Block is location Short position covering
+ Ovs Block is limited by lowest low and lower band at bottom of map
===================================
7.RSI Column
+ RSI Overbought is marked by Overbought color
+ RSI Oversold is marked by Oversold color
+ RSI Normal is marked by Normal color
+ Symbol ▲: RSI growing
+ Symbol ▼: RSI falling
===================================
8.Volume Direction
+ Volume growing is marked by Up Color
+ Volume falling is marked by Down Color
+ New Highest Volume on the map is marked by High Color and H Label
+ New Lowest Volume on the map is marked by Low Color and L Label
+ Volume higher than Median level is marked by Up Color and M Label
===================================
9.Useful features
+ Quickly find chart patter: 123, M, W...
+ Quickly find wave patter: I, V, N...
+ Quickly find Key level when moving between different Time Frame
+ Quickly recognize chart is trending or trendless
+ Quickly recognize divergence of Price and Volume
+ Quickly calculate Entry, Stoploss, Takeprofit by using Fibonacci
MESA Stochastic Multi LengthJohn Ehler's MESA Stochastic uses super smoothing to give solid signals. This indicator uses the same rules as every other Stochastic indicator so it would be worth looking into if you are not already familiar with reading a Stochastic. There are 4 different lengths displayed to give traders an edge on reading the market. This is a great tool to analyze waves and find tops and bottoms. It gives great pump and dump signals and even helps filter out bad trades when used with other indicators such as Boom Hunter.
Below are some examples of signals to look out for:
oo
Financial Astrology Vesta LongitudeVesta is one of the largest objects in the asteroid belt between Mars and Jupiter, the orbit duration is 3.63 years and seems to be very relevant celestial object in financial astrology. The experienced financial astrologer "Bill Meridian" indicates that this asteroid rules the security business, and paper securities such as bonds and stocks. We have confirmed through statistical research that adding this asteroid to astrology machine learning models provides an increase in daily trend predictions accuracy for crypto-currencies sector.
Our statistical analysis of Vesta zodiac sign location concluded that when is transiting the signs of Aries, Gemini, Cancer, Leo and Libra the daily trend is 59% or more of the days bullish. When Vesta is located at Capricorn is very bearish with 60% of the daily trend going in downward direction. In the other zodiac signs the daily trend was neutral showing most of the time a sideways pattern.
Is very interesting to note that the exact date July 21, 2021, when Vesta entered in Libra BTCUSD started the last bullish wave that finally broke the congestion zone of the 30K-35K and started a new bullish optimism. Pay attention on what happened in the previous cycle when Vesta was located in Libra and do your conclusions.
Note: Vesta longitude indicator is based on an ephemeris array that covers years 2010 to 2030, prior or after this years the data is not available, this daily ephemeris are based on UTC time so in order to align properly with the price bars times you should set UTC as your chart timezone.
[blackcat] L2 Sine-Weighted Moving Average (SWMA)Level: 2
Background
Invented by Patrick Lafferty in 1999, a Sine Weighted Moving Average (SWMA) takes its weighting from the first half of a Sine wave cycle and accordingly, the most weighting is given to the data in the middle of the data set. It is therefore very similar to the Triangular Moving Average.
Function
A sine weighted moving average (Sine-MA) applies weights to each bar in the shape of the bulge in a sine curve from 0 to pi. For an N-bar average the weightings are
/ 1 \ / 2 \ / N \
sin | --- * pi |, sin | --- * pi |, ..., sin | --- * pi |
\ N+1 / \ N+1 / \ N+1 /
The effect is that middle prices have the greatest weight (much like the TMA, Triangular Moving Average). A Sine Weighted Moving Average ( Sine WMA ) takes its weighting from the first half of a Sine wave cycle and accordingly, the most weighting is given to the data in the middle of the data set.
Key Signal
SWMA(FastLength) --> SWMA Fast Line.
SWMA(SlowLength) --> SWMA Slow Line.
Remarks
This is a Level 2 free and open source indicator.
Feedbacks are appreciated.
Trend From Volume And Price (TFVAP)Indicator that indicates buying and selling times based on price and volume and who is imposed of the two (VAP).
It uses the trends of the Dow theory (primary: 365 days/1 year, secondary: 90 days/3 months and tertiary: 21 days/3 weeks) and the identification of Elliot waves, both impulse and correction, based on the Fibonacci retracements (23.61% , 38.2%, etc.).
- Purple line is the evolution in percentage of the price in the primary trend
- Blue line is the evolution in percentage of the volume in the primary trend
- White line is the evolution in percentage of the (volume % - price %) in the primary trend, if white line > 0
- Green triangleup is time of start to buy
- Green square is time of stop to buy
- Red triangledown is time of sell
To understand it better:
If the purple line goes up it indicates that the price is rising, if it goes down, that the price is down.
If the blue line is greater than 0 it indicates that there are more purchases than sales, if the blue line is less than 0 it indicates that there are more sales than purchases.
If the white line is greater than 0 there is a high volume of purchases or low sales for the price that there is, it is likely that the price will rise.
If the white line is less than 0 there is a low volume of purchases or high sales for the price that there is, it is likely that the price will go down.
PD: Ignore the chart drawings, the indicator script is only represented at the bottom
Tesla CoilThis indicator reads the charts as frequency because the charts are just waves after all. This is an excellent tool for finding "Booms" and detecting dumps. Booms are found when all the frequencies pull under the red 20 line. Dumps are detected when all the lines drag themselves along the 20 line as seen is screenshots below.
Below is another 2 examples of a "boom". Everything sucks in before exploding out.
Below is an example of a dump:
RedK Slow_Smooth Average (RSS_WMA)RedK Slow Smooth Average (RSS_WMA) is based on simple, multi-WMA passes to generate a moving average that sacrifices low-lag and fast responsiveness for the sake of smoothness.
This smoothness enables an increased trader ability to visualize and track longer-term trends and removes the noise of smaller, relatively insignificant price fluctuations.
Notes:
=========
* RSS_WMA is deliberately built to be a "lazy line" - and it works in a different way to other common moving averages that attempt to achieve less lag and quicker responsiveness - the idea and the use scenario is to act as a "smooth base" when used against a faster moving average like the v_Wave of the Co_Ra Wave
* Note that the settings of this line is "Smoothness' and not "length" - the initial length used for the first WMA pass calculation is 1/3 of that smoothness value selected in the settings
* Increments in the combined smoothness value will be allocated first to 1st WMA pass, then 2nd WMA pass, then 3rd pass consecutively then back to 1st pass.
* because we utilize 3 WMA passes, a settings below 3 will have no effect on the line and it will just track the "source" price.
Suggested Use:
===============
- Use RSS_WMA when you're looking for a smooth moving average that can help you analyze you chart at a broader / macro level, visualize the broader price action patterns and filter out the noise from short-term moves. you can also use this line to help set your position exits since only major and persistent moves will cause this line, as lay as it is, to swing from one direction to the other.
How does RSS_WMA compare?
============================
here's a quick view of how the RSS_WMA compared to other commonly used Moving Averages, including my recently published CoRa_Wave
Code is commented - please feel free to use and customize further - please share a comment if you found this useful in your chart analysis or trading.
macBar is a script for displaying the trend with colored barsThis script is based on educational materials I received at a webinar by Jeffrey Kennedy of Elliott Wave International. I didn't find such a script in the Tradingview library, so I wrote it myself.
This is a simple script that colors the bars depending on where the price is and its extremes relative to a simple moving average.
The green bars say the market is bullish.
The gray bars indicate that the market is neutral.
The red bars say the market is bearish.
In the script, you can change the period of the simple moving average, by default it is 10.
[blackcat] L2 Ehlers Adaptive Jon Andersen R-Squared IndicatorLevel: 2
Background
@pips_v1 has proposed an interesting idea that is it possible to code an "Adaptive Jon Andersen R-Squared Indicator" where the length is determined by DCPeriod as calculated in Ehlers Sine Wave Indicator? I agree with him and starting to construct this indicator. After a study, I found "(blackcat) L2 Ehlers Autocorrelation Periodogram" script could be reused for this purpose because Ehlers Autocorrelation Periodogram is an ideal candidate to calculate the dominant cycle. On the other hand, there are two inputs for R-Squared indicator:
Length - number of bars to calculate moment correlation coefficient R
AvgLen - number of bars to calculate average R-square
I used Ehlers Autocorrelation Periodogram to produced a dynamic value of "Length" of R-Squared indicator and make it adaptive.
Function
One tool available in forecasting the trendiness of the breakout is the coefficient of determination (R-squared), a statistical measurement. The R-squared indicates linear strength between the security's price (the Y - axis) and time (the X - axis). The R-squared is the percentage of squared error that the linear regression can eliminate if it were used as the predictor instead of the mean value. If the R-squared were 0.99, then the linear regression would eliminate 99% of the error for prediction versus predicting closing prices using a simple moving average.
When the R-squared is at an extreme low, indicating that the mean is a better predictor than regression, it can only increase, indicating that the regression is becoming a better predictor than the mean. The opposite is true for extreme high values of the R-squared.
To make this indicator adaptive, the dominant cycle is extracted from the spectral estimate in the next block of code using a center-of-gravity ( CG ) algorithm. The CG algorithm measures the average center of two-dimensional objects. The algorithm computes the average period at which the powers are centered. That is the dominant cycle. The dominant cycle is a value that varies with time. The spectrum values vary between 0 and 1 after being normalized. These values are converted to colors. When the spectrum is greater than 0.5, the colors combine red and yellow, with yellow being the result when spectrum = 1 and red being the result when the spectrum = 0.5. When the spectrum is less than 0.5, the red saturation is decreased, with the result the color is black when spectrum = 0.
Construction of the autocorrelation periodogram starts with the autocorrelation function using the minimum three bars of averaging. The cyclic information is extracted using a discrete Fourier transform (DFT) of the autocorrelation results. This approach has at least four distinct advantages over other spectral estimation techniques. These are:
1. Rapid response. The spectral estimates start to form within a half-cycle period of their initiation.
2. Relative cyclic power as a function of time is estimated. The autocorrelation at all cycle periods can be low if there are no cycles present, for example, during a trend. Previous works treated the maximum cycle amplitude at each time bar equally.
3. The autocorrelation is constrained to be between minus one and plus one regardless of the period of the measured cycle period. This obviates the need to compensate for Spectral Dilation of the cycle amplitude as a function of the cycle period.
4. The resolution of the cyclic measurement is inherently high and is independent of any windowing function of the price data.
Key Signal
DC --> Ehlers dominant cycle.
AvgSqrR --> R-squared output of the indicator.
Remarks
This is a Level 2 free and open source indicator.
Feedbacks are appreciated.