Multi IND Dashboard [Skiploss]Multi IND Dashboard is dashboard combine with price change, RSI, ATR, Alligator and Supertrend. With a maximum of 10 timeframes, I think it's going to make your life easier. In looking at the momentum of each chart.
How it work??
Change :
It is the distance from the close price of previous candlestick and shows the movement value of the candlestick in that timeframe.
RSI :
Default setting are 14 and source close
Value >= 75 : Fill text color maximum overbought
Value >= 65 : Fill text color medium overbought
Value >= 55 : Fill text color minimum overbought
Value >= 45 : Fill text color minimum overbought
Value >= 35 : Fill text color medium overbought
Value >= 25 : Fill text color maximum overbought
ATR :
Default setting are 14 length and RMA smoothing, It like the average swing of the candlesticks.
Alligator :
Default setting are 13, 8 and 5
Bullish status is value lips > teeth and teeth > jaw
Bearish status is value lips < teeth and teeth < jaw
Neutral status status is value lips > teeth and teeth < jaw or lips < teeth and teeth > jaw
Supertrend :
Default setting are 8 and 3.0
Bullish status is uptrend
Bearish status is downtrend
"沪深主板45度上升的股票"に関するスクリプトを検索
RSI Dashboard Monitor [Skiploss]RSI Dashboard Monitor is indicator for scanner Relative Strength Index ( RSI ) for 4 symbols and 10 Timeframe, detached from the main chart.
You can choose to display all 4 symbols or just 1 symbol, also can choose resolution (TF). Still, these 10 timeframes should be enough to use. Default is set to 14 but you can modify it from settings.
How it work??
RSI >= 75 : Fill color maximum overbought
RSI >= 65 : Fill color medium overbought
RSI >= 55 : Fill color minimum overbought
RSI >= 45 : Fill color minimum overbought
RSI >= 35 : Fill color medium overbought
RSI >= 25 : Fill color maximum overbought
** Values level and color style can modify it from settings
True Average Period Traded RangeTrue Average Period Trading Range (TAPTR)
The J. Welles Wilder Average True Range calculation includes the ability to calculate in gaps into the equation.
It is in my opinion that gaps are untraded range values until the prices on their own come back and close the gaps.
The TAPTR calculation is simple, it is the average for a set period of time of the HIGH - LOW.
The ATR average calculation is automatically set based on the timeframe period you are looking at.
12 Months (1 year) = 10 (1 decade)
Months = 12 (1 year)
Weeks = 12 (1 business quarter)
Days = 21 (1 trading month)
4 Hour = 9 (5 trading days)
1 Hour = 33 (5 trading days)
45 minutes = 9 (1 trading day)
30 minutes = 14 (1 trading day)
15 minutes = 28 (1 trading day)
10 minutes = 42 (1 trading day)
5 minutes = 85 (1 trading day)
1 minute = 420 (1 trading day)
default value = 21 (if using a timeframe not described above)
The "master trend" as being a 21 SMA.
The colored columns represent the actual range value for that time period.
Description of values from left to right.
1) Actual Trade Range Value for the time period you are viewing
2) % of price (in decimal, you need multiply by 100 to get the true percent)
3) Average Traded Range
4) % of price
5) .618 of Average Traded Range
6) % of price
7) Mean of #3 and #5
8) % of price
The % of price is displayed in its calculated form. You need to multiple the value by 100 if you want the actual percent.
Example: Displayed Value: 0.0246 = 2.46%
Why calculated form only? If the ranges are .72 and the % of price is 2.32 the indicator looks all jacked up like a redneck's pick-up.
However, if it is .0232, everything is to scale.
Why is % of price helpful?
If you are trading and are aware that average period traded range is 5%, you now have an idea of an average return if you could catch from low to high (or short high to low).
Bar Colors
RED is greater than 4.2x TAPTR
ORANGE is greater than 2.618x TAPTR but less than RED
YELLOW is greater than 1.618x TAPTR but less than ORANGE
GREEN is greater than .618x TAPTR but less than YELLOW
BLUE is less than GREEN
The colors of the bars represent how far from the Master Trend (21 SMA) the close is.
This is determined by taking the difference between the close and the 21 SMA and dividing by the current TAPTR.
EXAMPLE:
IF you have a RED bar, the close is greater than 4.2 TAPTRs away from the 21 SMA. This means that either prices will stall and remain flat until
the SMA comes to the prices or turn and return to the SMA.
If prices are greater than 4.2 TAPTR, that also represents that it is greater than 4 or more time periods from the mean if the return traded within the averages.
Smoothed RSI w/ VWAP & Moving AverageThis indicator is the default Tradingview RSI with smoothing and an RSI based VWAP. I've also added the RSI based VWAP to the Moving Average options list. By default, the RSI based VWAP is turned on with the WMA selected as the Moving Average. The RSI changes colors when it is above the 55 level, VWAP, and Moving Average or below the 45 level, VWAP, and Moving Average. There is also an option for barcoloring based on the RSI colors.
Default settings
Default settings w/ Barcoloring
VWAP off w/ Bollinger Bands as the Moving Average
VWAP on w/ Bollinger Bands as the Moving Average and Barcoloring
VWAP as the Moving Average option
Chop and explode (ps5)Description : This is a renovated version of my previous mod that was based on the original script from fhenry0331.
Added are:
a data cleaning function
a seasonal random index function
an updated scaler and
a signalling procedure.
-
The following description is moved here from the old script.
The purpose of this script is to decipher chop zones from runs/movement/explosion spans. The chop is RSI movement between 40 and 60. Tight chop is RSI movement between 45 and 55. There should be an explosion after RSI breaks through 60 (long) or 40 (short). Tight chop bars are colored gray, a series of gray bars indicates a tight consolidation and should explode imminently. The longer the chop the longer the explosion will go for. The tighter the better. Loose chop (jig saw/gray bars on the silver background) will range between 40 and 60. The move begins with green and red bars.
Couple it with your trading system to help stay out of chop and enter when there is a movement.
Chervolinos_Rob Hoffman_Inventory Retracement Bar_and_OverlayHere is something like a combo from the well known Rob Hoffman (Overlay) Indicator and the Inventory Retracement Bar without any ballast
This really smart strategy with a low risk and a quick profit. I combine this two Indicators to save space.
The first condition is that the orange line and the lime line must be parallel and there is no other line between them because this condition is moving under 45 angle.
The second condition is that the target candles must be below the orange line in the case of the downtrend as we see.
As we see it here in the case of an uptrend should be candles above the orange line and this is logical as we see here.
Sometimes we noticed the appearance of the signal onto the candle but the conditions were not applicable because there is an orange line between the green line and the orange line and this means that the signal is fake.
This candle is also good for entry and we can place a buy order above it but is it beginner, so you must respect the conditions in order to be able to master it very well.
Enter with Confidence all conditions are present a red arrow above the candle and the candle is above the orange line and there are no lines between the lime and
orange line. Yes this is our target the entry-point will be a little above the wicked the candle, that is you will not buy now but it's a price exceeds the weight limit
even slightly, we will buy directly it is hoffman's method. Expected if the price in which resistance occurred which is the resistance represented
by the candlewick will be broken the price for rise up and strongly and if it does not happen you will not lose anything anyway to stop loss and take profit. Try the ratio by 1,5.
This part of this strategy is one of the best trading strategies with a low risk rate and can be used as an initial guide to know the market movement and to enter successful trades.
Let's start correctly. This strategy can be used on any time frame from one minute to one day or even more, but I recommend using it on a 10-minute frame one hour or 30 minutes frame. Here I use the 30-Minute frame.
This strategy is based on two things: Tramp Direction and the inventory retracement bar. Don't worry and don't think about it because all this will be automatic but let's understand some simple terms.
There many arrows in green and red. Please read the discription above.
Please read the following tipps:
To avoid the trend Reversal, try to add one one of the Divergence indicators to your chart.
To avoid entering in a pullback movement as much as possible.
--> Combine it with other indicators <--
Best Regards Chervolino
if there were any typographical errors, please forgive me
Note: Buy/Sell signals using non-standard chart types (Heikin Ashi, Renko, Kagi, Point & Figure, and Range) are not allowed, as they produce unrealistic results
Short Swing Bearish MACD Cross (By Coinrule)This strategy is oriented towards shorting during downside moves, whilst ensuring the asset is trading in a higher timeframe downtrend, and exiting after further downside.
This script can work well on coins you are planning to hodl for long-term and works especially well whilst using an automated bot that can execute your trades for you. It allows you to hedge your investment by allocating a % of your coins to trade with, whilst not risking your entire holding. This mitigates unrealised losses from hodling as it provides additional cash from the profits made. You can then choose to hodl this cash, or use it to reinvest when the market reaches attractive buying levels. Alternatively, you can use this when trading contracts on futures markets where there is no need to already own the underlying asset prior to shorting it.
ENTRY
This script utilises the MACD indicator accompanied by the Exponential Moving Average (EMA) 450 to enter trades. The MACD is a trend following momentum indicator and provides identification of short-term trend direction. In this variation it utilises the 11-period as the fast and 26-period as the slow length EMAs, with signal smoothing set at 9.
The EMA 450 is used as additional confirmation to prevent the script from shorting when price is above this long-term moving average. Once price is above the EMA 450 the script will not open any shorts - preventing the rule from attempting to short uptrends. Due to this, this strategy is ideal for setting and forgetting.
The script will enter trades based on two conditions:
1) When the MACD signals a bearish cross. This occurs when the EMA 11 crosses below the EMA 26 within the MACD signalling the start of a potential downtrend.
2) Price has closed below the EMA 450. Price closing below this long-term EMA signals that the asset is in a sustained downtrend. Price breaking above this could indicate a bullish strength in which shorting would not be profitable.
EXIT
This script utilises a set take-profit and stop-loss from the entry of the trade. The take profit is set at 8% and the stop loss of 4%, providing a risk reward ratio of 2. This indicates the script will be profitable if it has a win ratio greater than 33%.
Take-Profit Exit: -8% price decrease from entry price.
OR
Stop-Loss Exit: +4% price increase from entry price.
Based on backtesting results across a selection of assets, the 45-minute and 1-hour timeframes are the best for this strategy.
The strategy assumes each order is using 30% of the available coins to make the results more realistic and to simulate you only ran this strategy on 30% of your holdings. A trading fee of 0.1% is also taken into account and is aligned to the base fee applied on Binance.
The backtesting data was recorded from December 1st 2021, just as the market was beginning its downtrend. We therefore recommend analysing the market conditions prior to utilising this strategy as it operates best on weak coins during downtrends and bearish conditions, however the EMA 450 condition should mitigate entries during bullish market conditions.
Bollinger CloudsThis indicator plots Bollinger Bands for your current timeframe (e.g 5 minutes) and also plots the Bollinger Bands for a higher timeframe (15 minutes for 5 minute timeframe). Then the gaps between the current and higher timeframe upper and lower bands is filled to create clouds which can be used as entry zones. Like Bollinger Bands, this indicator shouldn't be solely used for entries, use it in conjunction with other indicators.
Bollinger Band Timeframes
Current / Higher
1 minute / 5 minutes
3 minutes / 10 minutes
5 minutes / 15 minutes
10 minutes / 30 minutes
15 minutes / 1 hour
30 minutes / 2 hours
45 minutes / 1.5 hours
1 hour / 4 hours
2 hours / 8 hours
2.5 hours / 10 hours
4 hours / 1 Day
1 Day / 3 Days
3 Days / 9 Days
5 Days / 2 Weeks
1 Week / 1 Month
Aggregated Money Flow Index - InFinitoModified Version of In-Built Money Flow Index Indicator. Aggregated Volume is used for it's calculation + a couple of other features.
Aggregation code originally from Crypt0rus
***The indicator can be used for any coin/symbol to aggregate volume , but it has to be set up manually***
***The indicator can be used with specific symbol data only by disabling the aggregation option, which allows for it to be used on any symbol***
- Calculated based on Aggregated Volume instead of by symbol volume . Using aggregated data makes it more accurate and allows to compare volume flow between different kinds of markets (Spot, Futures , Perpetuals, Futures+Perpetuals and All Volume ).
- As well, in order to make the data as accurate as possible, the data from each exchange aggregated is normalized to report always in terms of 1 BTC . In case this indicator is used for another symbol, the calculations can be adjusted manually to make it always report data in terms of 1 contract/coin.
- Added Moving Average ( SMA , EMA , WMA , RMA, VWMA ) that can be plotted to the MFI
- Added 10/90 level and 45/55 range level
Things to look for:
- Divergences: Can be a very good reversal signal
- MA crossovers & Oversold/Overbought levels crossover: With proper confluence, entering a position at MA crossover and exiting at oversold/overbought levels can give very good swing setups (Or scalps on LTF)
- Center range retests: Once in a trend, retesting the middle range can give very good entries and confirmations of the trend
- Confluence of the latter: In combination, if more than one of these occur at the same time it can give more clarity regarding the current state of the market.
RSI, EMA, SMA Trendtrading - Oil Daytrading 1HThe Unitrend trading System produces trading recommendations on a pure Trend basis.
It is a Score based system.
--- How to use the System --
Simply adjust your capital you want to risk per trade and your TP Factor.
The TP Factor is the multiple of your risked Capital, also known as Risk/Reward ratio.
Furthermore you can toggle between a always Buy mode, to see if the System is better then market.
Compounding mode helps you to get a better understanding of your maximum drawdown with a total equity based approach.
--- How are Signals produced? ---
A score of 2 or 3 is a BUY signal.
You can count the score by looking at the lines above 1, or by reading the color.
Green is 3, yellow 2, orange 1 and red is 0.
The score is calculated by 3 conditions.
Each applying condition yields one point for the score.
The score resets each bar.
The rules are:
RSI > 45: Well known indicator, usually looks for reversal points but seems to produce above average results when above 45.
EMA(RSI) > SMA(RSI): My approach to momentum detection for the RSI movement, I consider a faster growing RSI as a good thing.
EMA(close) > SMA(close): My approach to trend detection for the market movement. Common Wisdom would be a fast SMA > slow SMA which I found to be too slow for the modern market.
Fibonacci Grid [LuxAlgo]The following indicator returns multiple diagonal lines forming a grid. Each line has 45-degree and is set depending on Fibonacci ratios as well as the maximum and minimum price value over a certain lookback period. These can be used as potential support and resistance.
Users also have the option to set equidistant lines instead of having them determined by Fibonacci ratios.
Settings
Length: Lookback period for determining the maximum/minimum price value used for constructing the grid.
Resolution: Grid resolution, higher values will return more lines (only available when the "Use Fibonacci Ratios" is disabled)
Use Fibonacci Ratios: Set the lines based on Fibonacci Ratios, 6 ratios are used.
Usage
Each individual diagonal line can be used as support/resistance. Two Diagonal lines form channels where the price might evolve until a breakout.
The underlying logic of this grid determined by Fibonacci ratios is that price variations farther away from the main diagonals (in orange) would tend to move inside tighter channels.
Diagonals set using Fibonacci Ratios will form tighter channels when away from the center of the Lookback area. While equidistant lines will keep the same distance between each line.
CDOI ProfileCumulative Delta of Open Interest Profile
This script lets you visualize where there were Open Interest build-ups and discharges on a price basis.
It only supports pairs where TradingView added the appropriate Open Interest data (at the time of posting that is only Binance and Kraken perpetual contracts)
The script uses my own functions to poll lower timeframe data and compile it into a higher timeframe profile. And as such, it needs some tweaking to adjust it to your timeframe until Tradingview lets me do it codewise (hopefully one day)
The instructions for using the Indicators are as follows:
Condition: How often a new profile should be generated
Sampling Rate and 1/Nth of the TF: These have to be calculated together to have a product that should correspond to the current timeframe in minutes. A few examples below
----------- Sampling - 1Nth of the TF
5 min ------- 5 --------------- 1
10 min ------ 10 ------------- 1
15 min ------ 5 --------------- 3
20 min ------ 10 ------------- 2
30 min ------ 10 -------------- 3
45 min ------- 9 -------------- 5
1 hour ------- 10 ------------- 6
4 hours ----- 10 -------------- 24
1 day -------- 10 ------------- 144
Transparency: This one is pretty self-explanatory but only applies to the Profile bars
% change for a bar: This one indicates how precise each bar will be, but if you go too low the script becomes too heavy and stop running
Bar limit: Limits the amounts of bars the script is run for (ae for the last 1000 bars). Lower = faster loading, too high will stop running
UI color: Color and transparency of the center line and the box surrounding the whole profile
McNamara Tally [CC]The McNamara's Tally was created by Nolan McNamara (Stocks and Commodities Feb 2022 pgs 44-45) and this aims to fix the issues with both the On Balance Volume and the Accumulation/Distribution Line by using a variation of Wilder's True Range to keep track of volume flow to better differentiate between bullish volume and bearish volume. I added a signal line to this indicator to provide clear buy and sell signals since the original didn't' have any so feel free to experiment and see if you come up with a better signal system. Buy when the indicator line turns green and sell when it turns red. I have included strong buy and sell signals in addition to normal ones so stronger signals are darker in color and normal signals are lighter in color.
Let me know if there are any other indicators or scripts you would like to see me publish!
[BM] SSS 50% Rule EvaluatorSara Strat Sniper 50% Rule Evaluator
█ OVERVIEW
This indicator is based on Sara Strat Sniper's - 50% Rule for trading Outside Bars and helps you to evaluate the historical success rate of that rule.
█ FEATURES
Calculation
• You can choose to evaluate only the current bar to see if it forms an outside bar (success) or not (fail), but you can also choose to include the next bar to see if that one forms a compound outside bar.
• You can enable a start and/or end date to limit the calculation period.
Table
• Show or hide the table with the calculation results.
• Show or hide the calculation details (up/down data).
• Position of the table, opacity, cell width and text size can be customized.
Colors
• Table colors can be customized.
• You can choose to show the inside/outside bars in customizable bar colors.
• You can choose to identify successful/failed/recovered outside bars in customizable background colors.
█ LIMITATIONS
• This script uses a special characteristic of the `security()` function allowing the inspection of intrabars — which is not officially supported by TradingView.
• Intrabar inspection only works on some chart timeframes: 5, 10, 15, 30, 45 and 195 minutes, 1, 2, 3, 4, 5, 6, 7 and 8 hours, 1, 2, 3, 4 and 5 days, 1, 2, 3 and 4 weeks, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 and 12 months. The script’s code can be modified to run on other resolutions.
• There is a limit to how far back intrabar calculations can be performed, and is dependant on both the intrabar resolution and your subscription (which determines the number of available bars).
Swing Trades Validator - The One TraderThis swing trading strategy validator is built on the original strategy taught in my bootcamp for swing traders.
The strategy is simple and follows a trend trading pattern on prices reacting to Exponential Moving Averages over a multiple time-frame analysis.
The details of the strategy are as follows:
- Holding Period : Upto a couple of months
- Time-frames to be analysed : Month - Week - Day
- Trade Execution : Daily Time-frame
Analysis Details:
Step 1 : On the Monthly time-frame, the candle needs to be bullish with the latest close being higher than the opening price of the month.
Step 2 : The price needs to be above the 8ema on the Monthly time-frame.
Step 3 : The 8ema must be above the 20ema on the Monthly time-frame.
The above steps indicate a bullish strength in the instrument on the Monthly time-frame.
Step 4 : On the Weekly time-frame, the candle needs to be bullish with the latest close being higher than the opening price of the week.
Step 5 : The price needs to be above the 8ema on the Weekly time-frame.
Step 6 : The 8ema must be above the 20ema on the Weekly time-frame.
The above steps indicate a bullish strength in the instrument on the Weekly time-frame.
Step 7 : On the Daily time-frame, the candle needs to be bullish with the latest close being higher than the opening price of the day.
Step 8 : The price needs to be above the 8ema on the Daily time-frame.
Step 9 : The 8ema must be above the 20ema on the Daily time-frame.
The above steps indicate a bullish strength in the instrument on the Daily time-frame.
Step 10 : While the 8ema is above the 20ema on the Daily time-frame, the price must be allowed to rise before a pullback is seen towards the moving averages, indicating a bearish move trying to change the trend.
Step 11 : These pullback candles need to form a pattern called the Ring Low with the second pullback candle having a lower high and lower low and the low of the last pullback candle being lesser than or equal to the fat ema on the Daily time-frame.
Step 12 : If the stock is still bullish and the trend is displaying a strength in the underlying bullish direction, then there will be a resumption candle that will have a closing price higher than the previous day's high price.
This trend continuation signal is a confirmation that the instrument will continue in the underlying trend direction and we will be able to enter if this condition is satisfied.
The profit and loss percentages are set at a default 10% as this can be a minimum risk : reward for swing trades on average, but the inputs have been made available to the users in order to adjust the risk : reward to find the most optimum breathing room for each individual stock or instrument. This will give the user a highly custom overview of the strategy on individual instruments based on their volatility and price movements.
The strategy tester will auto back-test this strategy historically and find all the trades that were taken based on this strategy and populate a performance summary.
The most important data in V1.0 of this script are as follows:
1. No. of Trades Taken : We want to see many trades being taken on this strategy in that particular instrument. This shows us a healthy report on the number of winning vs. losing trades.
2. Percentage Profitable : We want to see that this strategy has worked out in the past and is giving us a high probability of return. This in no way an indication that the strategy will definitely work out in the future as well, but gives us an idea of whether or not we should enter this trade.
3. No. of Winning Trades vs. Losing Trades : We would like to see a significantly higher number of winning trades.
4. Avg. # of bars in a trade : This gives us an idea of how long on average we might have to wait to see the results of this strategy either in favor of our reward or against our desired direction. Some trades can be completed in around 15-20 bars on average and some trades have shown to take upto 45 days to reach desired reward. This is in line with our planned holding period, but gives the trader a sense of time and increased level of patience.
The future updates will have more utility of the various elements of the strategy tester and the entire exit strategy will be integrated into the script.
This script is not to be used as a standalone method and must be studied well in order to execute trades. I have not hidden visibility on other time-frames, but since order execution is done on the Daily time-frame, the script must run on the Daily time-frame only.
There are many other factors to be taken into consideration before entering a trade and proper risk management and position sizing rules must be followed.
Our bootcamp participants will use this strategy tester in conjunction with the invite-only Trading Toolkit assigned to them.
The development of this script will be ongoing and all comments and feedback are welcome.
Gann FanHello All,
For long time I have been getting many requests about Gann Fan indicator. now we have linefill() function in Pine Language and I think it's right time to make Gann Fan Indicator. Many Thanks to Pine Team for adding many new features to the Pine Language!
How this indicator works:
- It calculates midline (1/1)
- By using midline it calculates other lines (1/2, 1/3, 1/4...etc)
- It calculates highest/lowest Pivot Points in last 280 bars.( by default it's 280 bars, you can change it and pivot period )
- It checks the location of highest/lowest Pivot Points
- After the calculation of the Gann Fan lines, it draws lines, puts Labels and paints the zones between the lines according to the colors set by the user
Long time ago I created a special algorithm for calculating the line with 45 degree and I used it for "1/1" line. Anybody who needs it can use this algorithm freely ;)
Options:
You can change following items;
- The colors
- Transparency. Possible values for transparency are from 0 (not transparent) to 100 (invisible)
- Line styles
- Loopback Period (by default it's 280)
- Pivot Period (by default it's 5)
- Enable/disable Labels
- Label location (by default it's 50
Tradingview Gann Fan page : The Gann Fan is a technical analysis tool created by WD Gann. The tool is comprised of 9 diagonal lines (extending indefinitely) designed to show different support and resistance levels on a chart. These angles -drawn from main tops and bottoms- divide time and price into proportionate parts and are often used to predict areas of support and resistance, key tops and bottoms and future price moves. Please note that the chart needs to be scaled properly to ensure the market has a square relationship....
Enjoy!
Stochastic and RSI in one indicator with customized alert.Hello Trading Viewers,
I present you Stochastic Oscillator and The Relative Strength Index Indicator inside one indicator, so that it will clear room to view charts.
When Stochastic is over-sold, the fast and slow stochastic underlap along with strong RSI (say above 45) will be a good indicator of buy at low with good risk-to-return of 2x or 3x; therefore I have set a triangle shape indicator within to help you identify or you can simply set an alert as I have coded an customized alert.
Same idea is used when Stochastic is over-bought you will receive an alert when fast & slow stochastic overlaps with RSI falling give a good sell set-up.
There is an option of selecting different timeframes which will further help make the correct decision. Say you are viewing a Daily chart but you want an indicator to present data of 4hrs timeframe, it can be done from the indicator cogwheel option. Default timeframe is "same as charts' ".
Above indicator is universal because settings such as RSI levels and no. of bars to calculate are user defined. You can use it on Crypto, Commodities, Stocks etc.
I suggest you first paper-trade with it and then use it on live account.
Happy trading.
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.
Fib RSI++ by [JohnnySnow]Fib RSI++ by is an RSI Inspired by my absolutely favorite RSI on tradingview: RSI & EMA with Reverse Calculator Panel by balipour.
Built for quicker and easily identify prices at current RSI /possibly reversals/ RSI direction and RSI landings.
From balipour, I reuse /adapt to pinescriptV5 3 lines of code ( ) - the balipour implementation for reversing RSI formula in order to calculate price estimation based on the Given RSI level. Credits to the author.
Inspired by it, I also combine RSI with a MA but tuned to reads better the support/resistance levels (my humble opinion).
For quicker price target identification 2 features were added:
- Gridlines based on Fib levels, standard overbought/oversold levels and other levels I personally use. All of the grid lines can be configured according to user preferences.
- 2 information tables:
--First with a collection of 'close' numbers and Fib RSI levels price estimations at given RSI
--The second table allows the user to add up to 3 custom RSI levels to further target the price estimation.
Author UI Preferences to be used with this indicator: dark theme, hidden vertical and horizontal chart gridlines.
Moving Average Trend█ OVERVIEW
This is a Moving Average Script that contains both a cloud and a ribbon that has independent MA-type selection.
⬆ green arrow up = up trend flip
⬇ red arrow down = down trend flip
🟢 Green Dot = Potential Long
🔴 Red Dot = Potential Short
█ CONCEPTS
1 — Cloud, like most trading algo, the cloud is made of 8 short term MA , with MA cross and MA cross (longema)
2 — Ribbon, this is by default turned off, the default values , an option in setting to change longema to look for ribbon cross
3 — Sequence, It goes from 1 – 9 at 9 the sequence resets. The sequence changes colour depending on if it’s a down trend(red) or uptrend(green) or an over extended trend (yellow)
Setup definitions
Red sell start = current close < the close 4 candles back
Yellow sell extended = current close < last close and current close < two closes back
Green buy start = current close > the close 4 candles back
Yellow buy extended = current close last close and current close < two closes back
This can help you find when it’s time to get out, or sit out of a choppy trend.
4 - Moving Average types:
sma = Simple Moving Average
ema = Exponential Moving Average
wma = Weighted Moving Average
vwma = Volume Weighted Moving Average
rma = Running Moving Average
alma = Arnaud Legoux Moving Average
hma = Hull Moving Average
jma = Jurik Moving Average
frama-o = frama
frama-m = frama mod
dema = Double Exponential Moving Average
tema = Triple Exponential Moving Average
zlema = Zero lag Exponential Moving Average
smma = Smoothed Moving Average
kma = kaufman Moving Average
tma = triangular Moving Average
gmma = Geometric Mean Moving Average
vida = Variable Index Dynamic Average
cma = Corrective Moving average
rema = Range Exponential Moving average
█ OTHER SECTIONS
• FEATURES: to describe the detailed features of the script, usually arranged in the same order as users will find them in the script's inputs.
• HOW TO USE
• LIMITATIONS: Like with any MA script there is a lag factor associated with is.
• RAMBLINGS: Experiment to your hearts content with all the MA types, I'm impartial to HMA as is
• NOTES: some of the MA's are more taxing, therefore take longer to load, be patience, this is a trimmed down version of an existing invite only script i have
ColorExtensionLibrary "ColorExtension"
Color Extension methods.
hsl(hue, saturation, lightness, transparency) HSL color transform.
Parameters:
hue : float, hue color component, hue is a degree on the color wheel from 0 to 360. 0 is red, 120 is green, 240 is blue.
saturation : float, saturation color component, saturation is a percentage value, 0 means a shade of gray and 100 is the full color.
lightness : float, lightness color component, Lightness is also a percentage; 0 is black, 100 is white.
transparency : float, transparency color component, transparency is also a percentage; 0 is opaque, 100 is transparent.
Returns: color
rgb_to_hsl(red, green, blue) Convert RGB to HSL color values
Parameters:
red : float, red color component.
green : float, green color component.
blue : float, blue color component.
Returns: tuple with 3 float values, hue, saturation and lightness.
complement(primary) Complementary of selected color
Parameters:
primary : color, the primary
Returns: color.
invert(primary) Inverts selected color.
Parameters:
primary : color, the primary.
Returns: color.
is_cool(base) Color is cool or warm.
Parameters:
base : color, the color to check.
Returns: bool.
temperature(base) Color temperature.
Parameters:
base : color, the color to check.
Returns: bool.
is_high_key(base) Color is high key (orange yellow green).
Parameters:
base : color, the color to check.
Returns: bool.
mix(base, mix, rate) Mix two colors together.
Parameters:
base : color, the base color.
mix : color, the color to mix.
rate : float, default=0.5, the rate of mixture, range within 0.0 and 1.0.
Returns: color.
analog(primary) Selects 2 near spectrum colors (H +/- 45).
Parameters:
primary : color, the base color.
Returns: tuple with 2 colors.
triadic(primary) Selects 2 far spectrum colors (H +/- 120).
Parameters:
primary : color, the base color.
Returns: tuple with 2 colors.
tetradic(primary) Uses primary and the complementary color, + 60º to form a rectangular pattern on the color wheel.
Parameters:
primary : color, the base color.
Returns: tuple with 3 colors.
square(primary) Uses primary and generate 3 equally spaced (90º) colors.
Parameters:
primary : color, the base color.
Returns: tuple with 3 colors.
Hull MA of RSI StrategyThis simple strategy base on RSI value of Close Price, High Price, Low Price, Median Price and RSI value smoothed by Hull Moving Average.
1. Optimize parameter on BTC H1 Binance chart
RSI period: 13
Hull MA period: 3
Middle Channel: 55-45
Overbough / Oversold: 70-30
2. Setup
2.1 Long Condition
- RSI of Close Price crossunder Overbought
- Close Price lower than Median Price (HL2)
- RSI of Median Price above Overbought
2.2 Close Long Position
- RSI of Close Price crossover Overbought (Take profit)
or
- RSI of Low Price crossunder upper value of Middle Channel (Stop loss)
2.2 Short Condition
- RSI of Close Price crossover Oversold
- Close Price higher than Median Price (HL2)
- RSI of Median Price below Oversold
2.2 Close Long Position
- RSI of Close Price crossunder Oversold (Take profit)
or
- RSI of High Price crossover lower value of Middle Channel (Stop loss)
3. Idea
- Follow strong momentum of Price to catch Flash Buy/Sell Bar in Crypto Market
- RSI of High Price and Low Price help to regconize setup failure quickly.
- This case study desire to find a balance of Winrate, Profit factor, Sharpe Ratio
RSI by RifeHighly configurable interface that aims to improve usability of RSI by:
Highlighting when RSI is overbought or oversold (red)
Highlighting when RSI crosses midline (50, blue)
Highlighting mid area's background (45-55)
Highlighting overbought and oversold area backgrounds (>70, <30)
Ability to plot midline (in addition to oversold and overbought lines)