EMA BANDS//Trades have been checked periodically on daily charts with normal, basically, you'll set in trades for weeks, months, and years in some cases depending on the time frame and strategy you use, DO NOT TRADE ON MARGIN INTEREST WILL RUIN YOU.
//You can use the strategies on lower timeframes, however, you'll need to be able to execute trades during all market hours if you choose anything less than a daily.
//You MUST stay in your trade until the very end. that means even if you open the trade and you're super in red DON'T DUMP.
//Set stop losses to no more than 50% of your entry price. Less is better but understand that you may be stomped out of a trade that could reverse after a 40-49% pullback.
//I suggest you pull initial capital out after you 2x to lock in your profit.
//You must also have the ability to sell/buy after market hours, you'll make your trades generally one-two hours post-market in most cases.
//The green line gives a simple average of the last 1618 candles. The further price action is from the mean, the more the price will be pulled back. (Ideally)
//Strategy One (Safe/Slow)
//Buy when the closing price is less than the lower bounds of all bands. This does not include the green "Mean" line
//Sell when the closing price is greater than the upper bounds of all bands. Again, this does not include the green "Mean" line
//Strategy Two (Neutral)
//Buy when the closing price is less than the bounds of 3-4 out of the 4 bands.
//Sell when the closing price is greater than the bounds of 3-4 out of the 4 bands.
//This means that you execute trades even if the closing price is still within one band.
//You'll still execute orders even if the closing price is outside of all bands
//Strategy Three (Least Safe/Fast)
//Buy when the closing price is less than the bounds of 2-4 out of the 4 bands.
//Sell when the closing price is greater than the bounds of 2-4 out of the 4 bands.
//This means that you execute trades even if the closing price is still within two bands.
//You'll still execute orders even if the closing price is outside of all bands
//You'll still execute orders even if the closing price is outside of 3 of 4 bands
ابحث في النصوص البرمجية عن "信达股份40周年"
ADX Strategy (original)ADX Strategy
Description:
Generates a long entry signal when the Average Directional Index (ADX) value is greater than the trendlevel and the close is greater than the filter value, and/or generates a short entry signal when the ADX value is greater than the trendlevel and the close is less than the filter value.
The Average Directional Index evaluates the strength of a current trend. The ADX is an oscillator that fluctuates between 0 and 100. Values below 20 indicate a weak trend, values above 40 indicate a strong trend. The direction of the trend is not measured by this indicator.
As usual, the script features signal filtering/generation and a rough estimate of its performance.
Custom Screener with Alerts V2 [QuantNomad]TradingView just recently announced the alert() function that allows you to create dynamic alerts from both strategies and studies.
So I decided to update custom screener I published before. It was based on alerts from orders in strategies, that was the only way to create dynamic alerts in PineScript at that point.
With the alert() function code become cleaner and more readable.
It works for up to 40 symbols at the same time.
You can create an alert from it easily by selecting screener name from the list and then selecting "Any alert() function call".
No additional configuration is required, message and alert on close I set up in the code.
I created as an example a screener that tracks both overbought (RSI > 70) and oversold stocks (RSI < 30).
To create your own screener you have to change only screenerFunc().
By design it should output 2 values:
cond - True/False Boolean variable. Should this instrument be displayed in the screener?
value - Additional numeric value you can display in your screener. I display RSI level for selected stocks for example.
Link to the old screener:
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 good as in historical backtesting.
This post and the script don’t provide any financial advice.
Caco Maia's Double break out A setup created and used by Caco Maia — Brazilian trader with over 40 years experience.
It is based on the simultaneous crossing of the price with 8 and 20 moving averages, filtered by TRIX and Stochastic indicators.
How to use:
Wait for the signal bar to close.
Observe the context of the chart and direction of the trend. For example: do not follow the signal with the moving averages are pointing to the opposite direction of the trade/signal.
Better if used with other indicators to confirm the trade entry.
---------------------
Setup do duplo rompimento do Caco Maia.
Indica o rompimento simultâneo do preço com as médias móveis de 8 e 20, filtrado pelo TRIX e Estocástico.
Como usar:
Espere o fechamento da barra com o sinal.
Observe o contexto do gráfico e a direção da tendência. Por exemplo: não inicie o trade se as média móveis estão apontando para a direção oposta ao sinal.
Melhor se usado com outros indicadores para confirmar a entrada no trade.
Didi's TrendChanges the background according to the DMI trend.
Based on the way the infamous Brazilian trader with over 40 years experience, Master Didi Aguiar reads the Directional Movement Index — one indicators in his setup.
It's read this way:
Only trade on the direction of the trend. Start the trade when accelerating:
Blue = Long trend
Bright Blue = Long trend, accelerating
Purple = Short trend
Bright Purple = Short trend, accelerating
Change from bright to dark color = ADX's bounce, the first signal to exit the trade.
Nor coloured background = no trend.
Use other indicators to confirm your trades.
Not recommended for color blind people :)
-----------------------------------------
Indicador que muda a cor do fundo de acordo com a tendencia.
É baseado na maneira que Didi Aguiar lê o DMI e o ADX .
Lê-se assim:
Fundo azul = Tendencia de compra
Fundo roxo = Tendencia de venda
Cor mais saturada (vibrante) = Tendencia acelerante
Passou de cor mais clara para mais escura = Kick do ADX
Sem coloração de fundo = Sem tendencia
Não é indicado para pessoas que sofrem de daltonismo.
Example of Simple RSI Buy/Sell at a level and hold for 10 daysScript implements strategy:
1 Buy at RSI (10) < 30
2 Sell at RSI (10) > 40 or after 10 days
The strategy is not profitable for long term trading.
All-time high and percentage dropsThis script calculates the ATH of whichever chart you use and plots it in blue
There is also an option to display the following ATH percentages: 90, 80, 70, 60, 50, 40 and 30 in white
`security()` revisited [PineCoders]NOTE
The non-repainting technique in this publication that relies on bar states is now deprecated, as we have identified inconsistencies that undermine its credibility as a universal solution. The outputs that use the technique are still available for reference in this publication. However, we do not endorse its usage. See this publication for more information about the current best practices for requesting HTF data and why they work.
█ OVERVIEW
This script presents a new function to help coders use security() in both repainting and non-repainting modes. We revisit this often misunderstood and misused function, and explain its behavior in different contexts, in the hope of dispelling some of the coder lure surrounding it. The function is incredibly powerful, yet misused, it can become a dangerous WMD and an instrument of deception, for both coders and traders.
We will discuss:
• How to use our new `f_security()` function.
• The behavior of Pine code and security() on the three very different types of bars that make up any chart.
• Why what you see on a chart is a simulation, and should be taken with a grain of salt.
• Why we are presenting a new version of a function handling security() calls.
• Other topics of interest to coders using higher timeframe (HTF) data.
█ WARNING
We have tried to deliver a function that is simple to use and will, in non-repainting mode, produce reliable results for both experienced and novice coders. If you are a novice coder, stick to our recommendations to avoid getting into trouble, and DO NOT change our `f_security()` function when using it. Use `false` as the function's last argument and refrain from using your script at smaller timeframes than the chart's. To call our function to fetch a non-repainting value of close from the 1D timeframe, use:
f_security(_sym, _res, _src, _rep) => security(_sym, _res, _src )
previousDayClose = f_security(syminfo.tickerid, "D", close, false)
If that's all you're interested in, you are done.
If you choose to ignore our recommendation and use the function in repainting mode by changing the `false` in there for `true`, we sincerely hope you read the rest of our ramblings before you do so, to understand the consequences of your choice.
Let's now have a look at what security() is showing you. There is a lot to cover, so buckle up! But before we dig in, one last thing.
What is a chart?
A chart is a graphic representation of events that occur in markets. As any representation, it is not reality, but rather a model of reality. As Scott Page eloquently states in The Model Thinker : "All models are wrong; many are useful". Having in mind that both chart bars and plots on our charts are imperfect and incomplete renderings of what actually occurred in realtime markets puts us coders in a place from where we can better understand the nature of, and the causes underlying the inevitable compromises necessary to build the data series our code uses, and print chart bars.
Traders or coders complaining that charts do not reflect reality act like someone who would complain that the word "dog" is not a real dog. Let's recognize that we are dealing with models here, and try to understand them the best we can. Sure, models can be improved; TradingView is constantly improving the quality of the information displayed on charts, but charts nevertheless remain mere translations. Plots of data fetched through security() being modelized renderings of what occurs at higher timeframes, coders will build more useful and reliable tools for both themselves and traders if they endeavor to perfect their understanding of the abstractions they are working with. We hope this publication helps you in this pursuit.
█ FEATURES
This script's "Inputs" tab has four settings:
• Repaint : Determines whether the functions will use their repainting or non-repainting mode.
Note that the setting will not affect the behavior of the yellow plot, as it always repaints.
• Source : The source fetched by the security() calls.
• Timeframe : The timeframe used for the security() calls. If it is lower than the chart's timeframe, a warning appears.
• Show timeframe reminder : Displays a reminder of the timeframe after the last bar.
█ THE CHART
The chart shows two different pieces of information and we want to discuss other topics in this section, so we will be covering:
A — The type of chart bars we are looking at, indicated by the colored band at the top.
B — The plots resulting of calling security() with the close price in different ways.
C — Points of interest on the chart.
A — Chart bars
The colored band at the top shows the three types of bars that any chart on a live market will print. It is critical for coders to understand the important distinctions between each type of bar:
1 — Gray : Historical bars, which are bars that were already closed when the script was run on them.
2 — Red : Elapsed realtime bars, i.e., realtime bars that have run their course and closed.
The state of script calculations showing on those bars is that of the last time they were made, when the realtime bar closed.
3 — Green : The realtime bar. Only the rightmost bar on the chart can be the realtime bar at any given time, and only when the chart's market is active.
Refer to the Pine User Manual's Execution model page for a more detailed explanation of these types of bars.
B — Plots
The chart shows the result of letting our 5sec chart run for a few minutes with the following settings: "Repaint" = "On" (the default is "Off"), "Source" = `close` and "Timeframe" = 1min. The five lines plotted are the following. They have progressively thinner widths:
1 — Yellow : A normal, repainting security() call.
2 — Silver : Our recommended security() function.
3 — Fuchsia : Our recommended way of achieving the same result as our security() function, for cases when the source used is a function returning a tuple.
4 — White : The method we previously recommended in our MTF Selection Framework , which uses two distinct security() calls.
5 — Black : A lame attempt at fooling traders that MUST be avoided.
All lines except the first one in yellow will vary depending on the "Repaint" setting in the script's inputs. The first plot does not change because, contrary to all other plots, it contains no conditional code to adapt to repainting/no-repainting modes; it is a simple security() call showing its default behavior.
C — Points of interest on the chart
Historical bars do not show actual repainting behavior
To appreciate what a repainting security() call will plot in realtime, one must look at the realtime bar and at elapsed realtime bars, the bars where the top line is green or red on the chart at the top of this page. There you can see how the plots go up and down, following the close value of each successive chart bar making up a single bar of the higher timeframe. You would see the same behavior in "Replay" mode. In the realtime bar, the movement of repainting plots will vary with the source you are fetching: open will not move after a new timeframe opens, low and high will change when a new low or high are found, close will follow the last feed update. If you are fetching a value calculated by a function, it may also change on each update.
Now notice how different the plots are on historical bars. There, the plot shows the close of the previously completed timeframe for the whole duration of the current timeframe, until on its last bar the price updates to the current timeframe's close when it is confirmed (if the timeframe's last bar is missing, the plot will only update on the next timeframe's first bar). That last bar is the only one showing where the plot would end if that timeframe's bars had elapsed in realtime. If one doesn't understand this, one cannot properly visualize how his script will calculate in realtime when using repainting. Additionally, as published scripts typically show charts where the script has only run on historical bars, they are, in fact, misleading traders who will naturally assume the script will behave the same way on realtime bars.
Non-repainting plots are more accurate on historical bars
Now consider this chart, where we are using the same settings as on the chart used to publish this script, except that we have turned "Repainting" off this time:
The yellow line here is our reference, repainting line, so although repainting is turned off, it is still repainting, as expected. Because repainting is now off, however, plots on historical bars show the previous timeframe's close until the first bar of a new timeframe, at which point the plot updates. This correctly reflects the behavior of the script in the realtime bar, where because we are offsetting the series by one, we are always showing the previously calculated—and thus confirmed—higher timeframe value. This means that in realtime, we will only get the previous timeframe's values one bar after the timeframe's last bar has elapsed, at the open of the first bar of a new timeframe. Historical and elapsed realtime bars will not actually show this nuance because they reflect the state of calculations made on their close , but we can see the plot update on that bar nonetheless.
► This more accurate representation on historical bars of what will happen in the realtime bar is one of the two key reasons why using non-repainting data is preferable.
The other is that in realtime, your script will be using more reliable data and behave more consistently.
Misleading plots
Valiant attempts by coders to show non-repainting, higher timeframe data updating earlier than on our chart are futile. If updates occur one bar earlier because coders use the repainting version of the function, then so be it, but they must then also accept that their historical bars are not displaying information that is as accurate. Not informing script users of this is to mislead them. Coders should also be aware that if they choose to use repainting data in realtime, they are sacrificing reliability to speed and may be running a strategy that behaves very differently from the one they backtested, thus invalidating their tests.
When, however, coders make what are supposed to be non-repainting plots plot artificially early on historical bars, as in examples "c4" and "c5" of our script, they would want us to believe they have achieved the miracle of time travel. Our understanding of the current state of science dictates that for now, this is impossible. Using such techniques in scripts is plainly misleading, and public scripts using them will be moderated. We are coding trading tools here—not video games. Elementary ethics prescribe that we should not mislead traders, even if it means not being able to show sexy plots. As the great Feynman said: You should not fool the layman when you're talking as a scientist.
You can readily appreciate the fantasy plot of "c4", the thinnest line in black, by comparing its supposedly non-repainting behavior between historical bars and realtime bars. After updating—by miracle—as early as the wide yellow line that is repainting, it suddenly moves in a more realistic place when the script is running in realtime, in synch with our non-repainting lines. The "c5" version does not plot on the chart, but it displays in the Data Window. It is even worse than "c4" in that it also updates magically early on historical bars, but goes on to evaluate like the repainting yellow line in realtime, except one bar late.
Data Window
The Data Window shows the values of the chart's plots, then the values of both the inside and outside offsets used in our calculations, so you can see them change bar by bar. Notice their differences between historical and elapsed realtime bars, and the realtime bar itself. If you do not know about the Data Window, have a look at this essential tool for Pine coders in the Pine User Manual's page on Debugging . The conditional expressions used to calculate the offsets may seem tortuous but their objective is quite simple. When repainting is on, we use this form, so with no offset on all bars:
security(ticker, i_timeframe, i_source )
// which is equivalent to:
security(ticker, i_timeframe, i_source)
When repainting is off, we use two different and inverted offsets on historical bars and the realtime bar:
// Historical bars:
security(ticker, i_timeframe, i_source )
// Realtime bar (and thus, elapsed realtime bars):
security(ticker, i_timeframe, i_source )
The offsets in the first line show how we prevent repainting on historical bars without the need for the `lookahead` parameter. We use the value of the function call on the chart's previous bar. Since values between the repainting and non-repainting versions only differ on the timeframe's last bar, we can use the previous value so that the update only occurs on the timeframe's first bar, as it will in realtime when not repainting.
In the realtime bar, we use the second call, where the offsets are inverted. This is because if we used the first call in realtime, we would be fetching the value of the repainting function on the previous bar, so the close of the last bar. What we want, instead, is the data from the previous, higher timeframe bar , which has elapsed and is confirmed, and thus will not change throughout realtime bars, except on the first constituent chart bar belonging to a new higher timeframe.
After the offsets, the Data Window shows values for the `barstate.*` variables we use in our calculations.
█ NOTES
Why are we revisiting security() ?
For four reasons:
1 — We were seeing coders misuse our `f_secureSecurity()` function presented in How to avoid repainting when using security() .
Some novice coders were modifying the offset used with the history-referencing operator in the function, making it zero instead of one,
which to our horror, caused look-ahead bias when used with `lookahead = barmerge.lookahead_on`.
We wanted to present a safer function which avoids introducing the dreaded "lookahead" in the scripts of unsuspecting coders.
2 — The popularity of security() in screener-type scripts where coders need to use the full 40 calls allowed per script made us want to propose
a solid method of allowing coders to offer a repainting/no-repainting choice to their script users with only one security() call.
3 — We wanted to explain why some alternatives we see circulating are inadequate and produce misleading behavior.
4 — Our previous publication on security() focused on how to avoid repainting, yet many other considerations worthy of attention are not related to repainting.
Handling tuples
When sending function calls that return tuples with security() , our `f_security()` function will not work because Pine does not allow us to use the history-referencing operator with tuple return values. The solution is to integrate the inside offset to your function's arguments, use it to offset the results the function is returning, and then add the outside offset in a reassignment of the tuple variables, after security() returns its values to the script, as we do in our "c2" example.
Does it repaint?
We're pretty sure Wilder was not asked very often if RSI repainted. Why? Because it wasn't in fashion—and largely unnecessary—to ask that sort of question in the 80's. Many traders back then used daily charts only, and indicator values were calculated at the day's close, so everybody knew what they were getting. Additionally, indicator values were calculated by generally reputable outfits or traders themselves, so data was pretty reliable. Today, almost anybody can write a simple indicator, and the programming languages used to write them are complex enough for some coders lacking the caution, know-how or ethics of the best professional coders, to get in over their heads and produce code that does not work the way they think it does.
As we hope to have clearly demonstrated, traders do have legitimate cause to ask if MTF scripts repaint or not when authors do not specify it in their script's description.
► We recommend that authors always use our `f_security()` with `false` as the last argument to avoid repainting when fetching data dependent on OHLCV information. This is the only way to obtain reliable HTF data. If you want to offer users a choice, make non-repainting mode the default, so that if users choose repainting, it will be their responsibility. Non-repainting security() calls are also the only way for scripts to show historical behavior that matches the script's realtime behavior, so you are not misleading traders. Additionally, non-repainting HTF data is the only way that non-repainting alerts can be configured on MTF scripts, as users of MTF scripts cannot prevent their alerts from repainting by simply configuring them to trigger on the bar's close.
Data feeds
A chart at one timeframe is made up of multiple feeds that mesh seamlessly to form one chart. Historical bars can use one feed, and the realtime bar another, which brokers/exchanges can sometimes update retroactively so that elapsed realtime bars will reappear with very slight modifications when the browser's tab is refreshed. Intraday and daily chart prices also very often originate from different feeds supplied by brokers/exchanges. That is why security() calls at higher timeframes may be using a completely different feed than the chart, and explains why the daily high value, for example, can vary between timeframes. Volume information can also vary considerably between intraday and daily feeds in markets like stocks, because more volume information becomes available at the end of day. It is thus expected behavior—and not a bug—to see data variations between timeframes.
Another point to keep in mind concerning feeds it that when you are using a repainting security() plot in realtime, you will sometimes see discrepancies between its plot and the realtime bars. An artefact revealing these inconsistencies can be seen when security() plots sometimes skip a realtime chart bar during periods of high market activity. This occurs because of races between the chart and the security() feeds, which are being monitored by independent, concurrent processes. A blue arrow on the chart indicates such an occurrence. This is another cause of repainting, where realtime bar-building logic can produce different outcomes on one closing price. It is also another argument supporting our recommendation to use non-repainting data.
Alternatives
There is an alternative to using security() in some conditions. If all you need are OHLC prices of a higher timeframe, you can use a technique like the one Duyck demonstrates in his security free MTF example - JD script. It has the great advantage of displaying actual repainting values on historical bars, which mimic the code's behavior in the realtime bar—or at least on elapsed realtime bars, contrary to a repainting security() plot. It has the disadvantage of using the current chart's TF data feed prices, whereas higher timeframe data feeds may contain different and more reliable prices when they are compiled at the end of the day. In its current state, it also does not allow for a repainting/no-repainting choice.
When `lookahead` is useful
When retrieving non-price data, or in special cases, for experiments, it can be useful to use `lookahead`. One example is our Backtesting on Non-Standard Charts: Caution! script where we are fetching prices of standard chart bars from non-standard charts.
Warning users
Normal use of security() dictates that it only be used at timeframes equal to or higher than the chart's. To prevent users from inadvertently using your script in contexts where it will not produce expected behavior, it is good practice to warn them when their chart is on a higher timeframe than the one in the script's "Timeframe" field. Our `f_tfReminderAndErrorCheck()` function in this script does that. It can also print a reminder of the higher timeframe. It uses one security() call.
Intrabar timeframes
security() is not supported by TradingView when used with timeframes lower than the chart's. While it is still possible to use security() at intrabar timeframes, it then behaves differently. If no care is taken to send a function specifically written to handle the successive intrabars, security() will return the value of the last intrabar in the chart's timeframe, so the last 1H bar in the current 1D bar, if called at "60" from a "D" chart timeframe. If you are an advanced coder, see our FAQ entry on the techniques involved in processing intrabar timeframes. Using intrabar timeframes comes with important limitations, which you must understand and explain to traders if you choose to make scripts using the technique available to others. Special care should also be taken to thoroughly test this type of script. Novice coders should refrain from getting involved in this.
█ TERMINOLOGY
Timeframe
Timeframe , interval and resolution are all being used to name the concept of timeframe. We have, in the past, used "timeframe" and "resolution" more or less interchangeably. Recently, members from the Pine and PineCoders team have decided to settle on "timeframe", so from hereon we will be sticking to that term.
Multi-timeframe (MTF)
Some coders use "multi-timeframe" or "MTF" to name what are in fact "multi-period" calculations, as when they use MAs of progressively longer periods. We consider that a misleading use of "multi-timeframe", which should be reserved for code using calculations actually made from another timeframe's context and using security() , safe for scripts like Duyck's one mentioned earlier, or TradingView's Relative Volume at Time , which use a user-selected timeframe as an anchor to reset calculations. Calculations made at the chart's timeframe by varying the period of MAs or other rolling window calculations should be called "multi-period", and "MTF-anchored" could be used for scripts that reset calculations on timeframe boundaries.
Colophon
Our script was written using the PineCoders Coding Conventions for Pine .
The description was formatted using the techniques explained in the How We Write and Format Script Descriptions PineCoders publication.
Snippets were lifted from our MTF Selection Framework , then massaged to create the `f_tfReminderAndErrorCheck()` function.
█ THANKS
Thanks to apozdnyakov for his help with the innards of security() .
Thanks to bmistiaen for proofreading our description.
Look first. Then leap.
Volume Weighted MACD + RSIVolume Weighted MACD + RSI.
RSI > 60 signals market is bullish
RSI < 40 signals market is bearish
GREEN ZONE - bullish market
GREY ZONE - market reversal potential
RED ZONE - bearish market
BINANCE:BTCUSDT
Movers and ShakersHello traders
For today, I wanted to translate a FXCM/LUA script to Pinescript
Source: fxcodebase.com
This indicator creates a list of available currency pairs,
Displays Pip or the percentage change for the defined time frames.
I added a lookback option to compare the current close value to the lookback candle open value
Possible optimizations
Throwing a few ideas:
1) Upgrading into a screener for multiple assets like this one: www.investing.com
2) Display more information like the high, low, volume
Keep in mind we're allowed to only 40 security calls per script.
That's said, a security call returning a tuple (see below), is counted like 1 security call. Pretty cool huh?
= security(syminfo.tickerid, "D", )
Special thanks
Special thanks to @PineCoders for the f_print function, used in this script.
All the BEST my besties
Dave
StochRSI x RSI x CCI x EMAsWanted to put this out there. Kind of a rough explanation but basically I wanted to build an indicator that takes out emotions and is easy to read. The indicator is basically RSI, stochRSI, CCI, and EMAs into an easy to read package. The traffic lights at the end will tell you if stochRSI/RSI and price action above according to EMA ribbon are in agreement. RSI with a period of 2 also always seemed very useful to me but it was just extremely distracting to look at it. I tried to make many rules in this indicator to find as much confluence between RSI, stochRSI, CCI, and EMAs to help you make better decisions. What is shown on the indicator is not necessarily a buy/sell signal. It should be seen as a way to view strength of price and possible momentum changes.
I find that one of the biggest distractions of indicators is taking your eyes off what is really happening at the chart above. This indicator uses popular and well used tools and helps you to get an easier visual of what is happening.
Purple lines at top and bottom: Short RSI ob/os
Red/orange and blue/green lines at top and bottom: When stochRSI kd and CCI also crosses +/- 100 or 200
Blue background: when stochRSI k > d and short RSI crosses above 30
Red background: when stochRSI k < d and short RSI crosses below 70
Green crosses: StochRSI is above 80 and making higher highs
Red X crosses: StochRSI is below 20 and making lower lows
Red/green fill of stochRSI and purple/blue dots on RSI: When short RSI and stochRSI are both ob/os
Red/green fill of RSI: Green when Long rsi > 50, red when Long rsi < 50
60/40 lines: Possible support/resistance for RSI
Traffic lights
1st light: Long RSI > EMA and stoch RSI k>d or vice versa
2nd light: Price above EMA 1 and 2 or vice versa
3rd light: when lights 1 and 2 are in agreement
Hope you enjoy!
trend Screener downtrendthis is in continuation with - previous trend screener i have published, In this code only downtrend screener is there ,This is type of custom screener I searched and made to screen bulk stocks any one can modify it, other may get help out of it.
you can change or add new symbol in input section.
in my code i have made defined and printed last close price when downtrend was true.
1. downtrend = ema (close,55)< ema (close,144) and ema (close,144)< ema (close,388) and ema (close,388)<ema(close,576) and close<ema(close,388)
if the indicator is printing DOWNTREND=TRUE or UPTREND=TRUE then the corresponding stock is in currently in that trend out of the stocks listed in the code
in one code only 40 (max) stocks can be called.
to add more stocks I copied same code and changed the stocks in the code, now you can screen 80 stocks at a time.
This code runs on each bar and checks if the stocks is in uptrend or down trend.
you can customize this screener according to your requirement.
John Carter Pivot Points
This script is based on John Carter Mastering The Trade book. Pivot calculation is based on the previous day high, low, and close.
What Are the Trading Rules for Pivot Buys on Trending Days?
Sells are reversed.
1. Each day I update the appropriate pivot levels on the charts to reflect the previous day’s action. On Mondays, I also
update the weekly pivots, and on the first trading day of a new month, I update the monthly pivots.
2. The first pivot play is done in conjunction with the gap, if there is one. If there is a gap down, then I buy a decline into
the closest pivot level. If there isn’t a playable gap (more than 10 YM points or 1 ES point), then I will wait until
9:45 a.m. eastern to initiate the first play.
3. If the volume on the five-minute ES chart is more than 25,000 contracts, then I’ll wait for the markets to penetrate a
pivot level and move up at least a quarter of the way to the next pivot level. Once this happens, I will then set up a
bid to buy the first retracement back to the violated pivot level.
4. I enter my trades with limit orders only. I place orders “just in front of” the pivot. For the YM, I use 3 points; for the
ES, 0.25 point; for the NQ, 0.50 point; for the TF, 0.20 point; and for individual stocks, 5 cents. For example, if I’m
trading the YM and the pivot level is 10,000, then I would buy a decline to 10,003 and short a rally to 9997
.Sometimes the pivot will be an odd number, such as 1117.38 on the ES. In this case, I always round in the direction of
the trade. So, if I’m bidding for a long, I will round 1117.38 to 1117.50, and my bid will be 1117.75. If I’m offering a
short, I will round 1117.38 down to 1117.25 and place my offer at 1117.00. My stops and targets, then, would be “just
in front of” these appropriate long and short levels.
5. Once filled, I place an order to close the first half at the next pivot level and the second half at the pivot level after
that, using the same “just in front of” parameters.
6. I place a stop at 20 points for the YM, 2 points for the ES, 4 points for the NQ, and 1.50 points for the Russell. For
stocks, I will use a stop based roughly on the price of the stock. If the stock is under $10 a share, I will use a stop of
20 cents. If it is between $10 and $20, I will use a stop of 30 cents; if it is between $20 and $30, I will use a stop of
40 cents, and so on, adding another 10 cents for each $10 increment in price. (A $75 stock would have an 80-cent
stop, for example.)
7. If the first target is hit, I will then move up the stop to my entry-level pivot, minus the “just in front of” fractions
discussed in rule 3. For example, if I get in a YM long at 10,003 and the pivot is at 10,000, then my new stop would
be 9997 once the first target is hit.
8. If I am in a trade at the market close and neither my stop nor my target has been hit, I will close out my position “at the
market” at 4:10 p.m. eastern for futures, and at 3:58 p.m. eastern for stocks.
9. I don’t initiate any new positions after 3:30 p.m. eastern, but I will manage existing positions into the close.
10. The markets rarely have a sustained move above R3 or below S3. If I trade to those levels, I will always fade the
move.
11. After two losers in a row, I’m done with pivots for the day.
What Are the Trading Rules for Pivot Buys on Choppy Days?
Once again, sells are the same, just reversed. The rules for choppy days are identical except for the targets. On choppy days, I
just focus on the YM and the ES. My first target is mechanical: 10 points for the YM and 1 point for the ES on half of my
position. Once this is hit, I will trail up my stop in the same way I would for a trending trade. The second target becomes the
“just in front of” level for the actual next pivot level
Koalafied RSI StateConcept taken from RSI : The Complete Guide by John Hayden
2:1 momentum is associated with RSI values of 66.67 and 33.33 respectfully. In an Uptrend an RSI value of 40 should not be broken and in a downtrend a RSI value of 60 should not be exceeded. If so, then there is buying/selling pressure in the opposite direction (but not necessarily enough for a trend reversal). Alternatively it may show the presence of HTF traders. 4:1 momentum (RSI values of 80/20) can be associated with extreme market conditions, typically thought of as being Overbought or Oversold.
This script shows three market states based on RSI
1. Trend State - Triggered by RSI breaking a 2:1 momentum level
2. Trend Momentum - When RSI is above/below a 2:1 momentum level
3. Overbought/Oversold - When RSI is above a 4:1 momentum level
Strategy- Double Decker RSIThis Strategy was LIVE coded during a webinar conducted by the author on 16-Jan-21 titled Backtesting in Tradingview. The system is named " Double Decker RSI ".
The rules of this strategy are:
LONG - RSI(5)>70 and RSI(14)>50 -- EXIT: RSI(5)<55
SHORT - RSI(5)<40 and RSI(14)<50 -- EXIT: RSI(5)>45
Instrument - BANKNIFTY - 1 HR Chart
The code is open source for you to edit and make changes as needed. For details on the strategy and webinar, you can refer to the website in signature of this strategy.
Recession IndicatorThis script attempts to predict recessions four quarters ahead.
According to the New York Fed, "The yield curve—specifically, the spread between the interest rates on the ten-year Treasury
note and the three-month Treasury bill—is a valuable forecasting tool. It is simple to use
and significantly outperforms other financial and macroeconomic indicators in predicting
recessions two to six quarters ahead."
The paper offers Estimated Recession Probabilities Using the Yield Curve Spread:
Four Quarters Ahead
Recession Probability Value of Spread
(Percent) (Percentage Points)
5 1.21
10 0.76
15 0.46
20 0.22
25 0.02
30 -0.17
40 -0.50
50 -0.82
60 -1.13
70 -1.46
80 -1.85
90 -2.40
"Note: The yield curve spread is defined as the spread between the
interest rates on the ten-year Treasury note and the three-month
Treasury bill."
You can choose at which Recession Probability (percent) you want to display the signal (default value is 25%), as well as choose if you want to only display the signal at inversion (default) or at all times when the yield curve is inverted.
To use, just select your current timeframe from the menu.
Includes an option for repainting -- default value is true, meaning the script will repaint the current bar.
False = Not Repainting = Value for the current bar is not repainted, but all past values are offset by 1 bar.
True = Repainting = Value for the current bar is repainted, but all past values are correct and not offset by 1 bar.
In both cases, all of the historical values are correct, it is just a matter of whether you prefer the current bar to be realistically painted and the historical bars offset by 1, or the current bar to be repainted and the historical data to match their respective price bars.
As explained by TradingView,`f_security()` is for coders who want to offer their users a repainting/no-repainting version of the HTF data.
Everything RSIThis indicator includes:
RSI Candles set to the default 14 length (un check Borders in the Style tab to see the candlesticks better)
I like using the wicks as an early warning for a possible trend change, which is generally in the opposite direction of the wicks.
It's also easier for me to draw trend lines using the RSI Candles vs the rsi plot line.
40 ema of the RSI Candles
2nd RSI set to the 20 length , which plots just inside the wicks of the RSI Candles. This RSI also highlights Oversold and Overbought levels.
I sometimes leave the RSI Candle Borders checked and use the 20 RSI plot with the wicks of the RSI Candles
Signals to look for Short or Long opportunities , which use the 5 sma of the RSI Candles crossing under the overbought and over the
oversold levels. If you'd like to plot the 5 sma, remove the // at the beginning of the code on line 72.
3nd RSI set to the default 14 length which can be set to a different timeframe as the current chart. Default setting is the 1h.
This RSI plots a + at the top of the indicator when it's above the 50 level and an x at the bottom of the indicator when it's below the 50 level.
For me, this is just a visual aid when I'm scalping on lower timeframes.
If the 1h RSI is above the 50 level, I focus on long scalps. If the 1h RSI is below the 50 level, I focus on short scalps.
RSI Cloud which is formed by filling in the area between the 14 ema of both the 7 RSI and 28 RSI.
I used part of @FnM_Capital 's Trend-Sniper script for my RSI Candles. Thank you! You're extremely talented and deserve all of the credit for your work.
I'd also like to thank @SeanNance for answering all of my random coding questions!!!
I've added the indicator to the example twice to show a couple of the ways I view the RSI's.
The top indicator shows the RSI Candle Borders "un checked" and without the 2nd RSI plot.
The bottom indicator shows RSI Candle Borders "checked", using 2nd RSI plot with the RSI Candle Wicks.
trend Screener List1This is type of custom screener I searched and made to screen bulk stocks any one can modify it, other may get help out of it.
in my code i have made defined
1. uptrend= ema(close,55)> ema(close,144) and ema(close,144)> ema(close,388) and ema(close,388)> ema(close,576) and close>ema(close,388)
2. downtrend = ema(close,55)< ema(close,144) and ema(close,144)< ema(close,388) and ema(close,388)
MACD Strategy with trailing ATR stopThis is a trend based strategy that uses EMA and SMA intersection for determining the direction of the trend and MACD for the entry signal. At the same time, the strategy uses ATR, which is working as a trailing stop.
The strategy entry will work when the Trend ribbon will turn green and MACD line will crossover the signal line. This strategy also takes into account the pyramiding and allows to enter the second time if the signal will repeat itself.
There are 3 exit points. The first 10% of the position will be closed when the price will increase by 1%. The second portion of 50% will be closed when the price reaches 5% Take profit target. The remaining 40 % of the position will wait for the exit signal which will occur when the price closes below the ATR line.
The strategy is using a fixed amount in dollars, each time the entry occurs the strategy will enter with 100$ in the order.
The strategy can be applied to other crypto assets. However, they will require input changes.
Best of luck with your trading.
RSI 6/14/24 by HC3 timeframes of RSIs: 6, 14 and 24 days. This is the extended version of the "standard" RSI script.
How to use it:
It has 3 upper bands and 3 lower bands. The 6-day RSI (orange line) corresponds to 80 and 20 bands, which means if 6-day RSI is over 80, it is an indicator of overbought for short term. Similarly, 14-day RSI use 70 and 30 bands and 24-day RSI use 60 and 40 bands. But these are not the "magic numbers". For different investments, they may have different thresholds. You can change it in the setting.
We all know when RSI is high, it may be an indicator to sell the investments we are holding. However, if 6-day RSI > 80, but 14-day RSI <70, it may not be the good time to sell it right now. We may watch it for a few days. But if all 3 RSIs are above the corresponding upper bands, it may be the time to sell it.
When the orange line down crosses the purple and blue lines, the price is dropping down. On the contrary, when the orange line up crosses the purple and blue lines, the price is probably up.
Let me know if you have any question.
Holly
2020.12.05
BuyHigh-SellLow StrategyYeah. You read it right. It's not a mistake. It is buy high and sell low strategy.
Main entry condition is to buy when price hits 40 day Donchian channel top. This is combined with my other regular filters which are aligned moving average and new high/low filter and yearly high/low filter.
Exit condition can be based on two things:
Donchian channel : Set appropriate DonchianExitLength. Lower line of donchian channel acts as trailing stop.
ATR Based trailing stop : Select appropriate ATR multiplier and length.
What a surprise!! You can buy high, sell low and still make money.
Session Range and Breakout Summary
This script presents the session range and post session movements relative to that range of all the majors and crosses on a single page. You can also set it to a daily range and weekly range (beta). It will even show you the pip value of the range. I made the indicator to easily stay on top of market movements at london open relative to the Asia session range. Its very easy to see which entire currency group is breaking its asia range WHIST ITS HAPPENING. Focus on NZD in the examples as it was the market lead today - I was able to get some of it when I saw the entire group breaking its range
Showing all the majors and crosses relative to the Asia range (00:00 - 07:00 GMT)
Active 'show on chart' to verify the indicator is measuring the range correctly. Compare below to the NZD box above - you can see how NZD had control of the market this morning and all NZD pairs broke out of their ranges.
'PIP MODE' - active pip mode to see what the pip range was of the session
Notes
The information is presented RELATIVELY - this means that all the ranges and movements are scaled to be the same size. You are therefore seeing the movements relative to their ranges. When you see a breakout it relative to the size of the range - for example, if GBPJPY had a range of 50pips and breaks out of the range by 100 pip and GBPEUR has a range of 20 pips and breaks out by 40 pips they have both broken out double the range and will be displayed as the same distance.
The indicator will show the movements whilst the range is forming. I did this so I can see what the groups are doing before Europe open and be ready - such as lingering at the top end of its INCOMPLETE asia range. Be aware through that if the lines are flat at the top of the range WHILST THE RANGE IS STILL FORMING this does not mean price was flat, it means that price was pushing up and growing the range. (Price can't breakout until the range has formed at the end of the session)
The currency pairs are organised to show the strength or weakness of the selected group - this means that the base currency is always the select group. This is to present the data with currencies moving in the same direction rather than some reversed but meaning the same in relation to currency strength. In the NZD example:
NZDAUD (not AUDNZD )
NZDCAD
NZDCHF
NZDEUR (not EURNZD )
NZDGBP (not GBPNZD )
NZDJPY
NZDUSD
I hope its useful. This is the most powerful indicator I've managed to write yet. It was difficult to make the code efficient enough to fit into the pinescript limit and still do everything.
HhLl-OscilatorSimple oscillator which checks how many highs and how many lows the price is making. Parameters are as explained below:
lookback - Checks how many highs and lows it is making in these many bars. Sum of all highs and lows are taken for plotting.
periods - Initial period to check high and lows
multiples - Number of multiples on initial period for which highs and lows are checked
colorCandles - CandleColor based on the oscillator
If periods is 20 and multiples is 5 and loopback is 10
Indicator checks for last 10 bars how many highs/lows are made for 20, 40, 60, 80 and 100 periods. Sum of all highs and lows are plotted on the oscillator overlay