iLoggerLibrary "iLogger"
Logger Library based on types and methods.
method init(this)
init will initialize logger table and log stream array
Namespace types: Logger
Parameters:
this (Logger) : Logger object
Returns: void
method getLogger(level)
Namespace types: series LogLevel
Parameters:
level (series LogLevel)
method setPage(this, pageNumber)
setPage will set current page number of logs to display
Namespace types: Logger
Parameters:
this (Logger) : Logger object
pageNumber (int) : - Page number of logs to display
Returns: void
method nextPage(this)
nextPage will incremement page number to display on screen
Namespace types: Logger
Parameters:
this (Logger) : Logger object
Returns: void
method previousPage(this)
previousPage will decrement page number to display on screen
Namespace types: Logger
Parameters:
this (Logger) : Logger object
Returns: void
method log(this, level, message)
log will record message to be logged and repopulate logs displayed
Namespace types: Logger
Parameters:
this (Logger) : Logger object
level (series LogLevel) : logging level. Can be `TRACE`, `DEBUG`, `INFO`, `WARN`, `ERROR`, `FATAL`, `CRITICAL`. Logs only if log level is higher than Loggers minimul log level set
message (string) : log message to be recorded
Returns: void
method trace(this, message)
trace will record message to be logged with level 'TRACE'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method debug(this, message)
debug will record message to be logged with level 'DEBUG'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method info(this, message)
info will record message to be logged with level 'INFO'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method warn(this, message)
warn will record message to be logged with level 'WARN'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method error(this, message)
error will record message to be logged with level 'ERROR'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
method fatal(this, message)
fatal will record message to be logged with level 'FATAL'
Namespace types: Logger
Parameters:
this (Logger) : Logger object
message (string) : log message to be recorded
Returns: void
Log
Log Object holding log entry
Fields:
level (series LogLevel) : Logging level
message (series string) : Logging message
bartime (series int) : bar time at which log is recorded
bar (series int) : bar index at which log is recorded
Logger
Logger object which can be used for logging purposes
Fields:
position (series string) : position on chart where logs can be shown. Valid values are table position values. Make sure that the script does not have any other table at this position
pageSize (series int) : size of each page of logs which can be shown on UI. Default is 10
maxEntries (series int) : max size logs to be stored
pageNumber (series int) : current page number of logs to display on chart
textSize (series string) : size of text on debug table to be shown. default is size.small. Other options - size.tiny, size.normal, size.large, size.huge, size.auto
textColor (series color) : text color of debug messages. Default is color.white
showOnlyLast (series bool) : If set, shows the logs derived only from last bar. Default is true
minimumLevel (series LogLevel) : Minimum level of logs to be considered for logging.
realTime (series bool) : Print logs based on real time bar. This should be set to true for debugging indicators and false for debugging strategies.
debugTable (series table) : table containing debug messages. It will be set in init method. Hence no need to pass this in constructor
logs (array) : Array of Log containing logging messages. It will be set in init method. Hence no need to pass this in constructor
Indicators and strategies
TradeTrackerLibrary "TradeTracker"
Simple Library for tracking trades
method track(this)
tracks trade when called on every bar
Namespace types: Trade
Parameters:
this (Trade) : Trade object
Returns: current Trade object
Trade
Has the constituents to track trades generated by any method.
Fields:
id (series int)
direction (series int) : Trade direction. Positive values for long and negative values for short trades
initialEntry (series float) : Initial entry price. This value will not change even if the entry is changed in the lifecycle of the trade
entry (series float) : Updated entry price. Allows variations to initial calculated entry. Useful in cases of trailing entry.
initialStop (series float) : Initial stop. Similar to initial entry, this is the first calculated stop for the lifecycle of trade.
stop (series float) : Trailing Stop. If there is no trailing, the value will be same as that of initial trade
targets (array) : array of target values.
startBar (series int) : bar index of starting bar. Set by default when object is created. No need to alter this after that.
endBar (series int) : bar index of last bar in trade. Set by tracker on each execution
startTime (series int) : time of the start bar. Set by default when object is created. No need to alter this after that.
endTime (series int) : time of the ending bar. Updated by tracking method.
status (series int) : Integer parameter to track the status of the trade
retest (series bool) : Boolean parameter to notify if there was retest of the entry price
reversalchartpatternsLibrary "reversalchartpatterns"
User Defined Types and Methods for reversal chart patterns - Double Top, Double Bottom, Triple Top, Triple Bottom, Cup and Handle, Inverted Cup and Handle, Head and Shoulders, Inverse Head and Shoulders
method delete(this)
Deletes the drawing components of ReversalChartPatternDrawing object
Namespace types: ReversalChartPatternDrawing
Parameters:
this (ReversalChartPatternDrawing) : ReversalChartPatternDrawing object
Returns: current ReversalChartPatternDrawing object
method delete(this)
Deletes the drawing components of ReversalChartPattern object. In turn calls the delete of ReversalChartPatternDrawing
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: current ReversalChartPattern object
method lpush(this, obj, limit, deleteOld)
Array push with limited number of items in the array. Old items are deleted when new one comes and exceeds the limit
Namespace types: array
Parameters:
this (array) : array object
obj (ReversalChartPattern) : ReversalChartPattern object which need to be pushed to the array
limit (int) : max items on the array. Default is 10
deleteOld (bool) : If set to true, also deletes the drawing objects. If not, the drawing objects are kept but the pattern object is removed from array. Default is false.
Returns: current ReversalChartPattern object
method draw(this)
Draws the components of ReversalChartPatternDrawing
Namespace types: ReversalChartPatternDrawing
Parameters:
this (ReversalChartPatternDrawing) : ReversalChartPatternDrawing object
Returns: current ReversalChartPatternDrawing object
method draw(this)
Draws the components of ReversalChartPatternDrawing within the ReversalChartPattern object.
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: current ReversalChartPattern object
method scan(zigzag, patterns, errorPercent, shoulderStart, shoulderEnd, allowedPatterns, offset)
Scans zigzag for ReversalChartPattern occurences
Namespace types: zg.Zigzag
Parameters:
zigzag (Zigzag type from Trendoscope/Zigzag/11) : ZigzagTypes.Zigzag object having array of zigzag pivots and other information on each pivots
patterns (array) : Existing patterns array. Used for validating duplicates
errorPercent (float) : Error threshold for considering ratios. Default is 13
shoulderStart (float) : Starting range of shoulder ratio. Used for identifying shoulders, handles and necklines
shoulderEnd (float) : Ending range of shoulder ratio. Used for identifying shoulders, handles and necklines
allowedPatterns (array) : array of int containing allowed pattern types
offset (int) : Offset of zigzag to consider only confirmed pivots
Returns: int pattern type
method createPattern(zigzag, patternType, patternColor, properties, offset)
Create Pattern from ZigzagTypes.Zigzag object
Namespace types: zg.Zigzag
Parameters:
zigzag (Zigzag type from Trendoscope/Zigzag/11) : ZigzagTypes.Zigzag object having array of zigzag pivots and other information on each pivots
patternType (int) : Type of pattern being created. 1 - Double Tap, 2 - Triple Tap, 3 - Cup and Handle, 4 - Head and Shoulders
patternColor (color) : Color in which the patterns are drawn
properties (ReversalChartTradeProperties)
offset (int)
Returns: ReversalChartPattern object created
method getName(this)
get pattern name of ReversalChartPattern object
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: string name of the pattern
method getDescription(this)
get consolidated description of ReversalChartPattern object
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: string consolidated description
method init(this)
initializes the ReversalChartPattern object and creates sub object types
Namespace types: ReversalChartPattern
Parameters:
this (ReversalChartPattern) : ReversalChartPattern object
Returns: ReversalChartPattern current object
ReversalChartPatternDrawing
Type which holds the drawing objects for Reversal Chart Pattern Types
Fields:
patternLines (array type from Trendoscope/Drawing/2) : array of Line objects representing pattern
entry (Line type from Trendoscope/Drawing/2) : Entry price Line
targets (array type from Trendoscope/Drawing/2)
stop (Line type from Trendoscope/Drawing/2) : Stop price Line
patternLabel (Label type from Trendoscope/Drawing/2)
ReversalChartTradeProperties
Trade properties of ReversalChartPattern
Fields:
riskAdjustment (series float) : Risk Adjustment for calculation of stop
useFixedTarget (series bool) : Boolean flag saying use fixed target type wherever possible. If fixed target type is not possible, then risk reward/fib ratios are used for calculation of targets
variableTargetType (series int) : Integer value which defines whether to use fib based targets or risk reward based targets. 1 - Risk Reward, 2 - Fib Ratios
variableTargetRatios (array) : Risk reward or Fib Ratios to be used for calculation of targets when fixed target is not possible or not enabled
entryPivotForWm (series int) : which Pivot should be considered as entry point for WM patterns. 0 refers to the latest breakout pivot where as 5 refers to initial pivot of the pattern
ReversalChartPattern
Reversal Chart Pattern master type which holds the pattern components, drawings and trade details
Fields:
pivots (array type from Trendoscope/Zigzag/11) : Array of Zigzag Pivots forming the pattern
patternType (series int) : Defines the main type of pattern 1 - Double Tap, 1 - Triple Tap, 3 - Cup and Handle, 4 - Head and Shoulders, 5- W/M Patterns, 6 - Full Trend, 7 - Half Trend
patternColor (series color) : Color in which the pattern will be drawn on chart
properties (ReversalChartTradeProperties)
drawing (ReversalChartPatternDrawing) : ReversalChartPatternDrawing object which holds the drawing components
trade (Trade type from Trendoscope/TradeTracker/1) : TradeTracker.Trade object holding trade components
marianLibraryEMALibrary "marianLibraryEMA"
ema(src, length)
Returns EMA of input source
Parameters:
src (float) : (float) - input series (price or any data)
length (simple int) : (int) - period of EMA
Returns: (float) - calculated EMA
CandleLibraryLibrary "CandleLibrary"
f_isGreen(c)
Parameters:
c (candle)
f_isRed(c)
Parameters:
c (candle)
f_isBullishEngulfing(arr, i)
Parameters:
arr (array)
i (int)
f_isDragonflyDoji(arr, i)
Parameters:
arr (array)
i (int)
is_dragonfly_doji(c0)
Parameters:
c0 (candle)
f_isHammer(arr, i)
Parameters:
arr (array)
i (int)
f_isDoji(arr, i)
Parameters:
arr (array)
i (int)
f_isDoji(can)
Parameters:
can (candle)
f_isOutsideBar(arr, i)
Parameters:
arr (array)
i (int)
f_isInsideBar(arr, i)
Parameters:
arr (array)
i (int)
f_is2up(arr, i)
Parameters:
arr (array)
i (int)
f_is2down(arr, i)
Parameters:
arr (array)
i (int)
f_isDojiStar(arr, i)
Parameters:
arr (array)
i (int)
f_isSmallGreenCandle_80(can)
Parameters:
can (candle)
f_isTinyGreenCandle(can)
Parameters:
can (candle)
f_isSmallRedCandle(can)
Parameters:
can (candle)
f_isTinyRedCandle_30(can)
Parameters:
can (candle)
f_isLessThanATR_90(can)
Parameters:
can (candle)
f_isSmallCandle(can)
Parameters:
can (candle)
f_candlePercentATR(can)
Parameters:
can (candle)
f_isTinyCandle(can)
Parameters:
can (candle)
f_isSmallBody(can)
Parameters:
can (candle)
f_isTinyBody(can)
Parameters:
can (candle)
f_isDojiStarReversal(arr, n)
Parameters:
arr (array)
n (int)
numConsecutive2down(arr)
Parameters:
arr (array)
numConsecutive2up(arr)
Parameters:
arr (array)
numConsecutiveLH(arr)
Parameters:
arr (array)
f_numLLorLH(htf_array)
Parameters:
htf_array (array)
f_numHigherLows(arr)
Parameters:
arr (array)
f_isMorningStar(arr)
Parameters:
arr (array)
f_lowerHighSeriesReversalSetup(arr, n)
Parameters:
arr (array)
n (int)
redSeriesDojiAlert2(arr)
Parameters:
arr (array)
f_isEveningStar(arr, i)
Parameters:
arr (array)
i (int)
candle
Fields:
open_next (series float)
open_ (series float)
high_ (series float)
low_ (series float)
close_ (series float)
volume_ (series float)
rsi_ (series float)
atr_ (series float)
candle_size (series float)
body_size (series float)
upperwick (series float)
lowerwick (series float)
rsi_candle
Fields:
rsiopen (series float)
rsihigh (series float)
rsilow (series float)
rsiclose (series float)
position_toolLibrary "position_tool"
Trying to turn TradingView's position tool into a library from which you can draw position tools for your strategies on the chart. Not sure if this is going to work
calcBaseUnit()
Calculates the chart symbol's base unit of change in asset prices.
Returns: (float) A ticks or pips value of base units of change.
calcOrderPipsOrTicks(orderSize, unit)
Converts the `orderSize` to ticks.
Parameters:
orderSize (float) : (series float) The order size to convert to ticks.
unit (simple float) : (simple float) The basic units of change in asset prices.
Returns: (int) A tick value based on a given order size.
calcProfitLossSize(price, entryPrice, isLongPosition)
Calculates a difference between a `price` and the `entryPrice` in absolute terms.
Parameters:
price (float) : (series float) The price to calculate the difference from.
entryPrice (float) : (series float) The price of entry for the position.
isLongPosition (bool)
Returns: (float) The absolute price displacement of a price from an entry price.
calcRiskRewardRatio(profitSize, lossSize)
Calculates a risk to reward ratio given the size of profit and loss.
Parameters:
profitSize (float) : (series float) The size of the profit in absolute terms.
lossSize (float) : (series float) The size of the loss in absolute terms.
Returns: (float) The ratio between the `profitSize` to the `lossSize`
createPosition(entryPrice, entryTime, tpPrice, slPrice, entryColor, tpColor, slColor, textColor, showExtendRight)
Main function to create a position visualization with entry, TP, and SL
Parameters:
entryPrice (float) : (float) The entry price of the position
entryTime (int) : (int) The entry time of the position in bar_time format
tpPrice (float) : (float) The take profit price
slPrice (float) : (float) The stop loss price
entryColor (color) : (color) Color for entry line
tpColor (color) : (color) Color for take profit zone
slColor (color) : (color) Color for stop loss zone
textColor (color) : (color) Color for text labels
showExtendRight (bool) : (bool) Whether to extend lines to the right
Returns: (bool) Returns true when position is closed
MaterialPaletteMaterialPalette Library
█ OVERVIEW
This Pine Script® library provides a convenient way to access and utilize colors based on the popular Material Design color system directly within your TradingView scripts. It offers a comprehensive set of functions to retrieve specific shades of various base colors, allowing developers to create visually consistent and aesthetically pleasing indicators and strategies.
By importing this library, you gain access to functions that generate colors based on saturation, darkness level, and opacity, simplifying the process of managing color palettes in your projects.
█ FEATURES
Provides exported functions for 18 base Material Design colors (e.g., `red()`, `blue()`, `green()`, `amber()`, etc.).
Each color function allows selection from multiple shades based on `saturationLevel` (int) and `darkLevel` (int).
All color functions accept an `opacity` parameter (integer, 0-100).
Includes a `tone()` function for quick access to predefined base tones (e.g., `tone("red")`).
Offers a consistent and organized approach to using Material Design colors in Pine Script®.
Includes detailed `@function`, `@param`, and `@returns` annotations within the code for comprehensive documentation.
█ HOW TO USE
To use this library in your own Pine Script® indicator or strategy, you first need to import it using the `import` statement.
1. Import the Library:
Add the following line at the beginning of your script. Remember to replace `mastertop_astray` with the actual TradingView username the library is published under, and `VERSION` with the specific version number of the library you wish to use (you can find this on the library's script page).
import mastertop_astray/MaterialPalette/VERSION as mp
// Example: import mastertop_astray/MaterialPalette/1 as mp
*(We use `mp` as a short alias for `MaterialPalette` for convenience)*
2. Call Exported Functions:
Once imported, you can call the exported functions using the alias (`mp.` prefix).
//@version=6
indicator("My Indicator Using MaterialPalette")
import mastertop_astray/MaterialPalette/VERSION as mp // Replace VERSION
// --- Get Colors ---
// Get a specific shade: Dark Red (darkLevel=3), highest saturation (13), fully opaque (0)
darkRed = mp.red(13, 3, 0)
// Get another shade: Light Blue (lightLevel=1), medium saturation (e.g., 7), 50% opacity
lightBlueTransparent = mp.lightBlue(7, 1, 50)
// Get a base tone color: Green, fully opaque
baseGreen = mp.tone("green", 0)
// Get another base tone: Amber, 80% opacity
amberToneTransparent = mp.tone("amber", 80)
// --- Use Colors in Plotting ---
plot(close, color = darkRed, title = "Close Line")
plot(sma(close, 20), color = lightBlueTransparent, title = "SMA 20")
bgcolor(close > open ? mp.green(1, 2, 90) : mp.red(1, 2, 90)) // Use light shades for background
// Use a base tone
hline(100, "Upper Band", color = amberToneTransparent)
█ EXPORTED FUNCTIONS
This library provides two main categories of functions:
1. Color Shade Generators (`red()` to `blueGrey()`):
Includes: 18 functions for base colors (`red()`, `pink()`, ..., `blueGrey()`).
Purpose: Generate specific shades of the base color according to Material Design palettes.
Parameter `saturationLevel` (int): Controls color intensity/saturation. The valid range and default value vary depending on the specific color function (typically 1-13 or 1-9). Please check the `@param` annotation in the code for each function.
Parameter `darkLevel` (int): Sets the lightness/darkness of the shade (1: Light, 2: Medium/Base, 3: Dark). Default is 2.
Parameter `opacity` (int): Sets the color's transparency (0 = Opaque, 100 = Invisible). Default is 0.
Returns: The calculated `color` value.
Note: For exact default values and valid saturation ranges for each specific color function, refer to the detailed `@param` annotations within the library's source code.
2. Base Tone Function (`tone()`):
Purpose: Retrieve a single, predefined base color tone from the palette.
Parameter `colorName` (simple string): The text name identifying the desired base color (e.g., 'red', 'blue', 'green', 'light_blue').
Parameter `opacity` (int): Sets the color's transparency (0 = Opaque, 100 = Invisible). Default is 0.
Returns: The corresponding base tone `color`.
Note: Please consult the function's implementation in the source code for the complete list of valid `colorName` strings.
█ VISUALIZATION TABLE (For Demonstration)
The library's source code includes logic (within an `if barstate.islast` block) that generates a large table displaying all available color shades.
Important: This table will only appear on your chart if you add the entire library code itself directly as an indicator. This is primarily intended for demonstration, reference, and development purposes to visualize the palette. When using the library normally via the `import` statement in your own scripts, this table code is not executed or needed.
█ SUMMARY
The `MaterialPalette` library offers a structured and easy way for Pine Script® developers to incorporate Material Design colors into their TradingView scripts, enhancing visual appeal and consistency. Please refer to the detailed comments within the code for specifics on parameter ranges and available tones.
This source code is subject to the terms of the Mozilla Public License 2.0.
© mastertop_astray
CandlestickUtilitiesThis library provides essential functions for candlestick chart analysis and pattern recognition in Pine Script®.
It includes:
• Candle structure analysis (bodies, shadows, lengths)
• Trend detection using EMAs
• Common candlestick pattern recognition
This library is under construction.
Designed to support strategy development and improve signal accuracy for traders.
Created by @xprophetx — under MPL-2.0 license.
centered_rsiLibrary "centered_rsi"
This script defines a custom "Centered RSI" indicator. It calculates the RSI based on the deviation of price from a selected moving average (SMA, EMA, HMA, or ALMA). The MA smooths the price, and the RSI is applied to the centered values (price minus MA), aiming to highlight momentum relative to trend. The indicator includes user inputs for MA type and lengths, and plots the RSI along with reference lines at 30, 50, and 70.
ma(source, length, ma_type, offset, sigma)
Parameters:
source (float)
length (simple int)
ma_type (string)
offset (simple float)
sigma (simple float)
centered_rsi(source, type_ma, length_ma, length_rsi)
Parameters:
source (float)
type_ma (string)
length_ma (simple int)
length_rsi (simple int)
tafirstlibGeneral Purpose: Starts by stating it's a collection of utility functions for technical analysis.
Core Functionality Areas: Mentions key categories like:
Extrema detection (isMin, isMax, etc.)
Condition checking over time (isMachedInRange, isContinuous, etc.)
Rate of change analysis (isSlowDown)
Moving average calculation (getMA)
Advanced Features: Highlights the more complex functions:
Visualization helpers (getColorNew)
Moving Regression (mr) for smoothing/trend
Cycle analysis (bpDom)
Overall Goal: Concludes by stating the library's aim – simplifying development and enabling complex analysis.
Library "tafirstlib"
TODO: add library description here
isSlowDown(data)
isSlowDown
Parameters:
data (float) : array of numbers
Returns: boolean
isMin(data, maeLength)
isMin
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isMax(data, maeLength)
isMax
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isMinStopped(data, maeLength)
isMinStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isMaxStopped(data, maeLength)
isMaxStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
Returns: boolean
isLongMinStopped(data, maeLength, distance)
isLongMinStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
distance (int) : number
Returns: boolean
isLongMaxStopped(data, maeLength, distance)
isLongMaxStopped
Parameters:
data (float) : array of numbers
maeLength (int) : number
distance (int) : number
Returns: boolean
isMachedInRangeSkipCurrent(data, findRange, findValue)
isMachedInRangeSkipCurrent
Parameters:
data (bool) : array of numbers
findRange (int) : number
findValue (bool) : number
Returns: boolean
isMachedInRange(data, findRange, findValue)
isMachedInRange
Parameters:
data (bool) : array of numbers
findRange (int) : number
findValue (bool) : number
Returns: boolean
isMachedColorInRange(data, findRange, findValue)
isMachedColorInRange isMachedColorInRange(series color data, int findRange, color findValue)
Parameters:
data (color) : series of color
findRange (int) : int
findValue (color) : color
Returns: boolean
countMachedInRange(data, findRange, findValue)
countMachedInRange
Parameters:
data (bool) : array of numbers
findRange (int) : number
findValue (bool) : number
Returns: number
getColor(data)
getColor
Parameters:
data (float) : array of numbers
Returns: color
getColorNew(data)
getColorNew
Parameters:
data (float) : array of numbers
Returns: color
isColorBetter(color_data)
isColorBetter
Parameters:
color_data (color) : array of colors
Returns: boolean
isColorWorst(color_data)
isColorWorst
Parameters:
color_data (color) : array of colors
Returns: boolean
isColorBetter2(color_data)
isColorBetter2
Parameters:
color_data (color) : array of colors
Returns: boolean
isColorWorst2(color_data)
isColorWorst2
Parameters:
color_data (color) : array of colors
Returns: boolean
isDecreased2Bar(data)
isDecreased2Bar
Parameters:
data (float) : array of numbers
Returns: boolean
isContinuousAdvance(targetSeries, range2Find, howManyException)
isContinuousAdvance
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
howManyException (int) : number
Returns: boolean
isContinuous(targetSeries, range2Find, truefalse)
isContinuous
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
truefalse (bool) : boolean
Returns: boolean
isContinuousNotNow(targetSeries, range2Find, truefalse)
isContinuousNotNow
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
truefalse (bool) : boolean
Returns: boolean
isContinuousTwoFactors(targetSeries, range2Find, truefalse)
isContinuousTwoFactors
Parameters:
targetSeries (bool) : array of booleans
range2Find (int) : number
truefalse (bool) : boolean
Returns: boolean
findEventInRange(startDataBarIndex, neededDataBarIndex, currentBarIndex)
findEventInRange
Parameters:
startDataBarIndex (int) : number
neededDataBarIndex (int) : number
currentBarIndex (int) : number
Returns: boolean
findMin(firstdata, secondata, thirddata, forthdata)
findMin
Parameters:
firstdata (float) : number
secondata (float) : number
thirddata (float) : number
forthdata (float) : number
Returns: number
findMax(firstdata, secondata, thirddata, forthdata)
findMax
Parameters:
firstdata (float) : number
secondata (float) : number
thirddata (float) : number
forthdata (float) : number
Returns: number
getMA(src, length, mav)
getMA
Parameters:
src (float) : number
length (simple int) : number
mav (string) : string
Returns: number
mr(mrb_src, mrb_window, mrb_degree)
Parameters:
mrb_src (float)
mrb_window (int)
mrb_degree (int)
bpDom(maeLength, bpw, mult)
Parameters:
maeLength (int)
bpw (float)
mult (float)
CSCMultiTimeframeToolsLibrary "CSCMultiTimeframeTools"
Calculates instant higher timeframe values for higher timeframe analysis with zero lag.
getAdjustedLookback(current_tf_minutes, higher_tf_minutes, length)
Calculate adjusted lookback period for higher timeframe conversion.
Parameters:
current_tf_minutes (int) : Current chart timeframe in minutes (e.g., 5 for 5m).
higher_tf_minutes (int) : Target higher timeframe in minutes (e.g., 15 for 15m).
length (int) : Base length value (e.g., 14 for RSI/MFI).
Returns: Adjusted lookback period (length × multiplier).
Purpose and Benefits of the TimeframeTools Library
This library is designed to solve a critical pain point for traders who rely on higher timeframe (HTF) indicator values while analyzing lower timeframe (LTF) charts. Traditional methods require waiting for multiple candles to close—for example, to see a 1-hour RSI on a 5-minute chart, you’d need 12 closed candles (5m × 12 = 60m) before the value updates. This lag means missed opportunities, delayed signals, and inefficient decision-making.
Why Traders Need This
Whether you’re scalping (5M/15M) or swing trading (1H/4H), this library bridges the gap between timeframes, giving you HTF context in real time—so you can act faster, with confidence.
How This Library Eliminates the Waiting Game
By dynamically calculating the adjusted lookback period, the library allows:
Real-time HTF values on LTF charts – No waiting for candle closes.
Accurate conversions – A 14-period RSI on a 1-hour chart translates to 168 periods (14 × 12) on a 5-minute chart, ensuring mathematical precision.
Flexible application – Works with common indicators like RSI, MFI, CCI, and moving averages (though confirmations should be done before publishing under your own secondary use).
Key Advantages Over Manual Methods
Speed: Instantly reflects HTF values without waiting for candle resolutions.
Adaptability: Adjusts automatically if the user changes timeframes or lengths.
Consistency: Removes human error in manual period calculations.
Limitations to Note
Not a magic bullet – While it solves the lag issue, traders should still:
Validate signals with price action or additional confirmations.
Be mindful of extreme lookback lengths (e.g., a 200-period daily SMA on a 1-minute chart requires 28,800 periods, which may strain performance).
FunctionSurvivalEstimationLibrary "FunctionSurvivalEstimation"
The Survival Estimation function, also known as Kaplan-Meier estimation or product-limit method, is a statistical technique used to estimate the survival probability of an individual over time. It's commonly used in medical research and epidemiology to analyze the survival rates of patients with different treatments, diseases, or risk factors.
What does it do?
The Survival Estimation function takes into account censored observations (i.e., individuals who are still alive at a certain point) and calculates the probability that an individual will survive beyond a specific time period. It's particularly useful when dealing with right-censoring, where some subjects are lost to follow-up or have not experienced the event of interest by the end of the study.
Interpretation
The Survival Estimation function provides a plot of the estimated survival probability over time, which can be used to:
1. Compare survival rates between different groups (e.g., treatment arms)
2. Identify patterns in the data that may indicate differences in mortality or disease progression
3. Make predictions about future outcomes based on historical data
4. In a trading context it may be used to ascertain the survival ratios of trading under specific conditions.
Reference:
www.global-developments.org
"Beyond GDP" ~ www.aeaweb.org
en.wikipedia.org
www.kdnuggets.com
survival_probability(alive_at_age, initial_alive)
Kaplan-Meier Survival Estimator.
Parameters:
alive_at_age (int) : The number of subjects still alive at a age.
initial_alive (int) : The Total number of initial subjects.
Returns: The probability that a subject lives longer than a certain age.
utility(c, l)
Captures the utility value from consumption and leisure.
Parameters:
c (float) : Consumption.
l (float) : Leisure.
Returns: Utility value from consumption and leisure.
welfare_utility(age, b, u, s)
Calculate the welfare utility value based age, basic needs and social interaction.
Parameters:
age (int) : Age of the subject.
b (float) : Value representing basic needs (food, shelter..).
u (float) : Value representing overall well-being and happiness.
s (float) : Value representing social interaction and connection with others.
Returns: Welfare utility value.
expected_lifetime_welfare(beta, consumption, leisure, alive_data, expectation)
Calculates the expected lifetime welfare of an individual based on their consumption, leisure, and survival probability over time.
Parameters:
beta (float) : Discount factor.
consumption (array) : List of consumption values at each step of the subjects life.
leisure (array) : List of leisure values at each step of the subjects life.
alive_data (array) : List of subjects alive at each age, the first element is the total or initial number of subjects.
expectation (float) : Optional, `defaut=1.0`. Expectation or weight given to this calculation.
Returns: Expected lifetime welfare value.
jsonBuilderLibrary "jsonBuilder"
jsonBuilder is a lightweight Pine Script utility library for building JSON strings manually. It includes functions to convert key-value pairs into JSON format and to combine multiple pairs into a complete JSON object.
jsonString(key, value) – Converts a string key and string value into a valid JSON key-value pair.
jsonObject(pair1, ..., pair20) – Merges up to 20 key-value pairs into a complete JSON object string. Empty arguments are skipped automatically.
This is useful when sending structured JSON data via webhooks or external integrations from Pine Script.
PineVersatilitiesBundleLibrary "PineVersatilitiesBundle"
Versatilities (aka, Versatile Utilities) Pack includes:
- Eighteen Price Variants bundled in a Map,
- Nine Smoothing Variants bundled in a Map,
- Visualisations that indicate on both - pane and chart.
price_variants(lb)
Computes Several different averages using current and previous OHLC values
Parameters:
lb (int) : - lookback distance for combining OHLC values from the past with the present
Returns: Map of Eighteen Uncommon Combinations of single and two-bar OHLC averages (rounded-to-mintick)
dynamic_MA(masrc, malen, lsmaoff, almasgm, almaoff, almaflr)
Dynamically computes Eight different MAs and returns a Map containing Nine MAs
Parameters:
masrc (float) : source series to compute MA
malen (simple int) : lookback distance for MA
lsmaoff (simple int) : optional LSMA offset - default is 0
almasgm (simple float) : optional ALMA sigma - default is 5
almaoff (simple float) : optional ALMA offset - default is 0.5
almaflr (simple bool) : optional ALMA floor flag - default is false
Returns: Map of MAs - 'ALMA', 'EMA', 'HMA', 'LSMA', 'RMA', 'SMA', 'SWMA', 'WMA', 'ALL' (rounded-to-mintick)
NYCSessionLibrary "NYCSession"
Library for New York trading session time functions
@author abneralvarado
@version 1.0
isInNYSession(sessionStart, sessionEnd)
Determines if the current bar is within New York trading session
Parameters:
sessionStart (simple int) : Starting time of NY session in 24hr format (HHMM) like 0930 for 9:30 AM ET
sessionEnd (simple int) : Ending time of NY session in 24hr format (HHMM) like 1600 for 4:00 PM ET
Returns: True if current bar is within the NY session time, false otherwise
getNYSessionStartTime(lookback, sessionStart)
Gets the start time of NY session for a given bar
Parameters:
lookback (simple int) : Bar index to check (0 is current bar)
sessionStart (simple int) : Starting time of NY session in 24hr format (HHMM)
Returns: Unix timestamp for the start of NY session on the given bar's date
getNYSessionEndTime(lookback, sessionEnd)
Gets the end time of NY session for a given bar
Parameters:
lookback (simple int) : Bar index to check (0 is current bar)
sessionEnd (simple int) : Ending time of NY session in 24hr format (HHMM)
Returns: Unix timestamp for the end of NY session on the given bar's date
isNYSessionOpen(sessionStart)
Checks if current bar opens the NY session
Parameters:
sessionStart (simple int) : Starting time of NY session in 24hr format (HHMM)
Returns: True if current bar marks the session opening, false otherwise
isNYSessionClose(sessionEnd)
Checks if current bar closes the NY session
Parameters:
sessionEnd (simple int) : Ending time of NY session in 24hr format (HHMM)
Returns: True if current bar marks the session closing, false otherwise
isWeekday()
Determines if the current day is a weekday (Mon-Fri)
Returns: True if current bar is on a weekday, false otherwise
getSessionBackgroundColor(sessionStart, sessionEnd, bgColor)
Gets session background color with transparency
Parameters:
sessionStart (simple int) : Starting time of NY session in 24hr format (HHMM)
sessionEnd (simple int) : Ending time of NY session in 24hr format (HHMM)
bgColor (color) : Background color for session highlighting
Returns: Color value for background or na if not in session
DoppelLibLibrary "DoppelLib"
getDailyClose(offset)
Returns the daily close for a specific offset.
For each offset value (from 1 to 21), the function uses a static request.security() call
to retrieve the daily close from the previous day at the specified offset.
Parameters:
offset (int) : (int) The offset value (from 1 to 21) representing the desired close value.
Returns: (float) The daily close for the specified offset or na if offset is out of range.
isVolumeAboveThreshold(vol, mediaPeriod, thresholdPercent)
Checks if the current volume is above the threshold based on its moving average.
The threshold is calculated as the average volume plus a percentage increment.
Parameters:
vol (float) : (series float) The volume series (e.g. the chart volume).
mediaPeriod (int) : (int) The period for calculating the moving average.
thresholdPercent (float) : (float) The percentage to add to the average for the threshold.
Returns: (bool) True if the volume exceeds the threshold, false otherwise.
calcPvsra(pvsraVolume, pvsraHigh, pvsraLow, pvsraClose, pvsraOpen, redVectorColor, greenVectorColor, violetVectorColor, blueVectorColor, darkGreyCandleColor, lightGrayCandleColor)
Calculates the PVSRA candle color, determines if a vector candle has appeared,
and returns additional support parameters (average volume, volume spread, highest volume spread).
- "High" (Climax): volume >= 200% of the average OR (volume * candle spread) >= highest spread over the previous 10 bars.
-> Bull candle: green; Bear candle: red.
- "Medium": volume >= 150% of the average.
-> Bull candle: blue; Bear candle: violet.
- Otherwise, default (non-vector) candle colors are used.
Parameters:
pvsraVolume (float) : (series float) Volume series.
pvsraHigh (float) : (series float) High price series.
pvsraLow (float) : (series float) Low price series.
pvsraClose (float) : (series float) Close price series.
pvsraOpen (float) : (series float) Open price series.
redVectorColor (simple color) : (simple color) Color for bearish candle in high scenario.
greenVectorColor (simple color) : (simple color) Color for bullish candle in high scenario.
violetVectorColor (simple color) : (simple color) Color for bearish candle in medium scenario.
blueVectorColor (simple color) : (simple color) Color for bullish candle in medium scenario.
darkGreyCandleColor (simple color) : (simple color) Color for bearish candle in non-vector situation.
lightGrayCandleColor (simple color) : (simple color) Color for bullish candle in non-vector situation.
Returns: (tuple) A tuple containing: .
NR_VersatilitiesLibrary "NR_Versatilities"
Versatilities (aka, Versatile Utilities) includes:
- Seventeen Price Variants returned as a tuple,
- Eight Smoothing functions rolled into one,
- Pick any Past Value from any series with offset,
- Or just the previous value from any series.
pastVal(src, len)
Fetches past value from src that came len distance ago
Parameters:
src (float) : source series
len (int) : lookback distance - (optional) default is 1
Returns: latest src if len <= 0, else src
previous(src)
Fetches past value from src that came len distance ago
Parameters:
src (float) : source series
Returns: previous value in the series if found, else current value
price_variants()
Computes Several different averages using current and previous OHLC values
Returns: Seventeen Uncommon Average Price Combinations
dynamic_MA(matyp, masrc, malen, lsmaoff, almasgm, almaoff, almaflr)
Dynamically computes Eight different MAs on-demand individually, or an average of all taken together
Parameters:
matyp (string) : pick one of these MAs - ALMA, EMA, HMA, LSMA, RMA, SMA, SWMA, WMA, ALL
masrc (float) : source series to compute MA
malen (simple int) : lookback distance for MA
lsmaoff (simple int) : optional LSMA offset - default is 0
almasgm (simple float) : optional ALMA sigma - default is 5
almaoff (simple float) : optional ALMA offset - default is 0.5
almaflr (simple bool) : optional ALMA floor flag - default is false
Returns: MA series for chosen type or, an average of all of them, if chosen so
projectiontrackingLibrary "projectiontracking"
Library contains few data structures and methods for tracking harmonic patterns and projections via pinescript.
method erase(this)
erase Harmonic Projection Drawing
Namespace types: HarmonicProjectionDrawing
Parameters:
this (HarmonicProjectionDrawing) : HarmonicProjectionDrawing object
Returns: void
method erase(this)
erase HarmonicProjection
Namespace types: HarmonicProjection
Parameters:
this (HarmonicProjection) : HarmonicProjection object
Returns: void
method draw(this)
draw HarmonicProjection
Namespace types: HarmonicProjection
Parameters:
this (HarmonicProjection) : HarmonicProjection object
Returns: HarmonicProjection object
method getRanges(projectionPrzRanges, dir)
Convert PRZRange to Projection ranges
Namespace types: array
Parameters:
projectionPrzRanges (array type from Trendoscope/HarmonicMapLib/1) : array of PrzRange objects
dir (int) : Projection direction
Returns: array
ProjectionRange
Harmonic Projection Range
Fields:
patterns (array) : array of pattern names
start (series float) : Start Range
end (series float) : End Range
status (series int) : Projection Status
ProjectionProperties
Harmonic Projection Properties
Fields:
fillMajorTriangles (series bool) : Use linefill for major triangles
fillMinorTriangles (series bool) : Use linefill for minor triangles
majorFillTransparency (series int) : transparency of major triangles
minorFillTransparency (series int) : transparency of minor triangles
showXABC (series bool) : Show XABC labels
lblSizePivots (series string) : Pivot labels size
showRatios (series bool) : Show ratio labels
useLogScaleForScan (series bool) : Log scale is used for scanning projections
activateOnB (series bool) : Activate projections on reaching B
activationRatio (series float) : Use activation ratio for activation
confirmationRatio (series float) : Confirmation ratio of projection before removal
HarmonicProjectionDrawing
Harmonic Projection Projection drawing objects
Fields:
xa (series line) : line xa
ab (series line) : line ab
bc (series line) : line bc
xb (series line) : line xb
ac (series line) : line ac
x (series label) : Pivot label x
a (series label) : Pivot label a
b (series label) : Pivot label b
c (series label) : Pivot label c
xabRatio (series label) : Label XAB Ratio
abcRatio (series label) : Label ABC Ratio
HarmonicProjection
Harmonic Projection Projection object
Fields:
patternId (series int) : id of the pattern
dir (series int) : projection direction
x (chart.point) : Pivot X
a (chart.point) : Pivot A
b (chart.point) : Pivot B
c (chart.point) : Pivot C
patternColor (series color) : Color in which pattern is displayed
przRange (PrzRange type from Trendoscope/HarmonicMapLib/1) : PRZ Range
activationPrice (series float) : Projection activation price
reversalPrice (series float) : Projection reversal price
status (series int) : Projection status
properties (ProjectionProperties) : Projection properties
projectionRanges (array) : array of Projection Ranges
initialD (series float) : Initial D pivot
d (chart.point) : Pivot D
drawing (HarmonicProjectionDrawing) : HarmonicProjectionDrawing Object
HarmonicMapLibLibrary "HarmonicMapLib"
Harmonic Pattern Library implementation utilising maps
method tostring(this)
convert Range value to string
Namespace types: Range
Parameters:
this (Range) : Range value
Returns: converted string representation
method tostring(this)
convert array of Range value to string
Namespace types: array
Parameters:
this (array) : array object
Returns: converted string representation
method tostring(this)
convert map of string to Range value to string
Namespace types: map
Parameters:
this (map) : map object
Returns: converted string representation
method tostring(this)
convert RatioMap to string
Namespace types: RatioMap
Parameters:
this (RatioMap) : RatioMap object
Returns: converted string representation
method tostring(this)
convert array of RatioMap to string
Namespace types: array
Parameters:
this (array) : array object
Returns: converted string representation
method tostring(this)
convert map of string to RatioMap to string
Namespace types: map
Parameters:
this (map) : map object
Returns: converted string representation
method tostring(this)
convert map of string to bool to string
Namespace types: map
Parameters:
this (map) : map object
Returns: converted string representation
method tostring(this)
convert PrzRange to string
Namespace types: PrzRange
Parameters:
this (PrzRange) : PrzRange object
Returns: converted string representation
method tostring(this)
convert array of PrzRange to string
Namespace types: array
Parameters:
this (array) : array object
Returns: converted string representation
getHarmonicMap()
Creates the RatioMap for harmonic patterns
Returns: map haronic ratio rules for all patterns
method evaluate(patternsMap, pattern, ratioRange, properties, ratioValue)
evaluates harmonic ratio range
Namespace types: map
Parameters:
patternsMap (map) : parameter containing valid pattern names
pattern (string) : Pattern type to be evaluated
ratioRange (Range) : ratio range to be checked
properties (ScanProperties) : Scan Properties
ratioValue (float)
Returns: void
method evaluate(przRange, pattern, ratioRange, priceRange, properties)
Evaluate PRZ ranges
Namespace types: map
Parameters:
przRange (map)
pattern (string) : Pattern name
ratioRange (Range) : Range of ratio for the pattern
priceRange (Range) : Price range based on ratio
properties (ScanProperties) : ScanProperties object
Returns: void
method scanRatio(currentPatterns, rules, properties, ratioName, ratioValue)
Scan for particular named ratio of harmonic pattern to filter valid patterns
Namespace types: map
Parameters:
currentPatterns (map) : Current valid patterns map
rules (map) : map Harmonic ratio rules
properties (ScanProperties) : ScanProperties object
ratioName (string) : Specific ratio name
ratioValue (float) : ratio value to be checked
Returns: updated currentPatterns object
method scanPatterns(patterns, x, a, b, c, d, properties)
Scan for patterns based on X, A, B, C, D values
Namespace types: map
Parameters:
patterns (map) : List of allowed patterns
x (float) : X coordinate
a (float) : A coordinate
b (float) : B coordinate
c (float) : C coordinate
d (float) : D coordinate
properties (ScanProperties) : ScanProperties object. If na, default values are initialised
Returns: updated valid patterns map
method scanProjections(patterns, x, a, b, c, properties)
Scan for projections based on X, A, B, C values
Namespace types: map
Parameters:
patterns (map) : List of allowed patterns
x (float) : X coordinate
a (float) : A coordinate
b (float) : B coordinate
c (float) : C coordinate
properties (ScanProperties) : ScanProperties object. If na, default values are initialised
Returns: updated valid projections map
method merge(this, other)
merge two ranges into one
Namespace types: Range
Parameters:
this (Range) : first range
other (Range) : second range
Returns: combined range
method union(this, other)
union of two ranges into one
Namespace types: Range
Parameters:
this (Range) : first range
other (Range) : second range
Returns: union range
method overlaps(this, other)
checks if two ranges intersect
Namespace types: Range
Parameters:
this (Range) : first range
other (Range) : second range
Returns: true if intersects, false otherwise
method consolidate(this)
Consolidate ranges into PRZ
Namespace types: map
Parameters:
this (map) : map of Ranges
Returns: consolidated PRZ
method consolidateMany(this)
Consolidate ranges into multiple PRZ ranges
Namespace types: map
Parameters:
this (map) : map of Ranges
Returns: consolidated array of PRZ ranges
method getRange(currentPatterns, x, a, b, c, properties)
Get D range based on X, A, B, C coordinates for the current patterns
Namespace types: map
Parameters:
currentPatterns (map) : List of valid patterns
x (float) : X coordinate
a (float) : A coordinate
b (float) : B coordinate
c (float) : C coordinate
properties (ScanProperties) : ScanProperties object. If na, default values are initialised
Returns: map of D ranges
method getPrzRange(currentPatterns, x, a, b, c, properties)
Get PRZ range based on X, A, B, C coordinates for the current patterns
Namespace types: map
Parameters:
currentPatterns (map) : List of valid patterns
x (float) : X coordinate
a (float) : A coordinate
b (float) : B coordinate
c (float) : C coordinate
properties (ScanProperties) : ScanProperties object. If na, default values are initialised
Returns: PRZRange for the pattern
method getProjectionRanges(currentPatterns, x, a, b, c, properties)
Get projection range based on X, A, B, C coordinates for the current patterns
Namespace types: map
Parameters:
currentPatterns (map) : List of valid patterns
x (float) : X coordinate
a (float) : A coordinate
b (float) : B coordinate
c (float) : C coordinate
properties (ScanProperties) : ScanProperties object. If na, default values are initialised
Returns: array of projection ranges
Range
Collection of range values
Fields:
values (array) : array of float values
RatioMap
ratio map for pattern
Fields:
ratioMap (map) : map of string to Range (array of float)
ScanProperties
Pattern Scanning properties
Fields:
strictMode (series bool) : strict scanning mode will check for overflows
logScale (series bool) : scan ratios in log scale
errorMin (series float) : min error threshold
errorMax (series float)
mintick (series float) : minimum tick value of price
PrzRange
Potential reversal zone range
Fields:
patterns (array) : array of pattern names for the given XABCD combination
prz (Range) : PRZ range
datastructuresLibrary "datastructures"
Collection of complex data structures not generally present as part of pinescript and can be used for collection and transformation of the data
method init(this)
initialise StringSet
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet to be initialised
Returns: current object of StringSet
method add(this, value)
add value to StringSet
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
@value the key of stringset to be set
value (string)
Returns: current object of StringSet
method clear(this)
clear StringSet contents
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
Returns: current object of StringSet
method remove(this, value)
remove value from StringSet
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
@value the key of stringset to be removed
value (string)
Returns: current object of StringSet
method size(this)
get size of the StringSet
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
Returns: size of StringSet map
method isEmpty(this)
check if stringset is empty
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
Returns: true if empty else returns false
method iterator(this)
get values of the StringSet
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
Returns: values of StringSet
method contains(this, value)
check if value is present in StringSet
Namespace types: StringSet
Parameters:
this (StringSet) : StringSet object
value (string)
Returns: true if Value is present. False otherwise
method initialiseCountMap(types, numberOfStates)
Initialise a new map of string to Count
Namespace types: array
Parameters:
types (array) : array of string containing map keys
numberOfStates (int) : number of items to be tracked for each type
Returns: new map() with empty initialisation
method initialiseCountMap(types, numberOfStates)
Initialise a new map of string to Count
Namespace types: map
Parameters:
types (map) : map containing types and configurable boolean flag
numberOfStates (int) : number of items to be tracked for each type
Returns: new map() with empty initialisation
method get(this, key, n)
get count based on primary string key and secondary int key
Namespace types: map
Parameters:
this (map) : map of string to to Count
key (string) : primary key
n (int) : secondary key
Returns: derived count from map of map
method get(this, key, n)
get array of int associated with key and n
Namespace types: map
Parameters:
this (map) : map of string to to MapToInts
key (string) : primary string key
n (int) : secondary int key
Returns: derived array of int for the given key combination
method get(this, key, n)
get array of float associated with key and n
Namespace types: map
Parameters:
this (map) : map of string to to MapToFloats
key (string) : primary string key
n (int) : secondary int key
Returns: derived array of float
method get(this, key)
get values of Ints based on key
Namespace types: map
Parameters:
this (map) : map of string to Ints
key (string) : string key
Returns: values inside Ints object associated in the map
method set(this, key, n, value)
set count for specific primary and secondary key
Namespace types: map
Parameters:
this (map) : map of string to to Count
key (string) : primary string key
n (int) : secondary int key
value (int) : the new count value to be set
Returns: updated value for key and n
method increment(this, key, n)
increment count for specific primary and secondary key
Namespace types: map
Parameters:
this (map) : map of string to to Count
key (string) : primary string key
n (int) : secondary int key
Returns: incremented value
method increment(this, key, n)
intcrement the value of Ints based on key and n (secondary key)
Namespace types: map
Parameters:
this (map) : map of string to Ints
key (string) : string key
n (int) : secondary int key
Returns: incremented nth object of Ints associated with key
method initialiseIntsMap(types, numberOfStates)
Initialise a new map of string to Map to Ints
Namespace types: array
Parameters:
types (array) : array of string containing map keys
numberOfStates (int) : number of items to be tracked for each type
Returns: new map() with empty initialisation
method initialiseIntsMap(types, numberOfStates)
Initialise a new map of string to Map to Ints
Namespace types: map
Parameters:
types (map) : map with boolean flag
numberOfStates (int) : number of items to be tracked for each type
Returns: new map() with empty initialisation
method initialiseFloatsMap(types, numberOfStates)
Initialise a new map of string to Map to Floats
Namespace types: array
Parameters:
types (array) : array of string containing map keys
numberOfStates (int) : number of items to be tracked for each type
Returns: new map() with empty initialisation
method initialiseFloatsMap(types, numberOfStates)
Initialise a new map of string to Map to Floats
Namespace types: map
Parameters:
types (map) : map with boolean flag
numberOfStates (int) : number of items to be tracked for each type
Returns: new map() with empty initialisation
method initialiseMapOfInts(types, numberOfStates)
Initialise map of two dimentional Ints based on types and number of states
Namespace types: array
Parameters:
types (array) : types array for which a new Map to Ints to be created
numberOfStates (int) : number of states for which the Ints needs to be initialised
Returns: new map of string to two dimension array of int (Ints)
method initialiseMapOfInts(types, numberOfStates)
Initialise map of two dimentional Ints based on types and number of states
Namespace types: map
Parameters:
types (map) : types map for which a new Map to Ints to be created along with bool flag
numberOfStates (int) : number of states for which the Ints needs to be initialised
Returns: new map of string to two dimension array of int (Ints)
StringSet
Set implementation using map
Fields:
strSet (map) : map of string to bool
Count
type containing map of int to int
Fields:
count (map) : map of int to int used for counting
Ints
custom type to enable array of array of int
Fields:
values (array) : int array
Floats
custom type to enable array of array of float
Fields:
values (array) : float array
MapToInts
type containing map of int to int array
Fields:
vmap (map) : map of int to Ints used as counting collection
MapToFloats
type containing map of int to float array
Fields:
vmap (map) : map of int to Floats used as floating stat collection
drawingutilsLibrary "drawingutils"
methods used in my scripts for some basic and customized drawings and arrays.
method line(this, p1, p2, lineColor, style, width, xloc, extend)
Draws line and adds to the array
Namespace types: array
Parameters:
this (array) : array to which the created line needs to be added
p1 (chart.point) : point1 of the line
p2 (chart.point) : point2 of the line
lineColor (color) : line color
style (string) : line style
width (int) : line width
xloc (string) : xloc.bar_index or xloc.bar_time
extend (string) : default is extend.none
Returns: line created
method label(this, p, txt, tooltip, xloc, yloc, color, style, textcolor, size, textalign)
Draws label and adds to the array
Namespace types: array
Parameters:
this (array) : array to which the created label needs to be added
p (chart.point) : point at which the label needs to be drawn
txt (string) : label text
tooltip (string) : tooltip text
xloc (string) : xloc value - xloc.bar_index or xloc.bar_time
yloc (string) : y location of the label
color (color) : label color
style (string) : label style
textcolor (color) : label text color
size (string) : Size of the label
textalign (string) : text alignment
Returns: label created
method linefill(this, ln1, ln2, fillColor, transparency)
Draws linefill and adds to array
Namespace types: array
Parameters:
this (array) : array to which the created linefill needs to be added
ln1 (line) : line1 of the fill
ln2 (line) : line2 of the fill
fillColor (color) : fill Color
transparency (int) : fill transparency
Returns: linefill created
draw_labelled_line(target, lblText, linecolor, labelcolor, index, highlight, linesArray, labelsArray, highlightSize, tinySize, yloc, textalign)
Draws labelled line
Parameters:
target (float) : target price
lblText (string) : label text
linecolor (color) : line color
labelcolor (color) : label color
index (int) : index to calculate the distance offset
highlight (bool) : highlight true/false
linesArray (array) : array of lines where the created line is added
labelsArray (array) : array of labels where the created label is added
highlightSize (string) : Size of highlighted text
tinySize (string) : size of non highlighted text
yloc (string) : y location
textalign (string) : text alignment
Returns: void
draw_labelled_box(y1, y2, labelColor, labelText, index, boxArray, labelArray, borderColor, borderStyle, borderWidth, textAlign, highlight, highLightLabel)
Draws custom labelled box
Parameters:
y1 (float) : price 1 of the box
y2 (float) : price 2 of the box
labelColor (color) : label color
labelText (string) : label text
index (int) : index to calculate the offset distance
boxArray (array) : box array to which the box needs to be added
labelArray (array) : label array to which the label needs to be added
borderColor (color) : border color
borderStyle (string) : border style
borderWidth (int) : border width
textAlign (string) : text align of the label
highlight (bool) : highlight label text
highLightLabel (bool) : highlight label size
Returns: void
MTFDataLibrary "MTFData"
Functions to store multi timeframe candle data and swing points.
getCandleData(timeframe, openArray, highArray, lowArray, closeArray, timeArray, olcLookback, alltfs_olcLookback, tfIndex)
Stores current or higher timeframe candle data in arrays.
Parameters:
timeframe (string) : The timeframe, for example "240" for 4h
openArray (array) : An array to store the candle open price
highArray (array) : An array to store the candle high price
lowArray (array) : An array to store the candle low price
closeArray (array) : An array to store the candle close price
timeArray (array) : An array to store the candle time
olcLookback (int) : The history reference of the lookback limiting candle
alltfs_olcLookback (array) : An array holding the candle time of olcLookback candles ago, which can be used for limiting lookbacks
tfIndex (int) : The timeframe's index in the alltfs_olcLookback array
Returns: true if the timeframe changed
trackHiLo(tfchange, timeframe, openArray, highArray, lowArray, closeArray, timeArray, highWickArray, highBodyArray, highTimeArray, lowWickArray, lowBodyArray, lowTimeArray, alltfs_olcLookback, tfIndex)
Stores current or higher timeframe swingpoint data into arrays.
Parameters:
tfchange (bool) : Must be true when the timeframe has changed (a new candle has opened)
timeframe (string) : The timeframe, for example "240" for 4h
openArray (array) : An array that stores the timeframe's candle open price
highArray (array) : An array that stores the timeframe's candle high price
lowArray (array) : An array that stores the timeframe's candle low price
closeArray (array) : An array that stores the timeframe's candle close price
timeArray (array) : An array that stores the timeframe's candle time
highWickArray (array) : An array to store the swing high price
highBodyArray (array) : An array to store the swing high's highest body price
highTimeArray (array) : An array to store the swing high candle's time
lowWickArray (array) : An array to store the swing low price
lowBodyArray (array) : An array to store the swing low's lowest body price
lowTimeArray (array) : An array to store the swing high candle's time
alltfs_olcLookback (array) : An array holding the time of the max allowed swing point age
tfIndex (int) : The timeframe's index in the alltfs_olcLookback array
Returns: Nothing. The array handling happens inside the function.
tfReadable(tfInSec)
Converts a timeframe string ("240") into a more readable string ("4h").
Parameters:
tfInSec (int) : The timeframe that should be converted, as timeframe.in_seconds()
Returns: A more readable timeframe string