Template Trailing Strategy (Backtester)💭 Overview
+ Title: Template Trailing Strategy (Backtester)
+ Author: Iason Nikolas (jason5480)
+ License: CC BY-NC-SA 4.0
💢 What is the "Template Trailing Strategy (Backtester)" ❓
The "Template Trailing Strategy (Backtester)" (TTS) is a back-tester orchestration framework. It supercharges the implementation-test-evaluation lifecycle of new trading strategies, by making it possible to plug in your own trading idea.
While TTS offers a vast number of configuration settings, it primarily allows the trader to:
Test and evaluate your own trading logic that is described in terms of entry, exit, and cancellation conditions.
Define the entry and exit order types as well as their target prices when the limit, stop, or stop-limit order types are used.
Utilize a variety of options regarding the placement of the stop-loss and take-profit target(s) prices and support for well-known techniques like moving to breakeven and trailing.
Provide well-known quantity calculation methods to properly handle risk management and easily evaluate trading strategies and compare them.
Alert on each trading event or any related change through a robust and fully customizable messaging system.
All of the above makes TTS a practical toolkit: once you learn it, many repetitive tasks that strategy authors usually re-implement are eliminated. Using TradingView’s built-in backtesting engine makes testing and comparing ideas straightforward.
By utilizing the TTS one can easily swap "trading logic" by testing, evaluating, and comparing each trading idea and/or individual component of a strategy.
Finally, TTS, through its per-event alert management (and debugging) system, provides an automated solution that supports live trading with brokers via webhooks.
NOTE: The "Template Trailing Strategy (Backtester)" does not dictate how you can combine different indicator types. Thus, it should not be confused as a "Trading System", because it gives its user full flexibility on that end (for better or worse).
💢 What is a "Signal Indicator" ❓
"Signal Indicator" (SI) is an indicator that can output a "signal" that follows a specific convention so that the "Template Trailing Strategy (Backtester)" can "understand" and execute the orders accordingly. The SI realizes the core trading logic signaling to the TTS when to enter, exit, or cancel an order. A SI instructs the TTS "when" to enter or exit, and the TTS determines "how" to enter and exit the position once the Signal Indicator generates a signal.
A very simple example of a Signal Indicator might be a 200-day Simple Moving Average Signal. When the price of the security closes above the 200-day SMA, a SI would provide TTS with a "long entry signal". Once TTS receives the "long entry signal", the TTS will open a long position and send an alert or automated trade message via webhook to a broker, based on the Entry settings defined in TTS. If the TTS Entry settings specify a "Market" order type, then the open long position will be executed by TTS immediately. But if the TTS Entry settings specify a "Stop" order type with a 1% Stop Distance, then when the price of the security rises by 1% after the "long entry signal" occurs, the TTS will open a long position and the Long Entry alert or webhook to the broker will be sent.
🤔 How to Guide
💢 How to connect a "signal" from a "Signal Indicator" ❓
The "Template Trailing Strategy (Backtester)" was designed to receive external signals from a "Signal Indicator". In this way, a "new trading idea" can be developed, configured, and evaluated separately from the TTS. Similarly, the SI can be held constant, and the trading mechanics can change in the TTS settings and back-tested to answer questions such as, "Am I better with a different stop loss placement method, what if I used a limit order instead of a stop order to enter, what if I used 25% margin instead of trading spot market?"
To make that possible by connecting an external signal indicator to TTS, you should:
Add both your SI (e.g. "Two MA Signal Indicator" , "Click Signal Indicator" , "Signal Adapter" , "Signal Composer" ) and the TTS script to the same chart.
Open the script's Settings / Inputs dialog for the TTS.
In the 🛠️ STRATEGY group set 𝐃𝐞𝐚𝐥 𝐂𝐨𝐧𝐝𝐢𝐨𝐧𝐬 𝐌𝐨𝐝𝐞 to 🔨External (this makes TTS listen to an external signal source).
Still inside 🛠️ STRATEGY locate the 🔌𝐒𝐢𝐠𝐧𝐚𝐥 🛈 input and choose the plotted output of your SI. The option should look like: "<SI short title>:🔌Signal to TTS" .
Verbose troubleshooting & tips
If the SI does not appear in the 🔌Signal 🛈 selector, confirm both scripts are added to the same chart and the SI exposes a plotted series (title often "🔌Signal to TTS").
When using multiple SIs, pick the SI instance that actually outputs the "🔌Signal to TTS" plotted series.
Validate on the chart: when your SI changes state, the plotted "🔌Signal" series in the TTS (visible in the data window) should change accordingly.
The TTS accepts only signals that follow the tts_convention DealConditions structure. Do not attempt to feed arbitrary scalar series without using conv.getDealConditions / conv.DealConditions.
Make sure your SI composes a DealConditions value following the TTS convention (startLong, endLong, startShort, endShort — optional cancel fields). See the template below.
If the plot is present but TTS does not react, ensure the SI plot is non-repainting (or accept realtime/backtest limitations). Test on historical bars first.
Create alerts on the strategy (see the Alerts section). Use the {{strategy.order.alert_message}} placeholder in the Create Alert dialog to forward TTS messages.
💢 How to create a custom trading logic ❓
The "Template Trailing Strategy (Backtester)" provides two ways to plug in your custom trading logic. Both of them have their advantages and disadvantages.
✍️ Develop your own Customized "Signal Indicator" 💥
The first approach is meant to be used for relatively more complex trading logic. The advantages of this approach are the full control and customization you have over the trading logic and the relatively simple configuration setup by having two scripts only. The downsides are that you have to have some experience with pinescript or you are willing to learn and experiment. You should also know the exact formula for every indicator you will use since you have to write it by yourself. Copy-pasting from existing open-source indicators will get you started quite fast though.
The idea here is either to create a new indicator script from scratch or to copy an existing non-signal indicator and make it a "Signal Indicator". To create a new script, press the "Pine Editor" button below the chart to open the "Pine Editor" and then press the "Open" button to open the drop-down menu with the templates. Select the "New Indicator" option. Add it to your chart to copy an existing indicator and press the source code {} button. Its source code will be shown in the "Pine Editor" with a warning on top stating that this is a read-only script. Press the "create a working copy". Now you can give a descriptive title and a short title to your script, and you can work on (or copy-paste) the (other) indicators of your interest. Once you have the information needed to decide, define a DealConditions object and plot it like this:
import jason5480/tts_convention/ as conv
// Calculate the start, end, cancel start, cancel end conditions
dealConditions = conv.DealConditions.new(
startLongDeal = ,
startShortDeal = ,
endLongDeal = ,
endShortDeal = ,
cnlStartLongDeal = ,
cnlStartShortDeal = ,
cnlEndLongDeal = ,
cnlEndShortDeal = )
// Use this signal in scripts like "Template Trailing Strategy (Backtester)" and "Signal Composer" that can utilize its value
// Emit the current signal value according to the TTS framework convention
plot(series = conv.getSignal(dealConditions), title = '🔌Signal to TTS', color = #808000, editable = false, display = display.data_window + display.status_line, precision = 0)
You should import the latest version of the tts_convention library and write your deal conditions appropriately based on your trading logic and put them in the code section shown above by replacing the "…" part after "=". You can omit the conditions that are not relevant to your logic. For example, if you use only market orders for entering and exiting your positions the cnlStartLongDeal, cnlStartShortDeal, cnlEndLongDeal, and cnlEndShortDeal are irrelevant to your case and can be safely omitted from the DealConditions object. After successfully compiling your new custom SI script add it to the same chart with the TTS by pressing the "Add to chart" button. If all goes well, you will be able to connect your "signal" to the TTS as described in the "How to connect a "signal" from a "Signal Indicator"?" guide.
🧩 Adapt and Combine existing non-signal indicators 💥
The second approach is meant to be used for relatively simple trading logic. The advantages of this approach are the lack of pine script and coding experience needed and the fact that it can be used with closed-source indicators as long as the decision-making part is displayed as a line in the chart. The drawback is that you have to have a subscription that supports the "indicator on indicator" feature so you can connect the output of one indicator as an input to another indicator. Please check if your plan supports that feature here
To plug in your own logic that way you have to add your indicator(s) of preference in the chart and then add the "Signal Adapter" script in the same chart as well. This script is a "Signal Indicator" that can be used as a proxy to define your custom logic in the CONDITIONS group of the "Settings/Inputs" tab after defining your inputs from your preferred indicators in the VARIABLES group. Then a "signal" will be produced, if your logic is simple enough it can be directly connected to the TTS that is also added to the same chart for execution. Check the "How to connect a "signal" from a "Signal Indicator"?" in the "🤔 How to Guide" for more information.
If your logic is slightly more complicated, you can add a second "Signal Adapter" in your chart. Then you should add the "Signal Composer" in the same chart, go to the SIGNALS group of the "Settings/Inputs" tab, and connect the "signals" from the "Signal Adapters". "Signal Composer" is also a SI so its composed "signal" can be connected to the TTS the same way it is described in the "How to connect a "signal" from a "Signal Indicator"?" guide.
At this point, due to the composability of the framework, you can add an arbitrary number (bounded by your subscription of course) of "Signal Adapters" and "Signal Composers" before connecting the final "signal" to the TTS.
💢 How to set up ⏰Alerts ❓
The "Template Trailing Strategy (Backtester)" provides a fully customizable per-event alert mechanism. This means that you may have an entirely different message for entering and exiting into a position, hitting a stop-loss or a take-profit target, changing trailing targets, etc. There are no restrictions, and this gives you great flexibility.
First enable the events you want under the "🔔 ALERT MESSAGES" module. Each enabled event exposes a text area where you can craft the message using placeholders that TTS replaces with actual values when the event occurs.
The placeholder categories (exact names used by the script) are:
Chart & instrument:
{{ticker}}
{{base_currency}}
{{quote_currency}}
Entry / exit / stop / TP prices & offsets:
{{entry_price}}
{{exit_price}}
{{stop_loss_price}}
{{take_profit_price_1}} ... {{take_profit_price_5}}
{{entry+_price}}, {{entry-_price}}, {{exit+_price}}, {{exit-_price}} — Optional offset helpers (computed using "Offset Ticks")
Quantities, percents & derived quantities:
{{entry_base_quantity}} — base units at entry (e.g. BTC)
{{entry_quote_quantity}} — quote amount at entry (e.g. USD)
{{risk_perc}} — % of capital risked for that entry (multiplied by 100 when "Percentage Range " is enabled)
{{remaining_quantity_perc}} — % of the initial position remaining at close/SL
{{remaining_base_quantity}} — remaining base units at close/SL
{{take_profit_quantity_perc_1}} ... {{take_profit_quantity_perc_5}} — % sold/bought at each TP
{{take_profit_base_quantity_1}} ... {{take_profit_base_quantity_5}} — base units closed at each TP
❗ Important: the per-event alert text is injected into the Create Alert dialog using TradingView's strategy placeholder:
{{strategy.order.alert_message}}
During the creation of a strategy alert, make sure the placeholder {{strategy.order.alert_message}} exists in the "Message" box. TradingView will substitute the per-event text you configured and enabled in TTS Settings/Inputs before sending it via webhook/notification.
Tip: For webhook/broker execution, set the proper "Condition" in the Create Alert dialog (for changing-entry/exit/SL notifications use "Order fills and alert() function calls" or "alert() function calls only" as appropriate).
💢 How to execute my orders in a broker ❓
To execute your orders in a broker that supports webhook integration, you should enable the appropriate alerts in the "Template Trailing Strategy (Backtester)" first (see the "How to set up Alerts?" guide above). Then you should go to the "Create Alert/Notifications" tab check the "Webhook URL" and paste the URL provided by your broker. You have to read the documentation of your broker for more information on what messages are expected.
Keep in mind that some brokers have deep integration with TradingView so a per-event alert approach might be overkill.
📑 Definitions
This section tries to give some definitions in terms that appear in the "Settings/Inputs" tab of the "Template Trailing Strategy (Backtester)"
💢 What is Trailing ❓
Trailing is a technique where a price target follows another "barrier" price (usually high or low) by trying to keep a maximum distance from the "barrier" when it moves in only one direction (up or down). When the "barrier" moves in the other direction the price target will not change. There are as many types of trailing as price targets, which means that there are entry trailing, exit trailing, stop-loss trailing, and take-profit trailing techniques.
💢 What is a Moonbag ❓
A Moonbag in a trade is the quantity of the position that is reserved and will not be exited even if all take-profit targets defined in the strategy are hit, the quantity will be exited only if the stop-loss is hit or a close signal is received. This makes the stop-loss trailing technique in a trend-following strategy a good candidate to take advantage of a Moonbag.
💢 What is Distance ❓
Distance is the difference between two prices.
💢 What is Bias ❓
Bias is a psychological phenomenon where you make decisions based on market sentiment. For example, when you want to enter a long position you have a long bias, and when you want to exit from the long position you have a short bias. It is the other way around for the short position.
💢 What is the Bias Distance of a price target ❓
The Bias Distance of a price target is the distance that the target will deviate from its initial price. The direction of this deviation depends on the bias of the market. For example, suppose you are in a long position, and you set a take-profit target to the local highest high. In that case, adding a bias distance of five ticks will place your take-profit target 5 ticks below this local highest high because you have a short bias when exiting a long position. When the bias is long the bias distance will be added resulting in a higher target price and when you have a short bias the bias distance will be subtracted.
⚙️ Settings
In the "Settings/Inputs" tab of the "Template Trailing Strategy (Backtester)", you can find all the customizable settings that are provided by the framework. The variety of those settings is vast; hence we will only scratch the surface here. However, for every setting, there is an information icon 🛈 where you can learn more if you mouse over it. The "Settings/Inputs" tab is divided into ten main groups. Each one of them is responsible for one module of the framework. Every setting is part of a group that is named after the module it represents. So, to spot the module of a setting find the title that appears above it comes with an emoji and uppercase letters. Some settings might have the same name but belong to different modules e.g. "Tgt Dist Mtd" (Target Distance Method). Some settings are indented, which means that they are closely related to the non-indented setting above. Usually, indented settings provide further configuration for one or more options of the non-indented setting above. The groups that correspond to each module of the framework are the following:
🗺️ Quick Module Cross-Reference (use emojis to jump to setting groups)
📆 FILTERS — session, date & weekday filters
🛠️ STRATEGY — internal vs external deal-conditions; pick the signal source
🔧 STRATEGY – INTERNAL — built-in Two MA logic for demonstration purposes
🎢 VOLATILITY — ATR / StDev update modes
🔷 ENTRY — entry order types & trailing
🎯 TAKE PROFIT — multi-step TP and trailing rules
🛑 STOP LOSS — stop placement, move-to-breakeven, trailing
🟪 EXIT — exit order types & cancel logic
💰 QUANTITY/RISK MANAGEMENT — position sizing, moonbag, limits
📊 ANALYTICS — stats, streaks, seasonal tables
🔔 ALERT MESSAGES — per-event alert templates & placeholders
😲 Caveats
💢 Does "Template Trailing Strategy (Backtester)" have repainting behavior? ❓
The answer is that the "Template Trailing Strategy (Backtester)" does not repaint as long as the "Signal Indicator" that is connected also does not repaint. If you developed your own SI make sure that you understand and know how to prevent this behavior. The publication by @PineCoders here will give you a good idea on how to avoid most of the repainting cases.
⚠️ There is an exception though, when the "Enable Trail⚠️💹" checkbox is checked, the Take Profit trailing feature is enabled, and a tick-based approach is used, meaning that after a while, when the TradingView discards all the real-time data, assumptions will be made by the backtesting engine that will cause a form of repainting. To avoid making false assumptions please disable this feature in the early stages and evaluate its usefulness in your strategy later on, after first confirming the success of the logic without this feature. In this case, consider turning on the bar magnifier feature. This way you will get more accurate backtest results when the Take Profit trailing feature is enabled.
💢 Can "Template Trailing Strategy (Backtester)" satisfy all my trading strategies ❓
While this framework can satisfy quite a large number of trading strategies there are cases where it cannot do so. For example, if you have a custom logic for your stop-loss or take-profit placement, or if you want to dollar cost average, then it might be better to start a new strategy script from scratch.
⚠️ It is not recommended to copy the official TTS code and start developing unless you are a Pine wizard! Even in that case, there is a stiff learning curve that might not be worth your time. Last, you must consider that I do not offer support for customized versions of the TTS script and if something goes wrong in the process you are all alone.
💝 Support & Feedback
For feedback, bug reports, or feature requests, contact me via TradingView PM or use the script comments.
Note: The author's personal links and contact are available on the TradingView profile.
🤗 Thanks
Special thanks to the welcoming community members, who regularly gave feedback all those years and helped me to shape the framework as it is today! Thanks everyone who contributed by either filing a "defect report" or asking questions that helped me to understand what improvements were necessary to help traders.
Enjoy!
Jason
Backtester
Trade Helper [Trading Nerd]Position Size Calculator / Lot Size Calculator
Disclaimer: I do my best to avoid wrong calculations and bugs. I provide this indicator without warranties of any kind. You bear all risks associated with the use of this indicator.
Inputs:
Market: Adds a name tag to the Table to keep track of the trades.
Entry Price: The entry Price of the Position.
Entry Time: The entry Time/Candle of the Position. If Stop Loss Type is 'ATR' or 'HH/LL' the Value for this is calculated by this Candle.
Stop Loss Type: Changes the Stop Loss Type.
Direction: Define if the trade direction is 'Long' or 'Short'. Has no effect on Stop Loss Type 'Custom'. For this you can just set the Stop Loss below/above the Entry Price .
ATR Multiplier: Multiplies the ATR Value by this number. Has only an effect on Stop Loss Type 'ATR'.
HH/LL Lookback Length: Lookback length for determine Highest High/Lowest Low value. Has only an effect on Stop Loss Type 'HH/LL'.
Custom SL Price: The Stop Loss Price if the Stop Loss Type is set to 'Custom'.
Risk Reward Ratio: The Risk is multiplied by this number to determine the Take Profit Price.
Balance: Balance Amount and Currency
Contract Size: The Position Size is divided by this number. E.G. in Forex one Lot is 100.000 Contracts. Change this Value depending on your Broker and Market.
Risk in %: Percent that is risked of the Balance for one Trade.
Scalp: OTT BacktesterThis is a backtester that can also add alarms. Using the OTT.
Inputs:
----------------
Capital : Total starting capital. / Başlangıçtaki sermaye
Investment per trade (% of Capital) : How much percentage of the inital capital will be used for trades. / Her bir pozisyon açarken başlangıç sermayesinin %'de kaçını kullanacağı.
No of Max Orders : How many positions can be opened at the same time. / Aynı anda en fazla kaç tane pozisyonun açık olabileceği.
Add profit to your capital: Bu seçenek seçildi ise sistem her seferinde toplam sermayeyi yeniden hesaplayıp pozisyonları ona göre açar. Eğer seçili değilse pozisyonları hesaplarken hep sabit başlangıç sermayesini kullanır.
Comission : Comssion of the exchange. This will both apply buy and sel. / Borsanın % kaç komisyon aldığı. Buraya girilen değer hem pozisyon açarken hem de pozisyon kapatılırken uygulanır.
Target Porift Type : Choose what kind of target profit will be used. ALso check the tool tip. / Farklı kâr alma yöntemlerinden bir tanesi seçilebilir. PERC sade bir şekilde % hedef girilir. RISKRATIO: Stop loss'a göre bir çarpan ile kâr hedefi belirlenir. NONE: Kar hedefi olmadan pozisyon açık kalır.
Target Profit % : Eğer kâr alma yöntemi olark PERC seçildi ise işe yarar. Burada girilen yüzdeyi kâr hedefi olarak belirler ve grafikte de işaretler.
Risk Reward Ratio : Eğer kâr alma yöntemi olark RISKRATIO seçildi ise işe yarar. Stop Loss seviyesi ne ise buradaki çarpana göre bir kâr hedefi olarak belirler ve grafikte de işaretler.
Stop Loss Type : Zarar kes seviyesidir. Buradaki hedefe vardığında pozisyonu kapatır.
Zendog Backtest-DCA-Bot-3commasHi everyone,
This is a strategy that serves as a basic Backtester for 3commas DCA bots.
You can plugin your own studies into the Backtester, play around with their parameters as well with the DCA parameters and see how they can provide best result on historical data.
Features:
- Meaningful statistics that actually group orders under the same deal.
(base order + safety orders are the same deal, but Tradingview Strategy Tester shows them as separate trades)
See how many safety orders were used for each deal.
- Deal start condition: built in RSI-7 or external indicator
(main purpose of this strategy is to connect your own studies, so using external indicator is recommended)
- Base order and safety orders configs similar to 3commas
(order size, percent deviation, safety orders, percent scale and volume scale)
- Support for Long strategy for now (plan to add Short)
TTP Gavin's DCA BacktestPurpose:
The DCA Backtest script was designed to backtest the performance of any indicator using DCA bots.
"Open Deal ASAP" Deal Start Condition:
This script offers "open deal ASAP" deal start condition which will continuously open new deals. IT will wait for the current deal to close before opening a new one.
"Script" Deal Start Condition:
If you select the "Script" deal start condition we provide Bollinger Bands as an example. You can tweak the BB parameters from the indicator settings menu.
"Indicator" Deal Start Condition:
The third option is "Indicator". For this option to work you must have an indicator that plots a unique value that can be recognised as a BUY signal.
We recommend that your indicator plots 1 when it should buy and 0 when there's no signal.
Once you have in the same chart your indicator and your DCA backtest it's time to hook them up. For that follow these steps:
1) select "Indicator" as deal start condition
2) select your indicator from the list as "deal start source"
3) If you are following our recommendation then use 1 as "deal start value" so it can tell the DCA backtest when to open a deal. Make sure that your indicator only plots 0 or 1 so the DCA backtest can distinguish the BUY signal appropriately.
Limitations:
Each time you make changes and save your external indicator while you are backtesting, you will have to hook up the indicator again with the DCA backtest in the settings.
To avoid this, add as many parameters as you need to change in the external indicator so in that way you won't need to save changes to it and therefore will manage to avoid having to hook up the indicator with the DCA backtest.
Study Backtester [MS]Backtest your study like a strategy with our Study Backtester. Visualize your script's performance directly on the chart.
Simple to use, copy-paste a few lines of code (shown below) into your script, then set your script as input to the Study Backtester.
Visualize how your script performs against buy-and-hold over time, and get a nice print out of stats.
Settings
Set your buy and sell signal inputs
Add a stop loss
Choose normal or trailing stop loss
Choose the start date and time for backtesting
Set trading commissions
Use leverage or not
Set carry cost for leveraged trades
Version 1
Only supports buy-sell-buy-sell alternating signals. Any non-alternating signals will be ignored.
Testing begins with 1 share of the asset at your first buy signal.
Things To Note
This cannot enter or exit mid-candle. With the exception of the stop loss feature, which will calculate exits at the exact stop price.
Stops are not treated as stop-orders, but as market-exists at the stop (or trailing stop) price.
This DOES NOT take into account any loss of funds due to liquidation if price goes against you in a margin position.
Short positions are not currently supported.
Only `study` scripts are supported
How To Use
1) Add the following to the bottom your study's code.
//------------------------------------------------------------------------------
// FOR BACKTESTER
plot(buy ? 1 : sell ? -1 : na, title="Signals", display=display.none, editable=false)
2) Make sure `buy` and `sell` variables are assigned appropriately according to your strategy.
3) Add both your study and this script to your chart.
4) Set the "Signals Plot" setting of this script to: : Signals
5) Adjust this script's settings (start date, commission, stoploss, etc) as necessary.
PM us with any questions about this script.
Ultimate Strategy TemplateHello Traders
As most of you know, I'm a member of the PineCoders community and I sometimes take freelance pine coding jobs for TradingView users.
Off the top of my head, users often want to:
- convert an indicator into a strategy, so as to get the backtesting statistics from TradingView
- add alerts to their indicator/strategy
- develop a generic strategy template which can be plugged into (almost) any indicator
My gift for the community today is my Ultimate Strategy Template
Step 1: Create your connector
Adapt your indicator with only 2 lines of code and then connect it to this strategy template.
For doing so:
1) Find in your indicator where are the conditions printing the long/buy and short/sell signals.
2) Create an additional plot as below
I'm giving an example with a Two moving averages cross.
Please replicate the same methodology for your indicator wether it's a MACD, ZigZag, Pivots, higher-highs, lower-lows or whatever indicator with clear buy and sell conditions
//@version=4
study(title='Moving Average Cross', shorttitle='Moving Average Cross', overlay=true, precision=6, max_labels_count=500, max_lines_count=500)
type_ma1 = input(title="MA1 type", defval="SMA", options= )
length_ma1 = input(10, title = " MA1 length", type=input.integer)
type_ma2 = input(title="MA2 type", defval="SMA", options= )
length_ma2 = input(100, title = " MA2 length", type=input.integer)
// MA
f_ma(smoothing, src, length) =>
iff(smoothing == "RMA", rma(src, length),
iff(smoothing == "SMA", sma(src, length),
iff(smoothing == "EMA", ema(src, length), src)))
MA1 = f_ma(type_ma1, close, length_ma1)
MA2 = f_ma(type_ma2, close, length_ma2)
// buy and sell conditions
buy = crossover(MA1, MA2)
sell = crossunder(MA1, MA2)
plot(MA1, color=color_ma1, title="Plot MA1", linewidth=3)
plot(MA2, color=color_ma2, title="Plot MA2", linewidth=3)
plotshape(buy, title='LONG SIGNAL', style=shape.circle, location=location.belowbar, color=color_ma1, size=size.normal)
plotshape(sell, title='SHORT SIGNAL', style=shape.circle, location=location.abovebar, color=color_ma2, size=size.normal)
/////////////////////////// SIGNAL FOR STRATEGY /////////////////////////
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Basically, I identified my buy, sell conditions in the code and added this at the bottom of my indicator code
Signal = buy ? 1 : sell ? -1 : 0
plot(Signal, title="🔌Connector🔌", transp=100)
Important Notes
🔥 The Strategy Template expects the value to be exactly 1 for the bullish signal , and -1 for the bearish signal
Now you can connect your indicator to the Strategy Template using the method below or that one
Step 2: Connect the connector
1) Add your updated indicator to a TradingView chart
2) Add the Strategy Template as well to the SAME chart
3) Open the Strategy Template settings and in the Data Source field select your 🔌Connector🔌 (which comes from your indicator)
From then, you should start seeing the signals and plenty of other stuff on your chart
🔥 Note that whenever you'll update your indicator values, the strategy statistics and visual on your chart will update in real-time
Settings
- Color Candles : Color the candles based on the trade state (bullish, bearish, neutral)
- Close positions at market at the end of each session : useful for everything but cryptocurrencies
- Session time ranges : Take the signals from a starting time to an ending time
- Close Direction : Choose to close only the longs, shorts, or both
- Date Filter : Take the signals from a starting date to an ending date
- Set the maximum losing streak length with an input
- Set the maximum winning streak length with an input
- Set the maximum consecutive days with a loss
- Set the maximum drawdown (in % of strategy equity)
- Set the maximum intraday loss in percentage
- Limit the number of trades per day
- Limit the number of trades per week
- Stop-loss: None or Percentage or Trailing Stop Percentage or ATR
- Take-Profit: None or Percentage or ATR
- Risk-Reward based on ATR multiple for the Stop-Loss and Take-Profit
This script is open-source so feel free to use it, and optimize it as you want
Alerts
Maybe you didn't know it but alerts are available on strategy scripts.
I added them in this template - that's cool because:
- if you don't know how to code, now you can connect your indicator and get alerts
- you have now a cool template showing you how to create alerts for strategy scripts
Source: www.tradingview.com
I hope you'll like it, use it, optimize it and most importantly....make some optimizations to your indicators thanks to this Strategy template
Special Thanks
Special thanks to @JosKodify as I borrowed a few risk management snippets from his website: kodify.net
Additional features
I thought of plenty of extra filters that I'll add later on this week on this strategy template
Best
Dave
TradeChartist Donchian Channels Breakout Strategy™TradeChartist Donchian Channels Breakout Strategy is the strategy backtester version of ™TradeChartist Donchian Channels Breakout Filter .
===================================================================================================================
Features of ™TradeChartist Donchian Channels Breakout Strategy
========================================================
Option to plot Donchian Channels of user preferred length, based on the Source price in addition to High/Low Donchian Channels.
Generates trade entries based on user preferred Breakout Price. For example, if the user prefers HL2 as breakout price, irrespective of the Donchian Channels type, trade entries are generated only when hl2 price (average of high/low) breaks out of the upper or lower band.
Option to plot background colour based on Breakout trend. The bull zones are filled with green background, the Bear zones are filled with red background and the bar that broke out is filled with orange background.
Option to colour price bars using Donchian Channels price trend. The Donchian Channels basis line is plotted using the same colours as coloured bars as default.
Note: This script does not repaint. To use the script for trade entries, wait for the bar close without Backtester or Strategy entries (with Backtester) and use a second confirmator (includes fundamentals) based on asset type as some markets require users to have good pulse on the fundamentals as trading by Technicals/price action dynamic alone may not be safe.
Note: Trend Based Stochastic of the same DC Length can be used from ™TradeChartist Risk Meter for Trade Confirmations too.
===================================================================================================================
Best Practice: Test with different settings first using Paper Trades before trading with real money
===================================================================================================================
This is not a free to use strategy. Get in touch with me (PM me directly if you would like trial access to test the strategy)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
Trading Safely Market Crusher Pro Strategy BuilderWith The Market Crusher Pro You Can Build Trading Strategies For Options, Futures, Cryptocurrencies, Equities, Commodities, Currencies, and Stock Market Indexes.
The Market Crusher Pro Buy And Sell Strategy Builder gives you the ability to back-test all tradeable markets. You can back test using specific trading times on any chart time frame before you execute any trades for both manual trading and automated trading.
The Market Crusher Pro Buy & Sell signals are determined utilizing our price range volatility algorithmic technical indicator designed to generate alpha.
The Market Crusher Pro Buy & Sell signals will only be visible during your specified trading times.
The Market Crusher Pro Profit Targets are determined in percentages and you can take profit up to 4 times per trade.
I suggest setting limit orders at profit targets.
To determine how much of position to close divide position size by number of profit targets
Example: If your position size is 100k and you are in a Long trade set 4 limit sell orders of 25k each at your 4 profit targets.
*Percentage of position to be closed for each trade is set to 25% however, you can adjust this to take profit 3 times by changing settings on 1st, 2nd, and 3rd profit targets to 33.3%, or 2 times by changing 1st and 2nd profit targets to 50%
Highlights:
Add to any ticker, and time frame
Specify trading times
Specify both long and short profit targets in percentages
Take profit up to 4 times per trade
Use either a fixed stop loss or a trailing stop loss or both
Set Strategy alerts
Prints on the current bar in real time
DOES NOT repaint several bars after the fact
*We only use candles for trading and back testing because, Heikin Ashi, Renko, Kagi, Point & Figure, and Range produce unrealistic results.
*Back test results below are based on a initial capital of $5000 and Trade using 10% of initial capital.
Please Note: For forex trading to enter a trade on EURUSD for example the spread is typically 1.2-2.0 pips to enter a trade so you are not charged a commission on every market buy or sell or for limit orders set at profit targets. We are not able to input this into back test settings.
Example: If you open a 100k position it will cost you $12-$20 assuming the spread is 1.2 to 2.0 pips
Please Note: All users get access to weekly trading and strategy building sessions and a interactive Q&A. You can get more information on these benefits as well as get access to the strategy builder by clicking the MC PRO link listed in signature section below
Bollinger Bands Breakout StrategyBollinger Bands Breakout Strategy is the strategy version of Bollinger Bands Filter study version, which can be found under my scripts page. The strategy goes long when price closes above the upper band and goes short signal when price closes below the lower band.
Bollinger Bands is a classic indicator that uses a simple moving average of 20 periods, along with plots of upper and lower bands that are 2 standard deviations away from the basis line. These bands help visualize price volatility and trend based on where the price is, in relation to the bands.
The strategy doesn't take into account any other parameters such as Volume / RSI / Fundamentals etc, so user must use discretion based on confirmations from another indicator or based on fundamentals. The strategy results are based on purely long and short trades and doesn't take into account any user defined targets or stop losses.
The strategy works great when the price closes above/below upper/lower bands with continuation on next bar. It is definitely useful to have this strategy or the Bollinger Bands filter along with other indicators to get early glimpse of breach/fail of bands on candle close during BB squeeze or based on volatility .
This can be used on Heikin Ashi candles for spotting trends, but HA candles are not recommended for trade entries as they don't reflect true price of the asset.
The strategy settings default is 55 SMA and 1 standard deviation for Bollinger Bands filter, but these can be changed from settings.
It is definitely worth reading the 22 rules of Bollinger Bands written by John Bollinger if interested in trading Bollinger Bands successfully.
TradeChartist PowerTracer Pro Backtester™TradeChartist PowerTracer Pro Backtester is the strategy script for backtesting ™TradeChartist PowerTracer Pro for best performance settings which can then be used with ™TradeChartist PowerTrader Pro to plot Trades emulating the backtester and use Alerts (once per bar) on real time price chart.
PowerTracer Backtester includes the following options in the settings.
PowerTracer setting - Power Plot Type - (PowerTracer, Bar-wise Power Holder)
PowerTracer setting - Timeframe Multiplier
PowerTracer setting - Smoothing Factor
Backtester setting - Trade Direction - (Both Longs and Shorts, Only Longs, Only Shorts)
Backtester setting - SL Type (Fixed Stop Loss, Trailing Stop Loss)
Backtester setting - Reference for Trailing SL (Close, High/Low)
Backtester setting - Stop Loss %
Backtester setting - Take Profit %
Backtester setting - Quantity to trade at TP %
Using combinations of the settings, the user can find optimal settings for the asset to deliver lucrative entry and exit signals with high ROI and minimal Drawdown which can then be used on PowerTracer Pro and PowerTrader Pro to plot signals and create alerts to start trading in real-time.
Example charts:
GBP-USD 1hr chart - (2,1,Trailing SL, close, 1,1,25)
BTC-USDT 15m chart - (4,5, Trailing SL, high/low, 3.9,1.2,15)
SPX 1hr chart - (1,3, Trailing SL, high/low, 3, 2, 50)
This backtester needs the following scripts to generate signals and plots on main price chart and for real-time alerts
™TradeChartist PowerTracer Pro
™TradeChartist PowerTrader Pro
===================================================================================================================
This is not a free to use indicator. Get in touch with me (PM me directly if you would like trial access to test the indicator)
Premium Scripts - Trial access and Information
Trial access offered on all Premium scripts.
PM me directly to request trial access to the scripts or for more information.
===================================================================================================================
[STRATEGY] Moving Average CrossoverHello friends,
This is a comprehensive backtesting engine for Moving Average crossover strategies, supporting over 63 types of moving averages and filters. It allows you to test, compare, and optimize crossover behaviors between any two moving averages with flexible profit and risk management tools.
Built upon the Moving Average Crossover foundation, this advanced version lets you manually backtest more than 4096 combinations of moving average types. When combined with customizable periods, take-profits, and stop-loss levels, the total number of possible configurations becomes virtually unlimited.
🛠 How It Works
The system tests crossovers between two selected moving averages, with full control over their types, lengths, and trading direction. Integrated bracket settings enable dynamic take-profit, stop-loss, and trailing-stop management using units such as % , ATR , points , pips , or ticks .
You can restrict backtesting to a custom date range for focused performance evaluation or run it across the instrument’s full history.
🔥 Key Features
Supports 63+ moving average and filter types — including algorithms by Ehlers , Jurik , Kaufman , Apirine , Tillson , and Dürschner
Customizable MA types, periods, and strategy direction
Full-featured bracket control: TP, SL, and TSL in ATR, %, points, pips, or ticks
Backtest window customization (start, end, or range)
Direction filter: Longs only, Shorts only, or Both
Dynamic trade labeling and color-coded visualization
Option to exit only at TP, SL, or TSL
If you'd like access or have any questions, feel free to reach out to me directly via DM.
👋 Good luck and happy trading!
Skrip berbayar
Hull Suite StrategyConverted the hull suite into a strategy script for easy backtesting and added ability to specify a time periods to backtest over.
Why is it ok to backtest on TradingView from now on!TradingView backtester has bad reputation. For a good reason - it was producing wrong results, and it was clear at first sight how bad they were.
But this has changed. Along with many other improvements in its PineScript coding capabilities, TradingView fixed important bug, which was the main reason for miscalculations. TradingView didn't really speak out about this fix, so let me try :)
Have a look at this short code of a swing trading strategy (PLEASE DON'T FOCUS ON BACKTEST RESULTS ATTACHED HERE - THEY DO NOT MATTER). Sometimes entry condition happens together with closing condition for the already ongoing trade. Example: the condition to close Long entry is the same as a condition to enter Short. And when these two aligned, not only a Long was closed and Short was entered (as intended), but also a second Short was entered, too!!! What's even worse, that second short was not controlled with closing conditions inside strategy.exit() function and it very often lead to losses exceeding whatever was declared in "loss=" parameter. This could not have worked well...
But HOORAY!!! - it has been fixed and won't happen anymore. So together with other improvements - TradingView's backtester and PineScript is now ok to work with on standard candlesticks :)
Yep, no need to code strategies and backtest them on other platforms anymore.
----------------
Having said the above, there are still some pitfalls remaining, which you need to be aware of and avoid:
Don't backtest on HeikenAshi, Renko, Kagi candlesticks. They were not invented with backtesting in mind. There are still using wrong price levels for entries and therefore producing always too good backtesting results. Only standard candlesticks are reliable to backtest on.
Don't use Trailing Stop in your code. TradingView operates only on closed candlesticks, not on tick data and because of that, backtester will always assume price has first reached its favourable extreme (so 'high' when you are in Long trade and 'low' when you are in Short trade) before it starts to pull back. Which is rarely the truth in reality. Therefore strategies using Trailing Stop are also producing too good backtesting results. It is especially well visible on higher timeframe strategies - for some reason your strategy manages to make gains on those huge, fat candlesticks :) But that's not reality.
"when=" inside strategy.exit() does not work as you would intuitively expect. If you want to have logical condition to close your trade (for example - crossover(rsi(close,14),20)) you need to place it inside strategy.close() function. And leave StopLoss + TakeProfit conditions inside strategy.exit() function. Just as in attached code.
If you're working with pyramiding, add "process_orders_on_close=ANY" to your strategy() script header. Default setting ("=FIFO") will first close the trade, which was opened first, not the one which was hit by Stop-Loss condidtion.
----------------
That's it, I guess :) If you are noticing other issues with backtester and would like to share, let everyone know in comments. If the issue is indeed a bug, there is a chance TradingView dev team will hear your voice and take it into account when working on other improvements. Just like they heard about the bug I described above.
P.S. I know for a fact that more improvements in the backtesting area are coming. Some will change the game even for non-coding traders. If you want to be notified quickly and with my comment - gimme "follow".
Blackbox (Backtesting version)Blackbox Backtest version is a script with 12 built-in indicators, a list of different conditions you can check/uncheck to enter and exit the market on specific points and 3 different strategies styles.
Use this script to backtest different strategies.
It can't be used to create alerts.
If you found a good strategy and you want to do set alerts too you have to switch to Blackbox Alert version. It's the same script but without the strategy part.
Indicators:
Chaikin Money Flow
Chaikin Money Flow
Chaikin Oscillator
Volume Oscillator
Ichimoku Baseline
SSL
William R%
RSI
Bollinger Bands
ROC
RSI probability (custom)
EMAs
Aroon
ATR
... new indicators very soon
Conditions
Check/uncheck different conditions from setting panel for both entries and exits.
Combine them to create complex strategies and alerts.
This list is constantly updated.
Data Range
Set a data range to backtest.
From Year, Month, Day, Hour, Minute to Year, Month, Day, Hour, Minute.
Order size/settings
ATR Period
TP Multiplier (Used for Take Profit = ATR*TP Multiplier strategies)
SL Multiplier (Used for Stop Loss = ATR*SL Multiplier strategies)
Pips_tp Set a fixed amount of pips for your Take Profit level
Pips_sl Set a fixed amount of pips for your Stop Loss level
Select a strategy style
ATR as TP/SL
Fixed TP/SL
With Exit conditions
Stop Loss for exit conditions
Last update: 13/02/2020
Backtest PREMIUM Suite+ (Plug & Play)Hello traders
I. 💎 SCRIPTS ACCESS AND TRIALS 💎
1. For the trial request access, they have to be done through my website .
2. My website URL is in this script signature at the very bottom (you'll have to scroll down a bit and going past the long description) and in my profile status available here : Daveatt
Due to the new scripts publishing house rules, I won't mention the URL here directly. As I value my partnership with TradingView very much, I prefer showing you the way for finding them :)
3. Many video tutorials explaining clearly how all our indicators work are available on our website > guides section.
4. You may also contact me directly for more information
II. 🔎 Backtest PREMIUM Suite+ (Plug & Play) 🔎
2.1 Forewords
This indicator is available only to our PREMIUM 12 months users. YES! I said indicator, and not strategy or backtest for an excellent reason.
We wanted to make it as generic as possible and allow anyone to connect any indicator of his/her choice in a few clicks only.
This is NOT possible (in TradingView) with a strategy/backtest, but only with an indicator - that's why we worked on recoding the whole backtest logic as an indicator.
The PRO edition does not handle any pyramiding/re-entry - as such enters only once per trend by design. This feature is reserved for our PREMIUM users.
2.2 Concept
This is an indicator that I saw on TradingView and was introduced by the @Pinecoders account on TradingView.
I inspired myself from his Backtest Engine to offer a version more adapted to my vision - The benefits of connecting yourself any indicator to our Backtest engine are amazing and huge.
The concept can't be more simple. Imagine using any indicator and connecting to a backtest system in a single click.
You may connect your Algorithm Builder also to this complete backtesting system in a single click.
What's better between paying thousands for each backtest, or connecting yourself your indicators to your backtest with a click?
That was a rhetoric question, but you can still share your answer with me if you want to :)
III. The amazing benefits of our🔌&🕹️ (Plug&Play) system
Issue #1 💲 A BACKTEST SYSTEM IS COSTLY 💲
Hiring a developer to code a custom indicator is costly. For a custom backtest it's even more expensive as those scripts are very often way more complicated.
Now imagine, that now that you see your idea live on a chart, you'll realize you'll have to finance another backtest system, as the one you have is not compatible with your new idea.
Solution #1 💲💲 YOU COULD BE SAVING SOME MONEY 💲💲
just because it won't be needed to hire someone else for each of your trading idea.
We will never guarantee your success on the market, but THIS I stand by it any day any hour.
You can connect any indicator or your choice by updating your indicator slightly and connecting it to our Backtest engine. We send the tutorial for doing it to all our customers.
Issue #2 🕔 IT'S TIME-CONSUMING 🕔
Even if someone is doing all the coding for you, it might require days/weeks depending on your overall trading strategy/idea.
Without even counting the time for you to test/validate the work done and all the back-and-forth to fix all the issues.
Solution #2 SAVING TIME MIGHT EQUATES TO SAVING MONEY : 🕔 = 💲💲💲
I wish it could be as easy as going from weeks of coding to "1 single click" :)
I did the heavy-lifting, but you'll have to make the last effort the cross the finishing line. I made it easy for you to play with it and find a configuration that makes sense to YOU and for your strategy/asset/timeframe
Issue #3 ❌ IT'S COMPLICATED ❌
Someone did a backtest code for you, but... you can't update it because you either :
- don't know anything in programming
- ... and don't have time to learn (most of us have a job/family/...life)
- The system you have is way too specific for one of your previous idea, but can't be updated easily for your next trading ideas. I see a lot of traders nodding right now thinking "that's soooooo true !!!!"
Solution #3 🎉 WE MADE IT EASY AND FUN 🎉
Our goal is to externalize the technical stuff that you don't want to take care of - so that you can finally focus on your trading and optimizing your ideas. #bold #statement
In case you're wondering, no we're not reading your mind :), but we're also traders who didn't know how to code before and had to hire external programmers to do the heavy work for us.
You can be sure that most of the frustrations (trading, technical, ...) you have/had, we had them also and that's why we created this backtest indicator.
III. 🔌&🕹️
Hope you're ready to be impressed. Because, what I'm about to introduce, is my best-seller feature - and available across many of my indicators.
In TradingView, there is a feature called "Indicator on Indicator" meaning you can use an external indicator as a data source for another indicator.
I'm using that feature to connect any external indicator to our Backtest PREMIUM Suite+ (Plug & Play) - hence the plug and play name. Please don't make it a plug and pray :) it's supposed to help you out, not to stress you even more
Let's assume you want to connect your Algorithm Builder Multiple Trends+ to your Backtest PREMIUM Suite+
I mentioned an Algorithm Builder but you may connect any oscillator (MACD, On balance volume, stochastic RSI, True Strenght index, and many more..) or non-oscillator (divergence, trendline break, higher highs/lower lows, candlesticks pattern, price action, harmonic patterns, ...) indicators.
THE SKY IS (or more likely your imagination) is the limit :)
Fear no more. The Plug&Play technology allows you to connect it and use it the backtest calculations.
This is not magic, neither is sorcery, but certainly is way beyond the most awesome thing I've ever developed on TradingView (even across all brokers I know). #bolder #statement
TradingView is the best trading platform by far and I'm very grateful to offer my indicators on their website.
To connect your external indicator to ours, we're using a native TradingView feature, which is not available for all users.
It depends on your TradingView subscription plan ( More info here )
If you intend to use our Algorithm Plug&Play indicator, and/or our Backtest Plug&Play suites, then you must upgrade your TradingView account to enjoy those features.
We value our relationship with our customers seriously, and that's why we're warning you that a compatible TradingView account type is required - at least PRO+ or PREMIUM to add more than 1 Plug&Play indicator per account.
We go in-depth on our website why the Plug&Play is an untapped opportunity for many traders out there - URL available on my profile status and signature
IV. 📊 Make it nice! 📊
Now we're getting right into the fun stuff.
Let's explore briefly each display option (symbolized by an 👁️🗨️ in the Backtest UI) :
- Color Traded Background : Color the chart background is green when in a BUY trade, in red when in a SELL trade. If the Backtest is not in a trade, then the background won't be colored.
- Show Entry/Exit Markers : Displays the entries (Enter Long/Enter Short), and exits (Exit Long/Exit Short) labels.
- Show Entry Level : Displays a blue level line to easily identify the entry price of a trade.
- Show Take Profit Level : Display a purple line to visualize where the Take Profit level is (we'll explain below how to set it up).
- Show In-Trade Stops : Display the stop-loss
V. Backtesting filters
A backtest should have some filters helping the traders testing a few hypotheses. Well.... we included a ton of them.
Once again, thank you @Pinecoders for the help and support you gave me
5.1 ↑ Trade Direction ↓
- Both: The backtest takes the BUY, and SELL trades.
- Longs only/Short only: To be used if the trader wants to take the trades in a unique direction only
5.2 ▲🔷Pyramiding🔷▼
The Backtest PRO allows 1 entry per identified trend
Pyramiding has many names such as Re-entry, secondary trend, Additional entry, ...
Basically, it refers to entering multiple times in the same trend.
Maximum Number of Pyramiding Entries: Literally the max number of re-entries in the same trend.
For instance, if set to 2, then depending on the signals, you'll get at most 2 re-entries in the same trade direction.
- Position Size Multiple of Original Entry Position: Option to add X multiples of the original position size for the re-entries.
Example: Position size multiple = 2, and First entry size is $100. Then, the re-entries position sizes will be ($100 X 2 = $200).
5.3 ▄ █ Position sizing █ ▄
- 1. % of Equity: If selected, the position size used is the input to the right of 1. % of Equity.
Example: The trader starts with a capital of 100K. After a winning trade, your total capital is $103K - for the next trade the position size will be 3% of $103K
- 2. % of Capital: If selected, the position size used is the input to the right of 2. % of Capital.
In other words, the position size will always be the same position size as calculated on the initial capital.
Example: The trader starts with a capital of 100K. After a winning trade, your total capital is $103K - for the next trade the position size will be 5% of $100K. (As 100K is the initial capital used in our dummy example)
5.4⛔ Entry Stops and In-Trade Stops ⛔
We didn't reinvent the wheel here. Any good backtest should offer an entry stop-loss and an in-trade stop-loss.
Giving only here also an example among all the use cases. For instance, the trader sets a stop-loss 2% at the time of entry on your trade, but once the trade moves in the desired direction, the trader might want a trailing stop-loss using a 4% input.
Example: A trader goes LONG on only 1 "ABC" stock evaluated $10 per share.
1) The entry-stop loss will be 2% away so set at $8
2) A candle
3) The trailing stop will activate, and move the stop-loss from the entry stop-loss level (=$8) to $8.32 (=4% move up from $8) - and so on, and so forth for each time the price moves 4% up
The entry and in-trade stop losses can absolutely be identicals. There is no universal rule, and as always you know the drill - all depends on your backtest, and trading strategy as a whole.
5.5 ❌ Hard Exits ❌
⚠️The Backtest PRO Suite offers the hard exit on MACD only.
Our Backtest PREMIUM Suite offers 2 more indicators to invalidate your trades on :
1. MACD
2. Trend Direction
3. RSI divergence (Regular, and Hidden)
The hard exit (or invalidation) is a fundamental part of my trading method.
I explained numerous times on TradingView, our website, and social media channels why I "love" this concept so much, and how it saved my trading account numerous times from getting savagely wrecked by the market.
5.6 💲💲 Take Profit 💲💲
We only included 1 level of Take Profit so far. We'll work on adding at least one more soon.
You can set your Take Profit level based on either a:
1- Fixed value
2 - Percentage value
5.7 📆 Date Range Filtering 📆
If enabled, the backtest only uses the data between the starting and the ending dates of the defined range.
5.8 ⏱️ Hourly Range Filtering ⏱️
Please note that the hours filtering is based on the broker time - not on your chart time.
In other words, if your chart is UTC+1, but you're trading an asset from a US EAST COAST broker, then the timezone used is the UTC-4 timezone.
You'll must be wary of this when filtering and probably do a quick (but simple) calculation before setting up this option.
The easiest would be to set your chart timezone on the broker local timezone (and no math is needed).
Let's add a quick note that the hourly filter is also included in our Algorithm Builders PRO/PREMIUM 12 months. #shameless #self #advertising
5.9 ❗❗ Fees and Slippage ❗❗
Too often completely ignored by many traders, the fees can eat gains out quickly/deepen one's capital faster than expected.
⚠️The fees vary between brokers, and asset traded - it could be recommended to check on your broker page what are the fees for the asset on your chart, and insert that percentage number.
Another cost ignored, even more, is the Slippage.
i.e. think about a Stop-Loss being hit, and we're so confused because we see on the chart that NEVER the price came even close to your SL level, but... it got hit anyway.
Yes! we know how frustrating it is, but that's the game we're playing, and trading should never be about blaming the game, but only blaming the players/traders/ourselves.
Blaming the game constantly is likely to not end with good performance results, but accounting for this "risk", and being able to quantify it is an incredible hedge. #bold #statement #level #10000
5.10 🔔 Alerts 🔔
By design, the alerts aren't available for strategy scripts. But this script is an... indicator so why should we not enjoy all the cards in our hands the fullest.
We enabled the alerts on the:
1. Main BUY/SELL Entry
2. Pyramiding BUY/SELL Entries
3. Exit Signals such as stop-loss, take-profit, hard-exits
You're welcome :)
VI. 📝 Where are the backtest results? 📝
Answer: in the Data Window section of your TradingView
Now the cherry on the cake if we might say so. A backtest is cool, but visualizing results is actually the end goal here.
Our PREMIUM users benefit from way more analytics than the PRO users.
More info available on our website.
The Data Window is dynamic - it means whenever you'll mouseover at a give time on your chart, the data on that panel automatically updates.
Let's assume you're backtesting your idea between Sept 1st, 2019, and Oct 1st, 2019.
If your mouse cursor is located (or hovered) at a candle on Sept 14th, 2019 (data chosen randomly for this example), then the data displayed only includes the results between Sept 1st, and Sept 14th.
More info available on our website with a nice tutorial video. Data window metrics and filters explained on our website
Here's what the data window looks like: imgur.com
If you have any doubt or question, please hit me up directly or ask in the comments section of this script.
I'll never claim I have the best trading methodology or the best indicators.
You only will judge and I'll appreciate all the questions and feedback you're sending my way.
They help me a ton to develop indicators based on all the requests I received.
Kind regards,
Dave
Backtest PRO Suite+ (Plug & Play)Hello traders
I. SCRIPTS ACCESS AND TRIALS
1. For the trial request access, they have to be done through my website .
2. My website URL is in this script signature at the very bottom (you'll have to scroll down a bit and going past the long description) and in my profile status available here : Daveatt
Due to the new scripts publishing house rules, I won't mention the URL here directly. As I value my partnership with TradingView very much, I prefer showing you the way for finding them :)
3. Many video tutorials explaining clearly how all our indicators work are available on your website > guides section.
4. You may also contact me directly for more information
II. Backtest PRO Suite+ (Plug & Play)
2.1 Forewords
This indicator is available only to our PRO 12 months users. YES! I said indicator, and not strategy or backtest for an excellent reason.
We wanted to make it as generic as possible and allow anyone to connect any indicator of his/her choice in a few clicks only.
This is NOT possible (in TradingView) with a strategy/backtest, but only with an indicator - that's why we worked on recoding the whole backtest logic as an indicator.
The PRO edition does not handle any pyramiding/re-entry - as such enters only once per trend by design. This feature is reserved for our PREMIUM users.
2.2 🔎 Concept 🔎
This is an indicator that I saw on TradingView and was introduced by the @Pinecoders account on TradingView.
I inspired myself from his Backtest Engine to offer a version more adapted to my vision - The benefits of connecting yourself any indicator to our Backtest engine are amazing and huge.
The concept can't be more simple. Imagine using any indicator and connecting to a backtest system in a single click.
You may connect your Algorithm Builder also to this complete backtesting system in a single click.
What's better between paying thousands for a backtest, or connecting yourself your indicator to your backtest with a click?
That was a rhetoric question, but you can still share your answer with me if you want to :)
III. The amazing benefits of our🔌&🕹️ (Plug&Play) system
Issue #1 💲 A BACKTEST SYSTEM IS COSTLY 💲
Hiring a developer to code a custom indicator is costly. For a custom backtest it's even more expensive as those scripts are very often way more complicated.
Now imagine, that now that you see your idea live on a chart, you'll realize you'll have to finance another backtest system, as the one you have is not compatible with your new idea.
Solution #1 💲💲 YOU COULD BE SAVING SOME MONEY 💲💲
just because it won't be needed to hire someone else for each of your trading idea.
We will never guarantee your success on the market, but THIS I stand by it any day any hour.
You can connect any indicator or your choice by updating your indicator slightly and connecting it to our Backtest engine. We send the tutorial for doing it to all our customers.
Issue #2 🕔 IT'S TIME-CONSUMING 🕔
Even if someone is doing all the coding for you, it might require days/weeks depending on your overall trading strategy/idea.
Without even counting the time for you to test/validate the work done and all the back-and-forth to fix all the issues.
Solution #2 SAVING TIME MIGHT EQUATES TO SAVING MONEY : 🕔 = 💲💲💲
I wish it could be as easy as going from weeks of coding to "1 single click" :)
I did the heavy-lifting, but you'll have to make the last effort the cross the finishing line. I made it easy for you to play with it and find a configuration that makes sense to YOU and for your strategy/asset/timeframe
Issue #3 ❌ IT'S COMPLICATED ❌
Someone did a backtest code for you, but... you can't update it because you either :
- don't know anything in programming
- ... and don't have time to learn (most of us have a job/family/...life)
- The system you have is way too specific for one of your previous idea, but can't be updated easily for your next trading ideas. I see a lot of traders nodding right now thinking "that's soooooo true !!!!"
Solution #3 🎉 WE MADE IT EASY AND FUN 🎉
Our goal is to externalize the technical stuff that you don't want to take care of - so that you can finally focus on your trading and optimizing your ideas. #bold #statement
In case you're wondering, no we're not reading your mind :), but we're also traders who didn't know how to code before and had to hire external programmers to do the heavy work for us.
You can be sure that most of the frustrations (trading, technical, ...) you have/had, we had them also and that's why we created this backtest indicator.
III. 🔌&🕹️
Hope you're ready to be impressed. Because, what I'm about to introduce, is my best-seller feature - and available across many of my indicators.
In TradingView, there is a feature called "Indicator on Indicator" meaning you can use an external indicator as a data source for another indicator.
I'm using that feature to connect any external indicator to our Backtest PRO Suite+ (Plug & Play) - hence the plug and play name. Please don't make it a plug and pray :) it's supposed to help you out, not to stress you even more
Let's assume you want to connect your Algorithm Builder Single Trend+ to your Backtest PRO Suite+
I mentioned an Algorithm Builder but you may connect any oscillator (MACD, On balance volume, stochastic RSI, True Strenght index, and many more..) or non-oscillator (divergence, trendline break, higher highs/lower lows, candlesticks pattern, price action, harmonic patterns, ...) indicators.
THE SKY IS (or more likely your imagination) is the limit :)
Fear no more. The Plug&Play technology allows you to connect it and use it the backtest calculations.
This is not magic, neither is sorcery, but certainly is way beyond the most awesome thing I've ever developed on TradingView (even across all brokers I know). #bolder #statement
TradingView is the best trading platform by far and I'm very grateful to offer my indicators on their website.
To connect your external indicator to ours, we're using a native TradingView feature, which is not available for all users.
It depends on your TradingView subscription plan ( More info here )
If you intend to use our Algorithm Plug&Play indicator, and/or our Backtest Plug&Play suites, then you must upgrade your TradingView account to enjoy those features.
We value our relationship with our customers seriously, and that's why we're warning you that a compatible TradingView account type is required - at least PRO+ or PREMIUM to add more than 1 Plug&Play indicator per account.
We go in-depth on our website why the Plug&Play is an untapped opportunity for many traders out there - URL available on my profile status and signature
IV. 📊 Make it nice! 📊
Now we're getting right into the fun stuff.
Let's explore briefly each display option (symbolized by a 👁️🗨️ in the Backtest UI) :
- Color Traded Background : Color the chart background is green when in a BUY trade, in red when in a SELL trade. If the Backtest is not in a trade, then the background won't be colored.
- Show Entry/Exit Markers : Displays the entries (Enter Long/Enter Short), and exits (Exit Long/Exit Short) labels.
- Show Entry Level :Displays a blue level line to easily identify the entry price of a trade.
- Show Take Profit Level : Display a purple line to visualize where the Take Profit level is (we'll explain below how to set it up).
- Show In-Trade Stops : Display the stop-loss
V. Backtesting filters
A backtest should have some filters helping the traders testing a few hypotheses. Well.... we included a ton of them - even for the PRO version
Once again, thank you @Pinecoders for the help and support you gave me
5.1 ▄ █ Position sizing █ ▄
- 1. % of Equity: If selected, the position size used is the input to the right of 1. % of Equity.
Example: The trader starts with a capital of 100K. After a winning trade, your total capital is $103K - for the next trade the position size will be 3% of $103K
- 2. % of Capital: If selected, the position size used is the input to the right of 2. % of Capital.
In other words, the position size will always be the same position size as calculated on the initial capital.
Example: The trader starts with a capital of 100K. After a winning trade, your total capital is $103K - for the next trade the position size will be 5% of $100K. (As 100K is the initial capital used in our dummy example)
5.2⛔ Entry Stops and In-Trade Stops ⛔
We didn't reinvent the wheel here. Any good backtest should offer an entry stop-loss and an in-trade stop-loss.
Giving only here also an example among all the use cases. For instance, the trader sets a stop-loss 2% at the time of entry on your trade, but once the trade moves in the desired direction, the trader might want a trailing stop-loss using a 4% input.
Example: A trader goes LONG on only 1 "ABC" stock evaluated $10 per share.
1) The entry-stop loss will be 2% away so set at $8
2) A candle
3) The trailing stop will activate, and move the stop-loss from the entry stop-loss level (=$8) to $8.32 (=4% move up from $8) - and so on, and so forth for each time the price moves 4% up
The entry and in-trade stop losses can absolutely be identicals. There is no universal rule, and as always you know the drill - all depends on your backtest, and indicator configurations as a whole.
Last, but not the least, selecting an Entry stop-loss is mandatory, but the in-trade stop-loss is not. Up to you to decide if the in-trade SL is needed for your Backtest strategy.
5.3 ❌ Hard Exits ❌
We included the MACD hard exit indicator in the backtest - as we did also for the Algorithm Builders.
The hard exit (or invalidation) is a fundamental part of my trading method.
I explained numerous times on TradingView, our website, and social media channels why I "love" this concept so much, and how it saved my trading account numerous times from getting savagely wrecked by the market.
5.4 💲💲 Take Profit 💲💲
We only included 1 level of Take Profit so far. We'll work on adding at least one more soon.
You can set your Take Profit level based on either a:
1- Fixed value
2 - Percentage value
5.5 📆 Date Range Filtering 📆
If enabled, the backtest only uses the data between the starting and the ending dates of the defined range.
5.6 ❗❗ Fees and Slippage ❗❗
Too often completely ignored by many traders, the fees can eat gains out quickly/deepen one's capital faster than expected.
⚠️The fees vary between brokers, and asset traded - it could be recommended to check on your broker page what are the fees for the asset on your chart, and insert that percentage number.
Another cost ignored, even more, is the Slippage.
i.e. think about a Stop-Loss being hit, and we're so confused because we see on the chart that NEVER the price came even close to your SL level, but... it got hit anyway.
Yes! we know how frustrating it is, but that's the game we're playing, and trading should never be about blaming the game, but only blaming the players/traders/ourselves.
Blaming the game constantly is likely to not end with good performance results, but accounting for this "risk", and being able to quantify it is an incredible hedge. #bold #statement #level #10000
5.7 🔔 Alerts 🔔
By design, the alerts aren't available for strategy scripts. But this script is an... indicator so why should we not enjoy all the cards in our hands the fullest.
We enabled the alerts on those Backtest Entry/Exit signals. You're welcome :)
VI. 📝 Where are the backtest results? 📝
Answer: in the Data Window section of your TradingView
Now the cherry on the cake if we might say so. A backtest is cool, but visualizing results is actually the end goal here.
The Data Window is dynamic - it means whenever you'll mouseover at a give time on your chart, the data on that panel automatically updates.
Let's assume you're backtesting your idea between Sept 1st, 2019, and Oct 1st, 2019.
If your mouse cursor is located (or hovered) at a candle on Sept 14th, 2019 (data chosen randomly for this example), then the data displayed only includes the results between Sept 1st, and Sept 14th.
More info available on our website with a nice tutorial video. Data window metrics and filters explained on our website
Here's what the data window looks like: imgur.com
If you have any doubt or question, please hit me up directly or ask in the comments section of this script.
I'll never claim I have the best trading methodology or the best indicators.
You only will judge and I'll appreciate all the questions and feedback you're sending my way.
They help me a ton to develop indicators based on all the requests I received.
Kind regards,
Dave
Profitable Moving Average CrossoverHello friends,
I'm glad to introduce a powerful research and optimization tool that takes the classic moving average crossover concept to a new level. Instead of relying on guesswork or fixed MA types, it lets you objectively discover the most profitable moving average pair for any instrument and timeframe.
🛠 How It Works
Moving average crossovers are among the most popular trading systems. A buy signal occurs when a shorter (faster) moving average crosses above a longer (slower) one, and a sell signal when it crosses below. The system's responsiveness — and the number of generated signals — depend on the chosen MA lengths and types.
This script evaluates 61 moving average types (including Jurik, Kaufman, Ehlers, Apirine, and others) and backtests all possible crossover combinations either across the entire chart history or within a custom backtest window . It then plots continuous profit metric lines for each crossover type and displays the top 5 performers in a results table. Each MA type is color-coded, allowing quick visual identification of which systems have historically delivered the strongest results.
🔥 Key Features
Pine Script V6 — optimized for performance and stability
Tests 61 moving average types , from classic to adaptive designs
Custom Backtest Window — analyze the entire history or a specific date range
Continuous profit curves for every crossover type plotted on chart
Top 5 crossover systems displayed in a compact summary table
Color-coded MA identifiers for fast visual comparison
Supports custom parameters for advanced MAs (JMA, ALMA, McGinley Dynamic, Adaptive Laguerre Filter, etc.)
Works seamlessly across all assets and timeframes
NOTE: Results will vary across different tickers and timeframes. Seeing strong performance in one preview does not imply similar profitability elsewhere — this variability is normal due to differing market structures.
NOTE 2: You can experiment with the tool independently or request a full study, in which case I'll share a spreadsheet of all backtest results with you.
👋 Good luck and happy trading!
Skrip berbayar
Megalodon Pro Automated Trader BackTester
Why Megalodon?
We believe that enlightening others is an incredible way to make this world a better place. That's why we created the tools you need to stop worrying about your investments and focus on what really matters in your life.
What is Megalodon?
Megalodon uses Artificial Intelligence that combines 574 back-tested indicators and 2674 back-tested setups, simultaneously.
Megalodon works with any kind of asset , market state and time frame .
What is the win rate?
Megalodon is extremely accurate and offers insane profits as long as the fundamental analysis is done right .
Backtesting results can be found on our social media or down below .
How to use Megalodon Pro Automated Trader?
Simply, orange rectangles are buy signals and purple rectangles are sell signals .
Green clouds show buy signals and red clouds show sell signals.
Yellow line shows the difference between buy and sell counts.
How to set alarms on Megalodon Pro Automated Trader?
Click on Alert, select Megalodon Pro Automated Trader and click on Buy-Signal or Sell-Signal. More details can be found on our social media.
You may also watch our Megalodon Investing Tutorials on Youtube for more information.
How to purchase?
Megalodon is totally FREE .
You may upgrade to Megalodon Pro for the most important features , including automizing your trading on any asset profitably, setting up alarms to get notified , joining to our VIP telegram channel to get daily updates and our VIP telegram group to interact with the community. Simply go to our website on our TradingView page for learning more and joining us for free.
Some of the backtesting results are:
BTC/USD for longer time frame trading in the bear market for the last year.
APPLE for longer time frame trading in the bull market for the last 10 years.
EURO/USD for day trading in the neutral market for the last month.
BTC/USD for day trading in the bull market for the last 15 days.
APPLE for day trading in the neutral market for the last 2 days and 6 hours.
RSI Alligator Strategy [forked from jedireza]Backtester for RSI alligator is Williams Alligator strategy using Relative Strength Index to predict entries
Original script can be found at
Jack MA Cross Alerts with TP, SL, TSLAlerts for:
Jack MA Cross is works based on a MA Crossover. What makes this script unique is the framework built behind it. With the ability of adding TP, SL, and TSL. It makes this script more advanced compare to other traditional MA Crossover scripts.
Will add more Moving Averages in the future, making this the Jack of all Trades .
To request a trial for this script, please PM me.
-----------------
Jack MA Cross V1.0.0
- Initial release
Jack MA Cross Backtester with TP, SL, TSLJack MA Cross is works based on a MA Crossover. What makes this script unique is the framework built behind it. With the ability of adding TP, SL, and TSL. It makes this script more advanced compare to other traditional MA Crossover scripts.
Will add more Moving Averages in the future, making this the Jack of all Trades .
To request a trial for this script, please PM me.
-----------------
Jack MA Cross V1.0.0
- Initial release






















