Renko Emulator - Rev NR - Released - 12-29-22Renko Emulator - Rev NR - Released 12-29-22
By Hockeydude84
Simple script to Emulate Renko Charting behavior on standard candle stick charts. Code provide capability to select between standard(ish) Renko bricks (in this code it's defined by percent vs ticks/value), or an ATR brick option. For ATR bricks, the code provides an option to inhibit emulator movement (formation of new bricks) by providing a minimum threshold that must be present. This threshold is the "Standard Brick" input (the input pulls double duty). Code also provides multiple plotting options.
Use the code to help see trends and reduce the chop/erroneous data. Also helps to identify where trend deviations are present.
在脚本中搜索"莱加内斯VS皇家社会"
TableBuilderTableBuilder is a library designed to make it easier to create tables in PineScript.
It allows you to more flexibly define the structure of a table before actually building it.
Features:
Style inheritance: styles are inherited from Table, to Column, to Row, and then Cell.
Columns are useful for propagating/reusing style but they are not required.
Add rows with different numbers of cells. The resultant number of columns in the table will be determined by the max number of cells vs the number of defined columns.
Auto text color: Instead of having to set the font color for every cell, the color is automatically determined by the luminosity of the background color.
See the 'Demo' section of the code for an example.
[Pt] TICK + Heikin Ashi RSI IndicatorThis indicator combines NYSE TICK and RSI to aim to provide a view of NYSE market trend strength.
What is TICK
NYSE TICK, also known as the TICK index, is a technical analysis indicator that shows the number of stocks on the New York Stock Exchange (NYSE) that are trading on an uptick or a downtick in a particular period of time. The TICK index is calculated by subtracting the number of stocks trading on a downtick from the number of stocks trading on an uptick. A reading of +1000 on the TICK index, for example, would indicate that there are 1000 more stocks trading on an uptick than on a downtick. The TICK index is often used as a measure of market sentiment, as it can provide insight into whether there is more buying or selling pressure in the market at a given time. A high TICK index reading may suggest that there is strong buying pressure, while a low TICK index reading may indicate that there is more selling pressure in the market.
By default, I am using -800 and 800 for oversold and overbought levels. These are configurable. Also, this indicator includes TICK divergence signals.
The TICK index is usually very volatile, so this indicator is best suited for lower timeframes, such as 1 to 5 min charts.
Idea of TICK neutral zone
As part of this indicator I've identified what I consider as "neutral" range for the TICK. Based on my own personal experience, the market tends to be in consolidation or choppy in this range. By default, I've defined this range to be -200 to 200. This range is configurable.
Signals
In combination with RSI and Heikin Ashi RSI (HARSI), which help smooths out the RSI values and make it easier to identify trends and potential reversal points, this indicator aims to generate Bullish vs Bearish signals based on the following conditions:
- bullish / bearish HARSI candle
- Inside bar on HARSI candle
- TICK trend (above or below Neutral zone)
- RSI trend (above or below 0, but not overbought or oversold)
- RSI / HARSI convergence and divergence
When all bullish conditions are met, the signal turns bright green. Bright red when all bearish conditions are met. These generated signals aims to provide users easy to read visual cues to help with their trades.
A table is also provided in attempt to identify the trend in real time:
TICK trend:
- Bullish, Extended
- Bullish
- Neutral w/ Bullish bias
- Neutral w/ Bearish bias
- Bearish
- Bearish, Extended
RSI:
- Bullish
- Bearish
Note on scale
This indicator is based on the scale for TICK, hence the RSI and HARSI are scaled. By default, standard overbought RSI value of 70 = 800 on this scale, whereas oversold value of 30 = -800.
Credits:
Heikin Ashi RSI code was borrowed from @JayRogers - Heikin Ashi RSI Oscillator
Anchored VWAP BandSimple script to anchor vwap to a drag and drop spot on the chart and display it as a band instead of a line.
the AVAP Band displays:
1. The AVWAP using High as the source
2. The AVWAP using OHLC4 as the source
3. The AVWAP using Low as the source
This is just a different way of visualising VWAP from an anchored point in time (Band vs Line)
Weird Renko StratThis strategy uses Renko, it generates a signal when there is a reversal in Renko. When using historical data, it provides a good entry and an okay exit. However, in a real-time environment, this strategy is subject to repaint and may produce a false signal.
As a result, the backtesting result should not be used as a metric to predict future results. It is highly recommended to forward-test the strategy before using it in real trading. I forward test it from 12/18/2022 to 12/21/2022 in paper trading, using the alert feature in Tradingview. I made 60 trades trading the BTCUSDT BINANCE 3 min with 26 as the param and under the condition that I use 20x margin, compounding my yield, and having 0 trading fee, a steady loss is generated: from $10 to $3.02.
This is quite interesting. As if I flip the signal from "Long" to "Short" and another way too, it will be a steady profit from $10 to $21.85. Hence, if I'm trying to anti-trade the real-time alert signal, the current "4 Days Result" will be good. Nevertheless, I still have to forward-test it for longer to see if it will fail eventually.
Dive into the setting of the strategy
- Margin is the leverage you use. 1 means 1x, 10 means 10x. It affects the backtest yield when you backtest
- Compound Yield button is for compound calculation, disable it to go back to normal backtesting
- Anti Strategy button is to do the opposite direction trade, when the original strat told you to "Long", you "Short" instead. Enable it to use the feature
- Param is the block size for the Renko chart
- Drawdown is just a visual tool for you in case you want to place a stop loss (represent by the semitransparent red area in the chart)
- From date Thru Date is to specify the backtest range of the strategy, This feature is turned off by default. It is controlled by the Max Backtest Timeframe which will be explain below
- Max Backtest Timeframe control the From date Thru Date function, disable it to enable the From Date Thru Date function
Param is the most important input in this strategy as it directly affects performance. It is highly recommended to backtest nearly all the possible parameters before deploying it in real trading. Some factors should be considered:
- Price of the asset (like an asset of 1 USD vs an asset of 10000 USD required different param)
- Timeframe (1-minute param is different than 1-month param)
I believe this is caused by the volatility of the selected timeframe since different timeframe has different volatility. Param should be fine-tuned before usage.
Here is the param I'm using:
BTCUSDT BINANCE 3min: 26
BTCUSDT BINANCE 5min: 28
BTCUSDT BINANCE 1day: 15
Background of the strategy:
- The strategy starts with $10 at the start of backtesting (customizable in setting)
- The trading fee is set to 0.00% which is not common for most of the popular exchanges (customizable in setting)
- The contract size is not a fixed amount, but it uses your balance to buy it at the open price. If you are using the compound mode, your balance will be your current total balance. If you are using the non-compound mode, it will just use the $10 you start with unless you change the amount you start with. If you are using a margin higher than 1, it will calculate the corresponding contract size properly based on your margin. (Only these options are allowed, you are not able to change them without changing the code)
Buyer to Seller Volume (BSV) Indicator As promised, here is the buyer to seller volume indicator!
About it/How it works:
The indicator tracks buying and selling volume. It does it simplistically but effectively simply by looking at red vs green candles and averaging out the volume of each respective candle.
It uses the SMA of buying/selling and overall volume to track buyers to sellers and also display the average volume traded over a designated period of time.
Legend:
Green lines = buying volume
Red lines = selling volume
Yellow lines = SMA over designated period of time (user input defined, default is 14 candles).
Buyers are shown in green and sellers are shown in red:
How to Use it:
Default, the indicator goes to 1 Day, 14 candle period.
My preference personally is to use to have it go to "chart" but you can view any time period on the chart that you want and designate the time period of volume you want to view independently.
This can be used for:
1. Identify trends: When buying or selling volume is above selling volume and above the SMA, you know that this persuasively supports a bullish trend. Inverse for the opposite (see below):
2. To identify fakeouts and whether there is volume backing a move:
3. To identify potential changes in trends via a cross:
Its also a great reference when you are unsure of a move. This indicator literally just saved me from wrongfully shorting the FOMC bear flag today:
Probably many other uses you can find, but these are the things I like to use it for!
As always, I have posted a tutorial video for your reference:
As always though, if you have any questions, comments or suggestions for the indicator, please share them below!
Safe trades and best of luck to all!
Ticker vs IndexI was exploring a simple idea how I can visualize the ticker performance against the underlying Index (or any other ticker) performance.
how it works:
When the line is moving up (blue zone), the ticker is performing better than the underlying index (e.g. SPX)(configurable).
When the line is moving down (red zone), the ticker is performing worse than the underlying index.
How to use it:
Use as confirmation always in conjunction with other (main) indicators, avoid "buy" when indicator is in the red zone
Also, crossing over the zero line is often an indication for an upcoming upward move
Try to different SMA length - default is 20 but 10 was often showing better results
(No financial advise, for testing purposes only)
Relative Strength against IndexThis is a very simple script to compare the performance of a single stock against its index, by adding / subtracting points for particular price action on up /down - days in the index.
For instance: If the index is down <-1ATR and the stock is not, it's +1 point. If the index is up >1ATR and the stock is up less than half, it's -1 point.
Basic idea (vs the commonly used "relative strength comparison") is that regular relative strength action over a time tells more about accumulaiton than pure price outperformance.
Formula can probably be made better - I'm open to suggestions...
x-Period ROI by USCG_VetThis Indicator shows the Return On Investment (ROI) between the current price vs the price from x Periods ago.
Real Cummulative Delta (New TV Function)Thanks to the new TradingView indicator Up/Down Volume, it is now possible to get accurate information on Agression (market buying vs market selling)
However, as they only provide the value of delta, I've made this indicator to show the cummulative value, in the form of candles.
It is great to detect divergences in the macro and in the micro scale (As in divergences in each candle and divergences in higher or lower tops or bottoms)
Hope you can make good use of it!
ILM COT Financial Table - CFTCUse this indicator on Daily Timeframe
Please refer to the below link for CFTC Financials
www.cftc.gov
This script shows the Financial COT for the respective instrument by deriving the CFTC code.
Option is provided to override the CFTC code
User can also configure the historical CFTC data view
The script calculates the Long% vs Short% for various categories (Dealers/Asset Managers/Leveraged Funds/Other Reportables) and color codes the column appropriately.
The goal of this script is to show all the financial CFTC data on a single page to digest the data better in a tabular form
Fixed the default TradingView Library which has some errors with CFTC code mapping.
For example, SPX CFTC Code #13874+ which is the most important one where big players take positions is not there in the default Library.
Volume 15m vs 1m*Up/Down Volume Indicator
This indicator plots the 15m volume (black line) on the 1m chart alongside the sum of 1m volume for 15m (blue line).
This indicator allows us to see the raw data that will generate the 15m volume before it occurs.
Next it seperates up period volume (green line) from down period volume (red line) so that we can see how much of each was responsible for the total volume.
The black line will dance for 15m at a time but if the blue line rises above the locked in section of the black line (to the left), then the next 15m volume will be higher than the last.
Also, if the green line is higher than the red, we know that up volume is driving of the increase.
*Volume Sum Indicator
This indicator allows us to track the volume trend even when volume is near zero.
This indicators sums the 15m volume for 13 periods to represent 200 minutes worth of volume.
Then it plots the sum of 1m up volume for 200 periods and the 1m down volume for 200 periods.
When green is over red, the volume is trending up.
Blue is the total 1m volume for 200 periods. It should act as a resistance line since it is unusual for 100% of volume to be up volume or down volume.
This indicator only works on the 1m chart. The higher timeframe must be set to 15m. If anyone knows how to make this indicator work on any timeframe that would be great!
Position Tool█ OVERVIEW
This script is an interactive measurement tool that can be used to evaluate or keep track of trades. Like the long and short position drawing tools, it calculates a risk reward ratio and a risk-adjusted position size from the entry, stop and take profit levels, but it also does much more:
• It can be used to configure long or short trades.
• All monetary values can be expressed in any number of currencies.
• The value of tick/pip movement (which varies with the position's size) is displayed in the currency you have selected.
• The CAGR ( Compound Annual Growth Rate ) for the trade can be displayed.
• It does live tracking of the position.
• You can configure alerts on entries and exits.
█ HOW TO USE IT
Load the indicator on an active chart (see here if you don't know how).
When you first load this script on a chart, you will enter an interactive selection mode where the script asks you to pick three points in price and time on your chart by clicking on the chart. Directions will appear in a blue box at the bottom of the screen with each click of the mouse. The first selection is the entry point for the trade you are considering, which takes into account both the time and level you choose, the next are the take profit and stop levels. Once you have selected all three points, the script will draw trade zones and labels containing the trade metrics. The script determines if the trade is a long or short from the position of the take profit and stop loss levels in relation to the entry price. If the take profit level is above the entry price, the stop must be below and vice versa, otherwise an error occurs.
You can change levels by dragging the handles that appear when you select the indicator, or by entering new values in the script's settings. The only way to re-enter interactive mode is to re-add the indicator to your chart.
Once you place the position tool on a chart, it will appear at the same levels on all symbols you use. If your scale is not set to "Scale price chart only", the position tool's levels will be taken into account when scaling the chart, which can cause the symbol's bars to be compressed. If your scale is set to "Scale price chart only", the position tool will still be there, but it will not impact the scale of the chart's bars, so you won't see it if it sits outside the symbol's price scale.
If you select the position tool on your chart and delete it, this will also delete the indicator from the chart. You will need to re-add it if you want to draw another position tool. You can add multiple instances of the indicator if you need a position tool on more than one of your charts.
█ FEATURES
Display
The position tool displays the following information for entries:
• The entry's price level with an '@' sign before it.
• Open or Closed P&L : For an open trade, the "Open P&L" displays the difference in money value between the entry level and the chart's current price.
For a closed trade, the "Closed P&L" displays the realized P&L on the trade.
• Quantity : The trade size, which takes into account the risk tolerance you set in the script's settings.
• RR : The reward to risk ratio expresses the relationship of the distance between the entry and the take profit level vs the entry and the stop level.
Example: A $100 stop with a $100 target will have a ratio of 1:1, whereas a $200 target with the same stop will have a 2:1 ratio.
• Per tick/pip : Represents the money value of a tick or pip movement.
• CAGR : The Compound Annual Growth Rate will be displayed on the main order label on trades that exceed one day in duration.
This value is calculated the same way as in our CAGR Custom Range indicator.
If the trade duration is less than one day, the metric will not be present in the display.
The stop and take profit levels display:
• Their price level with an '@' sign before it.
• Their distance from the entry in money value, percentage and ticks/pips.
• The projected end money value of the position if the level is reached. These values are calculated based on the trade size and the currency.
Currency adjustments
This indicator modifies the trade label's colors and values based on the final Profit and Loss (P&L), which considers the dynamic exchange rate between base and conversion currencies in its calculations when the conversion currency is a specified value other than the default. Depending on the cross rate between the base and account currencies, this process can yield a negative P&L on an otherwise successful simulated trade.
For instance, if your account is in currency XYZ, you might buy 10 Apple shares at $150 each, with the XYZ to USD exchange rate being 2:1. This purchase would cost you 3000 units of XYZ. Suppose that later on, the shares appreciate to $170 each, and you decide to sell. One might expect this trade to result in profit. However, if the exchange rate has now equalized to 1:1, the return on selling the shares, calculated in XYZ, would only be 1700 units, resulting in a loss of 1300 units XYZ.
The indicator will mark the P&L and the target labels in red in such cases, regardless of whether the market price reached the profit target, as the trade produced a net loss due to reduced funds after currency conversion. Conversely, an otherwise unsuccessful position can result in a net profit in the account currency due to conversion rate fluctuations. The final losses or gains appear in the label metrics, and the corresponding color coding reflects the trade's success or failure.
Settings
The settings in the "Trade sizing" section are used to calculate the position size and the monetary value of trades. Two types of risk can be chosen from the menu; a percentage based risk calculation, or a fixed money value. The risk is used to calculate the quantity of units to purchase to achieve that level of risk exposure. Example: An account size of $1000 and 10% risk will have a projected end amount of $900 if the stop loss is hit. The quantity is a product of this relationship; a projected number of units to allow for the equivalent of $100 of risk exposure over the change in price from the entry to the stop value.
The "Trade levels" allow you to manually set the entry, take profit and stop levels of an existing position tool on your chart.
You can control the appearance of the tool and the values it displays in the settings following these first two sections.
Alerts
Three alerts that will trigger when you configure an alert on this indicator. The first will send an alert when the entry price is breached by price action if that price has not already been breached in the previous price history. This is dependant on the entry location you select when placing the indicator on the chart. The other two alerts will trigger when either the stop loss or the take profit level is breached to signal that a trade exit has occurred.
█ NOTES FOR Pine Script™ CODERS
• Interactive inputs are implemented for input.time() and input.price() . These specialized input functions allow users to interact with a script.
You can create one interactive input for both time and price values by using the same `inline` argument in a pair of input.time() and input.price() function calls.
• We use the `cagr()` function from our ta library.
• The script uses the runtime.error() function to throw an error if the stop and limit prices are not placed on opposing sides of the entry price.
• We use the `currency` parameter in a request.security() call to convert currencies.
Look first. Then leap.
Volume Buoyancy [LucF]█ OVERVIEW
This indicator uses simple analysis of past volume to determine how well it supports recent market activity. What I call Volume buoyancy measures the strength and direction of that support.
█ CONCEPTS
Buoyancy
In physics, buoyancy is the force described in Archemedes' principle :
Any object, wholly or partially immersed in a fluid, is buoyed up by a force equal to the weight of the fluid displaced by the object.
I use the term loosely in this indicator's context, as "Volume buoyancy" here can be directed either up or down, indicating that past volume displays a bullish or bearish bias.
The calculation of buoyancy begins from a target quantity of volume summed over n bars. We then search chart bars backward, adding the volume of up and down bars in two different slots until each slot reaches the target. We then calculate two average distances: one each for the up and down bars whose volume was summed to reach the target. These average distances are then subtracted and the difference is divided by the farthest distance we had to go to find the target in either up or down bars. The last part of the calculations looks like this:
(avgDistanceDn - avgDistanceUp) / barsAnalyzed
When the average distance of down bars is greater than that of up bars, buoyancy will be positive, indicating that past activity favors the upside and vice versa. The force's strength, which in the case of actual buoyancy is the weight of the displaced fluid, in our case is measured by the size of the gap between the average distance of up vs down bars in relation to the farthest distance we had to go in the past. Buoyancy is always between +1 and -1, with values higher/lower than 0.3/-0.3 typically being unsustainable.
█ HOW TO USE THE INDICATOR
Load the indicator on an active chart (see here if you don't know how).
The default configuration displays:
• Buoyancy as a monochrome gray line.
• A channel between buoyancy and its MA, colored in one of four colors. The MA is not plotted by default, but you can see where it is with the channel.
The default settings use an Arnaud Legoux moving average over 20 bars.
• A fill between the MA and the centerline, which can be one of two colors.
• A high level at 0.30, a low level at -0.30 and the centerline at zero.
The default target is the sum of volume in the last 20 bars.
█ FEATURES
The indicator's settings allow you to define:
• A higher timeframe you want the calculations to be made on. Note that you should then ensure your chart's timeframe is always lower than the higher timeframe you specified,
as calculating on a timeframe lower than the chart's does not make much sense because the indicator is then displaying only the value of the last intrabar in the chart bar.
• The number of bars for which to add volume to obtain the target value that will be searched for in past up and down bars.
• The display of the buoyancy and MA lines, the channel between them and the fill between the MA line and the centerline.
• The type and length of the MA.
Using the "Style" tab of the indicator's settings, you can change the type and width of the lines, and the level values.
█ INTERPRETATION
Buoyancy shares the properties and shortcomings of many oscillators:
• It tends to be noisy, which is why the MA line can be helpful.
• The safest way to use it may be as a rough sentiment indicator, i.e., by paying more attention to its bull/bear state above/below the centerline.
• The more intrepid traders will want to use the channel between the main line and the MA, as it will provide earlier information than main line crosses of the centerline.
Decreasing the number of bars for which the source is added to calculate the target value will increase the noise level, somewhat like decreasing an MA's length would, but keep in mind that the number of bars is not the length of an MA.
█ LIMITATIONS
Under some circumstances, the indicator will display zero values because it cannot find the target in past bars. This will happen at the beginning of the dataset when not enough past bars have elapsed, or in the rarer cases anywhere in the dataset, when the target cannot be found in the `MAX_BARS_BACK` number of bars defined in the first line of the indicator's code (the default is 1000).
The calculations use a very primitive interpretation of volume similar to that of OBV , where all the volume of a bar is attributed to either the up or down slot. The indicator nonetheless produces results I think can be useful because we are not so much calculating precise buying/selling pressure as trying to build a big picture of where past activity over many bars appears to be taking price.
Volume data is notoriously high-variance; large values that come into or exit the calculations' scope can produce sudden variations in results, somewhat like the drop-off effect in moving averages.
█ NOTES
• The script can be used with any chart timeframe, including seconds.
• Historical values will always produce the same results. In real time, values will change until the bar closes.
Distance from Avg + avgsThis indicator plots the difference between the close and a selected moving average.
It then can apply 1-3 moving averages of the indicator itself.
One way you might use it is, say, you have a 50ma on price on your chart.
You set the Distance from Avg to use the 50ma on price to compare to close.
Then, you add a 50ma of the indicator itself. You can now compare how price
relates to its 50ma vs how the indicator relates to its 50ma. If they confirm
each other, good to go. When they dont compare (divergence), then this may
be suggesting a change. As the distance from avg is essentially a momentum
indicator, then you're comparing momentum (and its own avg) to price and
its same avg.
You could add a shorter term avg on the indicator (now 2 avgs), and look for crosses, etc.
In the settings box, the first average is the average that you want to compare the close to.
The next 3 are averages for the indicator itself.
You can experiment with combinations, and perhaps find something of value for you.
Candlestick Pattern Criteria and Analysis Indicator█ OVERVIEW
Define, then locate the presence of a candle that fits a specific criteria. Run a basic calculation on what happens after such a candle occurs.
Here, I’m not giving you an edge, but I’m giving you a clear way to find one.
IMPORTANT NOTE: PLEASE READ:
THE INDICATOR WILL ALWAYS INITIALLY LOAD WITH A RUNTIME ERROR. WHEN INITIALLY LOADED THERE NO CRITERIA SELECTED.
If you do not select a criteria or run a search for a criteria that doesn’t exist, you will get a runtime error. If you want to force the chart to load anyway, enable the debug panel at the bottom of the settings menu.
Who this is for:
- People who want to engage in TradingView for tedious and challenging data analysis related to candlestick measurement and occurrence rate and signal bar relationships with subsequent bars. People who don’t know but want to figure out what a strong bullish bar or a strong bearish bar is.
Who this is not for:
- People who want to be told by an indicator what is good or bad or buy or sell. Also, not for people that don’t have any clear idea on what they think is a strong bullish bar or a strong bearish bar and aren’t willing to put in the work.
Recommendation: Use on the candle resolution that accurately reflects your typical holding period. If you typically hold a trade for 3 weeks, use 3W candles. If you hold a trade for 3 minutes, use 3m candles.
Tldr; Read the tool tips and everything above this line. Let me know any issues that arise or questions you have.
█ CONCEPTS
Many trading styles indicate that a certain candle construct implies a bearish or bullish future for price. That said, it is also common to add to that idea that the context matters. Of course, this is how you end up with all manner of candlestick patterns accounting for thousands of pages of literature. No matter the context though, we can distill a discretionary trader's decision to take a trade based on one very basic premise: “A trader decides to take a trade on the basis of the rightmost candle's construction and what he/she believes that candle construct implies about the future price.” This indicator vets that trader’s theory in the most basic way possible. It finds the instances of any candle construction and takes a look at what happens on the next bar. This current bar is our “Signal Bar.”
█ GUIDE
I said that we vet the theory in the most basic way possible. But, in truth, this indicator is very complex as a result of there being thousands of ways to define a ‘strong’ candle. And you get to define things on a very granular level with this indicator.
Features:
1. Candle Highlighting
When the user’s criteria is met, the candle is highlighted on the chart.
The following candle is highlighted based on whether it breaks out, breaks down, or is an inside bar.
2. User-Defined Criteria
Criteria that you define include:
Candle Type: Bull bars, Bear bars, or both
Candle Attributes
Average Size based on Standard Deviation or Average of all potential bars in price history
Search within a specific price range
Search within a specific time range
Clarify time range using defined sessions and with or without weekends
3. Strike Lines on Candle
Often you want to know how price reacts when it gets back to a certain candle. Also it might be true that candle types cluster in a price region. This can be identified visually by adding lines that extend right on candles that fit the criteria.
4. User-Defined Context
Labeled “Alternative Criteria,” this facet of the script allows the user to take the context provided from another indicator and import it into the indicator to use as a overriding criteria. To account for the fact that the external indicator must be imported as a float value, true (criteria of external indicator is met) must be imported as 1 and false (criteria of external indicator is not met) as 0. Basically a binary Boolean. This can be used to create context, such as in the case of a traditional fractal, or can be used to pair with other signals.
If you know how to code in Pinescript, you can save a copy and simply add your own code to the section indicated in the code and set your bull and bear variables accordingly and the code should compile just fine with no further editing needed.
Included with the script to maximize out-of-the-box functionality, there is preloaded as alternative criteria a code snippet. The criteria is met on the bull side when the current candle close breaks out above the prior candle high. The bear criteria is met when the close breaks below the prior candle. When Alternate Criteria is run by itself, this is the only criteria set and bars are highlighted when it is true. You can qualify these candles by adding additional attributes that you think would fit well.
Using Alternative Criteria, you are essentially setting a filter for the rest of the criteria.
5. Extensive Read Out in the Data Window (right side bar pop out window).
As you can see in the thumbnail, there is pasted a copy of the Data Window Dialogue. I am doubtful I can get the thumbnail to load up perfectly aligned. Its hard to get all these data points in here. It may be better suited for a table at this point. Let me know what you think.
The primary, but not exclusive, purpose of what is in the Data Window is to talk about how often your criteria happens and what happens on the next bar. There are a lot of pieces to this.
Red = Values pertaining to the size of the current bar only
Blue = Values pertaining or related to the total number of signals
Green = Values pertaining to the signal bars themselves, including their measurements
Purple = Values pertaining to bullish bars that happen after the signal bar
Fuchsia = Values pertaining to bearish bars that happen after the signal bar
Lime = Last four rows which are your percentage occurrence vs total signals percentages
The best way I can explain how to understand parts you don’t understand otherwise in the data window is search the title of the row in the code using ‘ctrl+f’ and look at it and see if it makes more sense.
█ [b}Available Candle Attributes
Candle attributes can be used in any combination. They include:
[*}Bodies
[*}High/Low Range
[*}Upper Wick
[*}Lower Wick
[*}Average Size
[*}Alternative Criteria
Criteria will evaluate each attribute independently. If none is set for a particular attribute it is bypassed.
Criteria Quantity can be in Ticks, Points, or Percentage. For percentage keep in mind if using anything involving the candle range will not work well with percentage.
Criteria Operators are “Greater Than,” “Less Than,” and “Threshold.” Threshold means within a range of two numbers.
█ Problems with this methodology and opportunities for future development:
#1 This kind of work is hard.
If you know what you’re doing you might be able to find success changing out the inputs for loops and logging results in arrays or matrices, but to manually go through and test various criteria is a lot of work. However, it is rewarding. At the time of publication in early Oct 2022, you will quickly find that you get MUCH more follow through on bear bars than bull bars. That should be obvious because we’re in the middle of a bear market, but you can still work with the parameters and contextual inputs to determine what maximizes your probability. I’ve found configurations that yield 70% probability across the full series of bars. That’s an edge. That means that 70% of the time, when this criteria is met, the next bar puts you in profit.
#2 The script is VERY heavy.
Takes an eternity to load. But, give it a break, it’s doing a heck of a lot! There is 10 unique arrays in here and a loop that is a bit heavy but gives us the debug window.
#3 If you don’t have a clear idea its hard to know where to start.
There are a lot of levers to pull on in this script. Knowing which ones are useful and meaningful is very challenging. Combine that with long load times… its not great.
#4 Your brain is the only thing that can optimize your results because the criteria come from your mind.
Machine learning would be much more useful here, but for now, you are the machine. Learn.
#5 You can’t save your settings.
So, when you find a good combo, you’ll have to write it down elsewhere for future reference. It would be nice if we could save templates on custom indicators like we can on some of the built in drawing tools, but I’ve had no success in that. So, I recommend screenshotting your settings and saving them in Notion.so or some other solid record keeping database. Then you can go back and retrieve those settings.
#6 no way to export these results into conditions that can be copy/pasted into another script.
Copy/Paste of labels or tables would be the best feature ever at this point. Because you could take the criteria and put it in a label, copy it and drop it into another strategy script or something. But… men can dream.
█ Opportunities to PineCoders Learn:
1. In this script I’m importing libraries, showing some of my libraries functionality. Hopefully that gives you some ideas on how to use them too.
The price displacement library (which I love!)
Creative and conventional ways of using debug()
how to display arrays and matrices on charts
I didn’t call in the library that holds the backtesting function. But, also demonstrating, you can always pull the library up and just copy/paste the function out of there and into your script. That’s fine to do a lot of the time.
2. I am using REALLY complicated logic in this script (at least for me). I included extensive descriptions of this ? : logic in the text of the script. I also did my best to bracket () my logic groups to demonstrate how they fit together, both for you and my future self.
3. The breakout, built-in, “alternative criteria” is actually a small bit of genius built in there if you want to take the time to understand that block of code and think about some of the larger implications of the method deployed.
As always, a big thank you to TradingView and the Pinescript community, the Pinescript pros who have mentored me, and all of you who I am privileged to help in their Pinescripting journey.
"Those who stay will become champions" - Bo Schembechler















