SSL HYBRID AdvancedSSL HYBRID Advanced
SSL Hybrid is an Advanced version of the default SSL Hybrid by Mihkel00.
Multiple Indicators
MACD Crossover Signals
EMA 200
Bollinger Band
Bollinger Band Squeeze
ADX Crossover and ADX level
CCI Over Brought /Sold
Stochastic Over Brought /Sold
RSI Over Brought /Sold
CREDITS
QQE MOD byMihkel00
SSL Hybrid by Mihkel00
Waddah Attar Explosion by shayankm
Support Resistance LonesomeTheBlue
Indicators On Chart
QQE MOD is plotted as Dot below and above the candle and also as Background
QQE line is plotted and can be used as crossover to find trend. Flat movement of QQE is Sideways
Weak ADX is plotted as a Background color. Same can be verified using Bollinger band Squeeze.
EMA crossover can be plotted by selecting MTF MA(multi time frame moving average indicator) Area plot is provided.
CCI , Stochastic, RSI signals provided in the table option
WAE (volume indicator ) is shown in Table
EMA 200 is plotted and color Represents ADX level and direction. Plots on EMA 200 are ADX crossovers
MACD crossovers are represented by Triangles above and below Candles
Support Resistance levels are plotted (change settings)
Pivot Points are plotted (change settings)
Bollinger Bands Plotted
EMA 20 and EMA 50 plotted with AREA for additional confirmation
Buy: When the table option shows completely Blue signals in all indicators
Sell: When the table option shows completely Pink signals in all indicators
WARNING not recommended for lower time frames. Use at your own Risk.
Updates will be released shortly if any. please provide your suggestions to make it more functional indicator.
Cerca negli script per "mtf"
Custom Multi-Timeframe IndicatorIt's a pretty simple example of a nice custom screener you can run for multiple timeframes. This is an RSI screener, but you can easily change the function for your own Indicator.
Screener displays:
Last value of the instrument
RSI value for up to 10 instruments / 4 timeframes.
In Parameters you can change:
4 timeframes
10 instruments
Parameters for RSI
Styling parameters for table
If the selected timeframe will be lower than the current one you will receive a warning message in a table.
Thanks to @MUQWISHI to help me code it.
Disclaimer
Please remember that past performance may not be indicative of future results.
Due to various factors, including changing market conditions, the strategy may no longer perform as well as in historical backtesting.
This post and the script don’t provide any financial advice.
3 EMAs with Visible ANGLEHello Friends, I observed that on lower timeframes, traders find it hard to visualize the angle of Multi plotted EMAs due to fast moving value. To overcome the problem, EMA’s emerging angles have been plotted on the chart by extending the lines to defined points. Further, MTF, Source, Offset points, Deviation by %, Plotting on/off, Repainting on/off, Extension Line on/off options have also been included in the script.
I find it useful, so hopes, it will be useful to others too. Thanks
MME MTF CCIHi All,
This is a Dual/Multi TF CCI script to be used for Intraday as well as positional system.
Intraday:
Chart TF : 5 mins
Underlying Trend CCI : CCI 34 of 30 mins TF
Immediate Trend CCI : CCI 34 of 5 mins TF
Execution CCI : CCI 8 of 5 mins TF
The CCIs are used for entry, exit during momentum breakouts or pullbacks.
General Long Setup:
Buy at CCI-8 5m below -135, when CCI-34 30 mins is > +100. Long exit when CCI 34 5 min < -60
General Short Setup:
Sell at CCI-8 5m above -135, when CCI-34 30 mins is < -100. Short exit when CCI 34 5 min > +60
The same CCI settings can be used for positional or investment per appropriate timeframes one is interested to trade, along with HTF above in ratio 1:5.
Hope its helpful!
Stochastic RSI BandsStochastic RSI Bands by // © drbarry92064859
It is suggested to view this indicator on 15m or 5m timeframe with current Default Settings.
This indicator is based on the StochRsi.
It creates color bands based on the direction of multiple timeframe StochRsi.
When the MTF StochRsi's are opposed in direction it produces darker bands and when aligned in direction it produces light bands.
During Green Bands, price tends to be Bullish. During Red Bands, price tends to be Bearish.
During Medium toned Bands, price action tends to be in a correction in existing HTF trend, ranging, or getting ready for reversal.
During Light Bands, price tends to be in Trend in direction of color.
There is usually Dark Bands on either side of a light or medium toned band.
Best to enter in direction of current color, during the dark band after the medium toned bands
And exit in the dark band after the light toned band.
Brown bands tend to indicate reversal of direction and color.
I have experimented with all the timeframes and StochRSI settings and found the best settings to be as follows.
The Default settings are Middle Time Frame: 4H and Higher TimeFrame: D1.
The Default StochRSI settings are 34 RSI, 21 Stochastic, 13 smooth K and 13 smooth D.
It is suggested to use a lower timeframe such as 15m or 5m for entry.
You can experiment with different StochRSI and TimeFrame Settings.
SUGGESTED STRATEGY
Dark Bands after medium toned bands: Look for an entry on lower timeframe (15m or 5m) based on reversal candlestick formations or other indicators in direction of current color.
Light Bands: Do not enter during lighter bands. You should already be in trade during Light Bands
Light Band changes to Dark Band: Exit Trade if already in.
Look for general change of directional bias if a brown band occurs; however wait for dark band after the 2nd wide band following the brown band.
RSI Multi Time Frame (MTF). Fully customizable. [Zero54]NSE:NIFTY
An easy to read Multi Time Frame RSI that does not take too much space. All parameters and colors are customizable. Please feel free to give your suggestions. Feel free to modify the code as per your liking. Like this if you find this useful.
[Mad] Triple Bollinger Bands MTFThese are classic triple Bollinger bands with different multipliers
You can change the time frame plotted,
for example, you can show a 1-hour chart, but plot 6-hour Bollinger.
Since I haven't found any other OpenSource variant that can plot the 3 bands in a different time frame, here is my script for you
en.wikipedia.org
----
additional you can see in this script, how to move data around with arrays instead of multiple variables.
This way you can cut down security calls to a minimum. (look at the transfer- and bollarray)
FVG Screener (Nephew_Sam_)// This source code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// © nephew_sam_
FVG's are a skip in liquidity, zones where prices move quickly away from, which causes orders to not be fully filled in there. Think of it as weekend gaps, but during trading hours.
This indicator plots a table which looks for when price enters a MTF Fair Value Gap.
Note : The indicator will work fine when finding fvgs that are on a higher timeframe than your chart but if it is trying to find them on a lower timeframe it might cause repainting.
Eg. your chart is on the 1hr and its finding fvg's on the 5 min
Note: When you are on a timeframe much different from the indicator timeframe, the computation will be quite slow.
Eg. your chart is on the 5 min and the indicator is trying to find fvg's on the daily or weekly timeframe.
To fix this issue, only input timeframes that are close to your chart timeframe.
I split my chart into two, the left side indicator only has HTF (1hr, 4hr, D) and the right side indicator is LTF (5m, 15m, 30m)
The code is open source for anyone who can make this more effecient.
SMI MTF 4-Colored MAs (jkf)Four linear moving averages of varying frequency. Reading the moving averages is an art. If looking at a Daily price chart (for example):
For bullish trades, I like to see the yellow (longest term) moving average moving higher, but timing can be improved by respecting the shorter term lines, especially the black (shortest term).
For further support of your hypothesis, switch the frequency to Weekly, and validate that is supportive as well.
Warning: "Lookahead" is set to on, so large price swings can alter prior day readings.
Multi-Timeframe (MTF) Dashboard by RiTzMulti-Timeframe Dashboard
Shows values of different Indiactors on Multiple-Timeframes for the selected script/symbol
VWAP : if LTP is trading above VWAP then Bullish else if LTP is trading below VWAP then Bearish.
ST(21,1) : if LTP is trading above Supertrend (21,1) then Bullish , else if LTP is trading below Supertrend (21,1) then Bearish.
ST(14,2) : if LTP is trading above Supertrend (14,2) then Bullish , else if LTP is trading below Supertrend (14,2) then Bearish.
ST(10,3) : if LTP is trading above Supertrend (10,3) then Bullish , else if LTP is trading below Supertrend (10,3) then Bearish.
RSI(14) : Shows value of RSI (14) for the current timeframe.
ADX : if ADX is > 75 and DI+ > DI- then "Bullish ++".
if ADX is < 75 but >50 and DI+ > DI- then "Bullish +".
if ADX is < 50 but > 25 and DI+ > DI- then "Bullish".
if ADX is above 75 and DI- > DI+ then "Bearish ++".
if ADX is < 75 but > 50 and DI- > DI+ then "Bearish+".
if ADX is < 50 but > 25 and DI- > DI+ then "Bearish".
if ADX is < 25 then "Neutral".
MACD : if MACD line is above Signal Line then "Bullish", else if MACD line is below Signal Line then "Bearish".
PH-PL : "< PH > PL" means LTP is trading between Previous Timeframes High(PH) & Previous Timeframes Low(PL) which indicates Rangebound-ness.
"> PH" means LTP is trading above Previous Timeframes High(PH) which indicates Bullish-ness.
"< PL" means LTP is trading below Previous Timeframes Low(PL) which indicates Bearish-ness.
Alligator : If Lips > Teeth > Jaw then Bullish.
If Lips < Teeth < Jaw then Bearish.
If Lips > Teeth and Teeth < Jaw then Neutral/Sleeping.
If Lips < Teeth and Teeth > Jaw then Neutral/Sleeping.
Settings :
Style settings :-
Dashboard Location: Location of the dashboard on the chart
Dashboard Size: Size of the dashboard on the chart
Bullish Cell Color: Select the color of cell whose value is showing Bullish-ness.
Bearish Cell Color: Select the color of cell whose value is showing Bearish-ness.
Neutral Cell Color: Select the color of cell whose value is showing Rangebound-ness.
Cell Transparency: Select Transparency of cell.
Column Settings :-
You can select which Indicators values should be displayed/hidden.
Timeframe Settings :-
You can select which timeframes values should be displayed/hidden.
Note :- I'm not a pro Developer/Coder , so if there are any mistakes or any suggestions for improvements in the code then do let me know!
Note :- Use in Live market , might show wrong values for timeframes other than current timeframe in closed market!!
Day/Week/Month/3M/6M/12M MTF breaks by makuchakuThis indicator plots breaks for multiple timeframes. Works on Daily to Yearly timeframes.
Currently supported timeframes :
Daily
Weekly
Monthly
Quarterly
Half Yearly
Yearly
It currently plots all breaks together. From Indicator settings hide what you don't need and save as default settings.
Multiple MTF Variable Moving Average by HassonyaVMA(Variable Moving Average) automatically adjusts its smoothing constant on the basis of Market Volatility.
Use VMA like other Moving Averages. This indicator lazybear's variable moving average has been upgraded and arranged in multi-time frame.
There are 5 variable moving averages whose periods can be changed.
Trend Direction Colors: GREEN COLOR = UpTrend, BLUE COLOR = Potential Congestion, RED COLOR = DownTrend.
If you want, you can use multi-time frame period breakouts
If you want, you can use moving average breakouts of different lengths in the same period.
In this way, you can use 5 moving moving averages in the same period or in different periods.
To activate, go to settings and activate the box to the left of the name. If you uncheck the box, the moving average will disappear.
Stay with the trade and investment. I wish you abundance.
muh gap! [FAIR VALUE GAP FINDER]Change the colors of the indicator to contrast your chart! Make sure to also change the transparency for the colors.
---
This indicator finds fair value gaps which are inefficiencies in price delivery. Gaps can be used for entry or even bias.
I've included midpoints, lines, and boxes. Boxes have the greatest range with respect to historic PA so keep that in mind.
I will be updating this script in the future, potentially adding an MTF function, mitigation of gaps and alarms.
Let me know if you guys have any additional ideas.
Best,
P
bytimeLibrary "bytime"
TODO: to do something at the specified time.
////Return =>> ht = hour , mt = minute , st = second ,Dt = Day, Mt = month, Yt = year , dateTime = full time format./////////////
Note : Remember to always add import when you call our library and change Gtime() to Timeset.Gtime() is used to access internal data.
import hapharmonic/bytime/1 as Timeset
=Timeset.Gtime()
/////////////Set a time to trigger an alert./////////////
ck = false
///hour : minute : second
if ht == TH and mt == TM and st == TS
//some action
//...
//.
ck := true
Gtime()
SSL ChannelSSL Channel:
Multiple Moving Averages to choose from (SMA, EMA, SMMA (RMA), WMA, VWMA)
Option for a second SSL Channel
MTF
[Sextan] T-Step LSMA MTF BacktestLevel: 1
NOTE: This is a request by @scantor516 to backtest T-Step LSMA by alexgrover with my Sextan framework. You can backtest many of my indicators in minutes now! Of course,you can define your own indicator in the highlighted area in compliance with the uniform format, which guarantee when you use "Indicator on Indicator" function, it would not produce any error.
Courtesy of alexgrover for his T-Step LSMA
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "death and alive", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
Bitcoin Movement vs. Coin's Movement MTFThis script tracks the percent change of Bitcoin vs. the percent change of the coin on the chart. Crypto markets are usually affected greatly by Bitcoin swings so being able to see if the given coin is trending above or below Bitcoin is useful market data. All choices made with this script are your own! Thanks.
EMA MTF PlusI like trading the 1 minute and 3 minutes time-frames. I'm what is commonly called a "scalper". Long term investments yes, I have some, but for trading, I don't have neither the time,
nor the patience to wait hours or days for my trade to be complete.
This doesn't mean I discount the higher time-frames, no, I actually rely heavily on them. I found that EMAs do a decent job as support/resistance, sometimes to a tick level of precision. And this is important for a 1 minute trader.
As such, I made this script that tracks the higher time-frames EMAs and displays the last value as a line.
I do not need the whole EMA, I'm not interested in crossovers or crossunders, these are anyway late signals for me.
What's with the triangles? These are local tops/bottoms , candles that have a have decent size of the wick. These tops and bottoms are by no means "final", they are merely a rejection at certain levels of price. Due to markets complexities (and human erratic behaviors hehe) these levels could be breached at the very next candle. For a more "final" version (nothing is really final but..) I added Schaff Trend Cycle as filter, so a triangle will pop only when a trend is mature enough ( STC with a value near 0 or near 100).
Colored bars. When the body of the candle is big, it shows strength. Strong bars tend to have follow through, especially when breaking key levels. The script looks at the body of the candle and compares it with ATR (Average True Range), if it's at least 0.8 of ATR it changes the bar color to yellow (bull candles) or fuchsia(bear candles).
Range identifier. This code is copied from Lazy Bear (if there are any issues please let me know), it's very useful in conjunction with colored bars.
I look for breakout candles that go outside of the range as a signal for a trade.
There are many ways in which this script can be useful, like trading mean reversions or momentum trades (breakouts) or simply trend following trades.
I hope you guys find it useful, you can play with default values and change them as you like, these are what I found to be working best for me and my trading universe (mostly crypto).
Special thanks for the original work of:
LazyBear
everget
Jim8080
Fibonacci levels MTFHello All,
I got some requests for a script that shows Fibonacci Levels of Higher Time Frame Candles. so I made/published this script. I hope it would be useful for you.
Options:
You can set Higher Time Frame, by default it's 1 Day.
Optionally it can use Current or Last Candle of higher time frame to calculate/show its Fibonacci Levels.
It can show higher time frame candles at the background optionally. You can change its colors.
You can enable/disable/change each Fibonacci levels and their colors.
You can enable/disable Fibonacci Labels that is shown at the right ride and see only Fibonacci lines/levels
example, Fibonacci levels with higher time frame candles:
P.S. if you have ideas to improve this script, drop a comment under the script please
Enjoy!
X-Mas TreeLet's play a game!! Find your Christmas Tree and post it in the comments.
How to use the script?
Open any instrument which best describes the Christmas Tree (Preferably on hourly timeframe).
Apply X-Mas Tree script on the chart.
Enjoy the snowfall, changes in lightings and other animations. Animations only happen if the instrument is in trading session. So, stocks and indexes do not work on weekends and holidays. Use crypto as they are traded 24X7.
Unfortunately cannot post moving charts. But, snapshot of chart will do :)
Well, Please don't ask these questions for this script (Also thanks to @Bjorgum for contributing to this section) 😃
Can you please add alerts?
Does it repaint?
Can we use this for crypto/stock/forex bla bla?
Can you convert this to strategy?
How can I access this indicator?
Can you please give access or how much does it cost?
Can you make it available for MTF?
Indicator is broken. Getting so and so error message etc.
Wish you all MERRY X-MAS and HAPPY NEW YEAR!!
Dictionary/Object LibraryThis Library is aimed to mitigate the limitation of Pinescript having only one structured data type which is only arrays.
It lacks data types like Dictionaries(in Python) or Object (in JS) that are standard for other languages. Tuples do exist, but it hardly solves any problem.
Working only with Arrays could be overwhelming if your codebase is large. I looked for alternatives to arrays but couldn't find any library.
So I coded it myself and it's been working good for me. So I wanted to share it with you all.
What does it do:
==================
If you are familiar with Python or Javascript, this library tries to immimate Object/Dictonary like structure with Key Value Pairs.
For Example:
object= {name:"John Doe", age: 28 , org: "PineCoders"}
And then it also tries to immitate the Array of Objects (I call it Stack)
like this:
stack= Array({name:"John Doe", age: 28 , org: "PineCoders"},
{name:"Adam Smith", age: 32 , org: "PineCoders"},
{name:"Paragjyoti Deka", age: 25 , org: "PineCoders"})
So there are basically two ideas: Objects and Stacks.
But it looks whole different in Pinescript for obvious reasons.
Limitation:
The major limitation I couldn't overcome was that, for all of the values: both input and return values for properties will be of string type.
This is due to the limiation of Pinecsript that there is no way to return a value on a if-else statement dynamically with different data types.
And as the input data type must be explicitly defined when exporting the library functions, only string inputs are allowed.
Now that doesn't mean you won't be able to use integer, float or boolens, you just need to pass the string value for it using str.tostring() method.
And the output for the getter functions will be in strings as well. But I have added some type conversion methods that you could use from this library itself.
From String to Float, String To Integer and String to Boolean: these three methods are included in this library.
So basically the whole library is based on a manipulatiion of Array of strings under the hood.
///////////////
Usage
///////////////
Import the library using this statement:
import paragjyoti2012/STR_Dict_Lib/4 as DictLib
Objects
First define an object using this method:
for eample:
object1= DictLib.init("name=John,age=26,org=")
This is similar to
object1= {name:"John",age:"26", org:""} in JS or Python
Just like we did here in for "org", you can set initital value to "". But remember to pass string values, even for a numerical properties, like here in "age".
You can use "age="+str.tostring(age). If you find it tedious, you can always add properties later on using .set() method.
So it could also be initiated like this
object= DictLib.init("name=John")
and later on
DictLib.set(object1,"age", str.toString(age))
DictLib.set(object1,"org", "PineCoders")
The getter function looks like this
age= DictLib.get(object1,"age")
name=DictLib.get(object1,"name")
The first argument for all methods .get, .set, and .remove is the pointer (name of the object).
///////////////////////////
Array Of Objects (Stacks)
///////////////////////////
As I mentioned earlier, I call the array of objects as Stack.
Here's how to initialize a Stack.
stack= DictLib.initStack(object1)
The .initStack() method takes an object pointer as argument. It simply converts the array into a string and pushes it into the newly created stack.
Rest of all the methods for Stacks, takes the stack pointer as it's first arument.
For example:
DictLib.pushStack(stack,object2)
The second argument here is the object pointer. It adds the object to it's stack. Although it might feel like a two dimentional array, it's actually an one dimentional array with string values.
Under the hood, it looks like this
////////////////////
Methods
////////////////////
For Objects
-------------------
init() : Initializes the object.
params: (string) e.g
returns: The object ( )
example:
object1=DictLib.init("name=John,age=26,org=")
...................
get() : Returns the value for given property
params: (string object_pointer, string property)
returns: string
example:
age= DictLib.get(object1,"age")
.......................
set() : Adds a new property or updates an existing property
params: (string object_pointer, string property, string value)
returns: void
example:
DictLib.set(object1,"age", str.tostring(29))
........................
remove() : Removes a property from the object
params : (string object_pointer, string property)
returns: void
example:
DictLib.set(object1,"org")
........................
For Array Of Objects (Stacks)
-------------------------------
initStack() : Initializes the stack.
params: (string object_pointer) e.g
returns: The Stack
example:
stack= DictLib.initStack(object1)
...................
pushToStack() : Adds an object at at last index of the stack
params: (string stack_pointer, string object_pointer)
returns: void
example:
DictLib.pushToStack(stack,object2)
.......................
popFromStack() : Removes the last object from the stack
params: (string stack_pointer)
returns: void
example:
DictLib.popFromStack(stack)
.......................
insertToStack() : Adds an object at at the given index of the stack
params: (string stack_pointer, string object_pointer, int index)
returns: void
example:
DictLib.insertToStack(stack,object3,1)
.......................
removeFromStack() : Removes the object from the given index of the stack
params: (string stack_pointer, int index)
returns: void
example:
DictLib.removeFromStack(stack,2)
.......................
getElement () : Returns the value for given property from an object in the stack (index must be given)
params: (string stack_pointer, int index, string property)
returns: string
example:
ageFromObject1= DictLib.getElement(stack,0,"age")
.......................
setElement() : Updates an existing property of an object in the stack (index must be given)
params: (string stack_pointer, int index, string property, string value)
returns: void
example:
DictLib.setElement(stack,0,"age", str.tostring(32))
........................
includesElement() : Checks if any object exists in the stack with the given property-value pair
params : (string stack_pointer, string property, string value)
returns : Boolean
example:
doesExist= DictLib.includesElement(stack,"org","PineCoders")
........................
searchStack() : Search for a property-value pair in the stack and returns it's index
params: (stringp stack_pointer, string property, string value)
returns: int (-1 if doesn't exist)
example:
index= DictLib.searchElement(stack,"org","PineCoders")
///////////////////////
Type Conversion Methods
///////////////////////
strToFloat() : Converts String value to Float
params: (string value)
returns: float
example:
floatVal= DictLib.strToFloat("57.96")
.............................
strToInt() : Converts String value to Integer
params: (string value)
returns: int
example:
intVal= DictLib.strToFloat("45")
.............................
strToBool() : Converts String value to Boolean
params: (string value)
returns: boolean
example:
boolVal= DictLib.strToBool("true")
.............................
Points to remember
...............
1. Always pass string values as arguments.
2. The return values will be of type string, so convert them before to avoid typecasting conflict.
3. Horses can't vomit.
More Informations
====================
Yes, You can store this objects and stacks for persisting through the iterations of a script across successive bars.
You just need to set the variable using "var" keyword. Remember this objects and stacks are just arrays,
so any methods and properties an array have it pinescript, would be applicable for objects and stacks.
It can also be used in security functions without any issues for MTF Analysis.
If you have any suggestions or feedback, please comment on the thread, I would surely be happy to help.