Using `varip` variables [PineCoders]█ OVERVIEW
The new varip keyword in Pine can be used to declare variables that escape the rollback process, which is explained in the Pine User Manual's page on the execution model . This publication explains how Pine coders can use variables declared with varip to implement logic that was impossible to code in Pine before, such as timing events during the realtime bar, or keeping track of sequences of events that occur during successive realtime updates. We present code that allows you to calculate for how much time a given condition is true during a realtime bar, and show how this can be used to generate alerts.
█ WARNINGS
1. varip is an advanced feature which should only be used by coders already familiar with Pine's execution model and bar states .
2. Because varip only affects the behavior of your code in the realtime bar, it follows that backtest results on strategies built using logic based on varip will be meaningless,
as varip behavior cannot be simulated on historical bars. This also entails that plots on historical bars will not be able to reproduce the script's behavior in realtime.
3. Authors publishing scripts that behave differently in realtime and on historical bars should imperatively explain this to traders.
█ CONCEPTS
Escaping the rollback process
Whereas scripts only execute once at the close of historical bars, when a script is running in realtime, it executes every time the chart's feed detects a price or volume update. At every realtime update, Pine's runtime normally resets the values of a script's variables to their last committed value, i.e., the value they held when the previous bar closed. This is generally handy, as each realtime script execution starts from a known state, which simplifies script logic.
Sometimes, however, script logic requires code to be able to save states between different executions in the realtime bar. Declaring variables with varip now makes that possible. The "ip" in varip stands for "intrabar persist".
Let's look at the following code, which does not use varip :
//@version=4
study("")
int updateNo = na
if barstate.isnew
updateNo := 1
else
updateNo := updateNo + 1
plot(updateNo, style = plot.style_circles)
On historical bars, barstate.isnew is always true, so the plot shows a value of "1". On realtime bars, barstate.isnew is only true when the script first executes on the bar's opening. The plot will then briefly display "1" until subsequent executions occur. On the next executions during the realtime bar, the second branch of the if statement is executed because barstate.isnew is no longer true. Since `updateNo` is initialized to `na` at each execution, the `updateNo + 1` expression yields `na`, so nothing is plotted on further realtime executions of the script.
If we now use varip to declare the `updateNo` variable, the script behaves very differently:
//@version=4
study("")
varip int updateNo = na
if barstate.isnew
updateNo := 1
else
updateNo := updateNo + 1
plot(updateNo, style = plot.style_circles)
The difference now is that `updateNo` tracks the number of realtime updates that occur on each realtime bar. This can happen because the varip declaration allows the value of `updateNo` to be preserved between realtime updates; it is no longer rolled back at each realtime execution of the script. The test on barstate.isnew allows us to reset the update count when a new realtime bar comes in.
█ OUR SCRIPT
Let's move on to our script. It has three parts:
— Part 1 demonstrates how to generate alerts on timed conditions.
— Part 2 calculates the average of realtime update prices using a varip array.
— Part 3 presents a function to calculate the up/down/neutral volume by looking at price and volume variations between realtime bar updates.
Something we could not do in Pine before varip was to time the duration for which a condition is continuously true in the realtime bar. This was not possible because we could not save the beginning time of the first occurrence of the true condition.
One use case for this is a strategy where the system modeler wants to exit before the end of the realtime bar, but only if the exit condition occurs for a specific amount of time. One can thus design a strategy running on a 1H timeframe but able to exit if the exit condition persists for 15 minutes, for example. REMINDER: Using such logic in strategies will make backtesting their complete logic impossible, and backtest results useless, as historical behavior will not match the strategy's behavior in realtime, just as using `calc_on_every_tick = true` will do. Using `calc_on_every_tick = true` is necessary, by the way, when using varip in a strategy, as you want the strategy to run like a study in realtime, i.e., executing on each price or volume update.
Our script presents an `f_secondsSince(_cond, _resetCond)` function to calculate the time for which a condition is continuously true during, or even across multiple realtime bars. It only works in realtime. The abundant comments in the script hopefully provide enough information to understand the details of what it's doing. If you have questions, feel free to ask in the Comments section.
Features
The script's inputs allow you to:
• Specify the number of seconds the tested conditions must last before an alert is triggered (the default is 20 seconds).
• Determine if you want the duration to reset on new realtime bars.
• Require the direction of alerts (up or down) to alternate, which minimizes the number of alerts the script generates.
The inputs showcase the new `tooltip` parameter, which allows additional information to be displayed for each input by hovering over the "i" icon next to it.
The script only displays useful information on realtime bars. This information includes:
• The MA against which the current price is compared to determine the bull or bear conditions.
• A dash which prints on the chart when the bull or bear condition is true.
• An up or down triangle that prints when an alert is generated. The triangle will only appear on the update where the alert is triggered,
and unless that happens to be on the last execution of the realtime bar, it will not persist on the chart.
• The log of all triggered alerts to the right of the realtime bar.
• A gray square on top of the elapsed realtime bars where one or more alerts were generated. The square's tooltip displays the alert log for that bar.
• A yellow dot corresponding to the average price of all realtime bar updates, which is calculated using a varip array in "Part 2" of the script.
• Various key values in the Data Window for each parts of the script.
Note that the directional volume information calculated in Part 3 of the script is not plotted on the chart—only in the Data Window.
Using the script
You can try running the script on an open market with a 30sec timeframe. Because the default settings reset the duration on new realtime bars and require a 20 second delay, a reasonable amount of alerts will trigger.
Creating an alert on the script
You can create a script alert on the script. Keep in mind that when you create an alert from this script, the duration calculated by the instance of the script running the alert will not necessarily match that of the instance running on your chart, as both started their calculations at different times. Note that we use alert.freq_all in our alert() calls, so that alerts will trigger on all instances where the associated condition is met. If your alert is being paused because it reaches the maximum of 15 triggers in 3 minutes, you can configure the script's inputs so that up/down alerts must alternate. Also keep in mind that alerts run a distinct instance of your script on different servers, so discrepancies between the behavior of scripts running on charts and alerts can occur, especially if they trigger very often.
Challenges
Events detected in realtime using variables declared with varip can be transient and not leave visible traces at the close of the realtime bar, as is the case with our script, which can trigger multiple alerts during the same realtime bar, when the script's inputs allow for this. In such cases, elapsed realtime bars will be of no use in detecting past realtime bar events unless dedicated code is used to save traces of events, as we do with our alert log in this script, which we display as a tooltip on elapsed realtime bars.
█ NOTES
Realtime updates
We have no control over when realtime updates occur. A realtime bar can open, and then no realtime updates can occur until the open of the next realtime bar. The time between updates can vary considerably.
Past values
There is no mechanism to refer to past values of a varip variable across realtime executions in the same bar. Using the history-referencing operator will, as usual, return the variable's committed value on previous bars. If you want to preserve past values of a varip variable, they must be saved in other variables or in an array .
Resetting variables
Because varip variables not only preserve their values across realtime updates, but also across bars, you will typically need to plan conditions that will at some point reset their values to a known state. Testing on barstate.isnew , as we do, is a good way to achieve that.
Repainting
The fact that a script uses varip does not make it necessarily repainting. A script could conceivably use varip to calculate values saved when the realtime bar closes, and then use confirmed values of those calculations from the previous bar to trigger alerts or display plots, avoiding repaint.
timenow resolution
Although the variable is expressed in milliseconds it has an actual resolution of seconds, so it only increments in multiples of 1000 milliseconds.
Warn script users
When using varip to implement logic that cannot be replicated on historical bars, it's really important to explain this to traders in published script descriptions, even if you publish open-source. Remember that most TradingViewers do not know Pine.
New Pine features used in this script
This script uses three new Pine features:
• varip
• The `tooltip` parameter in input() .
• The new += assignment operator. See these also: -= , *= , /= and %= .
Example scripts
These are other scripts by PineCoders that use varip :
• Tick Delta Volume , by RicadoSantos .
• Tick Chart and Volume Info from Lower Time Frames by LonesomeTheBlue .
Thanks
Thanks to the PineCoders who helped improve this publication—especially to bmistiaen .
Look first. Then leap.
Cerca negli script per "美国要强买强卖,要求中国购买指定商品,四年还必须买够15万亿?"
Real Trading Hours - Vertical Lines - Mark RTH for Futures 12/Jan/2021 09:15 AM AUTHOR: Brandon Gum
--
Updated script to plot vertical lines for open and close of futures.
Not sure why the 8:30 and 15:00 times had to be used over 9:30 or 16:00
Only plots for products of type futures. - Could be easily expanded to work with cryptos as well if you wanted.
======================
(FINNIFTY) NIFTY Financial Service FreeFloat VolumeThis indicator is build keeping in mind how the Indian Market is formed - the free-float market capitalization concept
1) Considered new FINNIFTY - Nifty Financial Service index stocks according to NSE
2) Multiplied each stock Volume by its Weightage given in NSE Site every month End - means giving importance to volume by its weightage
3) Green Candle - Considered as +Ve Volume , Red Candle - Considered as -Ve Volume
4) Diff of +Ve Volume & -Ve Volume give clear picture market will go up or down
Note:- This Indicator work only for 15 Min time frame
Gives better results good Risk Reward used near Supp/Resistance
Combine with FINNIFTY Advance-Decline Ratio give confidence on the move
Eg:-
Bullish Scenario
Near Support, Volume Turned -Ve to +Ve, Adv /Dec of Fin Nifty >11/15
or combine any candle patterns( Pin Bar ) at Sup/Res or combine with Chart Pattern(Triangle/ Rectangle )
Bearish Scenario - Vice Versa to above
RSI of VWAP [SHORT selling]This is SHORT selling version of RSIofVWAP strategy. Settings and Logic are totally different from LONG side version , hence I am publishing it as a new strategy.
Settings
============
VWAP of RSI Length 15
Slow EMA Length 200
Short entry level 25
Cover short level 70
stop loss 5
SHORT Entry
============
condition1 : When RSIofVWAP crossdown below 25 and VWAP is below ema200
condition2: When weekly RSIofVWAP crossdown 70 and VWAP (note : session vwap , not weekly vwap) is below ema200
condition3: Use VIX value , if you want to short when the price is above ema200
vwap RSI crossing down 70 and VIX RSI is cossing up 70
enter short ... This is like falling knife :-)
I need to add the code -- later
if any of above condition is TRUE , SHORT entry will be taken
Take Profit
============
When close less than short entry price and RSIofVWAp is crossing up 25 , take profit ...close 1/3 of the position
Exit
============
When RSIofVWAP crossing up 70 level
Stop Loss
============
Stop Loss is set to 5%
Note:
1. When strategy is in SHORT position , background and bar color changes to gray
2. When strategy is already in short position , possible entries are shown in yellow background
3. RSI Length 15 is working most of the equities on hourly chart. ( RSI length 9 and 14 also works good , but not for all ... You may want to try which setting works for your symbol)
4. weekly VWAP (blue color) is also plotted by default ... you can disable it if you dont want to see it. But there is advantage keeping it on the chart , you can notice whenever weekly VWAP crosses above 70 line , trend is UP ... if you have LONG position you can hold on it ... Hurray :-)
Warning
============
For the educational purposes only
TM_INTRADAY_LEVELTM_INTRADAY_LEVEL tool shows overall market price structure of market for Intraday Position. It can be used with TM_GANN_LEVELS tool
Terminology Use ==> Price Line, Price Level name and Price level
Timeframe ==> Use proper Signal with swing trend on 15 Min. or lower time frame (Best if Use with 15 Minutes chart or 5 Min. chart).
What to Identify ==> Overall market price structure for the Intraday Period
How to Use ==>
There are Many Line in price level chart
Green/red with Solid for important area of support or resistance
Other dotted lines are for retracement or extension of prices.
Important Structure==> Price behaviors on all lines of possible support and resistance
Use market structure, chart pattern, trend lines for more support..
Entry ==>
Let’s wait the proper area of support or resistance (Area of Value in case of trend pattern use)
Exit ==>
SL of swing high/low out of market structure with proper risk management and target with proper Risk/ Reward Ratio
Use the Below Contacts to Access this Indicator
TM_INTRADAY_TOOLTM_INTRADAY_TOOL helps to identify following Things for Intraday Position on 1-3-5-10-15-30-60 Minutes and Daily timeframe along with Buy or sell signal.
1. Market Trend (Different Timeframe)
2. Price Direction
3. Area of Support & Resistance
4. Price Momentum
5. Volume Based Breakouts
Terminology Use ==> Black from Bottom for - Buy, Red from Top for - Sale Signal, and Numbers are to show time frame indication there is presence of buyer or seller like 1 for buy signal on 1 minute time frame etc.
Display and Interpretation ==> Buy Sale Signal in Digit with 1-3-5-10-15-30-60-D for different time frames.
any value signal ending with * shows breakout of support/ resistance and value signal starting with * shows entry to a momentum zone.
Green Mark with Triangle Up shows trend of that timeframe in positive and value shows upside possible direction on that timeframe vice versa for red signal with down triangle
T1 stand for trend change in 1 Minute timeframe and T3 stand for trend change in 3 Minute timeframe
Use market structure, chart pattern, trend lines for more support..
Time frame ==> Use proper Signal with 1 minute, 3 minute time frame
What to Identify ==> Overall Trend for the intraday
How to Use ==>
See how and order buildup is seen and current order position. Also area for volatility and expected movement in price direction
Note: - Use market structure, chart pattern, trend lines and price action parameter for more confirmation.
Entry ==>
Let’s wait the proper area of support or resistance ( Area of Value in case of trend pattern use)
Exit ==>
SL of swing high/low out of market structure with proper risk management and target with proper Risk/ Reward Ratio
Use the Below Contacts to Access this Indicator
Multi RSI based on Timeframe
This code has been inherited from " 3 RSI Multi Timeframe Inception" by pranjalchaubey and enhanced/modified to include 2 more RSI indicators. The RSIs considered are 15 minutes, 1 Hour, Daily, Weekly and Monthly displayed based on chart time frame.
The number of RSI indicators displayed is context dependant or time frame based, as below,
15min, hourly and daily RSIs are displayed on 15 mins or hourly charts, often used for Intraday trading,
Daily, Weekly and Monthly RSIs are displayed for Daily charts / Swing trading and
Weekly and Monthly RSIs for Weekly time frame / Positional trades.
888 BOT #alerts█ 888 BOT #alerts (open source)
This is an Expert Advisor 'EA' or Automated trading script for ‘longs’ and ‘shorts’, which uses only a Take Profit or, in the worst case, a Stop Loss to close the trade.
It's a much improved version of the previous ‘Repanocha’. It doesn`t use 'Trailing Stop' or 'security ()' functions (although using a security function doesn`t mean that the script repaints) and all signals are confirmed, therefore the script doesn`t repaint in alert mode and is accurate in backtest mode.
Apart from the previous indicators, some more and other functions have been added for Stop-Loss, re-entry and leverage.
It uses 8 indicators, (many of you already know what they are, but in case there is someone new), these are the following:
1. Jurik Moving Average
It's a moving average created by Mark Jurik for professionals which eliminates the 'lag' or delay of the signal. It's better than other moving averages like EMA , DEMA , AMA or T3.
There are two ways to decrease noise using JMA . Increasing the 'LENGTH' parameter will cause JMA to move more slowly and therefore reduce noise at the expense of adding 'lag'
The 'JMA LENGTH', 'PHASE' and 'POWER' parameters offer a way to select the optimal balance between 'lag' and over boost.
Green: Bullish , Red: Bearish .
2. Range filter
Created by Donovan Wall, its function is to filter or eliminate noise and to better determine the price trend in the short term.
First, a uniform average price range 'SAMPLING PERIOD' is calculated for the filter base and multiplied by a specific quantity 'RANGE MULTIPLIER'.
The filter is then calculated by adjusting price movements that do not exceed the specified range.
Finally, the target ranges are plotted to show the prices that will trigger the filter movement.
Green: Bullish , Red: Bearish .
3. Average Directional Index ( ADX Classic) and ( ADX Masanakamura)
It's an indicator designed by Welles Wilder to measure the strength and direction of the market trend. The price movement is strong when the ADX has a positive slope and is above a certain minimum level 'ADX THRESHOLD' and for a given period 'ADX LENGTH'.
The green color of the bars indicates that the trend is bullish and that the ADX is above the level established by the threshold.
The red color of the bars indicates that the trend is down and that the ADX is above the threshold level.
The orange color of the bars indicates that the price is not strong and will surely lateralize.
You can choose between the classic option and the one created by a certain 'Masanakamura'. The main difference between the two is that in the first it uses RMA () and in the second SMA () in its calculation.
4. Parabolic SAR
This indicator, also created by Welles Wilder, places points that help define a trend. The Parabolic SAR can follow the price above or below, the peculiarity that it offers is that when the price touches the indicator, it jumps to the other side of the price (if the Parabolic SAR was below the price it jumps up and vice versa) to a distance predetermined by the indicator. At this time the indicator continues to follow the price, reducing the distance with each candle until it is finally touched again by the price and the process starts again. This procedure explains the name of the indicator: the Parabolic SAR follows the price generating a characteristic parabolic shape, when the price touches it, stops and turns ( SAR is the acronym for 'stop and reverse'), giving rise to a new cycle. When the points are below the price, the trend is up, while the points above the price indicate a downward trend.
5. RSI with Volume
This indicator was created by LazyBear from the popular RSI .
The RSI is an oscillator-type indicator used in technical analysis and also created by Welles Wilder that shows the strength of the price by comparing individual movements up or down in successive closing prices.
LazyBear added a volume parameter that makes it more accurate to the market movement.
A good way to use RSI is by considering the 50 'RSI CENTER LINE' centerline. When the oscillator is above, the trend is bullish and when it is below, the trend is bearish .
6. Moving Average Convergence Divergence ( MACD ) and ( MAC-Z )
It was created by Gerald Appel. Subsequently, the histogram was added to anticipate the crossing of MA. Broadly speaking, we can say that the MACD is an oscillator consisting of two moving averages that rotate around the zero line. The MACD line is the difference between a short moving average 'MACD FAST MA LENGTH' and a long moving average 'MACD SLOW MA LENGTH'. It's an indicator that allows us to have a reference on the trend of the asset on which it is operating, thus generating market entry and exit signals.
We can talk about a bull market when the MACD histogram is above the zero line, along with the signal line, while we are talking about a bear market when the MACD histogram is below the zero line.
There is the option of using the MAC-Z indicator created by LazyBear, which according to its author is more effective, by using the parameter VWAP ( volume weighted average price ) 'Z-VWAP LENGTH' together with a standard deviation 'STDEV LENGTH' in its calculation.
7. Volume Condition
Volume indicates the number of participants in this war between bulls and bears, the more volume the more likely the price will move in favor of the trend. A low trading volume indicates a lower number of participants and interest in the instrument in question. Low volumes may reveal weakness behind a price movement.
With this condition, those signals whose volume is less than the volume SMA for a period 'SMA VOLUME LENGTH' multiplied by a factor 'VOLUME FACTOR' are filtered. In addition, it determines the leverage used, the more volume , the more participants, the more probability that the price will move in our favor, that is, we can use more leverage. The leverage in this script is determined by how many times the volume is above the SMA line.
The maximum leverage is 8.
8. Bollinger Bands
This indicator was created by John Bollinger and consists of three bands that are drawn superimposed on the price evolution graph.
The central band is a moving average, normally a simple moving average calculated with 20 periods is used. ('BB LENGTH' Number of periods of the moving average)
The upper band is calculated by adding the value of the simple moving average X times the standard deviation of the moving average. ('BB MULTIPLIER' Number of times the standard deviation of the moving average)
The lower band is calculated by subtracting the simple moving average X times the standard deviation of the moving average.
the band between the upper and lower bands contains, statistically, almost 90% of the possible price variations, which means that any movement of the price outside the bands has special relevance.
In practical terms, Bollinger bands behave as if they were an elastic band so that, if the price touches them, it has a high probability of bouncing.
Sometimes, after the entry order is filled, the price is returned to the opposite side. If price touch the Bollinger band in the same previous conditions, another order is filled in the same direction of the position to improve the average entry price, (% MINIMUM BETTER PRICE ': Minimum price for the re-entry to be executed and that is better than the price of the previous position in a given %) in this way we give the trade a chance that the Take Profit is executed before. The downside is that the position is doubled in size. 'ACTIVATE DIVIDE TP': Divide the size of the TP in half. More probability of the trade closing but less profit.
█ STOP LOSS and RISK MANAGEMENT.
A good risk management is what can make your equity go up or be liquidated.
The % risk is the percentage of our capital that we are willing to lose by operation. This is recommended to be between 1-5%.
% Risk: (% Stop Loss x % Equity per trade x Leverage) / 100
First the strategy is calculated with Stop Loss, then the risk per operation is determined and from there, the amount per operation is calculated and not vice versa.
In this script you can use a normal Stop Loss or one according to the ATR. Also activate the option to trigger it earlier if the risk percentage is reached. '% RISK ALLOWED' wich is calculated according with: '%EQUITY ON EACH ENTRY'. Only works with Stop Loss on 'NORMAL' or 'BOTH' mode.
'STOP LOSS CONFIRMED': The Stop Loss is only activated if the closing of the previous bar is in the loss limit condition. It's useful to prevent the SL from triggering when they do a ‘pump’ to sweep Stops and then return the price to the previous state.
█ ALERTS
There is an alert for each leverage, therefore a maximum of 8 alerts can be set for 'long' and 8 for 'short', plus an alert to close the trade with Take Profit or Stop Loss in market mode. You can also place Take Profit limit and Stop Loss limit orders a few seconds after filling the position entry order.
- 'MAXIMUM LEVERAGE': It is the maximum allowed multiplier of the % quantity entered on each entry for 1X according to the volume condition.
- 'ADVANCE ALERTS': There is always a time delay from when the alert is triggered until it reaches the exchange and can be between 1-15 seconds. With this parameter, you can advance the alert by the necessary seconds to activate it earlier. In this way it can be synchronized with the exchange so that the execution time of the entry order to the position coincides with the opening of the bar.
The settings are for Bitcoin at Binance Futures (BTC: USDTPERP) in 15 minutes.
For other pairs and other timeframes, the settings have to be adjusted again. And within a month, the settings will be different because we all know the market and the trend are changing.
Peter Lynch ValueIn this time where every financial commenters are talking about strong sectorial rotation from growth to value stocks I decided to publish my Peter Lynch Value indicator.
I wish retail investor might find it useful in this time of FOMO where even junk stock started to growth strong.
The indicator displays two price lines :
Green : Represent the earning per share multiplied by 15 like Peter Lynch showed in his book One Up on Wall Street
Blue : Represent the expected earning per share for the coming period
Depending on stocks you can see that for some price movements are higly correlated to earning.
The price earning threshold of 15 can be adjusted to a different value if you want to refine your analysis.
Basic strategy :
Buy stock when the price is below either the green line, the blue line or both.
Sell when the price is far above either the green line, the blue line or both
For this strategy to be effective you must only buy growing stock, not declining, like Peter Lynch recommends to do.
Feel free to add any comment so I can make improvements on the indicator.
Universal Global SessionUniversal Global Session
This Script combines the world sessions of: Stocks, Forex, Bitcoin Kill Zones, strategic points, all configurable, in a single Script, to capitalize the opening and closing times of global exchanges as investment assets, becoming an Universal Global Session .
It is based on the great work of @oscarvs ( BITCOIN KILL ZONES v2 ) and the scripts of @ChrisMoody. Thank you Oscar and Chris for your excellent judgment and great work.
At the end of this writing you can find all the internet references of the extensive documentation that I present here. To maximize your benefits in the use of this Script, I recommend that you read the entire document to create an objective and practical criterion.
All the hours of the different exchanges are presented at GMT -6. In Market24hClock you can adjust it to your preferences.
After a deep investigation I have been able to show that the different world sessions reveal underlying investment cycles, where it is possible to find sustained changes in the nominal behavior of the trend before the passage from one session to another and in the natural overlaps between the sessions. These underlying movements generally occur 15 minutes before the start, close or overlap of the session, when the session properly starts and also 15 minutes after respectively. Therefore, this script is designed to highlight these particular trending behaviors. Try it, discover your own conclusions and let me know in the notes, thank you.
Foreign Exchange Market Hours
It is the schedule by which currency market participants can buy, sell, trade and speculate on currencies all over the world. It is open 24 hours a day during working days and closes on weekends, thanks to the fact that operations are carried out through a network of information systems, instead of physical exchanges that close at a certain time. It opens Monday morning at 8 am local time in Sydney —Australia— (which is equivalent to Sunday night at 7 pm, in New York City —United States—, according to Eastern Standard Time), and It closes at 5pm local time in New York City (which is equivalent to 6am Saturday morning in Sydney).
The Forex market is decentralized and driven by local sessions, where the hours of Forex trading are based on the opening range of each active country, becoming an efficient transfer mechanism for all participants. Four territories in particular stand out: Sydney, Tokyo, London and New York, where the highest volume of operations occurs when the sessions in London and New York overlap. Furthermore, Europe is complemented by major financial centers such as Paris, Frankfurt and Zurich. Each day of forex trading begins with the opening of Australia, then Asia, followed by Europe, and finally North America. As markets in one region close, another opens - or has already opened - and continues to trade in the currency market. The seven most traded currencies in the world are: the US dollar, the euro, the Japanese yen, the British pound, the Australian dollar, the Canadian dollar, and the New Zealand dollar.
Currencies are needed around the world for international trade, this means that operations are not dominated by a single exchange market, but rather involve a global network of brokers from around the world, such as banks, commercial companies, central banks, companies investment management, hedge funds, as well as retail forex brokers and global investors. Because this market operates in multiple time zones, it can be accessed at any time except during the weekend, therefore, there is continuously at least one open market and there are some hours of overlap between the closing of the market of one region and the opening of another. The international scope of currency trading means that there are always traders around the world making and satisfying demands for a particular currency.
The market involves a global network of exchanges and brokers from around the world, although time zones overlap, the generally accepted time zone for each region is as follows:
Sydney 5pm to 2am EST (10pm to 7am UTC)
London 3am to 12 noon EST (8pm to 5pm UTC)
New York 8am to 5pm EST (1pm to 10pm UTC)
Tokyo 7pm to 4am EST (12am to 9am UTC)
Trading Session
A financial asset trading session refers to a period of time that coincides with the daytime trading hours for a given location, it is a business day in the local financial market. This may vary according to the asset class and the country, therefore operators must know the hours of trading sessions for the securities and derivatives in which they are interested in trading. If investors can understand market hours and set proper targets, they will have a much greater chance of making a profit within a workable schedule.
Kill Zones
Kill zones are highly liquid events. Many different market participants often come together and perform around these events. The activity itself can be event-driven (margin calls or option exercise-related activity), portfolio management-driven (asset allocation rebalancing orders and closing buy-in), or institutionally driven (larger players needing liquidity to complete the size) or a combination of any of the three. This intense cross-current of activity at a very specific point in time often occurs near significant technical levels and the established trends emerging from these events often persist until the next Death Zone approaches or enters.
Kill Zones are evolving with time and the course of world history. Since the end of World War II, New York has slowly invaded London's place as the world center for commercial banking. So much so that during the latter part of the 20th century, New York was considered the new center of the financial universe. With the end of the cold war, that leadership appears to have shifted towards Europe and away from the United States. Furthermore, Japan has slowly lost its former dominance in the global economic landscape, while Beijing's has increased dramatically. Only time will tell how these death zones will evolve given the ever-changing political, economic, and socioeconomic influences of each region.
Financial Markets
New York
New York (NYSE Chicago, NASDAQ)
7:30 am - 2:00 pm
It is the second largest currency platform in the world, followed largely by foreign investors as it participates in 90% of all operations, where movements on the New York Stock Exchange (NYSE) can have an immediate effect (powerful) on the dollar, for example, when companies merge and acquisitions are finalized, the dollar can instantly gain or lose value.
A. Complementary Stock Exchanges
Brazil (BOVESPA - Brazilian Stock Exchange)
07:00 am - 02:55 pm
Canada (TSX - Toronto Stock Exchange)
07:30 am - 02:00 pm
New York (NYSE - New York Stock Exchange)
08:30 am - 03:00 pm
B. North American Trading Session
07:00 am - 03:00 pm
(from the beginning of the business day on NYSE and NASDAQ, until the end of the New York session)
New York, Chicago and Toronto (Canada) open the North American session. Characterized by the most aggressive trading within the markets, currency pairs show high volatility. As the US markets open, trading is still active in Europe, however trading volume generally decreases with the end of the European session and the overlap between the US and Europe.
C. Strategic Points
US main session starts in 1 hour
07:30 am
The euro tends to drop before the US session. The NYSE, CHX and TSX (Canada) trading sessions begin 1 hour after this strategic point. The North American session begins trading Forex at 07:00 am.
This constitutes the beginning of the overlap of the United States and the European market that spans from 07:00 am to 10:35 am, often called the best time to trade EUR / USD, it is the period of greatest liquidity for the main European currencies since it is where they have their widest daily ranges.
When New York opens at 07:00 am the most intense trading begins in both the US and European markets. The overlap of European and American trading sessions has 80% of the total average trading range for all currency pairs during US business hours and 70% of the total average trading range for all currency pairs during European business hours. The intersection of the US and European sessions are the most volatile overlapping hours of all.
Influential news and data for the USD are released between 07:30 am and 09:00 am and play the biggest role in the North American Session. These are the strategically most important moments of this activity period: 07:00 am, 08:00 am and 08:30 am.
The main session of operations in the United States and Canada begins
08:30 am
Start of main trading sessions in New York, Chicago and Toronto. The European session still overlaps the North American session and this is the time for large-scale unpredictable trading. The United States leads the market. It is difficult to interpret the news due to speculation. Trends develop very quickly and it is difficult to identify them, however trends (especially for the euro), which have developed during the overlap, often turn the other way when Europe exits the market.
Second hour of the US session and last hour of the European session
09:30 am
End of the European session
10:35 am
The trend of the euro will change rapidly after the end of the European session.
Last hour of the United States session
02:00 pm
Institutional clients and very large funds are very active during the first and last working hours of almost all stock exchanges, knowing this allows to better predict price movements in the opening and closing of large markets. Within the last trading hours of the secondary market session, a pullback can often be seen in the EUR / USD that continues until the opening of the Tokyo session. Generally it happens if there was an upward price movement before 04:00 pm - 05:00 pm.
End of the trade session in the United States
03:00 pm
D. Kill Zones
11:30 am - 1:30 pm
New York Kill Zone. The United States is still the world's largest economy, so by default, the New York opening carries a lot of weight and often comes with a huge injection of liquidity. In fact, most of the world's marketable assets are priced in US dollars, making political and economic activity within this region even more important. Because it is relatively late in the world's trading day, this Death Zone often sees violent price swings within its first hour, leading to the proven adage "never trust the first hour of trading in America. North.
---------------
London
London (LSE - London Stock Exchange)
02:00 am - 10:35 am
Britain dominates the currency markets around the world, and London is its main component. London, a central trading capital of the world, accounts for about 43% of world trade, many Forex trends often originate from London.
A. Complementary Stock Exchange
Dubai (DFM - Dubai Financial Market)
12:00 am - 03:50 am
Moscow (MOEX - Moscow Exchange)
12:30 am - 10:00 am
Germany (FWB - Frankfurt Stock Exchange)
01:00 am - 10:30 am
Afríca (JSE - Johannesburg Stock Exchange)
01:00 am - 09:00 am
Saudi Arabia (TADAWUL - Saudi Stock Exchange)
01:00 am - 06:00 am
Switzerland (SIX - Swiss Stock Exchange)
02:00 am - 10:30 am
B. European Trading Session
02:00 am - 11:00 am
(from the opening of the Frankfurt session to the close of the Order Book on the London Stock Exchange / Euronext)
It is a very liquid trading session, where trends are set that start during the first trading hours in Europe and generally continue until the beginning of the US session.
C. Middle East Trading Session
12:00 am - 06:00 am
(from the opening of the Dubai session to the end of the Riyadh session)
D. Strategic Points
European session begins
02:00 am
London, Frankfurt and Zurich Stock Exchange enter the market, overlap between Europe and Asia begins.
End of the Singapore and Asia sessions
03:00 am
The euro rises almost immediately or an hour after Singapore exits the market.
Middle East Oil Markets Completion Process
05:00 am
Operations are ending in the European-Asian market, at which time Dubai, Qatar and in another hour in Riyadh, which constitute the Middle East oil markets, are closing. Because oil trading is done in US dollars, and the region with the trading day coming to an end no longer needs the dollar, consequently, the euro tends to grow more frequently.
End of the Middle East trading session
06:00 am
E. Kill Zones
5:00 am - 7:00 am
London Kill Zone. Considered the center of the financial universe for more than 500 years, Europe still has a lot of influence in the banking world. Many older players use the European session to establish their positions. As such, the London Open often sees the most significant trend-setting activity on any trading day. In fact, it has been suggested that 80% of all weekly trends are set through the London Kill Zone on Tuesday.
F. Kill Zones (close)
2:00 pm - 4:00 pm
London Kill Zone (close).
---------------
Tokyo
Tokyo (JPX - Tokyo Stock Exchange)
06:00 pm - 12:00 am
It is the first Asian market to open, receiving most of the Asian trade, just ahead of Hong Kong and Singapore.
A. Complementary Stock Exchange
Singapore (SGX - Singapore Exchange)
07:00 pm - 03:00 am
Hong Kong (HKEx - Hong Kong Stock Exchange)
07:30 pm - 02:00 am
Shanghai (SSE - Shanghai Stock Exchange)
07:30 pm - 01:00 am
India (NSE - India National Stock Exchange)
09:45 pm - 04:00 am
B. Asian Trading Session
06:00 pm - 03:00 am
From the opening of the Tokyo session to the end of the Singapore session
The first major Asian market to open is Tokyo which has the largest market share and is the third largest Forex trading center in the world. Singapore opens in an hour, and then the Chinese markets: Shanghai and Hong Kong open 30 minutes later. With them, the trading volume increases and begins a large-scale operation in the Asia-Pacific region, offering more liquidity for the Asian-Pacific currencies and their crosses. When European countries open their doors, more liquidity will be offered to Asian and European crossings.
C. Strategic Points
Second hour of the Tokyo session
07:00 pm
This session also opens the Singapore market. The commercial dynamics grows in anticipation of the opening of the two largest Chinese markets in 30 minutes: Shanghai and Hong Kong, within these 30 minutes or just before the China session begins, the euro usually falls until the same moment of the opening of Shanghai and Hong Kong.
Second hour of the China session
08:30 pm
Hong Kong and Shanghai start trading and the euro usually grows for more than an hour. The EUR / USD pair mixes up as Asian exporters convert part of their earnings into both US dollars and euros.
Last hour of the Tokyo session
11:00 pm
End of the Tokyo session
12:00 am
If the euro has been actively declining up to this time, China will raise the euro after the Tokyo shutdown. Hong Kong, Shanghai and Singapore remain open and take matters into their own hands causing the growth of the euro. Asia is a huge commercial and industrial region with a large number of high-quality economic products and gigantic financial turnover, making the number of transactions on the stock exchanges huge during the Asian session. That is why traders, who entered the trade at the opening of the London session, should pay attention to their terminals when Asia exits the market.
End of the Shanghai session
01:00 am
The trade ends in Shanghai. This is the last trading hour of the Hong Kong session, during which market activity peaks.
D. Kill Zones
10:00 pm - 2:00 am
Asian Kill Zone. Considered the "Institutional" Zone, this zone represents both the launch pad for new trends as well as a recharge area for the post-American session. It is the beginning of a new day (or week) for the world and as such it makes sense that this zone often sets the tone for the remainder of the global business day. It is ideal to pay attention to the opening of Tokyo, Beijing and Sydney.
--------------
Sidney
Sydney (ASX - Australia Stock Exchange)
06:00 pm - 12:00 am
A. Complementary Stock Exchange
New Zealand (NZX - New Zealand Stock Exchange)
04:00 pm - 10:45 pm
It's where the global trading day officially begins. While it is the smallest of the megamarkets, it sees a lot of initial action when markets reopen Sunday afternoon as individual traders and financial institutions are trying to regroup after the long hiatus since Friday afternoon. On weekdays it constitutes the end of the current trading day where the change in the settlement date occurs.
B. Pacific Trading Session
04:00 pm - 12:00 am
(from the opening of the Wellington session to the end of the Sydney session)
Forex begins its business hours when Wellington (New Zealand Exchange) opens local time on Monday. Sydney (Australian Stock Exchange) opens in 2 hours. It is a session with a fairly low volatility, configuring itself as the calmest session of all. Strong movements appear when influential news is published and when the Pacific session overlaps the Asian Session.
C. Strategic Points
End of the Sydney session
12:00 am
---------------
Conclusions
The best time to trade is during overlaps in trading times between open markets. Overlaps equate to higher price ranges, creating greater opportunities.
Regarding press releases (news), it should be noted that these in the currency markets have the power to improve a normally slow trading period. When a major announcement is made regarding economic data, especially when it goes against the predicted forecast, the coin can lose or gain value in a matter of seconds. In general, the more economic growth a country produces, the more positive the economy is for international investors. Investment capital tends to flow to countries that are believed to have good growth prospects and subsequently good investment opportunities, leading to the strengthening of the country's exchange rate. Also, a country that has higher interest rates through its government bonds tends to attract investment capital as foreign investors seek high-yield opportunities. However, stable economic growth and attractive yields or interest rates are inextricably intertwined. It's important to take advantage of market overlaps and keep an eye out for press releases when setting up a trading schedule.
References:
www.investopedia.com
www.investopedia.com
www.investopedia.com
www.investopedia.com
market24hclock.com
market24hclock.com
Graham NumberGraham Number is named after the “father of value investing,” Benjamin Graham, who was a mentor of Warren Buffett. The figure takes into account earnings per share and book value per share to measure a stock's maximum fair market value. In other words, it is the upper end of the price range that a defensive investor should pay for the stock.
The Graham Number = Square Root of (22.5) x (tmm EPS) x (mrq Book Value per Share).
The 22.5 is included in the formula as a rule of thumb to account for Graham's assumption that the price-to-earnings ratio should not be over 15 and the price to book ratio should not be over 1.5 for an undervalued stock. So, the number is generated as (P/E of 15) x (P/B of 1.5) = 22.5.
So the script generates a Graham number plot.
Horcrux OscilatorDoes your oscilator give exit signal on time? Mine does. However worst the idea is, I had to come up with a horcrux plan :P
Concept is as below:
I use 7 standard deviation Bollinger bands to identify which level current price is in. Standard deviations used are from 0.5 (lowest level) to 3.5(highest level) with 0.5 step . This creates overall 16 levels ranging from 0 to 15 with 0 being the highest level and 15 being the lowest.
LookbackPeriod is used to calculate max and min values of these threshold over certain bars. Average of max and min constitutes threshold.
Horcrux value is difference between max state and current state in LookbackPeriod.
Lower the horcrux much closer the current state to the highest state. Hence, horcrux higher than threshold is considered as green region where prices are moving up. Decrease in number of horcruxes means price state moving closer to highest state (which is the lower level). Hence, indicates reduced momentum or reversal.
Use higher LookbackPeriod for increased accuracy. Increase BBLength for long term trades. Adjustment is used to adjust threshold line by up to + or - 20%
Short In Downtrend Below MA100 (Coinrule)This is a simple strategy to take advantage of downtrends. It's useful to run such a strategy as a hedge in times of market uncertainty.
The Sell Condition - Entry
The sell signal triggers when:
the coin has MA (100) greater than the price in a timeframe of 15 minutes, meaning that the coin is in a short-term downtrend.
the coin has an RSI greater than 30 in a timeframe of 15 minutes, indicating that it didn't reach oversold conditions yet, so there is still room for a further price drop.
On Coinrule, you can launch the strategy on real market conditions, setting up multiple sequential sell orders. The strategy would keep selling while the price stays below the MA(100). In that case, it's advisable to set low amounts for the sell orders. the position will grow gradually while the downtrend intensifies. Set a minimum time interval between the sell orders will also help to have control over the overall position size.
The Buy Condition - Exit
The bot connects to each trade a stop loss and a take profit. The percentages are optimized for short term trades on mid-cap coins. You can adjust the percentages depending on the specific coin you are trading. A ratio of 1:1.5 between the stop loss and the take profit could work as the strategy trades in the same direction of the trend.
Stop loss at 3% from the entry price
Take profit at 2% from the entry price
A slightly larger stop loss allows tolerating more volatility to reduce the case of stops triggering when it shouldn't.
Easy System 420In this strategy, 15 indicators are used, each giving its results as a numerical value, which then is added or subtracted from the total points, gathered from all 15 indicators.
Many thanks to RafaelZioni for his great work making the EasySys1 script which i modified to create this script.
Onchart is drawn some of the indicators, but not all, a info panel is drawn showing the value each indicator has calculated. The info panel can be turned on or off.
Many of the indicator settings can be changed by user, and this is recommended, to tune the strategy to users chosen pair/timeframe.
Therefore any pair or timeframe can be used, the strategy tester results showing possible results, remember to set commission to match your broker. example chart settings here have common crypto exchange commission value: 0.25%
indicator list : SAR + STT + ZigZag + ROC + DMI + CCI + Weis + SMA + AO + MOM + Hist + BB + Ichimoku + HMA
TST Signals & AlertsThis is an unofficial script for strategies tested on Trading Strategy Testing Youtube channel. Over time, most successful strategies will be added with an option to set strategy-specific alerts . TST Signals & Alerts will draw signals on the chart when the entry conditions are met. You can also opt for displaying indicators .
My script is meant for beginners but can be used by veterans too. Just pick one or two strategies, you don't want to flood your chart with conflicting signals. You may want to support your trades with a proper analysis. Is the market trending? Is there a fundament around the corner?
If a new signal occurs when there is still an open position, you are not supposed to take another.
The current version includes MACD and ADX + BB and BB strategies.
MACD strategy:
►Buy, when MACD crosses below the signal line when it is negative. The price must also be above 200 EMA.
►Sell, when MACD crosses above the signal line when it is positive. The price must also be below 200 EMA.
►This strategy was tested on 15-minute charts of EURUSD with reward-to-risk ratio 1,5 and win rate of 61% over 100 trades.
►►►MACD has to be added to your chart separately because it needs a new window. Ticking display indicators will not add MACD to your chart.
►►►MACD was also tested by a different channel I made a script for. You can view the results and the script here:
ADX + BB strategy:
►Buy, when the price is above 200 EMA and ADX becomes higher than 25.
►Sell, when the price is below 200 EMA and ADX becomes higher than 25.
►Stop-loss is either 200 EMA or Bollinger Bands level. Check the channel for more information.
►This strategy was tested on 5-minute charts of EURUSD, USDJPY, AUDUSD with reward-to-risk ratio 1,2 and win rate of 56% over 100 trades in total.
BB strategy:
►Buy, when the price is above 200 EMA and candle's low is below the lower Bollinger Band.
►Sell, when the price is below 200 EMA and candle's high is above the upper Bollinger Band.
►This strategy was tested on 15-minute charts of EURUSD with reward-to-risk ratio 1,5 and win rate of 52% over 100 trades in total.
►►►Due to the relatively low win rate of this strategy, you need to filter out potentially harmful signals with a proper analysis.
Bear in mind that backtesting performance doesn't guarantee future profitability. • Most systematic strategies are not suitable for each timeframe - if you use the different timeframe than the one it was tested on, the result can differ significantly. • You should perform your own backtest to base your trades on more data & to establish confidence in the selected strategy. • This script is not a replacement for proper analysis.
New strategies will be added when I have time. If I see multiple people asking for the same feature, I might agree to release it with a new version. I am not going to add input options in this script, it could come as a separate script though. I am in no way affiliated with the Youtube channel, so if you find the script helpful, shot me a message or send me some TradingView coins >)
If you encounter any bug, you can report it in a message or in comments. Support it with screenshot and relevant information such as a time when it occurred and what options were on etc.
Kal's MTF OBV Haar Version 3Kal’s Multi-Time-Frame On-Balance-Volume Haar, also known as Kal’s MTF OBV Haar is a method/study for finding trending volume levels on stocks, indexes and cryptocurrencies using OBV, CMF and CCI over different time-frames (10Min, 1H, 4H, 1D, 1W, 1Month).
Upon adding to the 10Min chart, the sample Image in Tradingview looks as follows:
Note: Always check your time-frame(TF). Compare current TF to a row’s(bead row’s) time-frame. Ensure current TF is lower than a row’s time-frame when looking at it and higher time-frame rows above it. For instance, if you choose your chart’s time-frame at 1D, the lower time-frame rows(i.e. 10Min, 1H, 4H) don’t make sense.
For cryptocurrencies, one week is 7 periods, two weeks is 14 periods
For stocks, one week is 5 periods, two weeks is 10 periods
For the study of stocks, I used
9-period EMA over OBV for time-frames (10Min, 1H, 4H, D)
4-period EMA over OBV for time-frames (W, M)
For the study of cryptocurrencies, I would update EMAs as follows:
13-period EMA over OBV for time-frames (10Min, 1H, 4H, D)
6-period EMA over OBV for time-frames (W, M)
These days I'm finding the following parameters have better fitting
19-period EMA over OBV for time-frames (10Min, 1H, 4H, D)
9-period EMA over OBV for time-frames (W, M)
Description:
---------------
In the study plot, the lowest row is 10Min, the row above 10Min is 1H, then 4H, then 1D, then 1W and the highest row is 1M
Note: Always check your time-frame(TF). Compare current TF to a row’s(bead row’s) time-frame. Ensure current TF is lower than a row’s time-frame when looking at it and higher time-frame rows above it. For instance, if you choose your chart’s time-frame at 1D, the lower time-frame rows(i.e. 10Min, 1H, 4H) don’t make sense.
Lime( Bright Green) dot implies Trending Uptrend for that time-frame
Red dot implies Trending Downward for that time-frame
It’s best to wait and research for possibility of Trend Reversal during the following dots/bricks:
Silver dot implies indecisive up
Orange dot implies indecisive downtrend
Lime Brick implies CCI is near Zero line( between 15 and 0)
Red Brick implies CCI is near Zero line( between -15 and 0)
Purple dot implies CCI zero rejection to possibly/probably continue trend UP
Yellow dot implies CCI zero rejection to possibly/probably continue trend Down
Aqua dot implies that trend is overbought or oversold. This dot usually happens between red dots or green dots. Therefore, it’s best to wait for pull-back especially in lower time frames.
Safe Trading!
Kal Gandikota
Legal Disclaimer: This script is published here so I get replies from fellow viewers to educate myself. Hence, if anyone uses this script for making their financial decisions, I am not responsible for any failures incurred. If you have questions or improvements related to this script, please feel free to leave comments and as time permits, will respond to those comments.
Historic VPoCs and pseudo VPVRThis study tries to recreate session based historic VPoCs
and VPVR Volume Profile
as they are used by
TradingLatino TradingView user.
It's aimed at BTCUSDT pair and 4h timeframe.
HOW IT WORKS
HOW IT WORKS - VPVR Profile Block
It gathers volume from the last chosen Bars
in order to draw the vpvr profile block
Volume that intersects with current level range
being studied is added to its value.
Additionally the current level price is modified
so that it matches the level price where most
of the volume has concentrated
So you get a pretty accurate price for drawn volume
while at the same time the levels are not stuck
to arbitrary level prices.
HOW IT WORKS - VPoC
It calculates a Volume Profile for the
given historic session but then
it only outputs that Volume Profile VPoC.
SETTINGS
Show VPVR Volume Profile {True}.
Show Historic VPoC lines {True}.
Show Historic VPoC labels {True}.
Extend Historic VPoC lines {True}: If this option is turned off the VPoC lines are only shown during the session duration.
Show tick difference from current price {False}: BETA. Feedback is needed because I'm not sure how it should work this setting.
VPVR Number of bars {100}: Define the Visible Range in number of bars so that its Volume Profile can be shown.
VPVR Profile width (in bars) {15}: VPVR Profile can be make larger or smaller in width thanks to this option.
VPVR Profile offset (in bars) {15}: VPVR Profile can be shown more to the left or to the right if the defaults do not suit you.
Historic Session Volume Profile timeframe {1D}: Historic VPoC use 1 day as their timeframe reference by default.
Number of decimal digits {2}: How many decimal digits are shown in label prices.
Number of previous sessions to print VPoC {5}: How many previous sessions VPoCs are to be printed. The maximum for this setting is 20.
Historic VPoC lines width (in pixels) {2}.
Historic VPoC labels size {small}.
History VPoC line offset (in bars) {5}: How far to the right VPoCs lines are to be extended. Note: This setting does not apply when 'Extend Historic VPoC lines' is set to 'False'.
WARNING
Please be aware that VPoC from the first previous session might not be accurate due to Pine Script limitations.
VPVR USAGE
This is not a VPVR like the official TradingView indicator.
This is a pseudo VPVR and that means it needs some manual input from you.
But, don't worry it's quite easy to do and if you always use the same number
of bars to calculate your VPVR then you might even just set it up once.
In order to show the VPVR (or Volume Profile on the Visible Range):
Rescale your chart so that you see all the bars for your Visible Range.
Click on the ruler tool.
Click on the last bar (far to the right) shown on the screen
Drag the ruler to first bar (far to the left) shown on the screen
Check what the ruler says
E.g. it says: 101 bars
Open this study settings
Modify: 'VPVR Number of bars ' setting
So that its value matches your measured number of bars (101)
Press OK to confirm and wait for the indicator to refresh.
STRATEGY USAGE
If your strategy uses VPoC
to define your resistances
or supports
you can check the VPoCs shown here.
FEEDBACK
I have only used this identifier in BTCUSDT 4h timeframe.
I'm interested to know what needs to be tweaked
in other securities and timeframes.
PINE STUDY TRICK
This study let's you choose the number of decimals the label will use.
CREDITS
I have reused and adapted some code from
'Poor man's volume profile' study
which it's from TradingView IldarAkhmetgaleev user.
I also wanted to thank him for helping me understanding his study.
I have reused some code from
'MTF Selection Framework - PineCoders FAQ' study
which it's from TradingView PineCoders user.
Camelback-IndikatorDer Camelback-Indikator stammt von Joe Ross. Er beinhaltet zwei einfache gleitende Durchschnitte mit 40 Perioden und einen exponentiellen gleitenden Durchschnitt mit 15 Perioden.
Sobald wir mit Preisbalken arbeiten, die vollständig unterhalb des MA40-Kanals liegen, versuchen wir einen Ausbruch durch das Tief des Balkens zu verkaufen, der das lokale Hoch macht. Mit dem lokalen Hoch ist das Hoch einer geringfügigen Korrektur außerhalb des MA40-Kanals gemeint.
Sobald wir mit Preisbalken arbeiten, die vollständig oberhalb des MA40-Kanals liegen, versuchen wir einen Ausbruch durch das Hoch des Balkens zu kaufen, der das lokale Tief macht. Mit dem lokalen Tief ist das Tief einer geringfügigen Korrektur außerhalb des Kanals gemeint.
Was wir hier tun, kann als Scalping bezeichnet werden. Das Skalieren des längerfristigen Charts mit kurzfristigen Handelstechniken ist eine großartige Möglichkeit, um die Art von Aktion zu handeln, die wir in diesen Charts sehen.
Der Camelback-Indikator kann auch zum scannen von Aktiemärkten benutzt werden.
Der Indikator beinhaltet neben der Camelback-Funktion außerdem noch einen einfachen gleitentenden Durchschnitt mit 200 Perioden, zwei einfache gleitentende Durchschnitte (im script short-term genannt) mit einstellbarer Periodendauer, einer davon angewendet auf Hochs, bei dem anderen kann die Anwendung der Quelle eingestellt werden. Bei beiden ist ein Offset einstellbar.
The Camelback indicator is from Joe Ross. It includes two simple moving averages with 40 periods and an exponential moving average with 15 periods.
Once we are working with price bars that are completely below the MA40 channel, we try to sell a breakout through the low of the bar which makes the local high. By the local high is meant the high of a minor correction outside of the MA40 channel.
Once we are working with price bars that are completely above the MA40 channel, we try to buy a breakout through the high of the bar which makes the local low. By the local low we mean the low of a minor correction outside the channel.
What we are doing here can be called scalping. Scaling the longer term chart with short term trading techniques is a great way to trade for the kind of action we see on these charts.
The Camelback indicator can also be used to scan stock markets.
In addition to the Camelback function, the indicator also includes a simple moving average with 200 periods, two simple moving averages (called short-term in the script) with adjustable period duration, one of which is applied to highs, the other can be used to set the source . An offset can be set for both.
Spread for VSAЭтот индикатор сравнивает спрэд (расстояние от закрытия предыдущего бара до закрытия текущего бара или индикатор Momentum = 1) на периоде для сравнения.
На графике за 100 % принимается среднее значение спрэда за период для сравнения - красная линия. (по умолчанию период сравнения равен 3 - то есть три последних бара)
Размер бара на графике равен текущему спрэду по отношению к 100 %.
Если бар меньше 100 % то он ниже среднего, и наоборот если больше 100% то он больше среднего.
Если бар красный - спрэд отрицательный (текущее закрытие меньше предыдущего закрытия)
Если бар зелёный - спрэд положительный (текущее закрытие больше предыдущего закрытия)
Если бар меньше 75% то он будет окрашен в тусклый цвет (этот процент можно менять в настройках)
Если в настройках период спрэда указать больше 1, например 2, то спрэд будет равен закрытие мину закрытие через 1 бар назад. (это для экспериментов).
Примечание:
по умолчанию период для сравнения равен 3, но также интересен график и при значениях 15 и больше. Экспериментируйте.
По вопросам и предложениям пишите в комментариях.
Automatic translation google translate.
This indicator compares the spread (the distance from the closing of the previous bar to the closing of the current bar or the Momentum indicator = 1) on the period for comparison.
On the chart, the average spread value for the period for comparison is the red line, taken as 100%. (by default, the comparison period is 3 - that is, the last three bars)
The size of the bar on the chart is equal to the current spread with respect to 100%.
If the bar is less than 100%, then it is below average, and vice versa, if more than 100%, then it is more than average.
If the bar is red, the spread is negative (the current close is less than the previous close)
If the bar is green, the spread is positive (the current close is greater than the previous close)
If the bar is less than 75%, then it will be painted in a dull color (this percentage can be changed in the settings)
If in the settings the period of the spread is specified more than 1, for example 2, then the spread will be equal to closing mine closing after 1 bar back. (this is for experimentation).
Note:
the default period for comparison is 3, but the chart is also interesting for values of 15 or more. Experiment.
For questions and suggestions, write in the comments.
Bull Club BiasThe script intends to eliminate noise from the chart. It uses a combination of multiple indicators into 1.
For long bias:
Close is greater than the ADX
15 Period EMA on close is greater than SMA on high
13 period RSI is greater than 25 periods RSI
MACD is greater than 0
For short bias:
Close is lower than the ADX
15 Period EMA on close is lower than SMA on high
13 period RSI is lower than 25 periods RSI
MACD is lower than 0
For every other combination, it is a range-bound bias. NSE:BANKNIFTY
A green background indicates long bias
A Red background indicates short bias
An Orange background indicates range-bound bias
TA Basics: further "Steps" with our Moving AverageSo far in this series of posts, we have worked thru creating a basic zero-lag moving average, then moved forward all the way to coding a "Fibonacci" Weighted Moving Average.
in this post we take a look at a technique that can help traders minimize noise in the underlying data and get better insight on the changes that are happening in the data series represented by the moving average. we'll look at adding "stepping" to our Fibonacci Moving Average as an example. we introduce the Stepping Fibonacci Moving Average , or Step_FiMA
note that you can use the same technique with any plot you may have. feel free to copy or leverage the relevant parts of the script - the script is commented to make this easier.
How is this useful?
==================
with "stepping", you get your indicator to "round" the outcome into pre-specified bands or ranges. this works very similar to how, for example, range or Renko charts work. you can easily see the difference in the chart above once we look at a non-stepped and a stepping moving average of the same length side-by-side
the more granular your timeframe is, you will see the effect of the stepping clearer - here's how the same chart looks when we go into the 1-hr aggregation
Notes about this script
====================
there are couple of pieces i wanted to highlight in the script if you plan to use some of it :
1 - the step(x) function is meant to try to automatically pick the best "suitable" step size based on the range of the underlying series (for example, the closing price). these ranges i included here in the code are just my own "best choices" - you are totally welcome to adjust these ranges and the resulting step size to your own preference
2 - we applied the stepping as a user-choice. user can choose a manual entry, or "0" to get the code to automatically pick the step size, or enter -1 (or actually any value below zero) to cancel the stepping option altogether - this gives us some flexibility on how to use the stepping in an indicator
3 - very important (and somehow confusing): on the "rounding" approach:
the magic math formula that actually creates the stepping is this one
result = round(input / step) * step
now, this tells the script to "round" the result up or down (the basic rounding) -- so for example, a price of 17 with a step of 5 would be rounded (down) to 15, where as a price of 18 would be rounded "up" to 20 -- this is not the way some of us would expect or want, cause the price never reached 20 and they would want an 18 to still be rounded to 15 - and the stepping line not to show 20 *until* the price actually hits or exceeds 20 -- in that case, you would need to replace the function "round" with the function "floor" --
so the new formula becomes: floor(input / step) * step
-- in an ideal world, we can make this rounding choice a user-option in the settings -- maybe in an improved version
4 - we kept the smoothing option, and it takes place before the stepping is applied - we continue to use that smoothing to further minimize the level changes in the FiMA line.
I hope you find this script useful in your journey with technical analysis and DIY scripting, and good luck in your trading.
Reminder Message (with color picker) - ApopheniaPaysThis is a very simple script. It displays a message above the latest price. I coded it because I need a constant reminder to keep me from overtrading.
You can customize several options:
- The message text
- How high above the latest price the message is displayed
- How often it is displayed. 1=display constantly, 2=only show it during every other period, 3=only show it every 3rd new period, etc. So, for example, if you are on the 15 minute chart, and set a frequency of 3, it will show it for the first 15 minutes out of every 45.
- Color and lightness. This can be used as an example of how to add a color selection input to your own scripts.
Combing in MACD and MTFHi all, I'm trying to wedge in the MACD into a multiple timeframe. Scope is to create:
1) an alert when the MACD across all timeframes is positive,
2) an alert when the MACD across all timeframes is negative, and
3) one when neither of them is applicable.
Would anyone be so kind to give it some thoughts, please?
//@version=2
strategy(" Easy MTF Strategy", overlay=false)
TF_1_time = input("3", "Timeframe 1")
TF_2_time = input("5", "Timeframe 2")
TF_3_time = input("15", "Timeframe 3")
TF_4_time = input("30", "Timeframe 4")
fastLen = input(title="Fast Length", type=integer, defval=12)
slowLen = input(title="Slow Length", type=integer, defval=26)
sigLen = input(title="Signal Length", type=integer, defval=9)
= macd(close, fastLen, slowLen, sigLen)
width = 5
upcolor = green
downcolor = red
neutralcolor = blue
linestyle = line
TF_1 = security(tickerid, TF_1_time, open) < security(tickerid, TF_1_time, close) ? true:false
TF_1_color = TF_1 ? upcolor:downcolor
TF_2 = security(tickerid, TF_2_time, open) < security(tickerid, TF_2_time, close) ? true:false
TF_2_color = TF_2 ? upcolor:downcolor
TF_3 = security(tickerid, TF_3_time, open) < security(tickerid, TF_3_time, close) ? true:false
TF_3_color = TF_3 ? upcolor:downcolor
TF_4 = security(tickerid, TF_4_time, open) < security(tickerid, TF_4_time, close) ? true:false
TF_4_color = TF_4 ? upcolor:downcolor
TF_global = TF_1 and TF_2 and TF_3 and TF_4
TF_global_bear = TF_1 == false and TF_2 == false and TF_3 == false and TF_4 == false
TF_global_color = TF_global ? green : TF_global_bear ? red : white
TF_trigger_width = TF_global ? 6 : width
plot(1, style=linestyle, linewidth=width, color=TF_1_color)
plot(5, style=linestyle, linewidth=width, color=TF_2_color)
plot(10, style=linestyle, linewidth=width, color=TF_3_color)
plot(15, style=linestyle, linewidth=width, color=TF_4_color)
plot(25, style=linestyle, linewidth=4, color=TF_global_color)
exitCondition_Long = TF_global_bear
exitCondition_Short = TF_global
longCondition = TF_global
if (longCondition)
strategy.entry("MTF_Long", strategy.long)
shortCondition = TF_global_bear
if (shortCondition)
strategy.entry("MTF_Short", strategy.short)
strategy.close("MTF_Long", when=exitCondition_Long)
strategy.close("MTF_Short", when=exitCondition_Short)