A Physicist's Bitcoin Trading Strategy
1. Summary
This strategy and indicator were designed for, and intended to be used to guide trading activity in, crypto markets, particularly Bitcoin. This strategy uses a custom indicator to determine the state of the market (bullish vs bearish) and allocates funds accordingly. This particular variation also uses the custom indicator to determine when the market is significantly oversold and takes advantage of the opportunity (it buys the dip). The specific mathematical formula that is used to calculate the underlying custom indicator allows the trader to get in before, or near the start of, the bull trends, and get out before the bear trends. The strategy's properties dialogue box includes many display settings and parameters for optimization and customization to meet the user's needs and risk tolerance; this is both a tool to gauge the market, as well as a trading strategy to beat the market. Guidelines for parameter settings are provided. A sample dataset of backtest results using randomized parameters, both within the guidelines and outside the guidelines, is available upon request; notably, all trials outperformed the intended market (Bitcoin) during the 9-year backtest period.
2. The Indicator and Strategy
2.1. The Indicator
A mathematical formula is used to determine the state of the market according to three different "frequencies", which, for lack of better terminology, are called fast, moderate, and slow indicators. There are two parameters for each of the three indicators, one called response time and the other is a simple look-back period. Finally, four exponential moving averages are used to smooth each indicator. In total, there are 18 different levels of bullishness/bearishness. The purpose of using three indicators, rather than one, is to capture the full character of the market, from a macro/global scope down to a micro/local scope. I.e. the full indicator looks at the forest, the trees, and the branches, simultaneously.
2.2. The Strategy
The trend-trading strategy is very simple; there are only four types of orders: 1) The entire position (e.g. all bitcoins held) is sold (if it hasn't already been totally sold) when the indicator becomes maximally bearish, 2) When the movement of the indicator is in the bullish direction, the strategy dollar-cost-average (DCA) buys at an exponentially decreasing rate, i.e. it buys more in the early stages of the transition from bear->bull. 3) When the indicator is maximally bullish, it goes "all-in" † (if it hasn't already gone all-in), i.e. it converts all available cash into the underlying security/token. And, 4) when the movement of the indicator is in the bearish direction, the strategy DCA sells (again, exponentially decreasing) to get out quickly. No leverage is used in this strategy. The strategy never takes a short position.
A second "buy-the-dip" strategy is also used, and it is the synergy of these two strategies, together, that is responsible for most of the outperformance in the backtests (this strategy handily beats the non-dip-buying variation in backtests). To do this, the custom indicator is used to determine when the market is significantly oversold on a short-term basis, and the strategy responds by DCA buying. However, unlike the DCA buying during bull/bear transitions, the buy-the-dip DCA buying increases with time. Specifically, within each candle that is short-term oversold, the strategy converts 10% x # of candles since becoming oversold (up to a max of 6 candles) of available cash into the underlying security/token. I.e. the first buy is 10% of available cash and occurs in the first oversold candle, the second buy is 20% of available cash and occurs in the second oversold candle, etc. up to six consecutive oversold candles. Lastly, to ensure no conflicting orders and no leverage (buying more than what is affordable with the available cash in the fund), buy-the-dip orders take precedence over the trend-trading orders enumerated in the previous paragraph.
† Technically the strategy goes 99.5% in when it goes "all-in". This is to ensure no leverage is used given that there may be a commission of 0.5%.
3. Backtest Results
Backtest results demonstrate significant outperformance over buy-and-hold. The default parameters of the strategy/indicator have been set by the author to achieve maximum (or, close to maximum) outperformance on backtests executed on the BTCUSD (Bitcoin) chart. However, significant outperformance over buy-and-hold is still easily achievable using non-default parameters. Basically, as long as the parameters are set to adequately capture the full character of the market, significant outperformance on backtests is achievable and is quite easy. In fact, after some experimentation, it seems as if underperformance hardly achievable and requires deliberately setting the parameters illogically (e.g. setting one parameter of the slow indicator faster than the fast indicator). In the interest of providing a quality product to the user, suggestions and guidelines for parameter settings are provided in section (6). Finally, some metrics of the strategy's outperformance on the BTCUSD chart are listed below, both for the default (optimal) parameters as well as for a random sample of parameter settings that adhere to the guidelines set forth in section (6).
Using the default parameters, relative to buy-and-hold strategy, backtested from August 2011 to August 2020,
Total cumulative outperformance (total return of strategy minus total return of buy-n-hold): 13,000,000%.
Rolling 1-year outperformance: mean 318%, median 84%, 1st quartile 55%, 3rd quartile, 430%.
Rolling 1-month outperformance: mean 2.8% (annualized, 39%), median -2.1%, 1st quartile -7.7%, 3rd quartile 13.2%, 10th percentile -13.9%, 90th percentile 24.5%.
Using the default parameters, relative to buy-and-hold strategy, during specific periods,
Cumulative outperformance during the past year (August 2019-August 2020): 37%.
12/17/2016 - 12/17/2017 (2017 bull market) absolute performance of 2563% vs buy-n-hold absolute performance of 2385%
11/29/2012 - 11/29/2013 (2013 bull market) absolute performance of 14033% vs buy-n-hold absolute performance of 9247%
Using a random sample (n=20) of combinations of parameter settings that adhere to the guidelines outlined in section (6), relative to buy-and-hold strategy, backtested from August 2011 to August 2020,
Average total cumulative outperformance, from August 2011 to August 2020: 2,000,000%.
Median total cumulative outperformance, from August 2011 to August 2020: 1,000,000%.
4. Limitations
This strategy is basically a DCA-swing trading strategy, and as such it is intended to be used on the 6-hr chart. Similar performance is expected on daily chart, 12-hr chart, and 4-hr chart, but performance is likely to be limited when used on charts of shorter time-frames. However, due to the flexibility afforded by the large quantity of parameters, as well as the tools included, it may be possible to tweak the indicator settings to get some outperformance on smaller time-frames. Admittedly, the author did not spend much time investigating this.
As is apparent in the backtests, this strategy has very limited absolute performance during large bear markets, such as Bitcoin's 2018 bear market. As described, it does outperform the underlying security by a large amount in backtests, but a large absolute return is unlikely during large and prolonged declines (unless, of course, your unit of account is the underlying token, in which case an outperformance of the underlying is, by definition, an absolute positive return).
This strategy is likely to underperform if used to trade ETFs of broad equity markets. This strategy may produce a small amount of outperformance when used to trade precious metals ETFs, given that the parameters are set optimally by the user.
5. Use
The default parameters have already been set for highly optimal backtest results on the chart of BTCUSD (Bitcoin / US Dollar BITSTAMP), (although, a different combination of parameter settings may yet produce better results). Still, there is a great number of combinations that can be explored, so the user is free to tweak the settings to meet his/her/their needs. Some display options are provided to give the user a visual aid while tweaking the parameters. These include a blue/red background display of the custom indicator, a calibration system, and options to display information about the backtest results. The background pattern represents the various levels of bullishness/bearishness as semi-transparent layers of blue and red, with blue corresponding with bullish and red corresponding with bearish.
The parameters that affect the indicator are the response times, the periods, and some EMA lengths. The parameters that affect the quantity of contracts (tokens/shares/bitcoins/etc) to be bought/sold are the transitionary buy/sell rates. There are also two sets of date parameters.
The response time and period parameters are direct inputs into the underlying math formula and are used to create the base-level indicators (fast, moderate, and slow). The response times control the speed of each of the three indicators (shorter is fast, longer is slower) and the period controls how much historical data is used in computation. Information about how these should be set are included in section (6). Another set of parameters control EMA look-back periods that serve to smooth the base-level indicators. Increasing these EMA lengths makes the overall indicator less sensitive to short-term price action, while reducing them does the opposite. The effect of these parameters are obvious when the background blue/red visualization is displayed. Another EMA length is an EMA for the entire indicator. Increasing this parameter reduces the responsiveness of the trading strategy (buy/sell orders) to quick/small changes of the overall level of the indicator, so as to avoid unnecessary buying and selling in times of relatively small and balanced price perturbations. Note, changing this parameter does not have an effect on the overall indicator itself, and thus will not affect the blue/red background representation.
The transitionary buy/sell rates control the portion of the available asset to be converted to the other. E.g. if the buy rate is set to 90%, then 90% of the available cash will be used to buy contracts/tokens/shares/bitcoins during transitions bullish transitions, e.g. if the available cash at the start of the bullish transition is $10,000 and the parameter is set to 90%, then $9,000 will be used to buy in the first candle during which the transition is bullish, then $900 will be used to buy in the second candle, then $90 in the third candle, etc.
There are two dates that can be set. The first is the date at which the strategy goes all in. This is included because the buy-and-hold strategy is the benchmark against which this strategy is compared, so setting this date to some time before the strategy starts to make trades will show, very clearly, the outperformance of the strategy, especially when the initial capital parameter in the Properties tab is equal to the price of one unit of the underlying security on the date that is set, e.g. all-in on Bitcoin on 8/20/2011 and set initial capital to the BTCUSD price on that date, which was $11.70. The second date is a date to control when the strategy can begin to place trades.
Finally (actually, firstly in the Inputs dialogue box), a set of checkbox inputs controls whether or not the backtest is on or off, and what is displayed. The display options are the blue/red (bull/bear) background layers †, a set of calibrators, a plot of the total strategy equity, a plot of the cash position of the strategy, a plot of the size of the position of the strategy in contracts/shares/units (labeled as BTC position), and a plot of the rolling 1-year performances of buy-and-hold and the strategy.
About the calibrators: The calibration system allows the user to quickly assess and calibrate how well the indicator... indicates. Quite simply, the system has two parts: one plot that is the cumulative sum of the product of the indicator level and the change in the underlying price, i.e. sum of ‡, over all candles. The second part is a similar plot that is reduced according to the quickness with which the indicator changes, i.e. sum of . Maximizing the first plot at the expense of the second will cause the indicator to match the price action very well but therefore it will change very rapidly, from bullish to bearish, which is visualized by a background pattern that changes frequently from blue to red to blue. Ignoring the first plot and maximizing the second will also cause the indicator to more closely match the price action, but the transitions will be slower and less frequent, and will therefore focus on identifying the major trends of the market.
† The blue/red background has many layers and will make the chart lag as the user interacts with it.
‡ Bearish states are coded as negative quantities, so a bearish state x negative price action = positive number, and bullish state x positive price action = positive number.
6. Suggestions and Guidelines
As described in section (2.1), the indicator used in this strategy was designed to determine the state of the market--whether it is bullish or bearish--as well as the change in the state of the market--whether it is increasingly bullish or increasingly bearish. As such, the following suggestions are provided based on the principles of the indicator's design,
1. Response Time 1 should be less than (<) Response Time 2 which should be < Response Time 3
2. Fast Period < Moderate Period < Slow Period
3. In terms of the period of a full market cycle (e.g. ~ 4 years for BTC, ~ 5.5 years for equities, etc.), response times 1, 2, and 3 should be about 0.3% to 1%, 3% to 20%, and 20% to 50% of a full market cycle period, respectively. However, this is a loose guideline.
4. In terms of the period of a full market cycle, periods 1, 2, and 3 should all be about 25% to 75% of a full cycle period. Again, this is a loose guideline.
4. EMA 1 Length < EMA 2 Length < EMA 3 Length < EMA 4 Length
5. EMA Lengths 1, 2, 3, and 4 should be limited to about 1/4th the length of a full market cycle. Note, EMA lengths are measured in bars (candles), not in days. 1/4th of 1000 days is 250 days which is 250 x 4 = 1000 6-hr candles.
The following guidelines are provided based on results of over 100 backtests on the BTCUSD chart using randomized parameters †,
1. 9 days < Response Time 1 < 14 days
2. 5 days < EMA 1 Length < 100 days
3. 600 days < EMA 4 length < 1000 days
4. The ratio of the EMA range (EMA 4 len - EMA 1 len) to the sum of EMA lengths (EMA 1 len + EMA 2 len + ...) be greater than 0.4
5. The ratio of the sum of EMA 1 and EMA 2 lengths to the sum of EMA 3 and EMA 4 lengths be less than 0.3.
A suggestion from the author: Given that backtests show a high degree of outperformance using the guidelines enumerated above, a good trading strategy may be to not rely on any one particular combination of parameters. Rather, a random set of combinations of parameter settings that adhere to the guidelines above could be used to create multiple instances of the strategy in a TradingView chart, each of which varies by a small amount due to their unique parameter settings. The proportion of the entire set of strategy instances that agree about the current state of the market could indicate to the trader the level of confidence of the indicator, in aggregate.
† A sample dataset of backtest results using randomized parameters is available upon request; notably, all trials outperformed the intended market (Bitcoin).
7. General Remarks About the Indicator
Other than some exponential moving averages, no traditional technical indicators or technical analysis tools are employed in this strategy. No MACD, no RSI, no CMF, no Bollinger bands, parabolic SARs, Ichimoku clouds, hoosawatsits, XYZs, ABCs, whatarethese. No tea leaves can be found in this strategy, only mathematics. It is in the nature of the underlying math formula, from which the indicator is produced, to quickly identify trend changes.
8. Remarks About Expectations of Future Results and About Backtesting
8.1. In General
As it's been stated in many prospectuses and marketing literature, "past performance is no guarantee of future results." Backtest results are retrospective, and hindsight is 20/20. Therefore, no guarantee can, nor should, be expressed by me or anybody else who is selling a financial product (unless you have a money printer, like the Federal Reserve does).
8.2. Regarding This Strategy
No guarantee of future results using this strategy is expressed by the author, not now nor at any time in the future.
With that written, the author is free to express his own expectations and opinions based on his intimate knowledge of how the indicator works, and the author will take that liberty by writing the following: As described in section (7), this trading strategy does not include any traditional technical indicators or TA tools (other than smoothing EMAs). Instead, this strategy is based on a principle that does not change, it employs a complex indicator that is based on a math formula that does not change, and it places trades based on five simple rules that do not change. And, as described in section (2.1), the indicator is designed to capture the full character of the market, from a macro/global scope down to a micro/local scope. Additionally, as described in section (3), outperformance of the market for which this strategy was intended during backtesting does not depend on luckily setting the parameters "just right." In fact, all random combinations of parameter settings that followed the guidelines outperformed the intended market in backtests. Additionally, no parameters are included within the underlying math formula from which the indicator is produced; it is not as if the formula contains a "5" and future outperformance would depend on that "5" being a "6" instead. And, again as described, it is in the nature of the formula to quickly identify trend changes. Therefore, it is the opinion of the author that the outperformance of this strategy in backtesting is directly attributable to the fundamental nature of the math formula from which the indicator is produced. As such, it is also the opinion of the author that continued outperformance by using this strategy, applied to the crypto (Bitcoin) market, is likely, given that the parameter settings are set reasonably and in accordance with the guidelines. The author does not, however, expect future outperformance of this strategy to match or exceed the outperformance observed in backtests using the default parameters, i.e. it probably won't outperform by anything close to 13,000,000% during the next 9 years.
Additionally, based on the rolling 1-month outperformance data listed in section (3), expectations of short-term outperformance should be kept low; the median 1-month outperformance was -2%, so it's basically a 50/50 chance that any significant outperformance is seen in any given month. The true strength of this strategy is to be out of the market during large, sharp declines and capitalizing on the opportunities presented at the bottom of those declines by buying the dip. Given that such price action does not happen every month, outperformance in the initial months of use is approximately as likely as underperformance.
9. Access
Those who are interested in using this strategy may send a personal message to inquire about how to gain access. Those who are interested in acquiring the sample dataset of backtest results may send a personal message to request a copy of the data.
In den Scripts nach "the strat" suchen
Combo Backtest 123 Reversal & EMA & MA Crossover This is combo strategies for get a cumulative signal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
The Moving Average Crossover trading strategy is possibly the most popular
trading strategy in the world of trading. First of them were written in the
middle of XX century, when commodities trading strategies became popular.
This strategy is a good example of so-called traditional strategies.
Traditional strategies are always long or short. That means they are never
out of the market. The concept of having a strategy that is always long or
short may be scary, particularly in today’s market where you don’t know what
is going to happen as far as risk on any one market. But a lot of traders
believe that the concept is still valid, especially for those of traders who
do their own research or their own discretionary trading.
This version uses crossover of moving average and its exponential moving average.
WARNING:
- For purpose educate only
- This script to change bars colors.
Psychological for Strategy testingHello everyone
I've made Psychological to be able to adjust some variables for strategy.
When you adjust each parameter of the settings, the strategy tester also comes to work in conjunction with.
so please find your best parameter! ^^
I'm not very good at English, so i really want to write how to use Pychological's entry and exit too ,but please look up psychological entries as they are well known.
Notice:
There may be some programming mistakes, so please take your own responsibility when actually investing.
XPloRR S&P500 Stock Market Crash Detection Strategy v2XPloRR S&P500 Stock Market Crash Detection Strategy v2
Long-Term Trailing-Stop strategy detecting S&P500 Stock Market Crashes/Corrections and showing Volatility as warning signal for upcoming crashes
Detecting or avoiding stock market crashes seems to be the 'Holy Grail' of strategies.
Since none of the strategies that I tested can beat the long term Buy&Hold strategy, the purpose was to detect a stock market crash on the S&P500 and step out in time to minimize losses and beat the Buy&Hold strategy. So beat the Buy&Hold strategy with around 10 trades. 100% capitalize sold trade into new trade.
With the default parameters the strategy generates 10262% profit (starting at 01/01/1962 until release date), with 10 closed trades, 100% profitable, while the Buy&Hold strategy only generates 3633% profit, so this strategy beats the Buy&Hold strategy by 2.82 times !
Also the strategy detects all major S&P500 stock market crashes and corrections since 1962 depending on the Trailing Stop Smoothness parameter, and steps out in time to cut losses and steps in again after the bottom has been reached. The 5 major crashes/corrections of 1987, 1990, 2001, 2008 and 2010 were successfully detected with the default parameters.
The script was first released on November 03 2019 and detected the Corona Crash on March 04 2020 with a Volatility crash-alert and a Sell crash-alert.
I have also created an Alerter Study Script based on the engine of this script, which generates Buy, Sell and Volatility signals.
If you are interested in this Alerter version script, please drop me a mail.
The script shows a lot of graphical information:
the Close value is shown in light-green. When the Close value is temporarily lower than the Buy value, the Close value is shown in light-red. This way it is possible to evaluate the virtual losses during the current trade.
the Trailing Stop value is shown in dark-green. When the Sell value is lower than the Buy value, the last color of the trade will be red (best viewed when zoomed)
the EMA and SMA values for both Buy and Sell signals are shown as colored graphs
the Buy signals are labeled in blue and the Sell signals are labeled in purple
the Volatility is shown below in green and red. The Alert Threshold (red) is default set to 2 (see Volatility Threshold parameter below)
How to use this Strategy?
Select the SPX (S&P500) graph and add this script to the graph.
Look in the strategy tester overview to optimize the values Percent Profitable and Net Profit (using the strategy settings icon, you can increase/decrease the parameters), then keep using these parameters for future Buy/Sell signals on the S&P500.
More trades don't necessarily generate more overall profit. It is important to detect only the major crashes and avoid closing trades on the smaller corrections. Bearing the smaller corrections generates a higher profit.
Watch out for the Volatility Alerts generated at the bottom (red). The Threshold can by changed by the Volatility Threshold parameter (default=2% ATR). In almost all crashes/corrections there is an alert ahead of the crash.
Although the signal doesn't predict the exact timing of the crash/correction, it is a clear warning signal that bearish times are ahead!
The correction in December 2018 was not a major crash but there was already a red Volatility warning alert. If the Volatility Alert repeats the next weeks/months, chances are higher that a bigger crash or correction is near. As can be seen in the graphic, the deeper the crash is, the higher and wider the red Volatility signal goes. So keep an eye on the red flag!
Here are the parameters:
Fast MA Buy: buy trigger when Fast MA Buy crosses over the Slow MA Buy value (use values between 10-20)
Slow MA Buy: buy trigger when Fast MA Buy crosses over the Slow MA Buy value (use values between 21-50)
Minimum Buy Strength: minimum upward trend value of the Fast MA Buy value (directional coefficient)(use values between 10-100)
Fast MA Sell: sell trigger when Fast MA Sell crosses under the Slow MA Sell value (use values between 10-20)
Slow MA Sell: sell trigger when Fast MA Sell crosses under the Slow MA Sell value (use values between 21-50)
Minimum Sell Strength: minimum downward trend value of the Fast MA Sell value (directional coefficient)(use values between 10-100)
Trailing Stop ATR: trailing stop % distance from the smoothed Close value (use values between 2-20)
Trailing Stop Smoothness: MA value for smoothing out the Trailing Stop close value
Buy On Start Date: force Buy on start date even without Buy signal (default: true)
Sell On End Date: force Sell on end date even without Sell signal (default: true)
Volatility EMA Period: MA value of the Volatility value (default 15)
Volatility Threshold: Threshold value to change volatility graph to red (default 2)
Volatility Graph Scaler: Scaling of the volatility graph (default 5)
Important : optimizing and using these parameters is no guarantee for future winning trades!
Bollinger Bands BAT/USDT 30minThis is ready to use Bollinger Band strategy that was backtested on the data from the previous year 2019.
The main purpose of this strategy is to determine trades with the highest probability of success, to keep a consistent portfolio growth throughout the year. This strategy cherry-picks the most reliable points of entry on a particular timeframe (30m) for the particular asset (BAT/USDT). The backtest shows a great result of 78.95% profitability with the maximum drawdown of -4.02%. This is one of my strategies out of the group of automated strategies that helps to grow my portfolio steadily.
You are welcome to change inputs and backtest the following strategy. Any comments or ideas would be appreciated.
If you are happy with existing results and would like to automate the strategy, which can be done through alerts, then you need to convert it to study and add alerts in the code.
Let me know if you are interested in that and I will create a study based on this strategy.
Strategy VS Buy & HoldSUMMARY:
A strategy wrapper that makes a detailed and visual comparison between a given strategy and the buy & hold returns of the traded security.
DESCRIPTION:
TradingView has a "Buy & Hold Return" metric in the strategy tester that is often enough to assess how our strategy compares to a simple buy hold. However, one may want more information on how and when your strategy beats or is beaten by a simple buy & hold strategy. This script aims to show such detail by providing a more comprehensive metrics and charting the profit/loss of the given strategy against buy & hold.
As seen in the script, it plots/draws 4 elements:
1) Strategy P/L: strategy net profit + strategy open profit
2) Buy & Hold P/L: unrealized return
3) Difference: Strategy P/L - Buy & Hold P/L
4) Strategy vs Buy Hold Stats
> Percent of bars strategy P/L is above Buy & Hold
> Percent of bars strategy P/L is below Buy & Hold
> All Time Average Difference
ADJUSTABLE PARAMETERS:
All labels/panels can be disabled by unchecking these two options:
>bnh_info_panel = input(true, title='Enable Info Panel')
>bnh_indicator_panel = input(true, title='Enable Indicator Panel')
Comparison Date Range can be changed to better isolate specific areas:
>From Year, From Month, From Day
default: 1970 01 01
>To Year, To Month, To Day
default: 2050 12 31
Default settings basically covers all historical data.
HOW TO USE:
The default script contains a simple 50-200 SMA cross strategy, just delete and replace it. Those are everything between these lines:
/////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////STRATEGY SCRIPT START//////////////////////////////////
(STRATEGY SCRIPT GOES HERE)
//////////////////////////////STRATEGY SCRIPT END////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
Removing all plots and drawings from your strategy is advisable.
If you are going to use the Comparison Date Range, apply "bnh_timeCond" to your strategy to align the dates. A sample on how it’s applied can be seen on the Placeholder MA cross strategy.
Note: bnh_timeCond returns a boolean series
Full Range Trading Strategy with DCA - Crypto, Forex, Stocks
Introduction
This is a Pine 4 range trading strategy. It has a twin study with several alerts. The design intent is to produce a commercial grade signal generator that can be adapted to any symbol and interval. Ideally, the script is reliable enough to be the basis of an automated trading system web-hooked to a server with API access to crypto, forex and stock brokerages. The strategy can be run in three different modes: long, short and bidirectional.
As a range trading strategy, the behavior of the script is to buy on weakness and sell on strength. As such trade orders are placed in a counter direction to price pressure. What you will see on the chart is a short position on peaks and a long position on valleys. Just to be clear, the range as well as trends are merely illusions as the chart only receives prices. However, this script attempts to calculate pivot points from the price stream. Rising pivots are shorts and falling pivots are longs. I refer to pivots as a vertex in this script which adds structural components to the chart formation. When trading in “Ping Pong” mode long and short positions are intermingled continuously as long as there exists a detectable vertex. Unfortunately, this can work against your backtest profitability on long duration trends where prices continue in a single direction without pullback. I have designed various features in the script to compensate for this event. A well configured script should perform in a range bound market and minimize losses in a trend. I also have a trend following version of this script for those not interested in trading the range. Please be aware these are two types of traders. You should know who you are.
This script employs a DCA feature which enables users to experiment with loss recovery techniques. This is an advanced feature which can increase the order size on new trades in response to stopped out or winning streak trades. The script keeps track of debt incurred from losing trades. When the debt is recovered the order size returns to the base amount specified in the TV properties tab. The inputs for this feature include a limiter to prevent your account from depleting capital during runaway markets. This implementation of DCA does not use pyramid levels. Only the order size on subsequent new trades are affected. Pyramids on the other hand increase the size of open positions. If you are interested in seeing pyramids in action please see the trend version of this script which features both DCA and pyramids. While DCA is a popular feature in crypto trading, it can make you a “bag” holder if your not careful. In other markets, especially margin trading, you’ll need a well funded account and much trading experience to manage this feature safely.
Consecutive loss limit can be set to report a breach of the threshold value. Every stop hit beyond this limit will be reported on a version 4 label above the bar where the stop is hit. Use the location of the labels along with the summary report tally to improve the adaptability of system. Don’t simply fit the chart. A good trading system should adapt to ever changing market conditions. On the study version the consecutive loss limit can be used to halt live trading on the broker side (managed manually).
Design
This script uses twelve indicators on a single time frame. The original trading algorithms are a port from a much larger program on another trading platform. I’ve converted some of the statistical functions to use standard indicators available on TradingView. The setups make heavy use of the Hull Moving Average in conjunction with EMAs that form the Bill Williams Alligator as described in his book “New Trading Dimensions” Chapter 3. Lag between the Hull and the EMAs form the basis of the entry and exit points. The vertices are calculated using one of five featured indicators. Each indicator is actually a composite of calculations which produce a distinct mean. This mathematical distinction enables the script to be useful on various instruments which belong to entirely different markets. In other words, at least one of these indicators should be able generate pivots on an arbitrarily selected instrument. Try each one to find the best fit.
The entire script is around 1800 lines of Pine code which is the maximum incidental size given the TradingView limits: local scopes, run-time duration and compile time. I’ve been working on this script for nearly two years and have tested it on various instruments stocks, forex and crypto. It performs well on higher liquidity markets that have at least a year of historical data. Although the script can be implemented on any interval, it has been optimized for small time frames down to 5 minutes. The 10 minute BTC/USD produces around 500 trades in 2 ½ months. The 1 hour BTC/USD produces around 1300 trades in 1 ½ years. Originally, this script contained both range trading and trend following logic but had to be broken into separate scripts due to the aforementioned limitations.
Inputs to the script use cone centric measurements in effort to avoid exposing adjustments to the various internal indicators. The goal was to keep the inputs relevant to the actual trade entry and exit locations as opposed to a series of MA input values and the like. As a result the strategy exposes over 50 inputs grouped into long or short sections. Inputs are available for the usual minimum profit and stop-loss as well as safeguards, trade frequency, DCA, modes, presets, reports and lots of calibrations. The inputs are numerous, I’m aware. Unfortunately, at this time, TradingView does not offer any other method to get data in the script. The usual initialization files such as cnf, cfg, ini, json and xml files are currently unsupported.
Example configurations for various instruments along with a detailed PDF user manual is available.
Indicator Repainting And Anomalies
Indicator repainting is an industry wide problem which mainly occurs when you mix backtest data with real-time data. It doesn't matter which platform you use some form of this condition will manifest itself on your chart over time. The critical aspect being whether live trades on your broker’s account continue to match your TradingView study.
Tackling this repainting issue has been a major project goal of this script. Based on my experience with Pine, most of the problems stem from TradingView’s implementation of multiple interval access. Whereas most platform provide a separate bar series for each interval requested, the Pine language interleaves higher time frames with the primary chart interval. The problem is exacerbated by allowing a look-ahead parameter to the Security function. The goal of my repaint prevention is simply to ensure that my signal trading bias remains consistent between the strategy, study and broker. That being said this is what I’ve done address this issue in this script:
1. This script uses only 1 time frame. The chart interval.
2. Every entry and exit condition is evaluated on closed bars only.
3. No security functions are called to avoid a look-ahead possibility.
4. Every contributing factor specified in the TradingView wiki regarding this issue has been addressed.
5. I’ve run a 10 minute chart live for a week and compared it to the same chart periodically reloaded. The two charts were highly correlated with no instances of completely opposite real-time signals.
The study does indeed bring up the TV warning dialog. The only reason for this is because the script uses an EMA indicator which according to TradingView is due to “peculiarities of the algorithm”.
One issue that comes up when comparing the strategy with the study is that the strategy trades show on the chart one bar later than the study. This problem is due to the fact that “strategy.entry()” and “strategy_exit()” do not execute on the same bar called. The study, on the other hand, has no such limitation since there are no position routines.
Please be aware that the data source matters. Cryptocurrency has no central tick repository so each exchange supplies TradingView its feed. Even though it is the same symbol the quality of the data and subsequently the bars that are supplied to the chart varies with the exchange. This script will absolutely produce different results on different data feeds of the same symbol. Be sure to backtest this script on the same data you intend to receive alerts for. Any example settings I share with you will always have the exchange name used to generate the test results.
Usage
The following steps provide a very brief set of instructions that will get you started but will most certainly not produce the best backtest. A trading system that you are willing to risk your hard earned capital will require a well crafted configuration that involves time, expertise and clearly defined goals. As previously mentioned, I have several example configs that I use for my own trading that I can share with you along with a PDF which describes each input in detail. To get hands on experience in setting up your own symbol from scratch please follow the steps below.
The input dialog box contains over 50 inputs separated into five sections. Each section is identified as such with a makeshift separator input. There are three main areas that must to be configured: long side, short side and settings that apply to both. The rest of the inputs apply to DCA, reporting and calibrations. The following steps address these three main areas only. You will need to get your backtest in the black before moving on to the more advanced features.
Step 1. Setup the Base currency and order size in the properties tab.
Step 2. Select the calculation presets in the Instrument Type field.
Step 3. Select “No Trade” in the Trading Mode field.
Step 4. Select the Histogram indicator from Section 2. You will be experimenting with different ones so it doesn’t matter which one you try first.
Step 5. Turn on Show Markers in Section 2.
Step 6. Go to the chart and checkout where the markers show up. Blue is up and red is down. Long trades show up along the red markers and short trades on the blue.
Step 7. Make adjustments to “Base To Vertex” and “Vertex To Base” net change and roc in Section 3. Use these fields to move the markers to where you want trades to be.
Step 8. Try a different indicator from Section 2 and repeat Step 7 until you find the best match for this instrument on this interval. This step is complete when the Vertex settings and indicator combination produce the most favorable results.
Step 9. Go to Section 3 and enable “Apply Red Base To Base Margin”.
Step 10. Go to Section 4 and enable “Apply Blue Base To Base Margin”.
Step 11. Go to Section 2 and adjust “Minimum Base To Base Blue” and “Minimum Base To Base Red”. Observe the chart and note where the markers move relative to each other. Markers further apart will produce less trades but will reduce cutoffs in “Ping Pong” mode.
Step 12. Return to Section 3 and 4 and turn off “Base To Base Margin” which was enabled in steps 9 and 10.
Step 13. Turn off Show Markers in Section 2.
Step 14. Put in your Minimum Profit and Stop Loss in the first section. This is in pips or currency basis points (chart right side scale). Percentage is not currently supported. This is a fixed value minimum profit and stop loss. Also note that the profit is taken as a conditional exit on a market order not a fixed limit. The actual profit taken will almost always be greater than the amount specified. The stop loss, on the other hand, is indeed a hard number which is executed by the TradingView broker simulator when the threshold is breached. On the study version, the stop is executed at the close of the bar.
Step 15. Return to step 3 and select a Trading Mode (Long, Short, BiDir, Ping Pong). If you are planning to trade bidirectionally its best to configure long first then short. Combine them with “BiDir” or “Ping Pong” after setting up both sides of the trade individually. The difference between “BiDir” and “Ping Pong” is that “Ping Pong” uses position reversal and can cut off opposing trades less than the specified minimum profit. As a result “Ping Pong” mode produces the greatest number of trades.
Step 16. Take a look at the chart. Trades should be showing along the markers plotted earlier.
Step 17. Make adjustments to the Vertex fields in Section 2 until the TradingView performance report is showing a profit. This includes the “Minimum Base To Base” fields. If a profit cannot be achieved move on to Step 18.
Step 18. Improve the backtest profitability by adjusting the “Long Entry Net Change” and “Long Entry ROC” in Section 3.
Step 19. Improve the backtest profitability by adjusting the “Short Entry Net Change” and “Short Entry ROC” in Section 4.
Step 20. Improve the backtest profitability by adjusting the “Sparse Long Delta” in Section 3.
Step 21. Improve the backtest profitability by adjusting the “Chase Long Delta” in Section 3.
Step 22. Improve the backtest profitability by adjusting the “Long Adherence Delta” in Section 3. This field requires the “Adhere to Rising Trend” checkbox to be enabled.
Step 23. Try each checkbox in Section 3 and see if it improves the backtest profitability. The “Caution Lackluster Longs” checkbox only works when “Long Caution Mode” is enabled.
Step 24. Improve the backtest profitability by adjusting the “Sparse Short Delta” in Section 4.
Step 25. Improve the backtest profitability by adjusting the “Chase Short Delta” in Section 4.
Step 26. Improve the backtest profitability by adjusting the “Short Adherence Delta” in Section 4. This field requires the “Adhere to Falling Trend” checkbox to be enabled.
Step 27. Try each checkbox in Section 4 and see if it improves the backtest profitability. The “Caution Lackluster Shorts” checkbox only works when “Short Caution Mode” is enabled.
Step 28. Enable the reporting conditions in Section 5. Look for long runs of consecutive losses or high debt sequences. These are indications that your trading system cannot withstand sudden changes in market sentiment.
Step 29. Examine the chart and see that trades are being placed in accordance with your desired trading goals. This is an important step. If your desired model requires multiple trades per day then you should be seeing hundreds of trades on the chart. Alternatively, you may be looking to trade fewer steep peaks and deep valleys in which case you should see trades at major turning points. Don’t simply settle for what the backtest serves you. Work your configuration until the system aligns with your desired model. Try changing indicators and even intervals if you cannot reach your simulation goals. Generally speaking, the histogram and Candle indicators produce the most trades. The Macro indicator captures the tallest peaks and valleys.
Step 30. Apply the backtest settings to the study version and perform forward testing.
This script is open for beta testing. After successful beta test it will become a commercial application available by subscription only. I’ve invested quite a lot of time and effort into making this the best possible signal generator for all of the instruments I intend to trade. I certainly welcome any suggestions for improvements. Thank you all in advance.
Total Trend Follow Strategy with Pyramid and DCA
Introduction
This is a Pine 4 trend following strategy. It has a twin study with several alerts. The design intent is to produce a commercial grade signal generator that can be adapted to any symbol and interval. Ideally, the script is reliable enough to be the basis of an automated trading system web-hooked to a server with API access to crypto, forex and stock brokerages. The strategy can be run in three different modes: long, short and bidirectional.
As a trend following strategy, the behavior of the script is to buy on strength and sell on weakness. As such the trade orders maintain its directional bias according to price pressure. What you will see on the chart is long positions on the left side of the mountain and short on the right. Long and short positions are not intermingled as long as there exists a detectable trend. This is extremely beneficial feature in long running bull or bear markets. The script uses multiple setups to avoid the situation where you got in on the trend, took a small profit but couldn’t get back in because the logic is waiting for a pullback or some other intricate condition.
Deep draw-downs are a characteristic of trend following systems and this system is no different. However, this script makes use of the TradingView pyramid feature accessible from the properties tab. Additional trades can be placed in the draw-down space increasing the position size and thereby increasing the profit or loss when the position finally closes. Each individual add on trade increases its order size as a multiple of its pyramid level. This makes it easy to comply with NFA FIFO Rule 2-43(b) if the trades are executed here in America. The inputs dialog box contains various settings to adjust where the add on trades show up, under what circumstances and how frequent if at all. Please be advised that pyramiding is an advanced feature and can wipe out your account capital if your not careful. During the backtest use modest setting with realistic capital until you discover what you think you can handle.
In addition to pyramiding this script employs DCA which enables users to experiment with loss recovery techniques. This is another advanced feature which can increase the order size on new trades in response to stopped out or winning streak trades. The script keeps track of debt incurred from losing trades. When the debt is recovered the order size returns to the base amount specified in the TV properties tab. The inputs for this feature include a limiter to prevent your account from depleting capital during runaway markets. The main difference between DCA and pyramids is that this implementation of DCA applies to new trades while pyramids affect open positions. DCA is a popular feature in crypto trading but can leave you with large “bags” if your not careful. In other markets, especially margin trading, you’ll need a well funded account and much experience.
Consecutive loss limit can be set to report a breach of the threshold value. Every stop hit beyond this limit will be reported on a version 4 label above the bar where the stop is hit. Use the location of the labels along with the summary report tally to improve the adaptability of system. Don’t simply fit the chart. A good trading system should adapt to ever changing market conditions. On the study version the consecutive loss limit can be used to halt live trading on the broker side (Managed manually).
Design
This script uses nine indicators on two time frames. The chart (primary) interval and one higher time frame which is based on the primary. The higher time frame identifies the trend for which the primary will trade. I’ve tried to keep the higher time frame around five times greater than the primary. The original trading algorithms are a port from a much larger program on another trading platform. I’ve converted some of the statistical functions to use standard indicators available on TradingView. The setups make heavy use of the Hull Moving Average in conjunction with EMAs that form the Bill Williams Alligator as described in his book “New Trading Dimensions” Chapter 3. Lag between the Hull and the EMAs form the basis of the entry and exit points. The alligator itself is used to identify the trend main body.
The entire script is around 1700 lines of Pine code which is the maximum incidental size given the TradingView limits: local scopes, run-time duration and compile time. I’ve been working on this script for over a year and have tested it on various instruments stocks, forex and crypto. It performs well on higher liquidity markets that have at least a year of historical data. Though it can be configured to work on any interval between 5 minutes and 1 day, trend trading is generally a longer term paradigm. For day trading the 10 to 15 minute interval will allow you to catch momentum breakouts. For intraweek trades 30 minutes to 1 hour should give you a trade every other a day. Four hours and above are for seasoned deep pocket traders. Originally, this script contained both range trading and trend following logic but had to be broken into separate scripts due to the aforementioned limitations.
Inputs to the script use cone centric measurements in effort to avoid exposing adjustments to the various internal indicators. The goal was to keep the inputs relevant to the actual trade entry and exit locations as opposed to a series of MA input values and the like. As a result the strategy exposes over 50 inputs grouped into long or short sections. Inputs are available for the usual minimum profit and stop-loss as well as safeguards, trade frequency, DCA, modes, presets, reports and lots of calibrations. The inputs are numerous, I’m aware. Unfortunately, at this time, TradingView does not offer any other method to get data in the script. The usual initialization files such as cnf, cfg, ini, json and xml files are currently unsupported.
Example configurations for various instruments along with a detailed PDF user manual is available.
Indicator Repainting And Anomalies
Indicator repainting is an industry wide problem which mainly occurs when you mix backtest data with real-time data. It doesn't matter which platform you use some form of this condition will manifest itself on your chart over time. The critical aspect being whether live trades on your broker’s account continue to match your TradingView study. Since this trading system is featured as two separate scripts, indicator repainting is addressed in the study version. The strategy (this script) is intended to be used on historical data to determine the appropriate trading inputs to apply in the study. As such, the higher time frame of this strategy will indeed repaint. Please do not attempt to trade from the strategy. Please see the study version for more information.
One issue that comes up when comparing the strategy with the study is that the strategy trades show on the chart one bar later than the study. This problem is due to the fact that “strategy.entry()” and “strategy_exit()” do not execute on the same bar called. The study, on the other hand, has no such limitation since there are no position routines. However, alerts that are subsequently fired off when triggered in the study are dispatched from the TradingView servers one bar later from the study plot. Therefore the alert you actually receive on your cell phone matches the strategy plot but is one bar later than the study plot. A lot can happen in four hours if you are trading off a 240 bar.
Please be aware that the data source matters. Cryptocurrency has no central tick repository so each exchange supplies TradingView its feed. Even though it is the same symbol the quality of the data and subsequently the bars that are supplied to the chart varies with the exchange. This script will absolutely produce different results on different data feeds of the same symbol. Be sure to backtest this script on the same data you intend to receive alerts for. Any example settings I share with you will always have the exchange name used to generate the test results.
Usage
The following steps provide a very brief set of instructions that will get you started but will most certainly not produce the best backtest. A trading system that you are willing to risk your hard earned capital will require a well crafted configuration that involves time, expertise and clearly defined goals. As previously mentioned, I have several example configs that I use for my own trading that I can share with you along with a PDF which describes each input in detail. To get hands on experience in setting up your own symbol from scratch please follow the steps below.
The input dialog box contains over 50 inputs separated into seven sections. Each section is identified as such with a makeshift separator input. There are three main areas that must to be configured: long side, short side and settings that apply to both. The rest of the inputs apply to pyramids, DCA, reporting and calibrations. The following steps address these three main areas only. You will need to get your backtest in the black before moving on to the more advanced features
Step 1. Setup the Base currency and order size in the properties tab.
Step 2. Select the calculation presets in the Instrument Type field.
Step 3. Select “No Trade” in the Trading Mode field.
Step 4. Select the Histogram indicator from section 3. You will be experimenting with different ones so it doesn’t matter which one you try first.
Step 5. Turn on Show Markers in Section 3.
Step 6. Go to the chart and checkout where the markers show up. Blue is up and red is down. Long trades show up along the blue markers and short trades on the red.
Step 7. Make adjustments to Base To Vertex and Vertex To Base net change and roc in section 3. Use these fields to move the markers to where you want trades to be. Blue is long and red is short.
Step 8. Try a different indicator from section 3 and repeat Step 7 until you find the best match for this instrument on this interval. This step is complete when the Vertex settings and indicator combination produce the most favorable results.
Step 9. Turn off Show Markers in Section 3.
Step 10. Enable the Symmetrical and Deviation calculation models at the top of section 5 and 6 (Symmetrical, Deviation).
Step 11. Put in your Minimum Profit and Stop Loss in the first section. This is in pips or currency basis points (chart right side scale)
Step 12. Return to step 3 and select a Trading Mode (Long, Short, BiDir, Flip Flop). If you are planning to trade bidirectionally its best to configure long first then short. Combine them with BiDir or Flip Flop after setting up both sides of the trade individually.
Step 13. Trades should be showing on the chart.
Step 14. Make adjustments to the Vertex fields in section 3 until the TradingView performance report is showing a profit.
Step 15. Change indicators and repeat step 14. Pick the best indicator.
Step 16. Use the check boxes in sections 5 and 6 to improve the performance of each side.
Step 17. Try adding the Correlation calculation model to either side. This model can sometimes produce a negative result but can be improved by enabling “Adhere To Markers” or “Narrow Correlation Scope” in the sections 5 and 6.
Step 18. Enable the reporting conditions in section 7. Look for long runs of consecutive losses or high debt sequences. These are indications that your trading system cannot withstand sudden changes in market sentiment.
Step 19. Examine the chart and see that trades are being placed in accordance with your desired trading model.
Step 20. Apply the backtest settings to the study version and perform forward testing.
This script is open for beta testing. After successful beta test it will become a commercial application available by subscription only. I’ve invested quite a lot of time and effort into making this the best possible signal generator for all of the instruments I intend to trade. I certainly welcome any suggestions for improvements. Thank you all in advance.
Combo Backtest 123 Reversal & Bill Williams Averages. 3Lines This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
This indicator calculates 3 Moving Averages for default values of
13, 8 and 5 days, with displacement 8, 5 and 3 days: Median Price (High+Low/2).
The most popular method of interpreting a moving average is to compare
the relationship between a moving average of the security's price with
the security's price itself (or between several moving averages).
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & Bear Power This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
Bear Power Indicator
To get more information please see "Bull And Bear Balance Indicator"
by Vadim Gimelfarb.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & (H-L)/C Histogram This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
This histogram displays (high-low)/close
Can be applied to any time frame.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & Bandpass FilterThis is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
The related article is copyrighted material from
Stocks & Commodities Mar 2010
You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal & Average True Range Trailing Stops This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
Average True Range Trailing Stops Strategy, by Sylvain Vervoort
The related article is copyrighted material from Stocks & Commodities Jun 2009
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal and ADXR This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
The Average Directional Movement Index Rating (ADXR) measures the strength
of the Average Directional Movement Index (ADX). It's calculated by taking
the average of the current ADX and the ADX from one time period before
(time periods can vary, but the most typical period used is 14 days).
Like the ADX, the ADXR ranges from values of 0 to 100 and reflects strengthening
and weakening trends. However, because it represents an average of ADX, values
don't fluctuate as dramatically and some analysts believe the indicator helps
better display trends in volatile markets.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal and Accelerator Oscillator (AC) This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Second strategy
The Accelerator Oscillator has been developed by Bill Williams
as the development of the Awesome Oscillator. It represents the
difference between the Awesome Oscillator and the 5-period moving
average, and as such it shows the speed of change of the Awesome
Oscillator, which can be useful to find trend reversals before the
Awesome Oscillator does.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal and Absolute Price Oscillator (APO) This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
The Absolute Price Oscillator displays the difference between two exponential
moving averages of a security's price and is expressed as an absolute value.
How this indicator works
APO crossing above zero is considered bullish, while crossing below zero is bearish.
A positive indicator value indicates an upward movement, while negative readings
signal a downward trend.
Divergences form when a new high or low in price is not confirmed by the Absolute Price
Oscillator (APO). A bullish divergence forms when price make a lower low, but the APO
forms a higher low. This indicates less downward momentum that could foreshadow a bullish
reversal. A bearish divergence forms when price makes a higher high, but the APO forms a
lower high. This shows less upward momentum that could foreshadow a bearish reversal.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Strategies 123 Reversal and 3-Bar-Reversal-Pattern This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
This startegy based on 3-day pattern reversal described in "Are Three-Bar
Patterns Reliable For Stocks" article by Thomas Bulkowski, presented in
January,2000 issue of Stocks&Commodities magazine.
That pattern conforms to the following rules:
- It uses daily prices, not intraday or weekly prices;
- The middle day of the three-day pattern has the lowest low of the three days, with no ties allowed;
- The last day must have a close above the prior day's high, with no ties allowed;
- Each day must have a nonzero trading range.
WARNING:
- For purpose educate only
- This script to change bars colors.
Combo Backtest 123 Reversal and 2/20 EMA This is combo strategies for get
a cumulative signal. Result signal will return 1 if two strategies
is long, -1 if all strategies is short and 0 if signals of strategies is not equal.
First strategy
This System was created from the Book "How I Tripled My Money In The
Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
The strategy buys at market, if close price is higher than the previous close
during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50.
The strategy sells at market, if close price is lower than the previous close price
during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
Secon strategy
This indicator plots 2/20 exponential moving average. For the Mov
Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
Please, use it only for learning or paper trading. Do not for real trading.
WARNING:
- For purpose educate only
- This script to change bars colors.
XPloRR MA-Buy ATR-Trailing-Stop Long Term Strategy Beating B&HXPloRR MA-Buy ATR-MA-Trailing-Stop Strategy
Long term MA Trailing Stop strategy to beat Buy&Hold strategy
None of the strategies that I tested can beat the long term Buy&Hold strategy. That's the reason why I wrote this strategy.
Purpose: beat Buy&Hold strategy with around 10 trades. 100% capitalize sold trade into new trade.
My buy strategy is triggered by the EMA(blue) crossing over the SMA curve(orange).
My sell strategy is triggered by another EMA(lime) of the close value crossing the trailing stop(green) value.
The trailing stop value(green) is set to a multiple of the ATR(15) value.
ATR(15) is the SMA(15) value of the difference between high and low values.
Every stock has it's own "DNA", so first thing to do is find the right parameters to get the best strategy values voor EMA, SMA and Trailing Stop.
Then keep using these parameter for future buy/sell signals only for that particular stock.
Do the same for other stocks.
Here are the parameters:
Exponential MA: buy trigger when crossing over the SMA value (use values between 11-50)
Simple MA: buy trigger when EMA crosses over the SMA value (use values between 20 and 200)
Stop EMA: sell trigger when Stop EMA of close value crosses under the trailing stop value (use values between 8 and 16)
Trailing Stop #ATR: defines the trailing stop value as a multiple of the ATR(15) value
Example parameters for different stocks (Start capital: 1000, Order=100% of equity, Period 1/1/2005 to now):
BAR(Barco): EMA=11, SMA=82, StopEMA=12, Stop#ATR=9
Buy&HoldProfit: 45.82%, NetProfit: 294.7%, #Trades:8, %Profit:62.5%, ProfitFactor: 12.539
AAPL(Apple): EMA=12, SMA=45, StopEMA=12, Stop#ATR=6
Buy&HoldProfit: 2925.86%, NetProfit: 4035.92%, #Trades:10, %Profit:60%, ProfitFactor: 6.36
BEKB(Bekaert): EMA=12, SMA=42, StopEMA=12, Stop#ATR=7
Buy&HoldProfit: 81.11%, NetProfit: 521.37%, #Trades:10, %Profit:60%, ProfitFactor: 2.617
SOLB(Solvay): EMA=12, SMA=63, StopEMA=11, Stop#ATR=8
Buy&HoldProfit: 43.61%, NetProfit: 151.4%, #Trades:8, %Profit:75%, ProfitFactor: 3.794
PHIA(Philips): EMA=11, SMA=80, StopEMA=8, Stop#ATR=10
Buy&HoldProfit: 56.79%, NetProfit: 198.46%, #Trades:6, %Profit:83.33%, ProfitFactor: 23.07
I am very curious to see the parameters for your stocks and please make suggestions to improve this strategy.
SMC/PA Ultimate V27SMC Ultimate Strategy: Automated Structure & Performance Dashboard
This strategy is designed based on Smart Money Concepts (SMC) principles, utilizing market structure breaks (Zigzag Swings) to identify high-probability reversal setups. It features a fully automated execution engine, dynamic risk management, and a comprehensive real-time performance dashboard.
1. Core Logic & Entry Mechanism
Market Structure: The script uses a Zigzag algorithm (Length = 8 default) to detect significant Swing Highs and Swing Lows.
Entry Trigger:
SHORT: Triggered when the price breaks below the recent Swing Low. The entry order is placed at the 50% Fibonacci retracement of the breakout range.
LONG: Triggered when the price breaks above the recent Swing High. The entry order is placed at the 50% Fibonacci retracement.
Stop Loss (SL): Automatically set at the recent Swing High (for Shorts) or Swing Low (for Longs).
2. Advanced Exit Strategies
Users can choose between two exit modes in the settings:
Fixed Risk:Reward (R:R): Targets a static Reward-to-Risk ratio (e.g., 1:2).
Trailing Stop (%): A dynamic trailing stop that follows price movement (e.g., 3%) to maximize profits during strong trends.
3. Visual Visualization
Red Box: Represents the Risk Zone (Entry to Stop Loss).
Orange/Blue Box: Represents the projected Reward Zone (Entry to TP).
Purple Overlay Box: Appears upon trade closure to show the Realized Profit/Loss Path, giving you a clear visual of how much of the move was captured compared to the theoretical setup.
W/L Labels: Clearly marks trades as W (Win) or L (Loss) on the chart.
4. Professional Risk Management
Integrated position sizing logic inspired by professional capital management:
Position Size: Calculated based on a percentage of Account Equity (Input: Vốn vào lệnh %).
Leverage: Built-in leverage multiplier (Input: Đòn Bẩy x) to simulate futures/margin trading volume.
5. Real-time Monthly Performance Table
A detailed Dashboard located at the bottom-right corner provides instant statistical analysis without needing to open the Strategy Tester panel:
Monthly Breakdown: Displays P/L ($ and %), Winrate, and Win/Loss count for every month in the selected range.
Instant Update: The table updates immediately when a trade closes or on the last bar, ensuring zero lag.
Summary: Shows total Capital used, Leverage, and overall Winrate at the top.
6. Backtest Date Range Filter
Includes a strict date filter (From Year/Month to To Year/Month). The strategy will only execute and calculate statistics within this specific time window, allowing for precise backtesting of specific market conditions.
How to Use
Zigzag Length: Adjust to 5 for scalping or 14+ for swing trading to change sensitivity.
Exit Mode: Select "Trailing Stop %" for trending markets or "Fixed R:R" for ranging markets.
Backtest Range: Ensure the From Year and To Year match the data available on your chart.
Disclaimer: This script is for educational and backtesting purposes only. Past performance does not guarantee future results.
Strategy-Based Breakout Backtest by AlturoiThis educational strategy is designed to help active traders learn how to turn trading ideas into data-driven decisions by testing strategies against historical price action before risking real capital.
The script walks through the step-by-step backtesting workflow on TradingView, showing how strategy logic, entries, exits, and risk rules translate into measurable performance metrics such as win rate, drawdown, and expectancy.
What this script helps you learn:
How to backtest on TradingView using Pine Script strategies
How the Strategy Tester calculates performance results
How to interpret win rate, drawdowns, and consistency
How to validate breakout and support/resistance concepts
How to identify structural edge — or flaws — before going live
This is not a signal service or financial advice. It is an educational framework meant to help traders understand proper backtesting techniques and avoid common mistakes when evaluating trading strategies.
Use this script as a learning template to experiment, modify logic, and improve your understanding of how professional backtesting on TradingView works.
Liquidity Maxing [JOAT]Liquidity Maxing - Institutional Liquidity Matrix
Introduction
Liquidity Maxing is an open-source strategy for TradingView built around institutional market structure concepts. It identifies structural shifts, evaluates trades through multi-factor confluence, and implements layered risk controls.
The strategy is designed for swing trading on 4-hour timeframes, focusing on how institutional order flow manifests in price action through structure breaks, inducements, and liquidity sweeps.
Core Functionality
Liquidity Maxing performs three primary functions:
Tracks market structure to identify when control shifts between buyers and sellers
Scores potential trades using an eight-factor confluence system
Manages position sizing and risk exposure dynamically based on volatility and user-defined limits
The goal is selective trading when multiple conditions align, rather than frequent entries.
Market Structure Engine
The structure engine tracks three key events:
Break of Structure (BOS): Price pushes beyond a prior pivot in the direction of trend
Change of Character (CHoCH): Control flips from bullish to bearish or vice versa
Inducement Sweeps (IDM): Market briefly runs stops against trend before moving in the real direction
The structure module continuously updates strong highs and lows, labeling structural shifts visually. IDM markers are optional and disabled by default to maintain chart clarity.
The trade engine requires valid structure alignment before considering entries. No structure, no trade.
Eight-Factor Confluence System
Instead of relying on a single indicator, Liquidity Maxing uses an eight-factor scoring system:
Structure alignment with current trend
RSI within healthy bands (different ranges for up and down trends)
MACD momentum agreement with direction
Volume above adaptive baseline
Price relative to main trend EMA
Session and weekend filter (configurable)
Volatility expansion/contraction via ATR shifts
Higher-timeframe EMA confirmation
Each factor contributes one point to the confluence score. The default minimum confluence threshold is 6 out of 8, but you can adjust this from 1-8 based on your preference for trade frequency versus selectivity.
Only when structure and confluence agree does the strategy proceed to risk evaluation.
Dynamic Risk Management
Risk controls are implemented in multiple layers:
ATR-based stops and targets with configurable risk-to-reward ratio (default 2:1)
Volatility-adjusted position sizing to maintain consistent risk per trade as ranges expand or compress
Daily and weekly risk budgets that halt new entries once thresholds are reached
Correlation cooldown to prevent clustered trades in the same direction
Global circuit breaker with maximum drawdown limit and emergency kill switch
If any guardrail is breached, the strategy will not open new positions. The dashboard clearly displays risk state for transparency.
Market Presets
The strategy includes configuration presets optimized for different market types:
Crypto (BTC/ETH): RSI bands 70/30, volume multiplier 1.2, enhanced ATR scaling
Forex Majors: RSI bands 75/25, volume multiplier 1.5
Indices (SPY/QQQ): RSI bands 70/30, volume multiplier 1.3
Custom: Default values for user customization
For crypto assets, the strategy automatically applies ATR volatility scaling to account for higher volatility characteristics.
Monitoring and Dashboards
The strategy includes optional monitoring layers:
Risk Operations Dashboard (top-right):
Trend state
Confluence score
ATR value
Current position size percentage
Global drawdown
Daily and weekly risk consumption
Correlation guard state
Alert mode status
Performance Console (top-left):
Net profit
Current equity
Win rate percentage
Average trade value
Sharpe-style ratio (rolling 50-bar window)
Profit factor
Open trade count
Optional risk tint on chart background provides visual indication of "safe to trade" versus "halted" state.
All visualization elements can be toggled on/off from the inputs for clean chart viewing or full telemetry during parameter tuning.
Alerts and Automation
The strategy supports alert integration with two formats:
Standard alerts: Human-readable messages for long, short, and risk-halt conditions
Webhook format: JSON-formatted payloads ready for external execution systems (optional)
Alert messages are predictable and unambiguous, suitable for manual review or automated forwarding to execution engines.
Built-in Validation Suite
The strategy includes an optional validation layer that can be enabled from inputs. It checks:
Internal consistency of structure and confluence metrics
Sanity and ordering of risk parameters
Position sizing compliance with user-defined floors and caps
This validation is optional and not required for trading, but provides transparency into system operation during development or troubleshooting.
Strategy Parameters
Market Presets:
Configuration Preset: Choose between Crypto (BTC/ETH), Forex Majors, Indices (SPY/QQQ), or Custom
Market Structure Architecture:
Pivot Length: Default 5 bars
Filter by Inducement (IDM): Default enabled
Visualize Structure: Default enabled
Structure Lookback: Default 50 bars
Risk & Capital Preservation:
Risk:Reward Ratio: Default 2.0
ATR Period: Default 14
ATR Multiplier (Stop): Default 2.0
Max Drawdown Circuit Breaker: Default 10%
Risk per Trade (% Equity): Default 1.5%
Daily Risk Limit: Default 6%
Weekly Risk Limit: Default 12%
Min Position Size (% Equity): Default 0.25%
Max Position Size (% Equity): Default 5%
Correlation Cooldown (bars): Default 3
Emergency Kill Switch: Default disabled
Signal Confluence:
RSI Length: Default 14
Trend EMA: Default 200
HTF Confirmation TF: Default Daily
Allow Weekend Trading: Default enabled
Minimum Confluence Score (0-8): Default 6
Backtesting Considerations
When backtesting this strategy, consider the following:
Commission: Default 0.05% (adjustable in strategy settings)
Initial Capital: Default $100,000 (adjustable)
Position Sizing: Uses percentage of equity (default 2% per trade)
Timeframe: Optimized for 4-hour charts, though can be tested on other timeframes
Results will vary significantly based on:
Market conditions and volatility regimes
Parameter settings, especially confluence threshold
Risk limit configuration
Symbol characteristics (crypto vs forex vs equities)
Past performance does not guarantee future results. Win rate, profit factor, and other metrics should be evaluated in context of drawdown periods, trade frequency, and market conditions.
How to Use This Strategy
This is a framework that requires understanding and parameter tuning, not a one-size-fits-all solution.
Recommended workflow:
Start on 4-hour timeframe with default parameters and appropriate market preset
Run backtests and study performance console metrics: focus on drawdown behavior, win rate, profit factor, and trade frequency
Adjust confluence threshold to match your risk appetite—higher thresholds mean fewer but more selective trades
Set realistic daily and weekly risk budgets appropriate for your account size and risk tolerance
Consider ATR multiplier adjustments based on market volatility characteristics
Only connect alerts or automation after thorough testing and parameter validation
Treat this as a risk framework with an integrated entry engine, not merely an entry signal generator. The risk controls are as important as the trade signals.
Strategy Limitations
Designed for swing trading timeframes; may not perform optimally on very short timeframes
Requires sufficient market structure to identify pivots; may struggle in choppy or low-volatility environments
Crypto markets require different parameter tuning than traditional markets
Risk limits may prevent entries during favorable setups if daily/weekly budgets are exhausted
Correlation cooldown may delay entries that would otherwise be valid
Backtesting results depend on data quality and may not reflect live trading with slippage
Design Philosophy
Many indicators tell you when price crossed a moving average or RSI left oversold. This strategy addresses questions institutional traders ask:
Who is in control of the market right now?
Is this move structurally significant or just noise?
Do I want to add more risk given what I've already done today/week?
If I'm wrong, exactly how painful can this be?
The strategy provides disciplined, repeatable answers to these questions through systematic structure analysis, confluence filtering, and multi-layer risk management.
Technical Implementation
The strategy uses Pine Script v6 with:
Custom types for structure, confluence, and risk state management
Functional programming approach for reusable calculations
State management through persistent variables
Optional visual elements that can be toggled independently
The code is open-source and can be modified to suit individual needs. All important logic is visible in the source code.
Disclaimer
This script is provided for educational and informational purposes only. It is not intended as financial, investment, trading, or any other type of advice or recommendation. Trading involves substantial risk of loss and is not suitable for all investors. Past performance, whether real or indicated by historical tests of strategies, is not indicative of future results.
No representation is being made that any account will or is likely to achieve profits or losses similar to those shown. In fact, there are frequently sharp differences between backtested results and actual results subsequently achieved by any particular trading strategy.
The user should be aware of the risks involved in trading and should trade only with risk capital. The authors and publishers of this script are not responsible for any losses or damages, including without limitation, any loss of profit, which may arise directly or indirectly from use of or reliance on this script.
This strategy uses technical analysis methods and indicators that are not guaranteed to be accurate or profitable. Market conditions change, and strategies that worked in the past may not work in the future. Users should thoroughly test any strategy in a paper trading environment before risking real capital.
Commission and slippage settings in backtests may not accurately reflect live trading conditions. Real trading results will vary based on execution quality, market liquidity, and other factors not captured in backtesting.
The user assumes full responsibility for all trading decisions made using this script. Always consult with a qualified financial advisor before making investment decisions.
Enjoy - officialjackofalltrades
Kairos Bands [v1.1]Overview
The Kairos Bands Strategy is a highly modular trading system designed to identify high probability entry points based on volatility exhaustion and momentum shifts... It is built with a proprietary core algorithm that detects when price has extended too far from its mean, but it is wrapped in a Confluence Cloud that allows the user to filter these signals through nine different secondary indicators...
This is not just a static strategy... It is a framework that allows you to build your own edge by toggling specific filters on and off to match current market conditions...
1... The Chameleon Feature (Trend or Reversal)
One of the most powerful features of Kairos Bands is the Inverse Trades logic...
Reversal Mode (Default): By default, the strategy looks for price exhaustion... It buys when the market is oversold and sells when the market is overbought... This is ideal for ranging markets or catching tops and bottoms...
Trend Following Mode (Inversed): By checking the Inverse Trades box in the settings, the logic flips completely... A Buy signal becomes a Sell and vice versa... This transforms the strategy into a breakout or trend following system, entering trades in the direction of the momentum rather than against it...
2... The Confluence Cloud
While the core trigger is based on proprietary volatility calculations, the user has full control over how strictly those trades are filtered... You can toggle any of the following 9 momentum filters independently for both Long and Short setups...
RSI (Relative Strength Index)
Stochastic Oscillator
CCI (Commodity Channel Index)
Williams %R
MFI (Money Flow Index)
CMO (Chande Momentum Oscillator)
Fisher Transform
Ultimate Oscillator
ROC (Rate of Change)
For example, you can require RSI and MFI to agree with the main signal for Longs, but only require Stochastic for Shorts... This allows for granular tuning...
3... Trend Bias & Time Management
To further refine entries, the strategy includes:
EMA Trend Filter: An optional dual EMA system (Fast vs Slow) that forces the strategy to only trade in the direction of the dominant trend...
Precision Time Filtering: You can define exact start and end times (down to the minute) for entries...
No Trade Zone (NTZ): A specific time window where the strategy is forbidden from holding positions... If a trade is open when the NTZ begins, it is immediately force closed to avoid volatility events or market closes...
4... Risk Management
The strategy moves away from vague percentage based stops and uses precision point based targeting...
Fixed Points: Set your Take Profit and Stop Loss in exact price points...
Signal Skipping: An optional feature to cool down the strategy after a trade closes, forcing it to skip a set number of subsequent signals to avoid over trading...
5... Professional Analytics Dashboard
The visual overlay provides a detailed Heads Up Display (HUD) containing institutional grade metrics...
Strategy Grade: An automatic A through F grading system based on the Win Rate Differential (how much better the strategy performs compared to a breakeven coin flip)...
Streak Analysis: Tracks the maximum and average consecutive wins and losses to help you understand the psychological drawdown risk...
Rolling PnL: A secondary dashboard tracks your hypothetical Net PnL over the last 7 trading days and the last 12 months, giving you a clear view of short term and long term performance...






















