72s Strat: Backtesting Adaptive HMA+ pt.1This is a follow up to my previous publication of Adaptive HMA+ few months ago, as a mean to provide some kind of initial backtesting tools. Which can be use to explore many possible strategies, optimise its settings to better conform user's pair/tf, and hopefully able to help tweaking your general strategy.
If you haven't read the study or use the indicator, kindly go here first to get the overall idea.
The first strategy introduce in this backtest is one most basic already described in the study; buy/sell is when movement is there and everything is on the right side; When RSI has turned to other side, we can use it as exit point (if in profit of course, else just let it hit our TP/SL, why would we exit before profit). Also, base on RSI when we make entry, we can further differentiate type of signals. --Please check all comments in code directly where the signals , entries , and exits section are.
Second additional strategy to check; is when we also use second faster Adaptive HMA+ for exit. So this is like a double orders on a signal but with different exit-rule (/more on this on snapshots below). Alternatively, you can also work the code so to only use this type of exit.
There's also an additional feature which you can enable its visuals, the Distance Zone , is to help measuring price distance to our xHMA+. It's just a simple atr based envelope really, I already put the sample code in study's comment section, but better gonna update it there directly for non-coder too, after this.
In this sample I use Lot for order quantity size just because that's what I use on my broker. Also what few friends use while we forward-testing it since the study is published, so we also checked/compared each profit/loss report by real number. To use default or other unit of measurement, change the entry code accordingly.
If you change your order size, you should also change the commission in Properties Tab. My broker commission is 5 USD per order/lot, so in there with example order size 0.1 lot I put commission 0.5$ per order (I'll put 2.5$ for 0.5 lot, 10$ for 2 lot, and so on). Crypto usually has higher charge. --It is important that you should fill it base on your broker.
SETTINGS
I'm trying to keep it short. Please explore it further again. (Beginner should also first get acquaintance with terms use here.)
ORDERS:
Base Minimum Profit Before Exit:
The number is multiplier of ongoing ATR. Means that when basic exit condition is met, algo will check whether you're already in minimum profit or not, if not, let it still run to TP or SL, or until it meets subsequent exit condition, then it will check again.
Default Target Profit:
Multiplier of ATR at signal. If reached before any eligible exit condition is met, exit TP.
Base StopLoss Point:
You can change directly in code to use other like ATR Trailing SL, fix percent SL, or whatever. In the sample, 4 options provided.
Maximum StopLoss:
This is like a safety-net, that if at some point your chosen SL point from input above happens to be exceeding this maximum input that you can tolerate, then this max point is the one will be use as SL.
Activate 2nd order...:
The additional doubling of certain buy/sell with different exits as described above. If enable, you should also set pyramiding to at least: 2. If not, it does nothing.
ADAPTIVE HMA+ PERIOD
Many users already have their own settings for these. So in here I only sample the default as first presented in the study. Make it to your adaptive.
MARKET MOVEMENT
(1) Now you can check in realtime how much slope degree is best to define your specific pair/tf is out of congestion (yellow) area. And (2) also able to check directly what ATR lengths are more suitable defining your pair's volatility.
DISTANCE ZONE
Distance Multiplier. Each pair/tf has its own best distance zone (in xHMA+ perspective). The zone also determine whether a signal should appear or not. (Or what type of signal, if you wanna go more detail in constructing your strategy)
USAGE
(Provided you already have your own comfortable settings for minimum-maximum period of Adaptive HMA+. Best if you already have backtested it manually too and/or apply as an add-on to your working strategy)
1. In our experiences, first most important to define is both elements in the Market Movement Settings . These also tend to be persistent for whole season since it's kinda describing that pair/tf overall behaviour. Don't worry if you still get a low Profit Factor here, but by tweaking you should start to see positive changes in one of Max Drawdown and Net Profit, or Percent Profitable.
2. Afterwards, find your pair/tf Distance Zone . When optimising this, what we seek is just a "not to bad" equity curves to start forming. At least Max Drawdown should lessen more. Doesn't have to be great already, but should be better, no red in Net Profit.
3. Then go manage the "Trailing Minimum Profit", TP, SL, and max SL.
4. Repeat 1,2,3. 👻
5. Manage order size, commission, and/or enable double-order (need pyramiding) if you like. Check if your equity can handle max drawdown before margin call.
6. After getting an acceptable backtest result, go to List of Trades tab and find the biggest loss or when many sequencing loss in a row happened. Click on it to go to exact point on chart, observe why the signal failed and get at least general idea how it can be prevented . The rest is yours, you should know your pair/tf more than other.
You can also re-explore your minimum-maximum period for both Major and minor xHMA+.
Keep in mind that all numbers in Setting are conceptually in a form of range . You don't want to get superb equity curves but actually a "fragile" , means one can easily turn it to disaster just by changing only a fraction in one/two of the setting.
---
If you just wanna test the strength of the indicator alone, you can disable "Use StopLoss" temporarily while optimising settings.
Using no SL might be tempting in overall result data in some cases, but NOTE: It is not recommended to not using SL, don't forget that we deliberately enter when it's in high volatility. If want to add flexibility or trading for long-term, just maximise your SL. ie.: chose SL Point>ATR only and set it maximum. (Check your max drawdown after this).
I think this is quite important specially for beginners, so here's an example; Hypothetically in below scenario, because of some settings, the buy order after the loss sell signal didn't appear. Let's say if our initial capital only 1000$ using leverage and order size 0,5 lot (risky position sizing already), moreover if this happens at the beginning of your trading season, that's half of account gone already in one trade . Your max SL should've made you exit after that pumping bar.
The Trailing Minimum Profit is actually look like this. Search in the code if you want to plot it. I just don't like too many lines on chart.
To maximise profit we can try enabling double-order. The only added rule coded is: RSI should rising when buy and falling when sell. 2nd signal will appears above or below default buy/sell signal. (Of course it's also prone to double-loss, re-check your max drawdown after. Profit factor play its part in here for a long run). Snapshot in comparison:
Two default sell signals on left closed at RSI exit, the additional sell signal closed later on when price crossover minor xHMA+. On buy side, price haven't met our minimum profit when first crossunder minor xHMA+. If later on we hit SL on this "+buy" signal, at least we already profited from default buy signal. You can also consider/treat this as multiple TP points.
For longer-term trading, what you need to maximise is the Minimum Profit , so it won't exit whenever an exit condition happened, it can happen several times before reaching minimum profit. Hopefully this snapshot can explain:
Notice in comparison default sell and buy signal now close in average after 3 days. What's best is when we also have confirmation from higher TF. It's like targeting higher TF by entering from smaller TF.
As also mention in the study, we can still experiment via original HMA by putting same value for minimum-maximum period setting. This is experimental EU 1H with Major xHMA+: 144-144, Flat market 13, Distance multiplier 3.6, with 2nd order activated.
Kiwi was a bit surprising for me. It's flat market is effectively below 6, with quite far distance zone of 3.5. Probably because I'm using big numbers in adaptive period.
---
The result you see in strategy tester report below for EURUSD 15m is using just default settings you see in code, as follow:
0,1 lot for each order (which is the smallest allowed by my broker).
No pyramiding. Commission: 0.5 usd per order. Slippage: 3
Opening position is only using basic strategy #1 (RSI exit). Additional exit not activated.
Minimum Profit: 1. TP: 3.
SL use: Half-distance zone. Max SL: 4.5.
Major xHMA+: 172-233. minor xHMA+: 89-121
Distance Zone Multiplier: 2.7
RSI: Standard 14.
(From our forward-testing, the difference we get from net profit is because of the spread, our entry isn't exactly at the close/open price. Not so much though, but not the same. If somebody can direct me to any example where we can code our entry via current bid/ask price, that would be awesome!)
It's already a long post (sorry), think I'm gonna pause here. Check out the code :)
---
DISCLAIMER: Past performance is no guarantee of future results , and so on.. you know the drill ;)
Please read whole description first before using, don't take 1-2 paragraph and claim it's the whole logic, you are responsible of your own actions and understanding.
Cari dalam skrip untuk "backtest"
The Best Strategy Template[LuciTech]Hello Traders,
This is a powerful and flexible strategy template designed to help you create, backtest, and deploy your own custom trading strategies. This template is not a ready-to-use strategy but a framework that simplifies the development process by providing a wide range of pre-built features and functionalities.
What It Does
The LuciTech Strategy Template provides a robust foundation for building your own automated trading strategies. It includes a comprehensive set of features that are essential for any serious trading strategy, allowing you to focus on your unique trading logic without having to code everything from scratch.
Key Features
The LuciTech Strategy Template integrates several powerful features to enhance your strategy development:
•
Advanced Risk Management: This includes robust controls for defining your Risk Percentage per Trade, setting a precise Risk-to-Reward Ratio, and implementing an intelligent Breakeven Stop-Loss mechanism that automatically adjusts your stop to the entry price once a specified profit threshold is reached. These elements are crucial for capital preservation and consistent profitability.
•
Flexible Stop-Loss Options: The template offers adaptable stop-loss calculation methods, allowing you to choose between ATR-Based Stop-Loss, which dynamically adjusts to market volatility, and Candle-Based Stop-Loss, which uses structural price points from previous candles. This flexibility ensures the stop-loss strategy aligns with diverse trading styles.
•
Time-Based Filtering: Optimize your strategy's performance by restricting trading activity to specific hours of the day. This feature allows you to avoid unfavorable market conditions or focus on periods of higher liquidity and volatility relevant to your strategy.
•
Customizable Webhook Alerts: Stay informed with advanced notification capabilities. The template supports sending detailed webhook alerts in various JSON formats (Standard, Telegram, Concise Telegram) to external platforms, facilitating real-time monitoring and potential integration with automated trading systems.
•
Comprehensive Visual Customization: Enhance your analytical clarity with extensive visual options. You can customize the colors of entry, stop-loss, and take-profit lines, and effectively visualize market inefficiencies by displaying and customizing Fair Value Gap (FVG) boxes directly on your chart.
How It Does It
The LuciTech Strategy Template is meticulously crafted using Pine Script, TradingView's powerful and expressive programming language. The underlying architecture is designed for clarity and modularity, allowing for straightforward integration of your unique trading signals. At its core, the template operates by taking user-defined entry and exit conditions and then applying a sophisticated layer of risk management, position sizing, and trade execution logic.
For instance, when a longCondition or shortCondition is met, the template dynamically calculates the appropriate position size. This calculation is based on your specified risk_percent of equity and the stop_distance (the distance between your entry price and the calculated stop-loss level). This ensures that each trade adheres to your predefined risk parameters, a critical component of disciplined trading.
The flexibility in stop-loss calculation is achieved through a switch statement that evaluates the sl_type input. Whether you choose an ATR-based stop, which adapts to market volatility, or a candle-based stop, which uses structural price points, the template seamlessly integrates these methods. The ATR calculation itself is further refined by allowing various smoothing methods (RMA, SMA, EMA, WMA), providing granular control over how volatility is measured.
Time-based filtering is implemented by comparing the current bar's time with user-defined start_hour, start_minute, end_hour, and end_minute inputs. This allows the strategy to activate or deactivate trading during specific market sessions or periods of the day, a valuable tool for optimizing performance and avoiding unfavorable conditions.
Furthermore, the template incorporates advanced webhook alert functionality. When a trade is executed, a customizable JSON message is formatted based on your webhook_format selection (Standard, Telegram, or Concise Telegram) and sent via alert function. This enables seamless integration with external services for real-time notifications or even automated trade execution through third-party platforms.
Visual feedback is paramount for understanding strategy behavior. The template utilizes plot and fill functions to clearly display entry prices, stop-loss levels, and take-profit targets directly on the chart. Customizable colors for these elements, along with dedicated options for Fair Value Gap (FVG) boxes, enhance the visual analysis during backtesting and live trading, making it easier to interpret the strategy's actions.
How It's Original
The LuciTech Strategy Template distinguishes itself in the crowded landscape of TradingView scripts through its unique combination of integrated, advanced risk management features, highly flexible stop-loss methodologies, and sophisticated alerting capabilities, all within a user-friendly and modular framework. While many templates offer basic entry/exit signal integration, LuciTech goes several steps further by providing a robust, ready-to-use infrastructure for managing the entire trade lifecycle once a signal is generated.
Unlike templates that might require users to piece together various risk management components or code complex stop-loss logic from scratch, LuciTech offers these critical functionalities out-of-the-box. The inclusion of dynamic position sizing based on a user-defined risk percentage, a configurable risk-to-reward ratio, and an intelligent breakeven mechanism significantly elevates its utility. This comprehensive approach to capital preservation and profit targeting is a cornerstone of professional trading and is often overlooked or simplified in generic templates.
Furthermore, the template's provision for multiple stop-loss calculation types—ATR-based for volatility adaptation, and candle-based for structural support/resistance—demonstrates a deep understanding of diverse trading strategies. The underlying code for these calculations is already implemented, saving developers considerable time and effort. The subtle yet powerful inclusion of FVG (Fair Value Gap) related inputs also hints at advanced price action concepts, offering a sophisticated layer of analysis and execution that is not commonly found in general-purpose templates.
The advanced webhook alerting system, with its support for various JSON formats tailored for platforms like Telegram, showcases an originality in catering to the needs of modern, automated trading setups. This moves beyond simple TradingView pop-up alerts, enabling seamless integration with external systems for real-time trade monitoring and execution. This level of external connectivity and customizable data output is a significant differentiator.
In essence, the LuciTech Strategy Template is original not just in its individual features, but in how these features are cohesively integrated to form a powerful, opinionated, yet highly adaptable system. It empowers traders to focus their creative energy on developing their core entry/exit signals, confident that the underlying framework will handle the complexities of risk management, trade execution, and external communication with precision and flexibility. It's a comprehensive solution designed to accelerate the development of robust and professional trading strategies.
How to Modify the Logic to Apply Your Strategy
The LuciTech Strategy Template is designed with modularity in mind, making it exceptionally straightforward to integrate your unique trading strategy logic. The template provides a clear separation between the core strategy management (risk, position sizing, exits) and the entry signal generation. This allows you to easily plug in your own buy and sell conditions without altering the robust underlying framework.
Here’s a step-by-step guide on how to adapt the template to your specific trading strategy:
1.
Locate the Strategy Logic Section:
Open the Pine Script editor in TradingView and navigate to the section clearly marked with the comment //Strategy Logic Example:. This is where the template’s placeholder entry conditions (a simple moving average crossover) are defined.
2.
Define Your Custom Entry Conditions:
Within this section, you will find variables such as longCondition and shortCondition. These are boolean variables that determine when a long or short trade should be initiated. Replace the existing example logic with your own custom buy and sell conditions. Your conditions can be based on any combination of indicators, price action patterns, candlestick formations, or other market analysis techniques. For example, if your strategy involves a combination of RSI and MACD, you would define longCondition as (rsi > 50 and macd_line > signal_line) and shortCondition as (rsi < 50 and macd_line < signal_line).
3.
Leverage the Template’s Built-in Features:
Once your longCondition and shortCondition are defined, the rest of the template automatically takes over. The integrated risk management module will calculate the appropriate position size based on your Risk % input and the chosen Stop Loss Type. The Risk:Reward ratio will determine your take-profit levels, and the Breakeven at R feature will manage your stop-loss dynamically. The time filter (Use Time Filter) will ensure your trades only occur within your specified hours, and the webhook alerts will notify you of trade executions.
Coral Trend Pullback Strategy (TradeIQ)Description:
Strategy is taken from the TradeIQ YouTube video called "I Finally Found 80% Win Rate Trading Strategy For Crypto".
Check out the full video for further details/clarification on strategy entry/exit conditions.
The default settings are exactly as TradeIQ described in his video.
However I found some better results by some tweaking settings, increasing R:R ratio and by turning off confirmation indicators.
This would suggest that perhaps the current confirmation indicators are not the best options. I'm happy to try add some other optional confirmation indicators if they look to be more effective.
Recommended timeframe: 1H
Strategy incorporates the following features:
Risk management:
Configurable X% loss per stop loss
Configurable R:R ratio
Trade entry:
Based on strategy conditions below
Trade exit:
Based on strategy conditions below
Backtesting:
Configurable backtesting range by date
Trade drawings:
Each entry condition indicator can be turned on and off
TP/SL boxes drawn for all trades. Can be turned on and off
Trade exit information labels. Can be turned on and off
NOTE: Trade drawings will only be applicable when using overlay strategies
Alerting:
Alerts on LONG and SHORT trade entries
Debugging:
Includes section with useful debugging techniques
Strategy conditions
Trade entry:
LONG
C1: Coral Trend is bullish
C2: At least 1 candle where low is above Coral Trend since last cross above Coral Trend
C3: Pullback happens and price closes below Coral Trend
C4: Coral Trend colour remains bullish for duration of pullback
C5: After valid pullback, price then closes above Coral Trend
C6: Optional confirmation indicators (choose either C6.1 or C6.2 or NONE):
C6.1: ADX and DI (Single indicator)
C6.1.1: Green line is above red line
C6.1.2: Blue line > 20
C6.1.3: Blue trending up over last 1 candle
C6.2: Absolute Strengeh Histogram + HawkEye Volume Indicator (Two indicators combined)
C6.2.1: Absolute Strengeh Histogram colour is blue
C6.2.2: HawkEye Volume Indicator colour is green
SHORT
C1: Coral Trend is bearish
C2: At least 1 candle where high is below Coral Trend since last cross below Coral Trend
C3: Pullback happens and price closes above Coral Trend
C4: Coral Trend colour remains bearish for duration of pullback
C5: After valid pullback, price then closes below Coral Trend
C6: Optional confirmation indicators (choose either C6.1 or C6.2 or NONE):
C6.1: ADX and DI (Single indicator)
C6.1.1: Red line is above green line
C6.1.2: Blue line > 20
C6.1.3: Blue trending up over last 1 candle
C6.2: Absolute Strengeh Histogram + HawkEye Volume Indicator (Two indicators combined)
C6.2.1: Absolute Strengeh Histogram colour is red
C6.2.2: HawkEye Volume Indicator colour is red
NOTE: All the optional confirmation indicators cannot be overlayed with Coral Trend so feel free to add each separately to the chart for visual purposes
Trade exit:
Stop Loss: Calculated by recent swing low over previous X candles (configurable with "Local High/Low Lookback")
Take Profit: Calculated from R:R multiplier * Stop Loss size
Credits
Strategy origin: TradeIQ's YouTube video called "I Finally Found 80% Win Rate Trading Strategy For Crypto"
It combines the following indicators for trade entry conditions:
Coral Trend Indicator by @LazyBear (Main indicator)
Absolute Strength Histogram | jh by @jiehonglim (Optional confirmation indicator)
Indicator: HawkEye Volume Indicator by @LazyBear (Optional confirmation indicator)
ADX and DI by @BeikabuOyaji (Optional confirmation indicator)
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
XProfit Strategy BacktesterHello,
This Script is a Backtesting Strategy tester of XProfit and allows users to clearly define a profitable strategy.
To Define a profitable strategy, there is the option to modify the parameters "XR" and "Sensitivity".
The Script in itself is build on ATR which gives Long or Short signal.
Note: The strategy script does not allow alerts. It does only allow backtesting.
How To Get Access: DM me for a Trial or use the links below this post to purchase the Indicator which will automatically come with XProfit
Happy Trading.
Morning Straddle Backtest + Range Filter Morning Straddle Backtest
Purpose:
This script tests a Morning Straddle concept where a trader enters both long and short breakout orders based on the overnight range (22:00–06:00 by default).
It is designed for backtesting the effectiveness of volatility breakouts following low-volume overnight sessions.
Setup
Overnight session: 22:00–06:00 (adjustable).
At the end of the overnight session, the script automatically places:
A long stop order above the range high.
A short stop order below the range low.
Both use an ATR-based buffer for cleaner breakouts (default 5%).
When one side triggers, the opposite order is cancelled if OCO mode is active.
Adjustable Parameters
- Session - Defines the overnight hours used for the range.
- ATR Length - Number of bars used for ATR calculation.
- ATR Buffer % - Distance above/below range for entry & stop placement.
- Risk:Reward Ratio - Determines the TP distance relative to SL.
- Stop-Loss - Choose between “Behind Range” or “Mid-Range (50%)” with ATR buffer added.
- OCO - Cancels opposite order once one side triggers.
- Close All EOD - Closes all open trades at the end of day (default 22:00).
- Range Filter – Enables filtering of trades only when the overnight range size falls within a defined threshold.
-Min Range / Max Range – Define acceptable range size boundaries.
-Display Units – Select whether the filter is measured in Price Change, Pips, or Points.
- Stats Panel Settings – Toggle visibility, position (Top/Bottom Left/Right), and background opacity.
Visual
The overnight range (22:00–06:00) is highlighted on the chart with a teal background for clarity.
No lines are drawn for the high and low.
Strategy Notes
Works best on 5m or 15m charts where the overnight range can be clearly defined.
Backtests should be run over multiple months to gauge performance consistency.
Can be adapted for other markets by adjusting session times and ATR settings. For example, S&P initial balance breakout using 14:30-15:30 range time.
Stats Panel Displays
- 20-Day Range Data: Maximum, Average, and Minimum range sizes.
- Today’s Range: With automatic classification — Huge, Normal, or Small.
- Average Winning Range: Average size of the overnight range on profitable days.
- Average Losing Range: Average size of the overnight range on losing days.
- Filter Status: Displays whether the range met the filter criteria — Range OK, Skipped, or Off.
TTP Kent Strat PROKent Strat PRO trades breakouts using Bollinger Bands together with SuperTrend.
PRO features:
- 3commas bot alerts for long/short bots
- Custom JSON bots alerts
Features:
- Risk/reward ratio parameter
- Longs, shorts and combined positions.
- Breakout settings
- Trailing SL, trailing TP
- Use of latest candles to place the SL using a lookback parameter (how many candles to look back for a low/high price)
- Select your SL between the ATR trendline and the latest candle: the closest or furthest away value
- Show the trendline
- Backtest mode for accurate backtests
- Signal mode for live price accurate signals
- Date range backtesting
Filters:
- EMA 200 filter and timeframe selector. This filter can be used to trade with the trend: open longs on an uptrend and shorts on a downtrend.
- ADX filter using threshold. This filter can be used to filter entries where the trend is not very strong.
- ADX pointing up. ADX values pointing up and above certain threshold can improve entries.
- Relative volume filter based on the volume being X% above the MA of the Volume. Trading with volume can help filtering out bad trades.
Example setup:
1) pick BINANCE:ETHUSDT chart, 15 min chart
2) trade longs + shorts
3) pick ratio 3
4) trailing SL checked
5) trailing TP unchecked
7) stop loss "furthest"
8) candle loopback 30
9) BB period 21, dev 1, ATR filter on, atr period 5
10) EMA filter on, 15 min
11) ADX off
12) Volume filter on set to 60%
TTP Kent StratKent Strat trades breakouts using Bollinger Bands together with SuperTrend.
Features:
- Risk/reward ratio parameter
- Longs, shorts and combined positions.
- Breakout settings
- Trailing SL, trailing TP
- Use of latest candles to place the SL using a lookback parameter (how many candles to look back for a low/high price)
- Select your SL between the ATR trendline and the latest candle: the closest or furthest away value
- Show the trendline
- Backtest mode for accurate backtests
- Signal mode for live price accurate signals
- Date range backtesting
Filters:
- EMA 200 filter and timeframe selector. This filter can be used to trade with the trend: open longs on an uptrend and shorts on a downtrend.
- ADX filter using threshold. This filter can be used to filter entries where the trend is not very strong.
- ADX pointing up. ADX values pointing up and above certain threshold can improve entries.
- Relative volume filter based on the volume being X% above the MA of the Volume. Trading with volume can help filtering out bad trades.
Example setup:
1) pick BINANCE:ETHUSDT chart, 15 min chart
2) trade longs + shorts
3) pick ratio 3
4) trailing SL checked
5) trailing TP unchecked
7) stop loss "furthest"
8) candle loopback 30
9) BB period 21, dev 1, ATR filter on, atr period 5
10) EMA filter on, 15 min
11) ADX off
12) Volume filter on set to 60%
AlphaPrime - Backtest AlphaPrime - Backtest AlphaPrime - BacktestAlphaPrime - BacktestAlphaPrime - BacktestAlphaPrime - Backtest
Mutanabby_AI | ONEUSDT_MR1
ONEUSDT Mean-Reversion Strategy | 74.68% Win Rate | 417% Net Profit
This is a long-only mean-reversion strategy designed specifically for ONEUSDT on the 1-hour timeframe. The core logic identifies oversold conditions following sharp declines and enters positions when selling pressure exhausts, capturing the subsequent recovery bounce.
Backtested Period: June 2019 – December 2025 (~6 years)
Performance Summary
| Metric | Value |
|--------|-------|
| Net Profit | +417.68% |
| Win Rate | 74.68% |
| Profit Factor | 4.019 |
| Total Trades | 237 |
| Sharpe Ratio | 0.364 |
| Sortino Ratio | 1.917 |
| Max Drawdown | 51.08% |
| Avg Win | +3.14% |
| Avg Loss | -2.30% |
| Buy & Hold Return | -80.44% |
Strategy Logic :
Entry Conditions (Long Only):
The strategy seeks confluence of three conditions that identify exhausted selling:
1. Prior Move Filter:*The price change from 5 bars ago to 3 bars ago must be ≥ -7% (ensures we're not entering during freefall)
2. Current Move Filter: The price change over the last 2 bars must be ≤ 0% (confirms momentum is stalling or reversing)
3. Three-Bar Decline: The price change from 5 bars ago to 3 bars ago must be ≤ -5% (confirms a significant recent drop occurred)
When all three conditions align, the strategy identifies a potential reversal point where sellers are exhausted.
Exit Conditions:
- Primary Exit: Close above the previous bar's high while the open of the previous bar is at or below the close from 9 bars ago (profit-taking on strength)
- Trailing Stop: 11x ATR trailing stop that locks in profits as price rises
Risk Management
- Position Sizing:Fixed position based on account equity divided by entry price
- Trailing Stop:11× ATR (14-period) provides wide enough room for crypto volatility while protecting gains
- Pyramiding:Up to 4 orders allowed (can scale into winning positions)
- **Commission:** 0.1% per trade (realistic exchange fees included)
Important Disclaimers
⚠️ This is NOT financial advice.
- Past performance does not guarantee future results
- Backtest results may contain look-ahead bias or curve-fitting
- Real trading involves slippage, liquidity issues, and execution delays
- This strategy is optimized for ONEUSDT specifically — results may differ on other pairs
- Always test before risking real capital
Recommended Usage
- Timeframe:*1H (as designed)
- Pair: ONEUSDT (Binance)
- Account Size: Ensure sufficient capital to survive max drawdown
Source Code
Feedback Welcome
I'm sharing this strategy freely for educational purposes. Please:
- Drop a comment with your backtesting results any you analysis
- Share any modifications that improve performance
- Let me know if you spot any issues in the logic
Happy trading
As a quant trader, do you think this strategy will survive in live trading?
Yes or No? And why?
I want to hear from you guys
Mustang Algo - Momentum Trend Zone Backtest🐎 MUSTANG ALGO - Momentum Trend Zone Strategy
A complete trading system combining MACD momentum analysis with visual trend zones, full backtesting capabilities, and advanced risk management tools.
══════════════════════════════════════════════════════════════════════════
🔹 OVERVIEW
Mustang Algo transforms traditional MACD analysis into a powerful visual trading system. It instantly identifies market bias through colored background zones and provides clear entry/exit signals with customizable stop loss and take profit management.
══════════════════════════════════════════════════════════════════════════
🔹 KEY FEATURES
✅ Visual Trend Zones (Green = Bullish | Red = Bearish)
✅ Clear Buy/Sell Triangles on Chart
✅ Full Backtesting Engine
✅ Multiple Stop Loss Types
✅ Multiple Take Profit Types
✅ Trailing Stop Option
✅ Time Filter for Backtesting
✅ Real-time Info Panel
✅ Customizable Alerts
══════════════════════════════════════════════════════════════════════════
🔹 HOW IT WORKS
The strategy uses a smoothed MACD system to detect trend changes:
- MACD Line (White): Fast EMA minus Slow EMA - shows raw momentum
- Signal Line (Yellow): EMA of MACD - shows smoothed trend direction
- Trend Zone: Changes when the smoothed signal line crosses zero
- Entry Signals: Generated at zone transitions
When the trend line crosses above zero → GREEN zone → BUY signal 🔺
When the trend line crosses below zero → RED zone → SELL signal 🔻
══════════════════════════════════════════════════════════════════════════
🔹 STOP LOSS OPTIONS
🛑 Percentage: Fixed percentage from entry price
🛑 ATR-Based: Dynamic SL based on market volatility
🛑 Fixed Points: Set number of points/pips
🛑 Swing Low/High: Uses recent swing levels as stops
══════════════════════════════════════════════════════════════════════════
🔹 TAKE PROFIT OPTIONS
🎯 Percentage: Fixed percentage target
🎯 ATR-Based: Dynamic TP based on volatility
🎯 Fixed Points: Set number of points/pips
🎯 Risk Reward: Automatic TP based on R:R ratio (e.g., 2:1, 3:1)
══════════════════════════════════════════════════════════════════════════
🔹 TRAILING STOP
📈 Percentage-Based: Trail by a fixed percentage
📈 ATR-Based: Trail using ATR multiplier for dynamic adjustment
══════════════════════════════════════════════════════════════════════════
🔹 SETTINGS
MACD Parameters:
- Fast Length (default: 12)
- Slow Length (default: 26)
- Signal Length (default: 9)
- Trend Smoothing (default: 5)
Risk Management:
- Enable/Disable Stop Loss
- Enable/Disable Take Profit
- Enable/Disable Trailing Stop
- Customize all SL/TP parameters
Visual Options:
- Show/Hide Buy/Sell Triangles
- Show/Hide SL/TP Lines
- Show/Hide Labels
Time Filter:
- Set Start Date for backtest
- Set End Date for backtest
══════════════════════════════════════════════════════════════════════════
🔹 SIGNALS EXPLAINED
🟢 GREEN TRIANGLE (Below Bar):
Bullish zone detected - Consider LONG entry
🔴 RED TRIANGLE (Above Bar):
Bearish zone detected - Consider SHORT entry
🟢 GREEN BACKGROUND:
Currently in bullish trend zone
🔴 RED BACKGROUND:
Currently in bearish trend zone
══════════════════════════════════════════════════════════════════════════
🔹 INFO PANEL
The real-time info panel (top right) displays:
- Current Trend Zone status
- MACD value
- Signal Line value
- Active SL Type
- Active TP Type
══════════════════════════════════════════════════════════════════════════
🔹 ALERTS
Set up alerts for:
🔔 Buy Signals: "🐎 Mustang Algo: BUY Signal on {ticker} at {price}"
🔔 Sell Signals: "🐎 Mustang Algo: SELL Signal on {ticker} at {price}"
══════════════════════════════════════════════════════════════════════════
🔹 BEST PRACTICES
1. Use higher timeframes (1H, 4H, Daily) for more reliable signals
2. Combine with price action and support/resistance levels
3. Adjust ATR multipliers based on asset volatility
4. Use Risk Reward ratio for consistent risk management
5. Backtest on your preferred asset before live trading
══════════════════════════════════════════════════════════════════════════
🔹 RECOMMENDED TIMEFRAMES
⏱️ Scalping: 5M, 15M (more signals, more noise)
⏱️ Day Trading: 1H, 4H (balanced signals)
⏱️ Swing Trading: Daily, Weekly (fewer but stronger signals)
══════════════════════════════════════════════════════════════════════════
🔹 MARKETS
Works on all markets:
📈 Forex
📈 Crypto
📈 Stocks
📈 Indices
📈 Commodities
📈 Futures
══════════════════════════════════════════════════════════════════════════
🐎 RIDE THE TREND WITH MUSTANG ALGO!
══════════════════════════════════════════════════════════════════════════
⚠️ DISCLAIMER
This indicator/strategy is for educational and informational purposes only. It is not financial advice. Trading involves substantial risk of loss and is not suitable for all investors. Past performance is not indicative of future results. Always use proper risk management, do your own research, and consider consulting a financial advisor before making any trading decisions. Use at your own risk.
══════════════════════════════════════════════════════════════════════════
📝 VERSION HISTORY
v1.0 - Initial Release
- MACD-based trend detection
- Visual trend zones
- Multiple SL/TP options
- Full backtesting support
- Trailing stop functionality
- Time filter
- Info panel
- Alert system
══════════════════════════════════════════════════════════════════════════
💬 FEEDBACK
If you find this strategy useful, please leave a comment or suggestion!
Your feedback helps improve future updates.
🐎 Happy Trading!
EMA Cross + RSI + ADX - Autotrade Strategy V2Overview
A versatile trend-following strategy combining EMA 9/21 crossovers with RSI momentum filtering and optional ADX trend strength confirmation. Designed for both cryptocurrency and traditional futures/options markets with built-in stop loss management and automated position reversals.
Key Features
Multi-Market Compatibility: Works on both crypto futures (Bitcoin, Ethereum) and traditional markets (NIFTY, Bank NIFTY, S&P 500 futures, equity options)
Triple Confirmation System: EMA crossover + RSI filter + ADX strength (optional)
Automated Risk Management: 2% stop loss with wick-touch detection
Position Auto-Reversal: Opposite signals automatically close and reverse positions
Webhook Ready: Six distinct alert messages for automation (Entry Buy/Sell, Close Long/Short, SL Hit Long/Short)
Performance Metrics
NIFTY Futures (15min): 50%+ win rate with ADX filter OFF
Crypto Markets: Requires extensive backtesting before live deployment
Optimal Timeframes: 15-minute to 1-hour charts (patience required for higher timeframes)
Strategy Logic
Entry Signals:
LONG: EMA 9 crosses above EMA 21 + RSI > 55 + ADX > 20 (if enabled)
SHORT: EMA 9 crosses below EMA 21 + RSI < 45 + ADX > 20 (if enabled)
Exit Signals:
Opposite EMA crossover (auto-closes current position)
Stop loss hit at 2% from entry price (tracks candle wicks)
Technical Indicators:
Fast EMA: 9-period (short-term trend)
Slow EMA: 21-period (primary trend)
RSI: 14-period with 55/45 thresholds (momentum confirmation)
ADX: 14-period with 20 threshold (trend strength filter - optional)
Market-Specific Settings
Traditional Markets (NIFTY, Bank NIFTY, S&P Futures, Options)
Recommended Settings:
ADX Filter: Turn OFF (less choppy, cleaner trends)
Timeframe: 15-minute chart
Win Rate: 50%+ on NIFTY Futures
Why No ADX: Traditional markets have more institutional participation and smoother price action, making ADX unnecessary
Cryptocurrency Markets (BTC, ETH, Altcoins)
Recommended Settings:
ADX Filter: Turn ON (ADX > 20)
Timeframe: 15-minute to 1-hour
Extensive backtesting required before live trading
Why ADX: Crypto markets are highly volatile and prone to false breakouts; ADX filters low-quality chop
Best Practices
✅ Backtest thoroughly on your specific instrument and timeframe
✅ Use larger timeframes (1H, 4H) for higher quality signals and better risk/reward
✅ Adjust RSI thresholds based on market volatility (try 52/48 for more signals, 60/40 for fewer but stronger)
✅ Monitor ADX effectiveness - disable for traditional markets, enable for crypto
✅ Proper position sizing - adjust default_qty_value based on your capital and instrument price
✅ Paper trade first - test for 2-4 weeks before risking real capital
Risk Management
Fixed 2% stop loss per trade (adjustable)
Stop loss tracks candle wicks for accurate execution
Positions auto-reverse on opposite signals (no manual intervention needed)
0.075% commission built into backtest (adjust for your broker)
Customization Options
All parameters are adjustable via inputs:
EMA periods (default: 9/21)
RSI length and thresholds (default: 14-period, 55/45 levels)
ADX length and threshold (default: 14-period, 20 threshold)
Stop loss percentage (default: 2%)
Webhook Automation
This strategy includes six distinct alert messages for automated trading:
"Entry Buy" - Long position opened
"Entry Sell" - Short position opened
"Close Long" - Long position closed on opposite crossover
"Close Short" - Short position closed on opposite crossover
"SL Hit Long" - Long stop loss triggered
"SL Hit Short" - Short stop loss triggered
Compatible with Delta Exchange, Binance Futures, 3Commas, Alertatron, and other webhook platforms.
Important Notes
⚠️ Crypto markets require extensive backtesting - volatility patterns differ significantly from traditional markets
⚠️ Higher timeframes = better results - 15min works but 1H/4H provide cleaner signals
⚠️ ADX toggle is critical - OFF for traditional markets, ON for crypto
⚠️ Not financial advice - always conduct your own research and use proper risk management
⚠️ Past performance ≠ future results - backtest results may not reflect live trading conditions
Disclaimer
This strategy is for educational and informational purposes only. Trading futures and options involves substantial risk of loss. Always backtest thoroughly, start with paper trading, and never risk more than you can afford to lose. The author assumes no responsibility for any trading losses incurred using this strategy.
00 Averaging Down Backtest Strategy by RPAlawyer v21FOR EDUCATIONAL PURPOSES ONLY! THE CODE IS NOT YET FULLY DEVELOPED, BUT IT CAN PROVIDE INTERESTING DATA AND INSIGHTS IN ITS CURRENT STATE.
This strategy is an 'averaging down' backtester strategy. The goal of averaging/doubling down is to buy more of an asset at a lower price to reduce your average entry price.
This backtester code proves why you shouldn't do averaging down, but the code can be developed (and will be developed) further, and there might be settings even in its current form that prove that averaging down can be done effectively.
Different averaging down strategies exist:
- Linear/Fixed Amount: buy $1000 every time price drops 5%
- Grid Trading: Placing orders at price levels, often with increasing size, like $1000 at -5%, $2000 at -10%
- Martingale: doubling the position size with each new entry
- Reverse Martingale: decreasing position size as price falls: $4000, then $2000, then $1000
- Percentage-Based: position size based on % of remaining capital, like 10% of available funds at each level
- Dynamic/Adaptive: larger entries during high volatility, smaller during low
- Logarithmic: position sizes increase logarithmically as price drops
Unlike the above average costing strategies, it applies averaging down (I use DCA as a synonym) at a very strong trend reversal. So not at a certain predetermined percentage negative PNL % but at a trend reversal signaled by an indicator - hence it most closely resembles a dynamically moving grid DCA strategy.
Both entering the trade and averaging down assume a strong trend. The signals for trend detection are provided by an indicator that I published under the name '00 Parabolic SAR Trend Following Signals by RPAlawyer', but any indicator that generates numeric signals of 1 and -1 for buy and sell signals can be used.
The indicator must be connected to the strategy: in the strategy settings under 'External Source' you need to select '00 Parabolic SAR Trend Following Signals by RPAlawyer: Connector'. From this point, the strategy detects when the indicator generates buy and sell signals.
The strategy considers a strong trend when a buy signal appears above a very conservative ATR band, or a sell signal below the ATR band. The conservative ATR is chosen to filter ranging markets. This very conservative ATR setting has a default multiplier of 8 and length of 40. The multiplier can be increased up to 10, but there will be very few buy and sell signals at that level and DCA requirements will be very high. Trade entry and DCA occur at these strong trends. In the settings, the 'ATR Filter' setting determines the entry condition (e.g., ATR Filter multiplier of 9), and the 'DCA ATR' determines when DCA will happen (e.g., DCA ATR multiplier of 6).
The DCA levels and DCA amounts are determined as follows:
The first DCA occurs below the DCA Base Deviation% level (see settings, default 3%) which acts as a threshold. The thick green line indicates the long position avg price, and the thin red line below the green line indicates the 3% DCA threshold for long positions. The thick red line indicates the short position avg price, and the thin red line above the thick red line indicates the short position 3% DCA threshold. DCA size multiplier defines the DCA amount invested.
If the loss exceeds 3% AND a buy signal arrives below the lower ATR band for longs, or a sell signal arrives above the upper ATR band for shorts, then the first DCA will be executed. So the first DCA won't happen at 3%, rather 3% is a threshold where the additional condition is that the price must close above or below the ATR band (let's say the first DCA occured at 8%) – this is why the code resembles a dynamic grid strategy, where the grid moves such that alongside the first 3% threshold, a strong trend must also appear for DCA. At this point, the thick green/red line moves because the avg price is modified as a result of the DCA, and the thin red line indicating the next DCA level also moves. The next DCA level is determined by the first DCA level, meaning modified avg price plus an additional +8% + (3% * the Step Scale Multiplier in the settings). This next DCA level will be indicated by the modified thin red line, and the price must break through this level and again break through the ATR band for the second DCA to occur.
Since all this wasn't complicated enough, and I was always obsessed by the idea that when we're sitting in an underwater position for days, doing DCA and waiting for the price to correct, we can actually enter a short position on the other side, on which we can realize profit (if the broker allows taking hedge positions, Binance allows this in Europe).
This opposite position in this strategy can open from the point AFTER THE FIRST DCA OF THE BASE POSITION OCCURS. This base position first DCA actually indicates that the price has already moved against us significantly so time to earn some money on the other side. Breaking through the ATR band is also a condition for entry here, so the hedge position entry is not automatic, and the condition for further DCA is breaking through the DCA Base Deviation (default 3%) and breaking through the ATR band. So for the 'hedge' or rather opposite position, the entry and further DCA conditions are the same as for the base position. The hedge position avg price is indicated by a thick black line and the Next Hedge DCA Level is indicated by a thin black line.
The TPs are indicated by green labels for base positions and red labels for hedge positions.
No SL built into the strategy at this point but you are free to do your coding.
Summary data can be found in the upper right corner.
The fantastic trend reversal indicator Machine learning: Lorentzian Classification by jdehorty can be used as an external indicator, choose 'backtest stream' for the external source. The ATR Band multiplicators need to be reduced to 5-6 when using Lorentz.
The code can be further developed in several aspects, and as I write this, I already have a few ideas 😊
PSE, Practical Strategy EnginePSE, Practical Strategy Engine
A ready-to-use engine that is simple to connect your indicator to, simple to use, and effective at generating alerts for order-filled events during the real-time candle.
Great for
• Evaluating indicators on important metrics without the need to write a strategy script for backtesting.
• Using indicators with built-in risk management.
About The PSE
This engine accepts entry and exit signals from your indicator to provide trade signals for both long and short positions. The PSE was written for trading Funds (e.g. ETF’s), Stocks, Forex, Futures, and Cryptocurrencies. The trades on the chart indicate market, limit, and stop orders. The PSE allows for backtesting of trades along with metrics of performance based on trade-groups with many great features.
Note: A link to a video of how to connect your indicator(s) to the PSE is provided below.
Key Features
Trade-Grp’s
A Trade-Grp makes up one or more trade positions from the first position entering to the last position exiting. Using Trade-Grp’s instead of positions should help you better assess if the metric results fit your trading style.
Below are two (2) examples of a Trade-Grp with three (3) positions.
Metrics
A table of metrics is available if the “Show Metrics Table” checkbox is enabled on the Inputs tab, but metrics always show in the Data Window.
Examples of the Metrics Table are shown below.
• ROI (Return on Investment) and CAGR (Compound Annual Growth Rate) are based on the Avg Invest/Trade-Grp and are adjusted for dividends if the “Include Dividends in Profit” checkbox is enabled.
• Profit/Risked is based on Trade-Grp’s. Also known as reward/risk, as well as expectancy per amount risked. It determines the effectiveness of your strategy and provides a measure of comparison between your strategies. This is adjusted for dividends if the “Include Dividends in Profit” checkbox is enabled. In the Data Window the color is green when above the breakeven point of making a profit and red when below the breakeven point. In the Table the color is red if below the breakeven point, otherwise it is the default color. For example, using the 3 metrics tables above:
For every USD risked the profit is 1.709 USD.
For every BTC risked the profit is 0.832 BTC.
For every JPY risked the profit is 0.261 JPY.
• Winning % is based on Trade-Grp’s. In the Data Window the color is green when above the breakeven point of making a profit and red when below the breakeven point. In the Table the color is red if below the breakeven point, otherwise it is the default color.
The breakeven point is a relationship between the Profit/Risked and Winning % to indicate system profitability potential. Another way to assess trading system performance. For example, for a low Winning % a high Profit/Risked is needed for the system to be potentially profitable.
• Profit Factor (PF) is based on Trade-Grp’s. The dividend payment, if any, is not considered in the calculation of a win or loss. The “Include Dividends in Profit Factor” checkbox allows you the option to either include or not include dividends in the calculation of Profit Factor. The default is enabled.
Must enable the “Include Dividends in Profit” checkbox to include dividends in PF.
Including dividends in PF evaluates the trading strategy with a more overall profitability performance view.
Enable/Disable “Include Dividends in Profit Factor” checkbox also affects the Avg Trade-Grp Loss, and thus Equity Loss from ECL and % Equity Loss from ECL.
• Max Consecutive Losses are based on Trade-Grp’s.
• Nbr of Trade-Grp’s and Nbr of Positions.
These help you to determine if enough trades have occurred to validate your strategy. The Nbr of Positions is the count of positions on the chart. The TV list of trades in the Strategy Tester may indicate more than what is actually shown on the chart. The Data Window includes 'Nbr Strat Tester Trades', which equals the TV listing trades, to help you locate specific trades on the chart.
• Time in Market (%) is based on Trade-Grp’s and date range selected.
• Avg Invest/Trade-Grp will indicate the average amount of money invested in a Trade-Grp. This is adjusted for dividends if the “Include Dividends in Profit” checkbox is enabled.
• Equivalent Consecutive Losses, labeled as Equiv. Cons. Losses (ECL).
This value is determined by the Winning % and Nbr of Trade-Grp’s. This simulates the more likely case of a series of losses, then a small win, then another series of losses to form an equivalent consecutive losing streak. To lower the value, increase the Winning %.
• Equity Loss from ECL is the equity loss from the equivalent consecutive losses.
• % Equity Loss from ECL is the percent of equity loss from the equivalent consecutive losses.
Risk Management
• Pyramid rules enforce and maintain position sizing designated by you on the Inputs tab (% Equity to Risk, Up/Dwn Gap) & Properties tab (number of pyramids, slippage, and commission).
A pyramid position will not occur unless both its stop covers the last entry price with gap/slippage and commission cost of previous trade is covered. If take profit is enabled, a pyramid position will not occur unless commission cost of the trade is covered when take profit target is reached.
• Position sizing, stop-loss (SL), trailing stop-loss (TSL), and take profit (TP) are used.
• Wash sale prevention for applicable assets is enforced. Wash sale assets include stock and fund (e.g. ETF’s).
• No more than one entry position per candle is enforced .
Other Great Features
• Losing Trade-Grp’s indicated at the exit with label text in the color blue. Used to easily find consecutive losses affecting your strategy’s performance. The dividend payment, if any, is not considered in the calculation of a win or loss.
• Position values can be displayed on the chart. The number format is based on the min tick value, but is limited to 8 decimal places only for display purposes.
• Dividends per share and the amount can be displayed on the chart.
• Hold Days . This is the number of days to hold before allowing the next Trade-Grp. Can be a decimal number. This feature may help those trading on a cash account to avoid any settlement violations when trading the same asset.
• Date Filter. Partition the time when trading is allowed to see if the strategy works well across the date range selected. The metrics should be acceptable across all four (4) time ranges: entire range, 1st half, IQR (inter-quartile range), and 2nd half.
• Price gap amount identification. Used in determining if a pyramid entry may be profitable, and may be used in determining slippage amount to use.
• When TP is enabled, the PSE will only allow a pyramid position if the potential is profitable based on commission and price gap selected.
• Trade-Grp’s shown in background color: green for long positions and red for short positions.
• The PSE will alert you to update your stop-loss as the market changes if your exchange/broker does not allow for trailing stop-loss orders. Enable this option on the Inputs tab with Alert Chg TSL.
• The PSE will alert you if your drawdown exceeds Max % Equity Drawdown set on the Inputs tab.
• The PSE will send an alert to warn you of an expiring GTC order.
Some brokers will indicate the order is GTC, Good 'Till Cancelled, but there really is a time limit on the order and is typically 60-120 days. Therefore, the PSE will alert you if you've been in position for close to 60 days so you can refresh your order. The alert is typically a few days before the 60-day time period.
• For order fill alerts just use a {{placeholder}} in the Message of the alert. Details on how to enter placeholders is explained below.
• Identify same bar enter/exit for first entries and pyramids. This is shown in the Data Window as well. This can help you determine what stop-loss % works best for your trading style.
• Leverage trading information is displayed in the Data Window and applies to Trade-Grps.
Failed PosSize or Margin (%): Shows a zero if the failed-to-trade position size was less than 1 or shows the margin % which failed to meet the margin requirement set in the Properties tab. A flag will show on the bar where a failed-to-trade occurred. This is only applicable to the first position of a Trade-Grp. Position the cursor over the flag for the value to show in the Data Window.
Notional Value: total Trade-Grp position size x latest entry price x point value. The equity must be > notional value x margin requirement for a trade to occur.
Current Margin (%): must be greater than margin requirement set on the Properties tab in order for a trade to occur.
Margin Call Price: when enabled on the Style tab is displayed on both the chart and the Data Window as shown below.
PSE Settings
Pyramids
• Pyramiding requires the Stop Method to be set to either TSL or Both (meaning SL & TSL).
• The maximum number of pyramids is determined by the value entered in the Properties tab.
• Pyramid orders require the enter price to be higher than the previous close for Longs and lower than the previous close for Shorts.
• Pyramids also require the stop with gap/slippage to be higher than the last entry price for Longs, and lower than the last entry price for Shorts. This covers all previous positions and maintains position sizing.
• When take profit, TP, is enabled, the pyramids also require that they will be profitable when opening a position assuming they will reach TP. This is automatically adjusted by you with the Dwn Gap/Up Gap, Slippage, and Commission settings.
Inputs Tab
General Settings
Color Traded Background
Enable to change background color where in a trade. Green for long positions and red for short positions.
Show Losing Trade-Grp
Enable to show if losing Trade-Grp and is indicated by text in blue color. The last position may be at a loss, but if there was profit for the Trade-Grp, then it will not be shown as a loss .
Show Position Values
Enable to show the currency value of each position in gold color.
Include Dividends in Profit
This feature is only applicable if the asset pays dividends and the time frame period of the chart is 1D or less, otherwise ignored. The PSE assumes dividends are taken as cash and not reinvested.
Enable to adjust ROI, CAGR, Profit/Risked, Avg Invest/Trade-Grp, and Equity to include dividend payments. This feature considers if you were in position at least one day prior to the ex-dividend date and had not exited until after the ex-dividend date.
When Show Dividends is enabled it will display the payout in currency/share, as well as the total amount based on the number of shares the position(s) of the Trade-Grp are currently holding.
Include Dividends in Profit Factor
This checkbox allows you the option to either include or not include dividends in the calculation of Profit Factor. Must enable the “Include Dividends in Profit” checkbox to include dividends in PF. The dividend payment, if any, is not considered in the calculation of a win or loss.
Show Metrics Table
Options are font size and table location.
Alert Failed to Trade
Enable for the strategy to alert you when a trade did not happen due to low equity or low order size. Applicable only for the first position of a Trade-Grp.
Trade Direction
Options are 'Longs Only', 'Both', 'Shorts Only'.
Hold Days
This is the number of days to hold before allowing the next Trade-Grp. Applies only to the first trade position of a Trade-Grp. Where a Trade-Grp consists of the first position plus any pyramid positions.
The value entered will be overwritten to >= 31 to prevent wash sale for applicable assets in the event the last Trade-Grp was a loss. Wash sale assets include stock and fund (i.e. ETF’s).
The minimum value is the equivalent of 1 candle and is automatically assigned by the PSE if the entered value is equivalent to less than one candle. To calculate Hold Days in # of candles on the Hour chart divide the chart period by 24 x #candles. On the Minute chart divide the chart period by 60 then by 24 x #candles.
Show Vertical Lines at From Date & To Date
Shows a vertical dotted line at the From Date and To Date for visual inspection of the setting.
Date Filter
When enabled, trades are allowed between the From Date and To Date, i.e., the date range.
When disabled, trades are allowed for all candles.
Partition the time when trading is allowed to see if your indicator settings work well across the date range. Click 1st Half, IQR (inter-quartile range), or 2nd Half buttons to trade a portion of the date range.
Select only one at-a-time to partition the time when trading is allowed.
When 1st Half is enabled only trades for the 1st half of the date range are allowed.
When IQR is enabled only trades for the inter-quartile date range are allowed.
When 2nd Half is enabled only trades for the 2nd half of the date range are allowed.
Position Sizing
The % of Equity to Risk has been separated into two (2) areas: for initial trades and for pyramid trades. This allows for greater ability to maximize profits within your acceptable drawdown. A variation of the Anti-Martingale method from the initial trade if you choose to use it in that manner.
% Equity to Risk for Initial Trades: enter the percent of equity you want to risk per position for the initial trades of each Trade-Grp. For example, for 1% enter 1.
% Equity to Risk for Pyramid Trades: enter the percent of equity you want to risk per position for the pyramid trades of each Trade-Grp. For example, for 2% enter 2.
% Equity for Max Position Size: the position size will not exceed this amount. For example, for 25% enter 25.
Max % Equity Drawdown Warning: an alert will be triggered if the maximum drawdown exceeds this v alue. For example, for 10% enter 10.
Stop Methods
NOTE: The Stop Method must be either Both or TSL in order for the pyramids to work. This feature enforces position sizing.
Stop-loss, SL, and trailing stop-loss, TSL, are other features that enforce risk management.
The trailing stop-loss, TSL, is activated immediately if Stop Method = TSL. If Stop Method = Both, then the TSL is activated when its value is above stop-loss, SL, for Longs and below the SL for Shorts.
The calculated TSL value (shown on the chart by + symbol) of the previous bar is used for the current bar and the plot value is off by default, but you can it turn on via the Style tab. This is available so you can better understand how the TSL value used was calculated from. It is beneficial to show when monitoring the real-time candle.
Alert Chg TSL
When enabled, this feature will alert you to update your stop price if it moves greater than the change amount in %. The amount is the absolute % so will work for both Longs and Shorts. For example, for 1% enter 1 . This is provided since some exchanges/brokers do not offer TSL orders and you must manually adjust as price action plays out.
The alert will also suggest a stop limit price based on the gap selected and explained below.
The alert will occur at the close of the candle at the calculated TSL value of the candle just prior to the real-time candle.
Dwn Gap/Up Gap Input Settings
A price gap is the difference between the closing price of the previous candle and the opening price of the current candle. Dwn Gap and Up Gap are illustrated here.
The values of the Dwn Gap and Up Gap can be seen in the Data Window and are based on the settings of the Date Filter.
The options are “zero gap”, "median gap", "avg gap", "80 pct gap", "90 pct gap". The X pct gap stands for X percentile rank. For example, "80 pct gap" means that 80% of the gaps are less than or equal to the value shown in the Data Window. Select “zero gap” to disable this feature.
If Show Stop Limit is enabled, it will show a dotted-line below or above the current stop price where a stop-limit order should be taken. It is shown based on the gap option selected. Again, the PSE trades market, limit, and stop orders, but a stop-limit may be shown if you wanted to see where one would be set using the Up/Dwn Gap.
Dwn Gap: Affects Short Take Profit, Long Pyramid Entries, and to show the Long Stop Limit.
Up Gap : Affects Long Take Profit, Short Pyramid Entries, and to show the Short Stop Limit.
Fixed Take Profit (TP)
When take profit (TP) is enabled, the PSE will determine if opening a pyramid position will be in profit assuming the TP will be hit while considering commission costs (on Properties tab).
The larger of Up Gap or Slippage value is used with Long positions regarding TP.
The larger of Dwn Gap or Slippage value is used with Short positions regarding TP.
Properties Tab
• Initial Capital: Set as desired.
• Base Currency: Leave as Default. The PSE is designed to use the instrument’s currency, therefore leave as Default.
• Order Size: Leave as default. This setting has been disabled and position sizing is handled on the Inputs tab and is based on % of equity.
• Pyramiding: Set as desired.
• Commission: Set as number %. The PSE is designed to only work with commission as a percent of the position value.
• Verify Price for Limit Orders: Set as desired.
Slippage
Adjust Slippage on the Properties tab to account for a realistic bid-ask spread. You can use one of Dwn/Up Gap values or other guidelines. Again, the Dwn/Up Gap values are based on the Date Filter input settings.
Heed warnings from the TradingView Pine Script™ manual about values entered into the Slippage field.
The Slippage (ticks) have a noticeable influence on entry price and exit price especially at the beginning when the date range includes prices from $0.01 to $100,000.00 like that for BTC-USD INDEX. When this is the case, it is best to use different slippage values when partitioning time with the Date Filter.
To minimize the effects of slippage, yet account for it select ‘median gap’ on the Input Tab and use that value for slippage on the Properties tab.
The slippage value is included in the placeholder {{strategy.order.price}}.
Leverage Trading
The PSE is designed to be used both without leverage (the default) and with leverage.
These two settings apply to Trade-Grps. For example, for 5x leverage enter 20 (1/5x100=20).
Margin for Long Positions: Set as desired. The default is 100%.
Margin for Short Positions: Set as desired. The default is 100%.
This setting on the Inputs tab applies to each trade position within a Trade-Grp.
Max % Equity per Position: Set as desired. The default is 20% and intended for non-leverage trading. For leverage trading set as desired. For example, for 3x leverage enter 300 (3x100=300).
Recalculate After Order Is Filled
The PSE uses the strategy parameter calc_on_order_fills=true to allow for enter/exit on the same bar and generate alerts immediately after an order is filled. This parameter is on the Properties tab and is named ‘Recalculate After order is filled’ and is enabled by default.
Disabling this feature will cause the PSE to not work as intended.
You will see the following Caution! on the TV Strategy Tester
This occurs because the PSE has the strategy parameter calc_on_order_fills = true.
Again, the PSE will only work as intended if this parameter is enabled and set to true.
Therefore, you can close the caution sign and be confident of receiving realistic results.
Recalculate On every tick: Disable.
Fill Orders
• Using bar magnifier: Set as desired.
• On Bar Close: Disable. The PSE will not work as intended if this is enabled.
• Using Standard OHLC: Set as desired.
Using The Alert Message Box From TV Strategy Alert
Set alerts to gain access to all the alerts from PSE. This allows for both order filled alerts, as well as the alert function calls related to refresh GTC orders, drawdown exceeded, update stop-loss order, and Failed to Trade.
Example Message for Manual Trading Alerts
(This is just an example. Consult TV manual for possible placeholders to use.)
{
Alert for {{plot("position_for_alert")}} position. (long = 1; short = -1)
{{exchange}}:{{ticker}} on TF of {{interval}} at Broker Name
{{strategy.order.action}} Equity x Equity_Multiplier USD in shares at price = {{strategy.order.price}},
where Equity_Multiplier = {{strategy.order.contracts}} x {{strategy.order.price}} / {{plot("Equity")}}
or {{strategy.order.action}} {{strategy.order.contracts}} shares at price = {{strategy.order.price}}.
}
Note: Use the Equity x Equity_Multiplier method if you have several accounts with different initial capital.
Example Message for Bot Trading Alerts
(You must consult your specific bot for configuring the alert message. This is just an example.)
{
"action": "{{strategy.order.action}}",
“price”: {{strategy.order.price}}
"amount": {{strategy.order.contracts}},
"botId": "1234"
}
Connecting to the PSE
The diagram below illustrates how to connect indicators to the PSE.
The Aroon and MACD indicators are only used here as an example. Substitute your own indicators and add as many as you like.
Connection Indicator for the PSE
A video of how to connect your indicator(s) to the PSE is below.
The Connection Indicator for the PSE, also called here the connection-indicator.
Below is a description of how to connect your chosen indicators to the connection-indicator. Two (2) indicators were chosen for the example, but you may have one (1) or many indicators.
If you have source code access to your indicators you can paste the code directly into the connection-indicator to eliminate the need to have those indicators on the chart and the additional connection of them to the connection-indicator. Below will assume source code to the indicators are not available.
The MACD and Aroon Oscillator are from TV built standard indicators and are shown here just as an example for inputs (i.e. source) to the connection-indicator. They were configured as follows:
The source code for the connection-indicator is shown below. Substitute your own chosen indicators and add as many as you like to create your connection-indicator that feeds into the PSE. The MACD and Aroon Oscillator were simply chosen as an example. Configure your connection-indicator in the manner shown below.
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at mozilla.org
// This is just an example Indicator to show how to interface with the PSE.
// The indicators used in the example are standard TV built indicators.
//@version=5
indicator(title="Connection Indicator for the PSE", overlay=false, max_lines_count=500, max_labels_count=500, max_boxes_count=500)
// Ind_1 INDICATOR ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// This is just and example and used MACD histogram as the source.
Filter_Ind_1 = input.bool(false, 'Ind_1', group='Ind_1 INDICATOR ~~~~~~~~~~~~~~~~~', tooltip='Click ON to enable the indicator')
input_Ind_1 = input.source(title = "input_Ind_1", defval = close, group='Ind_1 INDICATOR ~~~~~~~~~~~~~~~~~')
Entry_Ind_1_Long = Filter_Ind_1 ? input_Ind_1 > 0 ? 1 : 0 : 0
Entry_Ind_1_Short = Filter_Ind_1 ? input_Ind_1 < 0 ? 1 : 0 : 0
Exit_Ind_1_Long = Entry_Ind_1_Short
Exit_Ind_1_Short = Entry_Ind_1_Long
// Ind_2 INDICATOR ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// This is just an example and used Aroon Oscillator as the source. Included limits to use with the oscillator to determine enter and exit.
Filter_Ind_2 = input.bool(false, "Ind_2", group='Ind_2 INDICATOR ~~~~~~~~~~~~~~', tooltip='Click ON to enable the indicator')
Filter_Ind_2_Limit = input.int(35, minval=0, step=5, group='Ind_2 INDICATOR ~~~~~~~~~~~~~~')
Filter_Ind_2_UL = Filter_Ind_2_Limit
Filter_Ind_2_LL = -Filter_Ind_2_Limit
up = input.source(title = "input_Ind_2A Up", defval = close, group='Ind_2 INDICATOR ~~~~~~~~~~~~~~')
down = input.source(title = "input_Ind_2B Down", defval = close, group='Ind_2 INDICATOR ~~~~~~~~~~~~~~')
oscillator = up - down
Entry_Ind_2_Long = Filter_Ind_2? oscillator > Filter_Ind_2_UL ? 1 : 0 : 0
Entry_Ind_2_Short = Filter_Ind_2? oscillator < Filter_Ind_2_LL ? 1 : 0 : 0
Exit_Ind_2_Long = Entry_Ind_2_Short
Exit_Ind_2_Short = Entry_Ind_2_Long
//#region ~~~~~~~ASSEMBLY OF FILTERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
// You may have as many indicators as you like. Assemble them in similar fashion as below.
// ——————— Assembly of Entry Filters
Nbr_Entries = input.int(1, minval=1, title='Min Nbr Entries', inline='nbr_in_out', group='Assembly of Indicators')
// Update the assembly based on the number of indicators connected.
EntryLongOK = Entry_Ind_1_Long + Entry_Ind_2_Long >= Nbr_Entries? true: false
EntryShortOK = Entry_Ind_1_Short + Entry_Ind_2_Short >= Nbr_Entries? true: false
entry_signal = EntryLongOK ? 1 : EntryShortOK ? -1 : 0
plot(entry_signal, title="Entry_Signal", color=color.new(color.blue, 0))
// ——————— Assembly of Exit Filters
Nbr_Exits = input.int(1, minval=1, title='Min Nbr of Exits', inline='nbr_in_out', group='Assembly of Indicators', tooltip='Enter the minimum number of entries & exits
required for a signal.')
// Update the assembly based on the number of indicators connected.
ExitLongOK = Exit_Ind_1_Long + Exit_Ind_2_Long >= Nbr_Exits? true: false
ExitShortOK = Exit_Ind_1_Short + Exit_Ind_2_Short >= Nbr_Exits? true: false
exit_signal = ExitLongOK ? 1 : ExitShortOK ? -1 : 0
plot(exit_signal, title="Exit_Signal", color=color.new(color.red, 0))
//#endregion ~~~~~~~END OF ASSEMBLY OF FILTERS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}
The input box for the connection-indicator is shown below. The default for input source is “close”. For Input_Ind_1 click the dropdown and select the MACD Histogram. For Input_Ind_2 click the dropdown and select Aroon Up and Aroon Down as shown.
Signal Connection Section of PSE
Below is a description of how to connect your chosen indicators to the PSE from the connection-indicator.
At the PSE Input tab, the Signal Connection Section is where you select the source of the Entry and Exit Signal to the PSE. These are the outputs from connection-indicator.
The default source is “close”. Click the dropdown and select the entry and exit signal to establish a connection as shown below.
ichimoku Masters Backtester LightThis Indicator has so many options for build your own strategy
With this indicator you can build your own strategy using the options that we provided here
in the "Static Enter" Section you can choose where do you want to enter your position and customize it with "Enter Candle" Section,by specifying these options, the indicator will start opening the position for you and show you the backtest.
In the "Static Exit (SL & TP)" section you can choose where do you want to exit your positions with setting target and stop for your positions.
And at the end you can set alert on opening and closing position and be aware of that
We hope that you enjoy using ichimoku Masters Backtester Light
-Notice : The Sections: "Dynamic Enter" , "Dynamic Exit" , "9Br Enter" , "9Br Exit" , "Pre Cross" , "Cross Enter" , "Cross Exit" , "Chiko Enter" , "Break Enter" , "Pre Switch" , "Switch Enter" , "Switch Exit" , "Ichi Elements" , "Ichi Elements Order" and "Risk Management" are limited on this version and you are not able to use them
- the "Name" Argument is for naming your strategy
- Open Section has 3 options :
1 : Buy/Sell opens positions when ichimoku cloud and conversion and base line cross at the sametime
2 : 26BoxBr opens position when candle breaks the ichimoku 26 box that indicator builds on "Box" Section
3 : 52BoxBr opens position when candle breaks the ichimoku 52 box that indicator builds on "Box" Section
- Box Section has 6 options :
1 : Cr sets the box on conversion and base cross
2 : OldCr sets the box on conversion and base cross with the beginning candle
3 : PC sets the box on a cross which has no cross before until 26 candles
4 : 9Signal Box sets the box on 9 candles of open position candle
5 : 26Signal Box sets the box on 26 candles of open position candle
4 : 52Signal Box sets the box on 52 candles of open position candle
- Enter1% sets the percent of entry position
- Risk% sets the percent you want to risk your equity
- Max Leverage sets the maximum leverage you want to have on your positions
- S2S is for staying on the position and the indicator does not open the opposite position
- Enter Candle Section has 14 check boxes:
1 : Scandle means that our open position candle should be standard
2 : NoScandle means that our open position candle should not be standard
3 : Tr means that our open position candle should be green for long positions and red for short positions
4 : NoTr means that our open position candle should be red for long positions and green for short positions
5 : G means that our open position candle should be big candle
6 : NoG means that our open position candle should not be big candle
7 : 9Grd means that conversion line shoud be yellow for long positions and white for short positions
8 : No9Grd means that conversion line shoud not be yellow for long positions and white for short positions
9 : 26Grd means that base line shoud be yellow for long positions and white for short positions
10 : No26Grd means that base line shoud not be yellow for long positions and white for short positions
11 : 52Grd means that Lead2 line shoud be yellow for long positions and white for short positions
12 : No52Grd means that Lead2 line shoud not be yellow for long positions and white for short positions
13 : InCL means that our open position candle should be in ichimoku cloud
14 : OutCL means that our open position candle should not be in ichimoku cloud
- Static Exit (SL & TP)
- Sl Section has 6 Options:
1 : Middle26 sets the stop loss of the position on the middle of the box
2 : 9 Stop sets the stop loss of the position on the 9 candles box
3 : 26 Stop sets the stop loss of the position on the 26 candles box
4 : 52 Stop sets the stop loss of the position on the 52 candles box
5 : 26Double box sets the stop loss of the position on the Double of 26 candles box
6 : 52Double box sets the stop loss of the position on the Double of 52 candles box
- in TP we can set our targets from 1 to 20
- LogTp sets our target based on logarithm
- Multiple Enter:
in this section we can set our additional orders for open positions,for this you should turn on the "On" button and then set your orders base on box, for example:
when you put 50 on Enter2 and 10 on Enter2% ,then indicator sets an order on the 50 percent of box in 10% of your equity
- Multiple Exit:
in this section you can set your step exit of order, for this you should turn on the "on" button and set your steps on box targets, for example:
when you put 1 on Exit1 and 10 on Exit1% , then indicator exit 10 percent of your position on the target 1 of box
- RF Stands for risk free and you can risk free your positions using RF ,for example :
when you put 1 on RF and 10 on RF% ,then indicator place your stop on opening position candle when it touches the target 1 of the box and exits 10 percent of your position
- Ichi Numbers : in this section you can specify your ichimoku numbers
- C stands for Conv
- B stands for Base
- L stands for Lead2
- Visual Setting : in this section you can choose variable that you want to see on the chart
- Long TP/SL shows you the Long position target and stop
- Short TP/SL shows you the Short position target and stop
- Cloud shows you the ichimoku cloud
- Offset shifts the ichimoku clouds on 26 candles
- Conv shows you the conversion line
- Base shows you the base line
- Chiko shows you the chiko span line
- Pre shows you the point that conv prediction line and base prediction line cross each other and lead2 prediction line and lead1 prediction line cross too at the same time
- Cr shows you the cross point of conv and base lines
- PC shows the cross point of conv and base lines which has no cross up to 26 candles ago
- EqCr shows you the cross point of conv and base lines which the conv and base are equal
- Buy_Sell shows you the point that conv line and base line cross each other and lead2 line and lead1 line cross too at the same time
- Position Info shows you the information of position such as leverage and entry equity
- Enjoy :)
Cyatophilum Universal Oscillator TraderAn indicator to backtest and create an infinite number of strategies using any external indicator.
═════════════════════════════════════════════════════════════════════════
█ HOW IT WORKS
The indicator allows you to create your oscillator strategy and get backtest results from the Strategy Tester.
You can also create alerts for each of the strategy events.
█ HOW TO USE
Choose a strategy direction long or short that you want to create.
Always use regular candle type.
Configure your entry condition . To use any other indicator as source, it needs to be added to the chart first.
If you have the basic (free) TradingView plan, you can only have 1 indicator on your chart, and cannot use this external source feature. For this case, the indicator has a list of built-in oscillator (that can be increased upon request).
Then choose your condition: Cross over, Greater than, Pullback, Turning up, etc.
You now have your entry and should already see trades on the chart!
Next you can fine tune your entry condition or move to the risk management and filters.
Configure your stop loss
Use the stop loss feature to exit a trade at a certain loss.
You can also create a trailing stop using price % movement or ATR.
Configure your profit target
Use the Take Profit feature to set a target in percentage of price. You can also make it trail.
Configure your safety orders
This indicator has a safety orders feature to reduce the risk of your trade. See more below.
Check your backtest parameters
Make sure that the initial capital and order size make sense. Since it is a pyramiding strategy with safety orders, the sum of all deals should not be bigger than the initial capital.
If you use % equity as order size, please note that it will create compounding.
Check the fees, by default they are set to 0.1%.
I also recommend to set a slippage that corresponds to your exchange's spread.
█ FEATURES
• Strategy direction
Configure to go long or short.
• Entry Conditions
- External Oscillator source
- Built-in Oscillator (for basic plans)
- Base Condition for entry (Less/Greater than, Crossing Up/Down, Pullback Bull/Bear, Turning Up/Down, etc. More can be added later on)
- Additional Momentum Condition: Oscillator should be rising/falling for x number of bars
- Addition Threshold Condition: Oscillator should be Greater/Lowser than x
• Trend Filter
Filter Trades using 1 or 2 moving averages (MTF), based on Slop Change or Price Cross. Trend line is green = only longs, red = only shorts.
• Entry Filters
- Volume filter to remove low volume entries
- Overbought/Oversold filters
- Flat market Filter
• Stop Loss and Take Profit
Configure your stop loss and take profit for long and short trades.
You can also make a trailing take profit and trailing stop.
• DCA (Safety orders)
Create up to 100 safety orders with configurable options for step and volume scaling, take profit from total volume, base and safety order size.
• Backtest Settings
Choose a backtest period, longs or shorts, wether to use limit orders or not.
Graphics
A Backtest Results panel with additional information from the strategy tester.
A lightweight mode to remove background plots and make the indicator load faster.
█ ALERTS
The indicator is using the alert() calls: it only uses 1 alert slot to send order messages for each event (Long/Short entry, stop loss, take profit, safety order, exit timer). This means basic-free TV plans can create 1 complete strategy.
To set your alert messages, open the indicator settings and scroll to the bottom of the "inputs" tab.
Create your alert after you set the messages in the indicator settings, and make sure "Any alert() function call" is set in the alert option.
Use placeholders to automatically replace values in your alert messages like price, target profit, order size etc. (see the indicator inputs).
█ BACKTEST RESULTS
The backtest settings can be seen in the 'Properties' tab of the backtest report below.
Please read the author instructions below for access.
Ebb N Flo Trend [Backtester]Ebb n Flo Trend is a trend indicator that makes use of higher time frame High - Low pivots to determine when a trend has changed
In order to reduce over trading, and to reduce fake outs, the script relies on a clever combination of Fib ratio expansions and an averaged candle close
By combining the above strategies, the trend indicator forms a trailing trend indicator
The script determines when the current market condition has crossed over or under the trailing trend, and based on the closing conditions will change the trend of the script signaling a change. If the trend indicator is below the current market and green, the trend is bullish. If the trend is above the market and red, the trend is bearish
The indicator does not repaint, as such, once a signal has been received, the condition has been met on a previous candle and is final
Trend indicator can be used on any markets, for both Long and Short swings, however is best suited for long term trading on certain crypto markets (based on backtesting results). Be on the lookout for pairs with decent volume on reputable exchanges. It is not a holy grail type script for all markets. The key is to find enough to diversify your trades.
As can be seen in the backtester results, the script performs exceptionally well when trading using the 1W higher time frame (selection in the script settings), in the 1D current time frame (selecting the chart time frame)
The script is ideal for the beginner trader that cannot spend hours everyday looking at charts.
The backtesting results are based on allocating 10% of your portfolio to a single trade - this should be determined by your risk appetite.
There are risks associated with any form of investing. Never invest more than you are willing to lose. Past performance is not a guarantee or predictor of future performance. Do your own due diligence before making any investment decisions.
Configuration:
The dropdown in the script selects the time frame for Highs and Lows that the script must consider, and the chart time frame is the time frame of which closing conditions the script should use
Alerts:
The indicator comes with 2 off alerts: open_LONG and open_SHORT, which in itself is self explanatory, however, due to the slow trading nature of the script, alerts are generally not needed
Once you receive access to the trial version, you will also receive a link to a video that will show you exactly how to set up the script
Happy trading
Pinball Trading Strategy This is a early version of the Pinball Trading Strategy turned into a Tradingview strategy for automated backtesting. I have tried to include as many customization options as possible. Currently you can choose two options to define the trend and 5 options to define your entry. The option 'do you want the acc in your stoploss' makes for unexpected behaviour sometimes so it is advised to keep it turned off for now.
Features: Stoploss gets set to BE automatically at 40% profit. Stoploss and TP are calculated automatically from the internal FNT table (2022).
How to use: in order to backtest the original Pinball Strategy use the 1H timeframe, the 4H data gets calculated by multiplying the 1H data.
1. Select atleast one Trend and Entry option from the Inputs tab in the Options Menu.
2. Take a look at the Style tab from the Options Menu to turn plotting of specific MA's and Conditions on or off.
3. The three plots for Entry, Trend and Long conditions plot your selected rules for Entry and Trend and then ultimately the Entering of a position, respectively. So turn these on and select plotting options that give a clear view of how your selected rules behave on price.
4. I have personally found the 5M timeframe to be most profitable when running this strategy so that might be something to check out!
Stratos - Backtesting - Final Version - CryptoFoudid.comHi all !
Here a script based on moving averages with take profit and Stop loss configuration.
You can backtest on every timeframe and choose from when you want to backtest.
We work with our customers with automatic trading on bitmex platfform.
If you want to subscribe, you can dm me directly or on comments below
My Backtest Module### 📊 Universal Backtest Module - Pro Structure
**A Fully Customizable Strategy Framework for Advanced Backtesting & Signal Analysis**
This powerful Pine Script strategy is designed as a **universal testing module** for traders and developers who want to evaluate custom trading logic across multiple conditions, timeframes, and risk parameters — all within a single, flexible structure.
> ⚠️ **Note:** This script is intended for **educational and backtesting purposes only**. It does **not** provide financial advice, nor does it guarantee profits. Always test strategies thoroughly before applying them to live markets.
---
### 🔧 Key Features
✅ **Multi-Source Entry Signals**
Combine up to two independent buy/sell signals using flexible logic:
- **OR Logic**: Trigger on any signal (edge-based).
- **AND Logic (Latched)**: Requires both signals at any point (flip-flop style).
- **AND No Latch**: Both signals must be active simultaneously.
✅ **Dynamic Trade Direction Control**
Choose between:
- Long & Short (Both)
- Long Only
- Short Only
With optional **close-on-opposite-signal** and **wait-for-opposite-reentry** logic.
✅ **Precision Timing Filters**
- Date range filtering (start/end dates)
- Intraday session control (supports up to 3 custom sessions)
- Visual session shading for clarity
✅ **Advanced Risk Management**
- Multiple Stop Loss types:
- Fixed Points / Percent
- ATR-based (adjustable multiplier)
- Swing-based (automatically detects pivots)
- External SL source
- Dynamic position sizing:
- Fixed lot
- % of equity risk (with max fallback)
✅ **Smart Take Profit Options**
- Fixed Points, Percent, RR Ratio, ATR, Fibonacci extensions
- Support for **external TP levels** (user-defined sources)
- Optional **multiple partial exits** with customizable size distribution
- Fibonacci TP levels (1.0, 1.618, 2.618, 4.236) based on SL distance
✅ **Flexible Exit Tools**
- Breakeven stop activation after TP1 hit
- Internal swing-based trailing stop
- External trailing stop (custom source)
- Max holding time (auto-close after X candles)
- Custom close conditions via user-defined logic
- Close & reverse functionality
✅ **Visual Clarity & Feedback**
- Clear visual markers for Buy/Sell signals
- Real-time SL, Entry, and TP lines with color-coded risk/reward zones
- On-chart TP level labels showing prices and allocation percentages
- Session background highlighting
- Trade statistics summary label
---
### 🛠️ Ideal For:
- Testing new indicator combinations
- Validating entry/exit logic under various market filters
- Comparing signal fusion methods (OR vs AND)
- Simulating professional-grade risk management rules
- Educational demonstrations in algorithmic trading
---
### ⚠️ Important Notes
- This is a **backtesting tool**, not a live trading bot.
- Past performance is **not indicative of future results**.
- Strategy performance depends entirely on the quality of input signals.
- Always validate results across multiple assets and timeframes.
- Use in conjunction with sound money management principles.
---
### 📌 How to Use
1. Attach the script to your chart.
2. Configure **Buy/Sell Signal Sources** (e.g., RSI crossovers, moving averages, etc.)
3. Set your preferred **trade direction, session, and date filters**
4. Define **stop loss and take profit rules**
5. Adjust position sizing and exit behavior
6. Run the backtest and analyze results in the **Strategy Tester tab**
💡 *Tip: Combine with other indicators by referencing their output values as signal sources.*
---
### ❌ Disclaimer
This script is shared for **informational and educational purposes only**. By using it, you agree that:
- The author is **not responsible** for any financial losses.
- Trading involves significant risk; only risk capital should be used.
- You are solely responsible for your trading decisions.
🚫 **This script does not promote get-rich-quick schemes, guaranteed profits, or unverified performance claims.**
---
🔁 **Version:** 5 (Pine Script v5)
📦 **Category:** Strategy
📈 **Overlay:** Yes
🧪 **Purpose:** Backtesting, Signal Validation, Risk Modeling
---
✅ **Safe for Public Sharing**
✔ Complies with TradingView’s community standards
✔ No misleading performance claims
✔ No automated trading promises
✔ No copyrighted or plagiarized content
---
> 💬 *"Knowledge is power — test wisely, trade responsibly."*
---
Let me know if you'd like a **short version** for the script's header comment or a **public post summary** for the TradingView feed!
Risk to Reward - FIXED SL BacktesterDon't know how to code? No problem! TradingView is an excellent platform for you. ✅ ✅
If you have an indicator that you want to backtest using a risk-to-reward ratio or fixed take profit/stop loss levels, then the Risk to Reward - FIXED SL Backtester script is the perfect solution for you.
introducing Risk to Reward - FIXED SL Backtester Script which will allow you to test any indicator / Signal with RR or Fixed SL system
How does it work ?!
Once you connect the script to your indicator, it will analyze your entry points and perform calculations based on them. It will then open trades for you according to the specified inputs in the script settings.
HOW TO CONNECT IT to your indicator?
simply open your indicator code and add the below line of code to it
plot(Signal ? 100 : 0,"Signal",display = display.data_window)
Replace Signal with the long condition from your own indicator. You can also modify the value 100 to any number you prefer. After that, open the settings.
Once the script is connected to your indicator, you can choose from two options:
Risk To Reward Ratio System
Fixed TP/ SL System
🔸if you select the Risk to Reward System ⤵️
The Risk-to-Reward System requires the calculation of a stop loss. That's why I have included three different types of stop-loss calculations for you to choose from:
ATR Based SL
Pivot Low SL
VWAP Based SL
Your stop loss and take profit levels will be automatically calculated based on the selected stop loss method and your risk-to-reward ratio.
You can also adjust their values to match your desired risk level. The trades will be displayed on the chart.
with the ability to change their values to match your risk.
once this is done, trades will be displayed on the chart
🔸if you select the Fixed system ⤵️
You have 2 inputs, which are FIXED TP & Fixed SL
input the values you want, and trades will be on your chart...
I have also added a Breakeven feature for you.
with this Breakeven feature the trade will not just move SL to Entry ?! NO NO, it will place it above entry by a % you input yourself, so you always win! 🚀
Here is an example
Enjoy, and have fun, if you have any questions do not hesitate to ask
3c Ultimate reversal strategy With scanner and backtester v2This might just be the ultimate strategy to identify reversals.
This strategy includes a scanner, a backtester and ability to connect it with you 3 commas bot(See adviced settings below)
Strategy:
-Signals reversal that happened in the last bar. This signal DO NOT repaint.
-Identifies potential reversal that might happen in the current bar but can also not happen depending upon the timeframe closing price.
-The strategy combines the Moving Average Trend Changer, SuperTrend (ATR price detection) and ADX.
-It reduces the number of false signals in sideways market conditons and give more reliable trade signals.
-The signal does not repaint and can be used in any market condition. It determines the trend with high precision.
Take profit:
-Set 2 separate TP conditions.
-You can take profit using percentage, ATR, or RR(Risk Reward), aswell as using Trailing Take Profit.
- Use sell signal from the strategy(I often find way better results using that)
Stoploss:
-You can use either ATR, Percentage or sell signal from the strategy
(For now to let the strategy itself decide when to TP or SL, just set these parameters really high.)
Scanner:
-Identifies coins that are currently in the sell zone
-Identifies coins that are currently in the buy zone
-Screener explores up to 20 pairs in current graph's time frame.
-Optimize the strategy to your liking and use the built in backtester to see if it is a viable strategy.
3commas settings:
-For now you can only use simple bots.
-Create LONG and SHORT bots for the coins you like to trade and set up alerts(You can send long and short signal from the same alert)
-Set TP to 50% the strategy will handle buys and exits based on your inputs.
-Set safety orders to 0. I might add DCA to the strategy if testing proves that to be a good solution.
-When you have made the bots input the bot ID and token adress in the settings of the strategy.
-When creating the alert use this webhook :https://3commas.io/trade_signal/trading_view
-In the message field you use {{strategy.order.alert_message}} as the placeholder.
In the future this signal might make it to the 3commas marketplace. You can then subscribe to that signal where I have cherrypicked coins based on thorough backtesting and optimization.
Price Change Scalping Strategy v1.0 - 3Commas EditionIntroduction
This strategy implements the Price Change Scalping (PCS) strategy specifically for the 3Commas platform. The Input settings have been redesigned to match the same inputs as the 3Commas My Bot Settings page. Only the "Deal Start Condition" section will echo the required PCS-related settings found in the original Price Change Scalping Strategy v1.0 to successfully implement the strategy.
The strategy uses a price rate of change (ROC) momentum calculation to determine the percent change in price between a defined range of bars. The calculated ROC value is then compared to the Upper Threshold and Lower Threshold values to determine if a trade setup is to be activated. If the threshold is crossed, a trade setup will occur based on the indicator settings. Entry, Take Profit, and Stop Loss prices are calculated and displayed on the chart. Once the Entry Price is crossed, a long or short position is created (depending on the direction) and once the Take Profit price is crossed, the position is closed. If the Entry Price is not crossed within a specific number of bars, the trade setup is canceled, and it will proceed to monitor price changes for the next set up.
How is it original and useful?
This strategy is unique in that the strategy version fully supports the TradingView backtester, which will enable you to perform experiments with various settings to evaluate performance using the historical chart data. The study version implements the "Start Deal" and "Close Deal" alerts for you to integrate with 3Comma's "Trading View Custom Signal" start condition. Both script versions will provide the same configuration abilities. The following list is a brief description of its usefulness:
Full support for all possible 3Commas bot settings.
Define a short or long trading strategy.
Price change data source and offset settings.
Your layering placement relative to the entry price.
Your trading parameters like take profit and stop loss offsets, trailing take profit support, exchange commission rates, trading start time, and order size multiplication for each layer.
Flexible trade eligibility rules that can use other chart indicators, like RSI or EMA, to exclude the selection of entry prices for trading.
The visibility of detailed statistics from the chart history pertaining to trading sessions started and closed, session durations, win rate, price action drops and bounces, as well as layer utilization.
The visibility of detailed Used Amount for Each Step table that details how each layer will be allocated for trading.
How does it compare to other scripts in the Public Library?
The strategy offers a very detailed, comprehensive settings to address all types of markets found on TradingView where you can implement the price change scalping strategy. The strategy version can be considered the first of its kind on TradingView to leverage the backtester to provide informative, detailed performance measurements surrounding this unique trading strategy. The study version will implement the latest alert framework called "Any Alert() Function" where you can create a single alert to handle multiple events, which include:
Deal Start
Deal Close
Strategy Results
The default settings are designed to define a "loose" price change settings to ensure that the indicator will render chart elements when first loaded as well as to allow the backtester to gather order executions and display performance summary. The strategy version is using $10,000 initial capital, a commission rate of 0.1% for both entries and exits, and a 1 tick slippage setting. It is also using 3.4881% of the equity for the Base Order Size, 4.7097% of equity for the first Safety Order Size. The Maximum Safety Trade Count is 7 with a Safety Order Volume Scale of 1.33, and a take profit of 2% with no stop loss. All other settings are defaults.
It is recommended that the indicator be "tuned" for your specific market to best implement the price change strategy and obtain better desirable results. You do so by scrolling through the chart's history and observing moments when prices tend to move rapidly. Measure the number or bars it typically takes for the price to change at a specific rate. Using this information, you can adjust the Price Change Settings accordingly to configure the indicator for the chart.
Always keep in mind that past performance may not be indicative of future results. Settings that seem favorable for one market may be found to be disastrous in another. Therefore, do take the time needed to understand how the settings will behave with the given chart symbol.
Enjoy! 😊👍
How to obtain access to the script?
You have two choices:
Use the "Website" link below to obtain access to this indicator, or
Send us a private message (PM) in TradingView itself.






















