[fpemehd] Strategy TemplateHello Guys! Nice to meet you all!
This is my fourth script!
This is the Strategy Template for traders who wants to make their own strategy.
I made this based on the open source strategies by jason5480, kevinmck100, myncrypto. Thank you All!
### StopLoss
1. Can Choose Stop Loss Type: Percent, ATR, Previous Low / High.
2. Can Chosse inputs of each Stop Loss Type.
### Take Profit
1. Can set Risk Reward Ratio for Take Profit.
- To simplify backtest, I erased all other options except RR Ratio.
- You can add Take Profit Logic by adding options in the code.
2. Can set Take Profit Quantity.
### Risk Manangement
1. Can choose whether to use Risk Manangement Logic.
- This controls the Quantity of the Entry.
- e.g. If you want to take 3% risk per trade and stop loss price is 6% below the long entry price,
then 50% of your equity will be used for trade.
2. Can choose How much risk you would take per trade.
### Plot
1. Added Labels to check the data of entry / exit positions.
2. Changed and Added color different from the original one. (green: #02732A, red: #D92332, yellow: #F2E313)
Cari dalam skrip untuk "entry"
PlurexSignalLibrary "PlurexSignal"
Provides functions that wrap the built in TradingView strategy functions so you can seemlessly integrate with Plurex Signal automation.
NOTE: Be sure to set your strategy close_entries_rule="ANY" and pyramiding=20 or some other amount appropriate to your strategy in order to have multiple entries.
plurexMarket()
Build a Plurex market string from a base and quote asset symbol.
Returns: A market string that can be used in Plurex Signal messages.
tickerToPlurexMarket()
Builds Plurex market string from the syminfo
Returns: A market string that can be used in Plurex Signal messages.
simpleMessage(secret, action, marketOverride)
Builds Plurex Signal Message json to be sent to a Signal webhook
Parameters:
secret : The secret for your Signal on plurex
action : The action of the message. One of .
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
Returns: A json string message that can be used in alerts to send messages to Plurex.
long(secret, marketOverride, qty)
Open a new long entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
qty : Corresponds to strategy.entry qty
short(secret, marketOverride, qty)
Open a new short entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
qty : Corresponds to strategy.entry qty
closeAll(secret, marketOverride)
Close all positions. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeLongs(secret, marketOverride)
Close all longs. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeShorts(secret, marketOverride)
Close all shorts. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeLastLong(secret, marketOverride)
Close last long entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeFirstLong(secret, marketOverride)
Close first long entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeLastShort(secret, marketOverride)
Close last short entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
closeFirstShort(secret, marketOverride)
Close first short entry. Wraps strategy function and sends plurex message as an alert.
Parameters:
secret : The secret for your Signal on plurex
marketOverride : Optional, defaults to the syminfo for the ticker. Use the `plurexMarket` function to build your own.
Price based ATR%This script shows upto two lines that represent a deviation from the price based on a multiple of the ATR%
close + ( (close / 100) * ( atr * upperMultiplier) )
and
close - ( (close / 100) * ( atr * lowerMultiplier) )
threengine_global_automation_libraryLibrary "threengine_global_automation_library"
A collection of functions used for trade automation
getBaseCurrency()
Gets the base currency for the chart's ticker. Supported trade pairs are USD, USDT, USDC, BTC, and PERP.
Returns: Base currency as a string
getChartSymbol()
Get the current chart's symbol without the base currency appended to it. Supported trade paris are USD, USDT, USDC, BTC, and PERP.
Returns: Ssymbol and base currency
getDecimals()
Calculates how many decimals are on the quote price of the current market
Returns: The current deimal places on the market quote price
checkVar()
Plot a string as a label on the chart to test variable value. Use str.tostring() for any variable that isn't a string.
Returns: Label with stringified variable
getStrategyAlertMessage()
Generates stringified JSON for a limit order that can be passed to the strategy alert_message for a long entry.
Returns: Stringifed JSON for a long entry
taGetAdx()
Calculates the Average Directional Index
Returns: The value of ADX as a float
taGetEma()
Calculates the EMA based on a type, source, and length. Supported types are EMA, SMA, RMA, and WMA.
Returns: The value of the selected EMA
isBetweenTwoTimes()
Checks to see if within a rage based on two times
@retunrs true/false boolean
getAllTradeIDs()
This gets all closed trades and open trades
@retunrs an array of all open and closed trade ID's
getOpenTradeIDs()
This gets all open trades
@retunrs an array of all open trade ID's
orderAlreadyExists()
This checks to see if a provided order id uses the getAllTradeIDs() function to check
@retunrs an array of all open and closed trade ID's
orderCurrentlyExists()
This checks to see if a provided order id uses the getAllTradeIDs() function to check
Returns: an array of all open and closed trade ID's
getContractCount()
calulates the number of contracts you can buy with a set amount of capital and a limit price
Returns: number of contracts you can buy based on amount of capital you want to use and a price
getLadderSteps()
Returns: array of ladder entry prices and amounts based on total amount you want to invest across all ladder rungs and either a range between ladderStart and LadderStop based on specificed number of ladderRungs OR ladderStart, ladderRungs, and LadderSpacingPercent
MACD Indicator for 5 Min ScalpThis Indicator merges the 1 min MACD with BollingerBands to dedect a bigger than avarage tick on the Macd for the 5 min Scalping Strategy
You can change the length of the bollinger bands for the upper and lower channel individually so that you can get better signals
if a tick is bigger than avarage it will be colored, else it would be gray
this is the same indicator i used to get entrys in my 5 min scalping statagy, but i wouldnt just go in a trade when there is a bigger than usual tick. You have to look at other things to
5 Minute Scalping StrategyTaking entrys based on the 1 minute timeframe MACD
only taking longs when all emas are in the correct order and there is a bigger than usual MACD downtick and the RSI is above 51
only taking shorts when all emas are in the opposite order and there is a bigger than usual uptick on the MACD and the RSI is bellow 49
bigger than usual ticks are defined by bollinger bands around the Macd and the ticks have to be higher than 35 and lower than -10
you can change whatever setting you like to make the strategy more profitible. pls share when you find a more profitible setting than me
the stoploss doesnt work correct if it would be hit in the same candle you enter the trade. pls share when you have a solution for this
the stratagy is profitible when i backtested it for the last month, but i dont know how it will play out in the future, so you enter the signals at your own risk
Scalping The Bull - Two EMA StrategyName: Scalping The Bull - Two EMA "Gianno-Nano" Strategy from the Meeting
Category: Trend Follower
Operating mode: Spot or Future, only long or swing trading
Trades duration: Multiday
Timeframe: 4H
Suggested usage: Mid-term trading, when the market is in trend and it is showing high volatility.
Entry: When fast EMA crosses over slow EMA.
Exit: When fast EMA crosses under slow EMA then Exit Long or Entry Short (for reversal strategy).
Usage:
⁃ It can be useful to use alerts or web-hooks to automate this strategy.
⁃ This is a raw system that can be improved in different ways (e.g. Stop-loss, take-profit, position sizing) or studying more the behaviour of the coin.
Configuration:
- N/A
Backtesting
⁃ Exchange: BINANCE
⁃ Pair: NEOUSDT
⁃ Timeframe: 4H
⁃ Fee 0.075%
⁃ Slippage 0
- Start : 2017-12-03
How you or we can improve? Source code is open so share your ideas!
Triple Supertrend with EMA and ADX strategyPublishing a strategy that includes adx and ema filter as well
Entry: all three Supertrend turns positive. If a filter of ADX and EMA is applied, also check if ADX is above the selected level and close is above EMA
Exit: when the first supertrend turns negative
opposite for short entries
A FIlter is given to take or avoid re-enter on the same side. For example, After a long exit, if the entry condition is satisfied again for long before the short single is triggered it takes re-entry if selected.
[Mad]Trend BarcolorsTrend colors based on PSA and selectable Ma's.
classic PSAR trend mixed with 2 selectable MA's switching between Bullish Neutral Baerish
the switching logic is in colorlogic()
usage: colorswitch maybe one entry.
if you want to trade with a trend example: green yellow, green << entry (long)
if you want to trade against a trend example: green yellow red (entry short)
This is not an indicator that works on its own, it is a helper in a decision, never a single instrument is possible.
have fun
Loft Strategy V4This strategy is an advanced version of the Loft Strategy V1, I shared earlier. (Loft Strategy V1 consists of a kalman filter (by alexgrover ) and a "stop and reverse" line which is following and the kalman filter. If the price goes in the same direction as the position side, the "stop and reverse" line approaches the kalman filter as set on the "Approach Decrease Step" parameter.)
In addition to the previous version, it includes a martingale like deviation and multiple take-profit.
Here it is some parameters definitions of the strategy:
Kalman Filter: The higher this parameter, the faster and more aggressive the filter. Otherwise the filter goes very smoothly
Beginning Approach: First approximation as a percentage of stop-n-reverse line
Final Approach: Minimum approximation of stop-n-reverse line
Approach Decrease Step: If the price moves in the same direction as the strategy, the approach percentage is reduced by this parameter. Otherwise nothing do
Base Order Quantity: Initial capital of position
Max Safe Order Attempt: This parameter determines the maximum number of times the strategy will raise the bet after losing in a row.
Safe Order Deviation: if the last trade is loss, multiply the bet by this parameter (aka. martingale factor)
Profit Deviation: if last trade in loss, multiply the take-profit points
Max Order Quantity: Maximum capital allowed for a position
TP1, TP2, TP3 : Take profit spots in percentage
QT1, QT2, QT3: Amount of take-profit spots
Stop Loss: Maximum stop loss allowed for a trade
Long Entry, Short Entry: Only long side, only short side or both side
Safe Stop After TP2: If the price reaches the TP2 point, move the stop-loss point to the entry price.
Safe Stop After TP1: If the price reaches TP1, move the stop-loss point to the stop-n-reverse line.
10 EMA StrategyThis indicator shows you:
- The first bullish candle to close below EMA 10
- The first bearish candle to close above EMA 10.
Optional:
You can enable the exit signals in the setting. This will show you:
- If you are long (bullish), it will signal when the first bullish candle closes below EMA 10
- If you are short (bearish), it will signal when the first bearish candle closes above EMA 10
You can also change the EMA 10, to another length, if you want to try something else.
Support and Resistance with MACD IndicatorOriginal script from ©akpaswaniitk. I just added MACD to filter out bad trades and alert function so that we get notified whenever indicator gives us an entry signal. Most of the false breakout has been removed but the remaining ones only pop up during consolidation, so it's wait for the retest before entry. Works better in continuous market. Also look at the color of EMA for further confirmation, only focus on buy side when EMA is green and sell when EMA is red or when after the buy signal EMA changes color from red to green. These are the highly profitable setups I've found with this indicator.
Signals
Red or Green solid line with diamond are trailing stoploses
dotted black line is entry level
dotted white line is optimal exit
[TT$] Trade Tracker - By BlueJayBirdUSE:
- For visually tracking your trades in a floating pane (label).
- Most of the features are described in the image.
MAIN FEATURES:
- Better long-position and short-position tool wannabe.
- Visual data for tracking your trade position.
- Automatic setting of some common values in trades risk management.
- Switching from long-position to short-position can be done by just dragging the target or the entry point around.
EMOJIS:
- ⏰ Entry time: : Confirmed manually when the tool is added to the chart.
- 🎲 Entry: Confirmed manually when the tool is added to the chart.
- 🎯 Target: Confirmed manually when the tool is added to the chart.
- ⛔ Stop-Loss: Set automatically by the code.
- 🪓 Break Even: Set automatically by the code.
- 👻 Else: Set manually from the settings.
- 💲 Current: Automatic.
NOTES:
- Be aware of the "time zone" feature. Change it to the time you're currently using for your trades.
- QUOTE use is really optional. I'd rather not use it.
- The 👻 is just an extra feature. Do whatever you want with it (example: for pointing out a dangerous zone).
- 💱: "Fee" feature is not working, but it will. Sorry for that.
RSI StrategyThis RSI strategy will allow you to go long when RSI is overbought and go short when RSI is oversold. You can also change the checked boxes to reverse this. Uncheck "Overbought Go Long & Oversold Go Short" and check "Overbought Go Short & Oversold Go Long" to use this reversed option.
You can also choose to use an ema filter as an additional qualifier for entry. Uncheck "No EMA Filter" and check "Use EMA Filter" if you want to use it.
Be sure to enter slippage and commission into the properties to give you realistic results.
I've also built in backtesting date ranges and the ability to trade only within certain times of day and have it close all trades at the end of that time frame. This is especially useful for day trading stocks. To specify a time from use the format 0930-1100 or whatever your trading hours will be. Check off "Enable Close Trade At End Of Time Frame" to close the trade at the end of your trading hours.
You can also specify a % based take profit and stop loss. Also keep in mind that the way this code is designed if you use the stop loss and/or take profit and it reaches either target and closes, then it will immediately re-enter if the condition for long or short entry is true.
Finally there's custom alert fields so you can send custom alert messages for strategy entry and exit for use with automated trading services. Simply enter your messages in the fields within the strategy properties and then put {{strategy.order.alert_message}} in your alert message body and it will dynamically pull in the appropriate message.
EMA TrendSurfer - RamRapoluThis is a TrendSurfer.
Do a Top Down Approach/Analysis.
TimeFrames :
1) Daily and 4H for Identifying Trend.
2) 1H for Entries
Rules of Entry
1) Identify All EMA are Spawning Parallelly and not Crossing on Daily and then 4H.
if Point 1 is true, then
2) Identify if the EMA are spawing well like in point1.
3) Wait for Candle breaking into 21 EMA.
4) once it breaks 21EMA and does not Touch 60EMA
then
1) if its uptrend/Long position
Entry:
Your Recent High + 21 ATR = Buy Stop Order
Stop Loss (SL) : your 60 EMA - 21 ATR
Target Profit(TP) :
TP1 : 1x SL, Sell 50% then move SL to 60EMA when TP1 hits
TP2 : 2x SL, Sell 50% then move SL to EMA when TP2 hits
TP3 : 3x SL, Sell 50% then move SL to EMA when TP3 hits
Swing Multi Moving Averages Crypto and Stocks StrategySimple and efficient multi moving average strategy combined with risk management and time condition.
Indicators/ Tools used
Multi selection moving average type like SMA , EMA , SMMA , VWMA , VIDYA , FRAMA , T3 and much more
Limit 1 entry max per week, entry on monday exit on sunday or risk management tp/sl.
Rules for entry:
LONG:Close of the candle cross above the moving average while the previous close was below. All of this is happening during monday session.
SHORT:Close of the candle cross below the moving average while the previous close was above. All of this is happening during monday session.
Rules for exit:
We exit either on sunday or if we reach tp/sl levels.
Observations:
I recommend use the strategy 2 types, one for long and another for short, using different parameters since long and short movements behave differently.
For example for long we can use a shorter moving average longth and a higher tp/sl while for short we can use a bigger moving average length and a smaller tp/sl
If you have any questions let me know !
Swing VWAP Crypto and Stocks StrategyThis is a strategy designed for swing trading on markets such as crypto and stocks.
Its components are:
VWAP
Time Management
Risk management
Rules for entry:
We entry only on Monday, if our close of the candle crossed above VWAP
Rules for exit
We exit always on Sunday or if we either hit the TP/SL levels.
If you have any questions let me know
Hotch v1.02 RSI+Fractals/VWAP Bands/Smoothed Moving Average. In this script the RSI is used the limit number of displayed fractals to only those fractals that are triggered in the RSI Overbought and Oversold areas. This helps keep the chart cleaner looking when combined with other indicators so other icons that are plotted above and below candles are not covered up.
For example if the RSI drops below 30 the next fractal would be displayed.
If the RSI stays below 30 each fractal would be displayed.
If the RSI dips below 30 and returns above 30 before there is a fractal is displayed, the next valid fractal would still be displayed.
With optimization of the RSI values this indicator can be used in confluence with the included VWAP bands and Moving average to find trend reversal entry points for trades. Also recommended is to use a divergence identifying lower indicator as a secondary confirmation of trade entry.
Example of a potential long entry using the displayed chart.
1) RSI under 30
2) Price was recently outside of your chosen VWAP multiple.
3) a fractal was triggered.
Additionaly:
4) Use other indicators or other confluences for a stronger trade signal.
5) Use your preferred method of determining entry price stop loss and take profit.
NOTE: Fractals normally paint two bars behind the current bar. In this code, with the combination of the RSI and Fractal Trigger, the fractal paints an icon on the current bar.
Crypto swing correlation RSI and SMAThis is a crypto swing strategy, designed for long term periods and correlated pairs with crypto market total(or other coins used as correlation, however I recommend total of crypto or btc)
Its components are:
RSI with a very length
Correlation candles
SMA 9
Rules for entry:
For long : RSI is above 51 level and going higher and close of the candle is above the SMA
For short :RSI is below 49 and going lower and close of the candle is below the SMA
Rules for exit:
We exit when we encountered an opposite condition than the entry one, or based on take profit/stop loss levels.
If you have any questions let me know !
Crypto Scalper Divergence Macd Psar Ema 200This is a very efficient crypto scalper adapted to very short timeframes, however it can be optimized for other timeframes and assests as well.
Its components are
MACD
P SAR
EMA 200
Risk management
Rules for entry:
For short : we have an uptrend on PSAR , histogram is positive (divergence MACD) and close of a candle is below EMA 200
For long : we dont have an uptrend on PSAR, histogram is negative(divergence MACD) and close of a candle is above EMA 200
Rules for exit:
We exit when we either find a reverse condition than the entry one, or based on stop loss/take profit that are calculated on % movements of the price.
If you have any questions, let me know !
REMORA StrategyStrategy:
Finding entry using pullback or Buy On Dip method.
This indicator using EMA line and ATR strategy to find best entry.
EMA line consist of :
EMA 20, EMA 50 and EMA 90.
Entry signal when candle rebound on EMA line and rocket signal appeared.
Exit when "SL" signal appeared.
3 RSI 6sma/ema ribbon crypto strategyThis is a very efficient swing trading strategy designed for crypto long timeframes like 2h+.
Initially we have 3 RSI .
AFter that we use them as source for 6 SMA/EMA for each RSI, 5, 30, 50, 70, 90, 100. With those we create a ribbon that we are going to use in order to check the direction of the trend.
Rules for entry:
For long : if either all the SMA/EMA's from the 2nd RSI are telling us to go long, or all the all SMA/EMA's from the 3rd rsi are telling us to go long F
For short : if either all the SMA/EMA's from the 2nd RSI are telling us to go short, or all the all SMA/EMA's from the 3rd rsi are telling us to go short
We exit when we get an opposite condition than the entry one.
Caution: this strategy has no risk management inside, so use it with caution. If you have any questions , let me know !
Portfolio Backtester Engine█ OVERVIEW
Portfolio Backtester Engine (PBTE). This tool will allow you to backtest strategies across multiple securities at once. Allowing you to easier understand if your strategy is robust. If you are familiar with the PineCoders backtesting engine , then you will find this indicator pleasant to work with as it is an adaptation based on that work. Much of the functionality has been kept the same, or enhanced, with some minor adjustments I made on the account of creating a more subjectively intuitive tool.
█ HISTORY
The original purpose of the backtesting engine (`BTE`) was to bridge the gap between strategies and studies . Previously, strategies did not contain the ability to send alerts, but were necessary for backtesting. Studies on the other hand were necessary for sending alerts, but could not provide backtesting results . Often, traders would have to manage two separate Pine scripts to take advantage of each feature, this was less than ideal.
The `BTE` published by PineCoders offered a solution to this issue by generating backtesting results under the context of a study(). This allowed traders to backtest their strategy and simultaneously generate alerts for automated trading, thus eliminating the need for a separate strategy() script (though, even converting the engine to a strategy was made simple by the PineCoders!).
Fast forward a couple years and PineScript evolved beyond these issues and alerts were introduced into strategies. The BTE was not quite as necessary anymore, but is still extremely useful as it contains extra features and data not found under the strategy() context. Below is an excerpt of features contained by the BTE:
"""
More than `40` built-in strategies,
Customizable components,
Coupling with your own external indicator,
Simple conversion from Study to Strategy modes,
Post-Exit analysis to search for alternate trade outcomes,
Use of the Data Window to show detailed bar by bar trade information and global statistics, including some not provided by TV backtesting,
Plotting of reminders and generation of alerts on in-trade events.
"""
Before I go any further, I want to be clear that the BTE is STILL a good tool and it is STILL very useful. The Portfolio Backtesting Engine I am introducing is only a tangental advancement and not to be confused as a replacement, this tool would not have been possible without the `BTE`.
█ THE PROBLEM
Most strategies built in Pine are limited by one thing. Data. Backtesting should be a rigorous process and researchers should examine the performance of their strategy across all market regimes; that includes, bullish and bearish markets, ranging markets, low volatility and high volatility. Depending on your TV subscription The Pine Engine is limited to 5k-20k historical bars available for backtesting, which can often leave the strategy results wanting. As a general rule of thumb, strategies should be tested across a quantity of historical bars which will allow for at least 100 trades. In many cases, the lack of historical bars available for backtesting and frequency of the strategy signals produces less than 100 trades, rendering your strategy results inconclusive.
█ THE SOLUTION
In order to be confident that we have a robust strategy we must test it across all market regimes and we must have over 100 trades. To do this effectively, researchers can use the Portfolio Backtesting Engine (PBTE).
By testing a strategy across a carefully selected portfolio of securities, researchers can now gather 5k-20k historical bars per security! Currently, the PTBE allows up to 5 securities, which amounts to 25k-100k historical bars.
█ HOW TO USE
1 — Add the indicator to your chart.
• Confirm inputs. These will be the most important initial values which you can change later by clicking the gear icon ⚙ and opening up the settings of the indicator.
2 — Select a portfolio.
• You will want to spend some time carefully selecting a portfolio of securities.
• Each security should be uncorrelated.
• The entire portfolio should contain a mix of different market regimes.
You should understand that strategies generally take advantage of one particular type of market regime. (trending, ranging, low/high volatility)
For example, the default RSI strategy is typically advantageous during ranging markets, whereas a typical moving average crossover strategy is advantageous in trending markets.
If you were to use the standard RSI strategy during a trending market, you might be selling when you should be buying.
Similarily, if you use an SMA crossover during a ranging market, you will find that the MA's may produce many false signals.
Even if you build a strategy that is designed to be used only in a trending market, it is still best to select a portfolio of all market regimes
as you will be able to test how your strategy will perform when the market does something unexpected.
3 — Test a built-in strategy or add your own.
• Navigate to gear icon ⚙ (settings) of strategy.
• Choose your options.
• Select a Main Entry Strat and Alternate Entry Strat .
• If you want to add your own strategy, you will need to modify the source code and follow the built-in example.
• You will only need to generate (buy 1 / sell -1/ neutral 0) signals.
• Select a Filter , by default these are all off.
• Select an Entry Stop - This will be your stop loss placed at the trade entry.
• Select Pyamiding - This will allow you to stack positions. By default this is off.
• Select Hard Exits - You can also think of these as Take Profits.
• Let the strategy run and take note of the display tables results.
• Portfolio - Shows each security.
• The strategy runs on each asset in your portfolio.
• The initial capital is equally distributed across each security.
So if you have 5 securities and a starting capital of 100,000$ then each security will run the strategy starting with 20,000$
The total row will aggregate the results on a bar by bar basis showing the total results of your initial capital.
• Net Profit (NP) - Shows profitability.
• Number of Trades (#T) - Shows # of trades taken during backtesting period.
• Typically will want to see this number greater than 100 on the "Total" row.
• Average Trade Length (ATL) - Shows average # of days in a trade.
• Maximum Drawdown (MD ) - Max peak-to-valley equity drawdown during backtesting period.
• This number defines the minimum amount of capital required to trade the system.
• Typically, this shouldn’t be lower than 34% and we will want to allow for at least 50% beyond this number.
• Maximum Loss (ML) - Shows largest loss experienced on a per-trade basis.
• Normally, don’t want to exceed more than 1-2 % of equity.
• Maximum Drawdown Duration (MDD) - The longest duration of a drawdown in equity prior to a new equity peak.
• This number is important to help us psychologically understand how long we can expect to wait for a new peak in account equity.
• Maximum Consecutive Losses (MCL) - The max consecutive losses endured throughout the backtesting period.
• Another important metric for trader psychology, this will help you understand how many losses you should be prepared to handle.
• Profit to Maximum Drawdown (P:MD) - A ratio for the average profit to the maximum drawdown.
• The higher the ratio is, the better. Large profits and small losses contribute to a good PMD.
• This metric allows us to examine the profit with respect to risk.
• Profit Loss Ratio (P:L) - Average profit over the average loss.
• Typically this number should be higher in trend following systems.
• Mean reversion systems show lower values, but compensate with a better win %.
• Percent Winners (% W) - The percentage of winning trades.
• Trend systems will usually have lower win percentages, since statistically the market is only trending roughly 30% of the time.
• Mean reversion systems typically should have a high % W.
• Time Percentage (Time %) - The amount of time that the system has an open position.
• The more time you are in the market, the more you are exposed to market risk, not to mention you could be using that money for something else right?
• Return on Investment (ROI) - Your Net Profit over your initial investment, represented as a percentage.
• You want this number to be positive and high.
• Open Profit (OP) - If the strategy has any open positions, the floating value will be represented here.
• Trading Days (TD) - An important metric showing how many days the strategy was active.
• This is good to know and will be valuable in understanding how long you will need to run this strategy in order to achieve results.
█ FEATURES
These are additional features that extend the original `BTE` features.
- Portfolio backtesting.
- Color coded performance results.
- Circuit Breakers that will stop trading.
- Position reversals on exit. (Simulating the function of always in the market. Similar to strategy.entry functionality)
- Whipsaw Filter
- Moving Average Filter
- Minimum Change Filter
- % Gain Equity Exit
- Popular strategies, (MACD, MA cross, supertrend)
Below are features that were excluded from the original `BTE`
- 2 stage in-trade stops with kick-in rules (This was a subjective decision to remove. I found it to be complex and thwarted my use of the `BTE` for some time.)
- Simple conversion from Study to Strategy modes. (Not possible with multiple securities)
- Coupling with your own external indicator (Not really practical to use with multiple securities, but could be used if signals were generated based on some indicator which was not based on the current chart)
- Use of the Data Window to show detailed bar by bar trade information and global statistics.
- Post Exit Analysis.
- Plotting of reminders and generation of alerts on in-trade events.
- Alerts (These may be added in the future by request when I find the time.)
█ THANKS
The whole PineCoders team for all their shared knowledge and original publication of the BTE and Richard Weismann for his ideas on building robust strategies.
═════════════════════════════════════════════════════════════════════════