Shark_AlgoGram_IndicatorHello traders!
I have been developing Shark trading indicator over the last year. This algorithm indicator is based on a set of different strategies, each with its own weight (weighted strategy). The set of strategies that I currently use are 6:
MACD
Stochastic RSI
RSI
Supertrend
MA crossover
Donchin Channel
Moreover, this indicator includes STOP losses criteria and a taking profit strategy. this indicator must be optimized for the desired asset to achieves its full potential.
Best Time-Frame :
The 30 & 31 Minutes Time frame give good results. The algo has been tested for several asset (same dataframe, different optimization values).
When to Buy & Sell :
Buy Entry & Exit : Take entry when Green Arrow or Buy Trigger on screen & Exit when Purple Arrow or exit trigger on screen
Sell Exit & Exit : Take entry when Red Arrow or Sell Trigger on screen & Exit when Purple Arrow or exit trigger on screen
Important note:
Backtest the algorithm with different data stamps to avoid overfitting results
How it works:
The algorithm is based on a combination of well-documented indicators. First, the algorithm calculated the weight_strategy, which represents a value from 0 to 5 of the number of strategies that are fulfilled (in case the weight of each strategy is the same). To open a position, the value of weight_strategy must be greater than the value of weight_signal, by default 2. Modify the indicator parameters for the desired asset and data frame. Set stop-loss and take profit criteria.
Features:
* The algorithm allows to trade with long, short or both positions.
* Backtest the algorithm over a defined interval (data stamp), e.g., from 2022
* stop loss (SL) orders based on movement of the previous candle source, e.g., close or candle volatility. Only close the position after the candle is close!
* It can moves the stop loss when this indicator takes profit (TP) & Market true such condition where trailing SL Activate
* Take profit based on market movement and once 3 condition true out of 6 True they push exit order
* Define delays to evaluate the strategies of more previous candles:
+ Candle Delay is for MACD strategy
+ Candle delay Stoch RSI is for the Stochastic RSI strategy.
+ RSI Candle Delay is for the RSI strategy.
+ Candle delay Exit is the number of candles the algorithm waits to open a new position.
* Choose if you want to use the weighted strategy or just some of them.
* Choose the weight (relevance) of each strategy.
* Customize the well-documented MACD strategy.
* Customize the well-documented Stochastic RSI strategy.
* Customize the well-documented RSI strategy.
* Customize the well-documented Supertrend strategy.
* Customize the well documented MA cross strategy.
Disclaimer :
AlgoGram Script,Indicator,Strategy,Trading Idea & presentations are only for educational & Research purposes and are not intended as investment advice. I cannot guarantee the accuracy of any information provided above , please take trade with help of your Financial adviser or on your own risk
Cheers! & Best Of Luck
By AlgoGram
Search in scripts for "the strat"
[Hercules] Backtest FrameworkLevel: 5
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies,
However, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "fixed and flexiable", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Hercules/Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Hercules} Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Hercules} BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Hercules/Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Hercules/Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: Hercules Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
Subscription
To encourage more people use this framework and avoid some abuse this one, I would like to set
100 Tradingview Coins per Monthly Subscription.
100X10 Tradingview Coins per Yearly Subscription.
[Sextan] PINEv4 Sextans Backtest FrameworkLevel: 5
Background
Backtesting of technical indicators and strategies is the most common way to understand a quantitative strategy. However, the complicated configuration and adaptation work of backtesting many quantitative tools makes many traders who do not understand the code daunted. Moreover, although I have written a lot of strategies,
However, I am still not very satisfied with the backtest configuration and writing efficiency. Therefore, I have been thinking about how to build a backtesting framework that can quickly and easily evaluate the backtesting performance of any indicator with a "long/short entry" indicator, that is, a "simple backtesting tool for dummies". The performance requirements should be stable, and the operation should be simple and convenient. It is best to "copy", "paste", and "a few mouse clicks" to complete the quick backtest and evaluation of a new indicator.
Luckily, I recently realized that TradingView provides an "Indicator on Indicator" feature, which is the perfect foundation for doing "hot swap" backtesting. My basic idea is to use a two-layer design. The first layer is the technical indicator signal source that needs to be embedded, which is only used to provide buy and sell signals of custom strategies; the second layer is the trading system, which is used to receive the output signals of the first layer, and filter the signals according to the agreed specifications. , Take Profit, Stop Loss, draw buy and sell signals and cost lines, define and send custom buy and sell alert messages to mobile phones, social software or trading interfaces. In general, this two-layer design is a flexible combination of "fixed and flexiable", which can meet the needs of most traders to quickly evaluate the performance of a certain technical indicator. The first layer here is flexible. Users can insert their own strategy codes according to my template, and they can draw buy and sell signals and output them to the second layer. The second layer is fixed, and the overall framework is solidified to ensure the stability and unity of the trading system. It is convenient to compare different or similar strategies under the same conditions. Finally, all trading signals are drawn on the chart, and the output strategy returns. test report.
The main function:
The first layer: "{Sextan} Your Indicator Source", the script provides a template for personalized strategy input, and the signal and definition interfaces ensure full compatibility with the second layer. Backtesting is performed stably in the backtesting framework of the layer. The first layer of this script is also relatively simple: enter your script in the highlighted custom script area, and after ensuring the final buy and sell signals long = bool condition, short = bool condition, the design of the first layer is considered complete. Input it into the PINE script editor of TradingView, save it and add it to the chart, you can see the pulse sequence in yellow (buy) and purple (sell) on the sub-picture, corresponding to the main picture, you can subjectively judge that the quality of the trading point of the strategy is good Bad.
The second layer: "{Sextan} PINEv4 Sextans Backtest Framework". This script is the standardized trading system strategy execution and alarm, used to generate the final report of the strategy backtest and some key indicators that I have customized that I find useful, such as: winning rate , Odds, Winning Surface, Kelly Ratio, Take Profit and Stop Loss Thresholds, Trading Frequency, etc. are evaluated according to the Kelly formula. To use the second layer, first load it into the TrainingView chart, no markers will appear on the chart, since you have not specified any strategy source signals, click on the gear-shaped setting next to the "{Sextan} PINEv4 Sextans BTFW" header button, you can open the backtest settings, the first item is to select your custom strategy source. Because we have added the strategy source to the chart in the previous step, you can easily find an option "{Sextan} Your Indicator Source: Signal" at the bottom of the list, this is the strategy source input we need, select and confirm , you can see various markers on the main graph, and quickly generate a backtesting profit graph and a list of backtesting reports. You can generate files and download the backtesting reports locally. You can also click the gear on the backtest chart interface to customize some conditions of the backtest, including: initial capital amount, currency type, percentage of each order placed, amount of pyramid additions, commission fees, slippage, etc. configuration. Note: The configuration in the interface dialog overrides the same configuration implemented by the code in the backtest script.
How to output charts:
The first layer: "{Sextan} Your Indicator Source", the output of this script is the pulse value of yellow and purple, yellow +1 means buy, purple -1 means sell.
The second layer: PINEv4 Sextans Backtest Framework". The output of this script is a bit complicated. After all, it is the entire trading system with a lot of information:
1. Blue and red arrows. The blue upward arrow indicates long position, the red downward arrow indicates short position, and the horizontal bar at the end of the purple arrow indicates take profit or stop loss exit.
2. Red and green lines. This is the holding cost line of the strategy, green represents the cost of holding a long position, and red represents the cost of holding a short position. The cost line is a continuous solid line and the price action is relatively close.
3. Green and yellow long take profit and stop loss area and green and yellow long take profit and stop loss fork. Once a long position is held, there is a conditional order for take profit and stop loss. The green horizontal line is the long take profit ratio line, and the yellow is the long stop loss ratio line; the green cross indicates the long take profit price, and the yellow cross indicates the long position. Stop loss price. It's worth noting that the prongs and wires don't necessarily go together. Because of the optimization of the algorithm, for a strong market, the take profit will occur after breaking the take profit line, and the profit will not be taken until the price falls.
4. The purple and red short take profit and stop loss area and the purple red short stop loss fork. Once a short position is held, there will be a take profit and stop loss conditional order, the red is the short take profit ratio line, and the purple is the short stop loss ratio line; the red cross indicates the short take profit price, and the purple cross indicates the short stop loss price.
5. In addition to the above signs, there are also text and numbers indicating the profit and loss values of long and short positions. "L" means long; "S" means short; "XL" means close long; "XS" means close short.
TradingView Strategy Tester Panel:
The overview graph is an intuitive graph that plots the blue (gain) and red (loss) curves of all backtest periods together, and notes: the absolute value and percentage of net profit, the number of all closed positions, the winning percentage, the profit factor, The maximum trading loss, the absolute value and ratio of the average trading profit and loss, and the average number of K-lines held in all trades.
Another is the performance summary. This is to display all long and short statistical indicators of backtesting in the form of a list, such as: net profit, gross profit, Sharpe ratio, maximum position, commission, times of profit and loss, etc.
Finally, the transaction list is a table indexed by the transaction serial number, showing the signal direction, date and time, price, profit and loss, accumulated profit and loss, maximum transaction profit, transaction loss and other values.
Remarks
Finally, I will explain that this is just the beginning of this model. I will continue to optimize the trading system of the second layer. Various optimization feedback and suggestions are welcome. For valuable feedback, I am willing to provide some L4/L5 technical indicators as rewards for free subscription rights.
Subscription
To encourage more people use this framework and avoid some abuse this one, I would like to set
100 Tradingview Coins per Monthly Subscription.
100X10 Tradingview Coins per Yearly Subscription.
Cyatophilum Accumulation StrategyAn indicator to backtest and automate accumulation/pyramiding custom strategies.
The goal of the strategy is to buy several times when the price is low and sell all when the position is in profit.
Configure your strategy using the entry options and entry filters, then set your Take Profit and StopLoss.
═════════════════════════════════════════════════════════════════════════
█ HOW IT WORKS
The strategy has pyramiding enabled, which means it can open several deals in a row.
It will keep buying until the Take Profit target is reached.
The indicator plots the Take Profit and Break Even line which are recalculated at each new deal.
The target corresponds to the average entry price plus a configurable percentage.
We can see the average entry price line drop lower at each Long Entry.
█ HOW TO USE
Choose a pair that you want to hold/invest in.
Pick a chart time frame that you like, according to how often you want the strategy to place orders. A benefit of this strategy is that it can work on low time frames as well as high time frames. Just keep in mind that the smaller the time frame, the bigger the impact of fees and slippage will be on the strategy results.
Configure your entry condition . You can combine several technical indicators to trigger an entry, such as Top & Bottom, Higher Lows and RSI divergences.
Example with double bottoms:
Filter your entry signal . Add filters to strengthen your entry signal.
Configure your profit target
Use the Take Profit feature to set a target in percentage of price. You can also make it trail.
There is a Trailing Stop Loss feature but the goal of the strategy is to never sell in loss, so it is turned off by default.
Check your backtest parameters
Make sure that the initial capital and order size make sense. Since it is a pyramiding strategy, the sum of all deals should not be bigger than the initial capital.
In this example: Initial capital is 10 k, max active deals is 10, so the max order size is 1 k.
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.
Note: the pyramiding parameter has to be equal to the "Max Active deals" input.
█ FEATURES
• Entry settings
Configure wether to go long or short, or both.
Choose the Max Active deals : the maximum number of deals that you want to open at once.
The Minimum bar delay between deals parameter will help putting space between deals.
• Trend Filter
The trend filter will fitler off long deals when the trend is bearish, and short deals when it is bullish.
Choose a trend line from a list, or any external trend line you can find.
The Trend condition allows to choose wether the trend should switch from slope change or price cross.
• MTF Trend Filter
A secondary trend line, Multi Time Frame.
• Volume Filter
The volume filter will check the bar volume and prevent the entry if it is too low.
• Stop Loss and Take Profit
Configure your stop loss and take profit for long and short trades.
You can also make a trailing stoploss and a trailing take profit.
• Backtest Settings
Choose a backtest period, longs or shorts, wether to use limit orders or not.
An option to close open orders at the current bar if you have multiple open orders and are wondering what it would result to close them now.
Graphics
A Configuration panel with all the indicator settings, useful for sharing/saving a strategy.
A Backtest Results panel with additional information from the strategy tester.
█ ALERTS
The indicator is using the alert() calls: it only uses 1 alert slot to send order messages for each event. This means 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.
█ LIMITATIONS
Things to keep in mind when using this strategy.
• No Stop loss
When trading without stop loss, your equity can drop without limit, and it can take a while until price recovers.
This is why when backtesting I recommend to keep an eye on the "Max # Days in trades" statistic which tells the maximum days a trade took to close in profit.
• Spot markets only
Obviously, trading without stop loss means no leverage.
█ BACKTEST RESULTS
The backtest settings used in this snapshot are the following:
Initial Capital: 10 000€
Order size: 1 000 €
Commission: 0.1€ per order
Slippage : 10 ticks
Please read the author instructions below for access and automation.
A simple trading strategy for XTZ/EUR (December 2021)This is my current trading strategy for XTZ/EUR for this month of December.
It tries to avoid pumps/dumps (i.e. does not trade on big candles).
It always performs one order in each candle for the trading window of the rebalance bear/bull market indicator (check my profile for it).
It has alerts configured so that you can use it in your server/broker (just pass along the `{{strategy.order.alert_message}}` in the alert message, it will include a positive number of XTZ when to buy, or a negative number when to sell).
It does not repaint.
The amount of crypto and fiat in the portfolio can be configured in the cog.
It does not outperform buy/hold for the bull months.
Check the results in the Data Window of Trading View (please avoid the Strategy Tester, it has too many bugs and is not intended for out of the box strategies such a this one).
All code is open source.
Profit Maxima: a crypto strategyThis strategy is designed for those who are looking for long-term positions with low risk and high profitability.
How does it work?
In short, the basis of this strategy is the frequent modeling of the price using regression equations and the estimation of the range of price movements.
The price modeling process starts from the first bars and will be repeated on each bar. This process is performed in each candle based on the data available up to that candle, and data for subsequent bars is not used.
There is also no fixed price model, but it will change from one candle to the next; Therefore, the more candles there are, the larger the statistical population and therefore the quality of the price model increases.
I have also used the concept of scarcity. Bitcoin is the first scarce digital object in the world. Once something becomes scarce enough, it can be used as money. This scarcity gradually increases and affects the price. The entire crypto market also follows Bitcoin.
However, always remember that past results in no way guarantee future performance.
Why this strategy generates a small number of trades?
Preston Pysh believed Bitcoin cycles happen in three phases: the Bull Run, the Correction, and the Reversion to the Mean. He estimates there are about 200,000 blocks per cycle and there are about 144 blocks per day.
Therefore, each cycle of Bitcoin lasts about four years. The entire crypto market follows bitcoin. On the other hand, cryptocurrency is a new phenomenon. They have a limited price history.
This strategy is designed to open a long position at the lowest possible price. In addition, due to the concept of scarcity and its continued impact on prices, trading in the “short” direction is avoided.
The combination of these factors leads to generate a small number of trades. However, you can test it on several different charts to make sure it works properly.
Default settings
{ default_qty_type } = strategy.percent_of_equity
{ default_qty_value } = 3.3
{ commission_value } = 0.1
{ pyramiding } = 3
{ close_entries_rule } = "ANY"
In a simple word, buy (Entry) and sell (take-profit) orders are each done at three different levels. At each level, 3.3% of equity is used (9.9% in total)
0.1% commission is considered for each transaction.
“close_entries_rule” determines the order in which orders are closed. The default is FIFO (first in, first out), but in this strategy, orders are executed in “first in, last out” order. In this way, the lowest buy (Entry) order corresponds to the lowest sell (take profit) order.
Choose the best chart
Charts have a significant impact on the performance of the strategy. As mentioned, the more historical bars there are, the larger the statistical population and therefore the quality of the price model increases.
You can use the Chart Quality panel to choose the appropriate chart:
The ‘Historical Bars’ field shows the number of candles in the chart. Choose the chart of an exchange that has the most historical bars.
The ‘Recommended Chart’ field shows the suggested chart for some symbols.
The “Predictability” field indicates to what extent price movements can be predicted using the model; the higher the “predictability”, the more credible the results of the strategy. "Predictability" indicates that the results of the strategy are reliable or not.
The image below shows the recommended chart for 20 different symbols:
How to use
You don't need automated trading platforms to use it. It can be used by placing simple buy and sell (take-profit) orders manually.
The green and red lines indicate the 'Entry' and 'Profit' levels respectively. If there is no order (buy / sell) active on one of these levels, it will be displayed in gray. The corresponding values are displayed in the Entry & Profit Limits table.
After choosing the appropriate chart, you can use this table to place your orders manually.
Note that trading in the "short" direction is not recommended at all.
Samples
Up/Down Strategy - ContrarianThis is a consecutive bar up/down strategy for going long when the short condition is met or going short when the long condition is met. This is known in trading as taking contrarian signals and is helpful when an asset can provide only losses with a given strategy. In theory taking the opposing trade should produce a profit. With this strategy you can specify how many bars down to enter long and how many bars up to enter short. It also has code to check and make sure the condition is still true when launching the official alert, which helps back testing and live results line up, however be sure to enter commission and slippage into the properties to accurately reflect profits. I added back testing date ranges to this so you can easily pull up and see back tested results for a certain date range. I also added a buy and sell messages, close messages and take profit/stop loss message fields in the properties so you can launch alerts that will work with automated trading services. Simply enter your messages into those fields in the properties and then when you create an alert enter {{strategy.order.alert_message}} into the alert body and it will dynamically pull in your buy and sell messages when it fires alerts. I also added time restriction so you can enter trades only during the time frame specified. You can change it to any time frame, such at 0930-1600. Set the time restriction field to empty by default since otherwise the strategy won't take all trades like normal. So to enable time restriction enter a time frame in the format 0000-0000. I also added the ability to check off a box that will close the open trade at the end of the time restriction. So if you set the time frame to 0930-1600 and check off to enable close trade at end of time frame then it will look to exit the trade at the close of the next bar.
Dual MACD StrategyThis strategy Multi Time Frame Macd Indicator
We take the first long position when we have a buy signal in Weekly Macd (Macd line crosses above Signal line). This open a trading window, showed with green background color
We close the first position when either Weekly or Daily Macd give us a sell signal ((Macd line crosses below Signal line))
Enable Profit and Stop in strategy settings with different percentage to backtest the strategy. Also if it is better to use a Traditional Stop Loss or a Trailing Stop Loss based on a percentage from low prices
Change macd resolution in settings for other time frames to test the strategy
This Strategy was tested on Crypto Market with good results in assets as BTC, ETH, BNB, ADA, LTC, XLM, BCH, among others
Strategy Template - V2This is an educational script created to demonstrate few basic building blocks of a trend based strategy and how to achieve different entry and exit types. My initial intention was to create a comprehensive strategy template which covers all the aspects of strategy. But, ended up creating fully fledged strategy based on trend following.
This is an enhancement on Strategy-Template But this script is comparitively more complex. Hence I decided to create new version instead of updating the existing one.
Lets dive deep.
SIMPLE COMPONENTS OF TREND FOLLOWING STRATEGY
TREND BIAS - This defines the direction of trend. Idea is not to trade against the trend direction. If the bias is bullish, look for long opportunities and if bias is bearish, look for short opportunities. Stay out of the market when the bias is neutral.
Often, trend bias is determined based on longer timeframe conditions. Example - 200 Moving Average, Higher timeframe moving averages, Higher timeframe high-lows etc. can be used for determining the trend bias.
In this script, I am using Weekly donchian channels combined with daily donchian channels to define trend bias.
Long Bias - 40 Day donchian channel sits completely in upper portion of 40 Week dochnial channel.
Short Bias - 40 Day donchian channel sits completely in lower portion of 40 Week donchian channel.
ENTRY CONDITION - Entry signals are generated only in the direction of bias. Hence, when in LongBias, we only get Long signals and when in short bias, we only get short signals.
In our case, when in Long Bias - if price hits 40 day high for the first time, this creates our long entry signal. Similarly when in Short Bias , price hitting 40 day low will create signal for going short. Since we do not take trades opposite to trend, no entry conditions are formed when price hits 40 day high in Short Bias or 40 day low in Long Bias.
EXIT CONDITION - Exit conditions are formed when we get signals of trend failure.
In our case, when in long trade, price hitting 40 day low creates exit signal. Similarly when in short trade price hitting 40 day high creates exit signal for short trade.
DIFFERENT TYPES OF ENTRY AND EXIT
In this script, I have tried to demonstrate different entry and exit types.
Entry types
Market - Enter immediately when entry signal is received. That is, in this case when price crossover over high in long bias and crosses under low in short bias
Stop - This method includes estimating at what level new highs are made and creating a stop buy order at that level. This way, we do not miss if the break out is stronger. But, susciptible to fail during fakeouts.
Limit - This method includes executing a limit order to buy at lower price or sell at higher price. In trend following methods, downside of limit order is when there is genuine breakout, these limit orders may not hit and during trend failures the limit orders are likely to hit and go straight to stop.
Stop-Limit - this is same as stop order but will also place a limit condition to avoid buying on overextended breakout or with lots of slippage.
Exit types
Market - whether to keep the existing trade running or whether to close it is determined after close of each bar and exit orders are executed manually upon receiving exit signal.
Stop - We place stop loss orders beforehand when there is a trade in place. This can help in avoiding big movements against trade within bar. But, this may also stop on false signals or fakeouts.
Take profit
Stop - No take profits are configured.
Target - 30% of the positions are closed when take profit levels are hit. Take profit levels are defined by risk reward.
USING THE CODE AS TEMPLATE
As mentioned earlier, I intended to create a fully fledged strategy template. But, ended up creating a fully fledged stratgy. However, you can take some part of this code and use it to start your own strategy. Will explain what all things can be adopted without worrying about the strategy implementation within
Strategy definition : This can be copied as is and just change the title of strategy. This defines some of the commonly used parameters of strategy which can help with close to realistic backtesting results for your coded strategy and comparison with buy and hold.
Generic Strategy Parameters : The parameter which defines controlling alllowed trade direction and trading window are present here. This again can be copied as is and variable inDateRange can be directly used in entry conditions.
Generic Methods : f_getMovingAverage and f_secureSecurity are handy and can be used as is. atr method provideded by pine gives you ATR based on RMA. If you want SMA or any other moving average based ATR, you can use the method f_getCustomAtr
Trade Statements : This section has all types of trading instructions which includes market/stop/limit/stop-limit type of entries and exits and take profit statements. You can adopt the type of entry you are interested in and change when condition to suit your strategy.
Trade conditions and levels : This section is required. But, cannot be copied. All the trade logic goes here which also sets parameters which are used in when of Trade Statements.
Hope this helps.
Ultimate RSI Strategy [PrismBot] [Lite]Included in this Ultimate MACD Lite Strategy:
✔️ Tweak a multitude of specific settings (MA lengths, R:R, SL distance etc)
✔️ Enable advanced setup filters
✔️ Use money management and risk calculations
✔️ Draw trade info directly to chart (eg. SL size in percent, win rate etc)
✔️ Use various filters (eg. time filter, date filter, MA slope angle etc)
✔️ Manage risk per position when auto-trading forex through AutoView
✔️ Choose from various alert conditions!
✔️ Sync to any bot or algorithmic trading system
Some details about this strategy:
There are several strategies that people use for the RSI , and one of my favorites is very different than one you have probably heard from every online RSI strategy source.
In order to compliment the RSI , there is also a built-in ADX / DMI strategy (per our All-In-One strategy on my profile as well) and you will also find a Global Trend filter (200 EMA by default).
You can also use a pullback confirmation prior to a trade entering. I.E., you have the RSI signal, wait for a pullback to the pullback EMA , and then the strategy will enter a trade.
You can easily enable and disable strategies using the checkbox.
This strategy incorporates a risk to reward system where the user can select between ATR and Percent based stop losses and take profit targets. This means that the user has much better control over money management when utilizing this strategy and it doesn't require you to babysit the strategy to ensure it's entering and existing strategies in an ideal place.
Ultimate MACD Strategy [PrismBot] [Lite]Included in this Ultimate MACD Lite Strategy:
✔️ Tweak a multitude of specific settings (MA lengths, R:R, SL distance etc)
✔️ Enable advanced setup filters
✔️ Use money management and risk calculations
✔️ Draw trade info directly to chart (eg. SL size in percent, win rate etc)
✔️ Use various filters (eg. time filter, date filter, MA slope angle etc)
✔️ Manage risk per position when auto-trading forex through AutoView
✔️ Choose from various alert conditions!
✔️ Sync to any bot or algorithmic trading system
Some details about this strategy:
LONG SIGNAL
When the MACD is below the zero line of the histogram, close is above the 200EMA, and the MACD line crosses above the signal line, longs are taken
SHORT SIGNAL
When the MACD is above the zero line of the histogram, close is below the 200EMA, and the MACD line crosses below the signal line, shorts are taken
A couple of options are given for how to calculator stop losses.
The Take profit is calculated by the risk of the stop loss. So a 1.5 take profit target is 1.5 times the stop loss added to the entry price.
There is also an option to filter out trades by the histogram deviation. This prevents crossovers that are too close to the histogram from being taken.
Please note I used the code for the PPO instead of the traditional MACD to make calculating these percentage deviations more consistent across multiple asset types.
You can easily enable and disable strategies using the checkbox.
This strategy incorporates a risk to reward system where the user can select between ATR and Percent based stop losses and take profit targets. This means that the user has much better control over money management when utilizing this strategy and it doesn't require you to babysit the strategy to ensure it's entering and existing strategies in an ideal place.
You can also enter custom messages for alerts for use with bots (set alerts to "alert() function calls only")
Keltner Worm Strategy [PrismBot] [Lite]Included in this Keltner Worm Lite Strategy:
✔️ Tweak a multitude of specific settings (MA lengths, R:R, SL distance etc)
✔️ Enable advanced setup filters
✔️ Use money management and risk calculations
✔️ Draw trade info directly to chart (eg. SL size in percent, win rate etc)
✔️ Use various filters (eg. time filter, date filter, MA slope angle etc)
✔️ Manage risk per position when auto-trading forex through AutoView
✔️ Choose from various alert conditions!
✔️ Sync to any bot or algorithmic trading system
Some details about this strategy:
- it incorporates 2 strategies - Keltner Re-entry and Baseline MA Crossing
- it uses a take profit and stop loss level fixed
- there are up to 6 allowable "worms"
- the worm multipliers are exponential, so a value of 2 will mean that the 6th worm is multiplied by 6
- you can multiply the offset or the Keltner Channel default values
- You can enable alerts for order entry, take profit, and stop loss values
- You can easily enable and disable strategies using the checkbox.
- This strategy incorporates a risk to reward system where the user can select between ATR and Percent based stop losses and take profit targets. This means that the user has much better control over money management when utilizing this strategy and it doesn't require you to babysit the strategy to ensure it's entering and existing strategies in an ideal place.
Ultimate Tradingview Technicals Strategy [PrismBot] [Lite]Included in this builder:
MACD
RSI
Tradingview Technical Analysis
Ichimoku
Global Trend Filter
Pullback Filter
Our most robust strategy to date with MACD , RSI , and many other basic strategies included as well as additional filters and alert options.
It is an advanced trading strategy built with the intent to make it easy for anyone to begin trading, but also avoid too much complication of strategy concepts.
For instance, you can change the MACD settings to be "more sensitive" by using a simple dropdown menu, and adjust which strategy you are employing with the MACD on the fly with another.
You can easily enable and disable strategies using the checkbox.
The strategy demo results use 100% equity per trade as an example - the reason for this is that the stop loss is set to 1%, so each trade is risking 1% (give or take slippage). Slippage is set to 5 ticks, and a 0.04% commission (Binance average for market and limit orders)
This strategy incorporates a risk to reward system where the user can select between ATR and Percent based stop losses and take profit targets. This means that the user has much better control over money management when utilizing this strategy and it doesn't require you to babysit the strategy to ensure it's entering and existing strategies in an ideal place.
The status box shows the current state of the various strategies and their values. A red circle indicates the filter / strategy is not valid for entry yet. A green circle indicates that filter / strategy is valid for entry. When all selected strategies are valid simultaneously, the next bar will trigger an entry signal.
If you have any questions about this strategy, please leave them in the comments below, or DM for more details. Thanks!
Additional features in this lite strategy:
✔️ Tweak a multitude of specific settings (MA lengths, R:R, SL distance etc)
✔️ Use money management and risk calculations
✔️ Draw trade info directly to chart (eg. SL size in percent, win rate etc)
✔️ Use various filters (eg. time filter, date filter etc)
✔️ Manage risk per position
✔️ Sync to any bot or algorithmic trading system
Sola Fide [Strategy]Sola Fide High Accuracy with ATR R:R
Indicators used:
- Stochastic RSI
- Chopiness Index
- RSI
- Ichimoku Cloud
- ATR
Script has been set up in strategy format to give backtesting data.
The strategy has been made for BTC and ETH pairs against USDT on the hourly timerframe
Currently outperforming the Buy and Hold Return on both assets.
This script has been made to make it easier to automate strategies on 3commas
In the settings you will see options for BTC strategy or ETH strategy
Choose the asset you are on, copy your 3commas Bot ID and Email token and paste them into the settings box for eachever asset you are on.
To receive the alerts set up within the strategy, in your alert message box use " {{strategy.order.alert_message}}"
This will then be able to send any orders taken on the tradingview script directly to your long or short bot on 3commas
This strategy is set up with a strict set of rules on the ATR for the Take profits and Losses.
There is a repaint warning because the code uses heikin ashi candles through the security function, the given entry and exit signals do not repaint,
I have been automating this for myself with no errors.
You don't need to use more than 3x leverage...
Past results do not guarentee future results.
How to use Leverage and Margin in PineScriptEn route to being absolutely the best and most complete trading platform out there, TradingView has just closed 2 gaps in their PineScript language.
It is now possible to create and backtest a strategy for trading with leverage.
Backtester now produces Margin Calls - so recognizes mid-trade drawdown and if it is too big for the broker to maintain your trade, some part of if will be instantly closed.
New additions were announced in official blogpost , but it lacked code examples, so I have decided to publish this script. Having said that - this is purely educational stuff.
█ LEVERAGE
Let's start with the Leverage. I will discuss this assuming we are always entering trades with some percentage of our equity balance (default_qty_type = strategy.percent_of_equity), not fixed order quantity.
If you want to trade with 1:1 leverage (so no leverage) and enter a trade with all money in your trading account, then first line of your strategy script must include this parameter:
default_qty_value = 100 // which stands for 100%
Now, if you want to trade with 30:1 leverage, you need to multipy the quantity by 30x, so you'd get 30 x 100 = 3000:
default_qty_value = 3000 // which stands for 3000%
And you can play around with this value as you wish, so if you want to enter each trade with 10% equity on 15:1 leverage you'd get default_qty_value = 150.
That's easy. Of course you can modify this quantity value not only in the script, but also afterwards in Script Settings popup, "Properties" tab.
█ MARGIN
Second newly released feature is Margin calculation together with Margin Calls. If the market goes against your trades and your trading account cannot maintain mid-trade drawdown - those trades will be closed in full or partly. Also, if your trading account cannot afford to open more trades (pyramiding those trades), Margin mechanism will prevent them from being entered.
I will not go into details about how Margin calculation works, it was all explainged in above mentioned blogpost and documentation .
All you need to do is to add two parameters to the opening line of your script:
margin_long = 1./30*50, margin_short = 1./30*50
Whereas "30" is a leverage scale as in 30:1, and "50" stands for 50% of Margin required by your broker. Personally the Required Margin number I've met most often is 50%, so I'm using value 50 here, but there are literally 1000+ brokers in this world and this is individual decision by each of them, so you'd better ask yourself.
--------------------
Please note, that if you ever encounter a strategy which triggers Margin Call at least once, then it is probably a very bad strategy. Margin Call is a last resort, last security measure - all the risks should be calculated by the strategy algorithm before it is ever hit. So if you see a Margin Call being triggred, then something is wrong with risk management of the strategy. Therefore - don't use it!
Bollinger Flip Flop StrategyThis strategy combines both long and short Bollinger band strategies with a signal to determine to determine when it's appropriate to use each. Additionally, the strategy has protections in place for market conditions which would normally cause a trade to be stuck due to a long market trend change. Think of it like a stop loss but instead of basing the stop on a percentage from entry, it's based on prevailing market conditions.
This strategy is ideal for controlling trading bots on the 3commas.io platform. To do this, you will need to set up two "simple" bots, one for short trades and one for long trades. Other than their direction, they should be configured identically. Set the parameters for the bot the same as you have them set in the strategy preferences. Once you've done this, set the "Short Bot ID" and "Long Bot ID" fields to the ID numbers for each bot, respectively. Next, set the Email Token parameter (this will be the same for both bots). Once you've done this, you need only configure a single alert per coin pair with the alert message set to {{strategy.order.alert_message}}. Make sure you have all of the strategy settings, including bot IDs and email tokens set correctly before creating the alert . These parameters are saved in the alert and can be safely changed on the active chart once the alert is created without affecting the alert.
RSI+PA+DCA StrategyDear Tradingview community,
This RSI based trading strategy is created as a training exercise. I am not a professional trader, but a committed hobbyist. This not a finished trading strategy meant for trading, but more a combination of different trading ideas I liked to explore deeper. The aim with this exercise was to gain more knowledge and understanding about price averaging and dollar cost averaging strategies. Aside that I wanted to learn how to program a pyramiding strategy, how to plot different order entry layers and how to open positions on a specific time interval.
In this script I adapted code from a couple of strategy examples by Coinrule . Who wrote simple and powerful examples of RSI based strategies and pyramiding strategies.
Also the HOWTO scripts shared by vitvlkv were very helpful for this exercise. In the script description you can find all the sources to the code.
A PA strategy could be a helpful addition to ease the 'stress-management to buy when price drops and resolution in selling when the price is rising' (Coinrule).
The idea behind the strategy is fairly simple and is based on an RSI strategy of buying low. A position is entered when the RSI and moving average conditions are met. The position is closed when it reaches a specified take profit percentage. As soon as the first the position is openend multiple PA (price average) layers are setup based on a specified percentage of price drop. When the price crosses the layer another position with somewhat the same amount of assets is entered. This causes the average cost price (the red plot line) to decrease. If the price drops more, another similar amount of assets is bought with another price average decrease as result. When the price starts rising again the different positions are separately closed when each reaches its specified take profit. The positions can be re-openend when the price drops again. And so on. When the price rises more and crosses over the average price and reached the specified take profit on top of it, it closes all the positions at once and cancels all orders. From that moment on it waits for another price dip before it opens a new position.
Another option is to activate a DCA function that opens a position based on a fixed specified amount. It enters a position at the start of every week and only when there are already other positions openend and if the current price is below the average price of the position. Like this buying on a time interval can help lowering the average price in case the market is down.
I read in some articles that price averaging is also called dollar cost averaging as the result is somewhat the same. Although DCA is really based on buying on fixed time intervals. These strategies are both considered long term investment strategies that can be profitable in the long run and are not suitable for short term investment schemes. The downturn is that the postion size increases when the general market trend is going down and that you have to patiently wait until the market start rising again.
Another notable aspect is that the logic in this strategy works the way it does because the entries are exited based on the FIFO (first in first out) close entry rule. This means that the first exit is applied to the first entry position that is openend. In other words that when the third entry reaches its take profit level and exits, it actually exits the first entry. If you take a close look in the 'List of Trades' of your Strategy Tester panel, you can see that some 'Long1' entries are closed by an 'Exit 3' and not by an 'Exit 1'. This means that your trade partly loses, but causes a decrease in average price that is later balanced out by lower or repeated entering and closing other positions. You can change this logic to a real sequential way of closing your entries, but this changes the averaging logic considerably. In case you want to test this you need to change, in this line in the strategy call 'close_entries_rule = "FIFO"', the word FIFO to ANY.
In the settings you can specify the percentage of portfolio to use for each trade to spread the risk and for each order a trading fee of 0.075% is calculated.
Flawless Victory Strategy - 15min BTC Machine Learning StrategyHello everyone, I am a heavy Python programmer bringing machine learning to TradingView. This 15 minute Bitcoin Long strategy was created using a machine learning library and 1 year of historical data in Python. Every parameter is hyper optimized to bring you the most profitable buy and sell signals for Bitcoin on the 15min chart. The historical Bitcoin data was gathered from Binance API, in case you want to know the best exchange to use this long strategy. It is a simple Bollinger Band and RSI strategy with two versions included in the tradingview settings. The first version has a Sharpe Ratio of 7.5 which is amazing, and the second version includes the best stop loss and take profit positions with a Sharpe Ratio of 2.5 . Let me talk a little bit more about how the strategy works. The buy signal is triggered when close price is less than lower Bollinger Band at Std Dev 1, and the RSI is greater than a certain value. The sell signal is triggered when close price is greater than upper Bollinger Band at Std Dev 1, and the RSI is greater than a certain value. What makes this strategy interesting is the parameters the Machine Learning library found when backtesting for the best Sharpe Ratio. I left my computer on for about 28 hours to fully backtest 5000 EPOCHS and get the results. I was able to create a great strategy that might be one of TradingView's best strategies out on the website today. I will continue to apply machine learning to all my strategies from here on forward. Please Let me know if you have any questions or certain strategies you would like me to hyper optimize for you. I'm always willing to create profitable strategies!
P.S. You can always pyramid this strategy for more gains! I just don't add pyramiding when creating my strategies because I want to show you the true win/loss ratio based buying one time and one selling one time. I feel like when creating a strategy that includes pyramiding right off the bat falsifies the win rate. This is my way of being transparent with you all. Have fun trading!
Volatility Stop Strategy [frostybot]This is a modified version of the Standard Volatility Script on TradingView, tweaked for the BTCUSD chart on the 1H timeframe.
I've designed this strategy to be used with Frostybot with ease.
However, this can be disabled in the settings. Then you will receive alerts without Frostybot commands.
First, open the settings section of the indicator. Then fill in the following fields:
You can play around with the TP values and see what works best for your personal risk assessment
Account Stub: enter the name of your stub on Frostybot (only needed if you enable the "Use Frostybot Alert Triggers" checkbox)
Position Size and Size Type: Here you can choose the amount on which you want to enter the trade, for example: 100$, 2x,... (only needed if you enable the "Use Frostybot Alert Triggers" checkbox)
Symbol: Enter the BTC symbol that is valid for the Frostybot Stub's Exchange. For FTX: BTC-PERP, for Binance Futures: BTC /USDT,... (only needed if you enable the "Use Frostybot Alert Triggers" checkbox)
Press OK
Then, setup an alert on the strategy:
Configure the correct Frostybot Webhook URL (don't forget to add /frostybot after the IP address) (only needed if you enable the "Use Frostybot Alert Triggers" checkbox)
Give the alert a name of choice
Put this as the message: {{strategy.order.alert_message}}
Press OK
Enjoy and happy trading!
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
TradingView Alerts to MT4 MT5 - Forex, indices, commoditiesHowdy Algo-Traders! This example script has been created for educational purposes - to present how to use and automatically execute TradingView Alerts on real markets.
I'm posting this script today for a reason. TradingView has just released a new feature of the PineScript language - ALERT() function. Why is it important? It is finally possible to set alerts inside PineScript strategy-type script, without the need to convert the script into study-type. You may say triggering alerts straight from strategies was possible in PineScript before (since June 2020), but it had its limitations. Starting today you can attach alert to any custom event you might want to include in your PineScript code.
With the new feature, it is easier not only to execute strategies, but to maintain codebase - having to update 2 versions of the code with each single modification was... ahem... inconvenient. Moreover, the need to convert strategy into study also meant it was required to rip the code from all strategy...() calls, which carried a lot of useful information, like entry price, position size, and more, definitely influencing results calculated by strategy backtest. So the strategy without these features very likely produced different results than with them. While it was possible to convert these features into study with some advanced "coding gymnastics", it was also quite difficult to test whether those gymnastics didn't introduce serious, bankrupting bugs.
//////
How does this new feature work? It is really simple. On your custom events in the code like "GoLong" or "GoShort", create a string variable containing all the values you need inside your alert and this string variable will be your alert's message. Then, invoke brand new alert() function and that's it (see lines 67 onwards in the script). Set it up in CreateAlert popup and enjoy. Alerts will trigger on candle close as freq= parameter specifies. Detailed specification of the new alert() function can be found in TradingView's PineScript Reference (www.tradingview.com), but there's nothing more than message= and freq= parameters. Nothing else is needed, it is very simple. Yet powerful :)
//////
Alert syntax in this script is prepared to work with TradingConnector. Strategy here is not too complex, but also not the most basic one: it includes full exits, partial exits, stop-losses and it also utilizes dynamic variables calculated by the code (such as stop-loss price). This is only an example use case, because you could handle variety of other functionalities as well: conditional entries, pending entries, pyramiding, hedging, moving stop-loss to break-even, delivering alerts to multiple brokers and more.
//////
This script is a spin-off from my previous work, posted over a year ago here: Some comments on strategy parameters have been discussed there, but let me copy-paste most important points:
* Commission is taken into consideration.
* Slippage is intentionally left at 0. Due to shorter than 1 second delivery time of TradingConnector, slippage is practically non-existing.
* This strategy is NON-REPAINTING and uses NO TRAILING-STOP or any other feature known to be causing problems.
* The strategy was backtested on EURUSD 6h timeframe, will perform differently on other markets and timeframes.
Despite the fact this strategy seems to be still profitable, it is not guaranteed it will continue to perform well in the future. Remember the no.1 rule of backtesting - no matter how profitable and good looking a script is, it only tells about the past. There is zero guarantee the same strategy will get similar results in the future.
Full specs of TradingView alerts and how to set them up can be found here: www.tradingview.com
POW EdgeHello fellow Trading View member,
Eventually our rebranded update with some extra features for our exclusive 'Edge' Strategy Script.
In this description I will run through;
The strategy itself, what is it?
What does it do?
How does it work?
How can it help you?
How good is it?
What is it.....
The Edge Strategy itself is based upon 5 indicators lining up in total confluence to enter a position in line with a trending move. Adding them together adds more confluence and probability to each individual trade outcome over the longer term. The individual strategies used are based on Trend strategies all used in combination.
The uniqueness to this is how they are combined. Indicators can work to a point individually of course, but combining them together and only trading when all are in a line was our concept, whilst reviewing how each individual indicator can be optimised to work with the others.
Also the motivation was to be the right side of the market in a trending move and capitalising on as much as that move as possible.
The first part is to ensure the candle close is above or below our moving average, we can then check the state and validity of each of the other 4 indicators. Once this confluence is in alignment a trade is valid for entry - this has to be valid at the same time - but not all valid on the same candle - they will come into alignment in different stages. But once they are, our trade is valid.
I will not reveal the other individual 3 indicators but the other is also an ADX function to add a threshold into the strategy to identify a trend - usually above 20/25. This has upsides and downsides as any user can visualise and see in the testing.
We also add to the script to look for a Buy then Sell, Sell then Buy - we found this had more profitable results overall and next phase was to review the money management; where and how we placed our SL and when and why we exited the trade.
Example - for a BUY trade to be valid, all 5 indictors must meet their own criteria before a BUY is printed on the chart. Absolutely no technical analysis is needed to trade this strategy and the data we have is based on using the strategy in isolation - how you wish to use this either independently or supporting your own trading is of course, up to you.
The SL and TP's are based on ATR Multipliers thus ensuring we are factoring in market volatility at that time. We also have a FT (Follow Trend) option, which is a worthy addition for capitalising on big trending moves.
This strategy will work on all markets and timeframes.
We understand and accept that all pairs and markets are different thus we have optimised certain pairs and timeframes with different parameters to provide increased returns, these are hard coded (H1 Timeframe) and also provided for your review.
Profitability is easily viewable in the ‘Strategy Tester’ - this is a great tool. This is where you can see historic / live data for the strategy.
Data like;
The Net Profit
Number of trades
Win Percentage
Every trade taken
Average Win
Average Loss
Maximal DD , etc.
We have individually optimised each pair to ensure this is the case and hard coded these parameters into the strategy. All you need to do is flick between the pairs - the strategy will then identify the pair you are on and change the parameters to suit in the background.
Whilst a trade is open, the strategy will convert all candles to the relevant colour - Green for an uptrend and Red for a downtrend (all customisable).
We find this is helpful for traders psychology - not getting 'spooked' by other candle colours, affecting your decision making.
When a new signal is valid, 'POW BUY' or 'POW SELL' will be displayed on the first candle open for entry. As well as this, you will also have the trade label print which will display the following;
- EP – Entry price
- SL – Stop loss
- TP – Take Profit
- Lot size
The trade information printed will also tell you the pip values of your stop loss and take profit based on how far away they are from the trade entry price.
The lot size printed is customisable and unique to your account- within the strategy settings you can simply input your account balance, currency and risk approach which includes a fixed risk amount, fixed lot size or a fixed percentage.
This removes the need for 3rd party apps or websites to quickly calculate your specific risk on your trade. Thus saving you time and making sure you aren't 'guessing' with your lot size.
No one likes losing more than they thought.
The progress and initial challenges....
To start, our first version simply showed the buy and sell arrows when a trade was valid. However, this caused subjectivity with where we would place our stop loss and how we would manage the exit of the trade once we were in it. So, we identified a solid strategy for this was incorporating the Average True Range (ATR) for SL and TP options.
I was especially keen to add the SL and exit management so I could obtain solid back testing data to support my thoughts that 'this works'. Every trader requires confidence and belief in their strategy, without it you simply won't succeed or be disciplined in your execution.
The other challenge we all face is calculating the lot sizes of our trades right? So, it was important that we incorporated a lot size calculator - its all about making it easy when a trade is valid to enter without trying to calculate this accurately.
Lastly, when pairs are stuck in a range - this can be a testing period of 'chop' for a trend strategy, so we also incorporated the ADX function to enable us to set a threshold level to identify when the instrument is more likely to be trending.
What does it do?
Ultimately, tells you when to buy and sell - where to place your SL and when to exit. Whilst also ensuring your risk management is on point, by displaying your trading lot size. Also providing you with live back tested data at your finger tips thank you to the strategy tester.
How does it work?
This will be visible on your trading view charts once you get access. And will work across all your devices, the trading view website or the app on your phone for example.
You can also use Trading View alerts, so you won't miss a trade and can go about your day as normal without watching the screen. This will work on the Free version of TV, however, in order to benefit from more alerts and templates it makes sense to upgrade to a higher package.
How can it help you?
This will help give you a mechanical approach to your trading. This means, less decision making on your part, with the instant benefit of seeing the data you have at your fingertips thanks to the 'Strategy Tester' TV Function.
It will save you time, you don't need to be in front of your screen or completing any subjective analysis.
Integrated lot size calculator can ensure you are always accurate with your risk - either in percentage or a fixed amount of risk - whichever you prefer.
Understand Probability - this is the key one for me. Losing runs happen in any trading strategy. The great benefit here, is you can see them. How long were the losing runs? How can I prepare and plan my risk management around them are all fundamental keys to managing your emotions and being detached from your trades. No one wants to feel stressed or anxious when trading.
Customisable exit strategies - A specific TP for a 1:1 RR or 1:10 RR for example can be adjusted and you can see instantly how this affects the profitability.
The exit strategy options are shown below;
TP 1/2/3
FT - Follow Trend (no stop loss and follow's from Buys to Sells, Sell to Buy, etc.
SL + FT - SL present, but trade is held until a reverse signal is presented.
How good is it?
We have some really positive back testing data across a range of pairs and markets - equities and indices too.
Drop me a DM to see these and I'll be happy to share.
Below let me show you a screen shot of how this can work for you.
How do you access this?
Please visit our website for signup / purchase information in the first instance (the link is on our trading view signature) or send us a private message on here - its impossible to keep track of comments on our posts so to ensure we don't miss you, a private DM will be great please.
The Back test shown on this example is based on the Trading View mid price and also a realistic starting Capital of £10,000. This test result is also based on a 0.1% risk per trade, with a 5 tick spread and a commission of
Regards
Darren
Disclaimer alert.
Please remember past performance is exactly that - how our strategy performed over those dates tested, it is not obviously a guarantee of future performance. Most of our H1 data is valid from Jan 2017 to now - so 4+ years and data on 650+ trades per pair.
MrBS:Directional Movement Index [Trend Friend Strategy]This goes with my MrBS:DMI+ indicator. I originally combined them into one, but then you cannot set alerts based on what the ADX and DMI is doing, only strategy alerts, so separate ones have more flexibility and uses.
Indicator Version is found under "MrBS:Directional Movement Index " ()
//// THE IDEA
The majority of profits made in the market come from trending markets. Of course there are strategies that would say otherwise but for the majority of people, THE TREND IS YOUR FRIEND (until the end). The idea is to follow the trend, entering once it has established its self and exiting positions when the trend weakens. This strategy gives a rough idea of the returns produced from following purely the ADX signals. At first Heikin Ashi values were used for the calculation but the results show it's not that effective. The functionality to switch between calculation types has been left in, so we can uses HA candle data to generate signals from while looking at an OHLC chart, if we want to experiment. Due to the way strategies work, we are unable to get reliable results when running the strategy on the HA chart even if we are calculating the signals from the real OHLC values. It is best to always run strategies on standard charts.
When using this strategy, I look for confirmation of the signal based on stochastic (14:3:6) direction, reversal level of stochastic, and divergance, to add confidence and adjust position size accordingly. I am going to try and code some version of that in future updates, if anyone can help or has suggestions please drop me a message.
//// INDICATOR DETAILS
- The default settings are for optimized Daily charts, for 4 hour I would suggest a smoothing of 2.
- The default values used for calculation are the Real OHLC, we can change this to Heikin Ashi in the menu.
- The strategy enters a position when ADX crosses the threshold level, and closes the position when ADX starts to fall.
- There is a signal filter in the form of a 377 period Hull Moving Average, which the price must be above or bellow for long and short positions respectively.
- The strategy closes the position when a cross-under of the ADX and its 4 period EMA. This is an attempt to stay into positions longer as sometimes the ADX will fall for 1 bar and then keep rising, while the overall trend is strong. The downside to this is that we exit trades later and this affects our max drawdown.






















