QaSH DCA Algorithm 2.0

This is the strategy version of the QaSH DCA Algorithm indicator. This strategy version of the script includes live trading alert functionality, so it can be considered as a replacement that makes the indicator version obsolete. With this version, features have been added and also you can take advantage of TradingView's native backtesting system for more detailed backtest results.

QaSH DCA Algorithm implements a DCA strategy that takes advantage of price volatility by buying dips to average down, and adjusting price targets as the break-even price gets lower.

How does the DCA strategy work?
When the specified entry condition has occurred, the indicator will set up several limit orders below the current price. If price goes up a specified amount, then the layers will be overwritten at the higher prices. If price goes down and fills the first layer (limit order), then the Take Profit price is plotted and will be sent in an alert. If more layers are filled, then the TP price will move down accordingly as it’s based on the average entry price (alerts on each TP update). This action of lowering the average entry and TP price mitigates your risk, and increases the likelihood of a Take Profit event happening. This script uses a simple "ASAP" mode, where each deal will start exactly 2 bars after the last trade ended. An EMA filter and stoploss function was also added for risk management.

How does this differ from other DCA bots?
1) The layer placements, order volume , and “take profit %” for each layer or “safety order” is much more customizable than what you get from other services. For example, I can choose to have my TP% change, depending on how big the price dip was. Maybe on safety order 1 I want 10% TP, but on safety order 7 might want a 2% TP.
2) The entry condition is adjustable. For example, this script has an ema filter for entries.
3) Settings optimization. You can take advantage of the replay feature and TradingView's backtest system to see how trades would have played out, and how much PnL you would have made
4) You can use this indicator on more than just crypto. You can easily set up alerts for manual trades on stocks, or you can integrate it with your stock broker API of choice and automate your trades.
5) When combining this with an automation service, you will get unmatched execution speed by running it on your dedicated machine.
6) I can offer a lifetime subscription to the indicator upon request.

What kind of market is it best used on?
QaSH DCA Algorithm is best used on assets that are volatile. That means large and frequent swings up and down. Also I recommend running this on many uncorrelated assets at the same time. Better yet, run it with a variety of different settings simultaneously on the same asset.

What settings should I use?
The default settings are decent for most markets, and provide a good balance between profit potential and downside protection, although you can use a wide variety of settings. In a strong bull market its best to either bring up your layers to catch smaller dips, or you can go big on the first few layers (maybe 4 layers, 25% on each layer for example). In a sideways or brearish market you'll want more downside protection, so you'll want the larger orders to be at lower prices, or possibly use the stoploss and EMA filter.
Release Notes:
updated tooltips to explain the placeholders that can go into the alerts
Release Notes:
disabled ATR plot on default settings
Release Notes:
some logic improvements
Release Notes:
added more placeholders for alerts
updated tooltips to describe the placeholders
Release Notes:
aligned some rulesets with the daytrader script for consistency
Release Notes:
changed {{filled_size}} placeholder from returning 0 on a "take profit" alert to returning what the position size was before the alert occurred.
Release Notes:
improved alignment with daytrader script for consistency
fixed issue where position size calculation wasn't updating
Release Notes:
-changed the "bot start" logic a bit. Now, if you pause your alert and then start it again, it will go ahead and start running the first trade. Before, you would have had to change your start time and recreate the alert to get it running again.
-fixed layer hit counters on the dashboard
Release Notes:
After some discussion with people from the PineScript team, I'm changing the way I handle the differences between live data and backtest data.
-I removed the "live trades" vs "backtest" input
-backtests and live trades now use exactly the same logic
-added a "killswitch" feature that can kill the script whenever TradingView's servers shut down and reset your alerts. This should resolve any concerns of the script coming out of alignment with your exchange, which was what I was trying to resolve when I had the "backtest" and "live trade" modes
-changed the data table to a more aesthetic format
Release Notes:
Added the ability to do DCA market entries that will occur on a timer, only when you have crossed below the lowest limit order. This has potential to get you into profit sooner if you are not using a stoploss and are holding a red bag.

Release Notes:
added a "tick overshoot" input for guaranteeing alignment between exchange and indicator.
Release Notes:
updated tooltips and default alert input to better inform users of new features and placeholders
Release Notes:
added a checkbox to the new market dca alert, for consistency
Release Notes:
added support for inverse perpetuals when using the timed market DCA function
Release Notes:
added support for using "whole shares" input with the "red bag DCA" function
Release Notes:
minor edits to the tooltips
Release Notes:
minor edits to some tooltips and default alert messages
Release Notes:
fixed a bug in the {{TP}} placeholder
Release Notes:
minor edit to how some alerts appear in the input window

For indicator access:

For questions and support:

Free backtesting for some of my strats is found here:
Invite-only script

Access to this script is restricted to users authorized by the author and usually requires payment. You can add it to your favorites, but you will only be able to use it after requesting permission and obtaining it from its author. Contact ParabolicValue for more information, or follow the author's instructions below.

TradingView does not suggest paying for a script and using it unless you 100% trust its author and understand how the script works. In many cases you can find a good open-source alternative for free in our Community Scripts.


The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.

Author's instructions

For indicator access: Patreon: For questions and support: Discord:

Want to use this script on a chart?

Warning: please read before requesting access.