Market Structure Break Targets [UAlgo]The "Market Structure Break Targets " indicator is designed to identify and visualize key market structure points such as Market Structure Breaks (MSBs) and Break of Structures (BoS). These points are crucial for understanding market trends and potential reversal zones. By plotting these structures on the chart, traders can easily spot significant support and resistance levels, as well as potential entry and exit points.
This indicator uses a combination of swing highs and lows to determine market structures and calculates targets based on user-defined percentages or Average True Range (ATR) multipliers. It provides visual cues in the form of lines, labels, and boxes to help traders quickly interpret market conditions.
🔶 Key Features
Customizable Swing Length: Users can set the swing length to identify the pivot highs and lows, which are crucial for determining market structure.
Target Duration Bars: Defines the maximum duration (in bars) for which the targets will be considered valid.
Target Calculation Methods: The target levels are crucial for setting potential price objectives. The calculation can be based on a percentage move from the identified pivot or using the ATR to factor in market volatility. These targets help in setting realistic profit-taking levels or identifying stop-loss placements.
Bullish and Bearish Market Structure Break (MSB): Detects and highlights bullish and bearish market structure breaks with customizable colors and target percentages.
Bullish MSB
When the price closes above a significant pivot high, a bullish MSB is identified. The indicator will draw a line at this level and calculate a target based on the chosen method (percentage or ATR). The target is visualized with a dotted line, and a label "MSB" is displayed. Additionally, an order block is created at the level of the bullish MSB. This order block is highlighted with a semi-transparent box, representing a potential area where price might find support in the future.
Bearish MSB
Conversely, when the price closes below a significant pivot low, a bearish MSB is marked. Similar to bullish MSBs, targets are calculated and displayed on the chart. An order block is also generated at the level of the bearish MSB, visualized with a semi-transparent box. This box highlights a potential resistance area where price might face selling pressure.
Bullish and Bearish Break of Structure (BoS): Identifies break of structures for both bullish and bearish scenarios, providing additional target levels.
Bullish BoS
If the price continues to rise and breaks another significant level, a bullish BoS is detected. This break is also marked with lines and labels, providing additional target levels for traders. An order block is created at the BoS level, serving as a potential support zone.
Bearish BoS
If the price falls further after a bearish MSB, a bearish BoS is identified and visualized similarly. The indicator creates an order block at the BoS level, which acts as a potential resistance zone.
🔶 Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Cerca negli script per "backtest"
Money Flow Index Trend Zone Strength [UAlgo]The "Money Flow Index Trend Zone Strength " indicator is designed to analyze and visualize the strength of market trends and OB/OS zones using the Money Flow Index (MFI). The MFI is a momentum indicator that incorporates both price and volume data, providing insights into the buying and selling pressure in the market. This script enhances the traditional MFI by introducing trend and zone strength analysis, helping traders identify potential trend reversals and continuation points.
🔶 Customizable Settings
Amplitude: Defines the range for the MFI Zone Strength calculation.
Wavelength: Period used for the MFI calculation and Stochastic calculations.
Smoothing Factor: Smoothing period for the Stochastic calculations.
Show Zone Strength: Enables/disables visualization of the MFI Zone Strength line.
Show Trend Strength: Enables/disables visualization of the MFI Trend Strength area.
Trend Strength Signal Length: Period used for the final smoothing of the Trend Strength indicator.
Trend Anchor: Selects the anchor point (0 or 50) for the Trend Strength Stochastic calculation.
Trend Transform MA Length: Moving Average length for the Trend Transform calculation.
🔶 Calculations
Zone Strength (Stochastic MFI):
The highest and lowest MFI values over a specified amplitude are used to normalize the MFI value:
MFI Highest: Highest MFI value over the amplitude period.
MFI Lowest: Lowest MFI value over the amplitude period.
MFI Zone Strength: (MFI Value - MFI Lowest) / (MFI Highest - MFI Lowest)
By normalizing and smoothing the MFI values, we aim to highlight the relative strength of different market zones.
Trend Strength:
The smoothed MFI zone strength values are further processed to calculate the trend strength:
EMA of MFI Zone Strength: Exponential Moving Average of the MFI Zone Strength over the wavelength period.
Stochastic of EMA: Stochastic calculation of the EMA values, smoothed with the same smoothing factor.
Purpose: The trend strength calculation provides insights into the underlying market trends. By using EMA and stochastic functions, we can filter out noise and better understand the overall market direction. This helps traders stay aligned with the prevailing trend and make more informed trading decisions.
🔶 Usage
Interpreting Zone Strength: The zone strength plot helps identify overbought and oversold conditions. A higher zone strength indicates potential overbought conditions, while a lower zone strength suggests oversold conditions, can suggest areas for entry/exit decisions.
Interpreting Trend Strength: The trend strength plot visualizes the underlying market trend, can help signal potential trend continuation or reversal based on the chosen anchor point.
Using the Trend Transform: The trend transform plot provides an additional layer of trend analysis, helping traders identify potential trend reversals and continuation points.
Combine the insights from the zone strength and trend strength plots with other technical analysis tools to make informed trading decisions. Look for confluence between different indicators to increase the reliability of your trades.
🔶 Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Momentum & Squeeze Oscillator [UAlgo]The Momentum & Squeeze Oscillator is a technical analysis tool designed to help traders identify shifts in market momentum and potential squeeze conditions. This oscillator combines multiple timeframes and periods to provide a detailed view of market dynamics. It enhances the decision-making process for both short-term and long-term traders by visualizing momentum with customizable colors and alerts.
🔶 Key Features
Custom Timeframe Selection: Allows users to select a custom timeframe for oscillator calculations, providing flexibility in analyzing different market periods.
Recalculation Option: Enables or disables the recalculation of the indicator, offering more control over real-time data processing.
Squeeze Background Visualization: Highlights potential squeeze conditions with a background color, helping traders quickly spot consolidation periods.
Adjustable Squeeze Sensitivity: Users can modify the sensitivity of the squeeze detection, tailoring the indicator to their specific trading style and market conditions.
Bar Coloring Condition: Option to color the price bars based on momentum conditions, enhancing the visual representation of market trends.
Threshold Bands: Option to fill threshold bands for a clearer visualization of overbought and oversold levels.
Reference Lines: Display reference lines for overbought, oversold, and mid-levels, aiding in quick assessment of momentum extremes.
Multiple Output Modes: Offers different output visualization modes, including:
ALL: Displays all calculated momentum values (fast, medium, slow).
AVG: Shows the average momentum, providing a consolidated view.
STD: Displays the standard deviation of momentum, useful for understanding volatility.
Alerts: Configurable alerts for key momentum events such as crossovers and squeeze conditions, keeping traders informed of important market changes.
🔶 Usage
The Momentum & Squeeze Oscillator can be used for various trading purposes:
Trend Identification: Use the oscillator to determine the direction and strength of market trends. By analyzing the average, fast, medium, and slow momentum lines, traders can gain insights into short-term and long-term market movements.
Squeeze Detection: The indicator highlights periods of low volatility (squeeze conditions) which often precede significant price movements. Traders can use this information to anticipate and prepare for potential breakouts.
Overbought/Oversold Conditions: The oscillator helps identify overbought and oversold conditions, indicating potential reversal points. This is particularly useful for timing entry and exit points in the market.
Momentum Shifts: By monitoring the crossover of momentum lines with key levels (e.g., the 50 level), traders can spot shifts in market momentum, allowing them to adjust their positions accordingly.
🔶 Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Fair Value Gap (FVG) Oscillator [UAlgo]The "Fair Value Gap (FVG) Oscillator " is designed to identify and visualize Fair Value Gaps (FVG) within a given lookback period on a trading chart. This indicator helps traders by highlighting areas where price gaps may signify potential trading opportunities, specifically bullish and bearish patterns. By leveraging volume and Average True Range (ATR) data, the FVG Oscillator aims to enhance the accuracy of pattern recognition and provide more reliable signals for trading decisions.
🔶 Identification of Fair Value Gap (FVG)
Fair Value Gaps (FVG) are specific price areas where gaps occur, and they are often considered significant in technical analysis. These gaps can indicate potential future price movements as the market may return to fill these gaps. This indicator identifies two types of FVGs:
Bullish FVG: Occurs when the current low price is higher than the high price two periods ago. This condition suggests a potential upward price movement.
Obtains with:
low > high
Bearish FVG: Occurs when the current high price is lower than the low price two periods ago. This condition suggests a potential downward price movement.
Obtains with:
high < low
The FVG Oscillator not only identifies these gaps but also verifies them using volume and ATR conditions to ensure more reliable trading signals.
🔶 Key Features
Lookback Period: Users can set the lookback period to determine how far back the indicator should search for FVG patterns.
ATR Multiplier: The ATR Multiplier is used to adjust the sensitivity of the ATR-based conditions for verifying FVG patterns.
Volume SMA Period: This setting determines the period for the Simple Moving Average (SMA) of the volume, which helps in identifying high volume conditions.
Why ATR and Volume are Used?
ATR (Average True Range) and volume are integrated into the Fair Value Gap (FVG) Oscillator to enhance the accuracy and reliability of the identified patterns. ATR measures market volatility, helping to filter out insignificant price gaps and focus on impactful ones, ensuring that the signals are relevant and strong. Volume, on the other hand, confirms the strength of price movements. High volume often indicates the sustainability of these movements, reducing the likelihood of false signals. Together, ATR and volume ensure that the detected FVGs are both significant and supported by market activity, providing more trustworthy trading signals.
Normalized Values: The FVG counts are normalized to enhance the visual representation and interpretation of the patterns on the chart.
Visual Customization and Plotting: Users can customize the colors for positive (bullish) and negative (bearish) areas, and choose whether to display these areas on the chart, also plots the bullish and bearish FVG counts, a zero line, and the net value of FVG counts. Additionally, it uses histograms to display the width of verified bullish and bearish patterns.
🔶 Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
[INVX] Post-Earnings Announcement DriftWhat does this strategy do?
This Pine Script strategy implements the Post-earnings announcement drift (PEAD) strategy, which is a financial market anomaly where a stock's price tends to drift in the direction of the firm's earnings surprise for an extended period of time.
Ref: en.wikipedia.org
An earnings announcement is an official public statement of a company's profitability for a specific time period, typically a quarter or a year. It includes various financial metrics but the most watched figure is the Earnings Per Share (EPS). Analysts estimate the EPS before the announcement, and the actual EPS is compared to this estimate to determine if there was an earnings surprise.
An earnings surprise occurs when the actual EPS is significantly different from the analysts' estimates. A positive earnings surprise indicates that the actual EPS is higher than the estimate, while a negative earnings surprise suggests the EPS is lower than anticipated.
The script takes the following inputs
" Holding periods (bar) " : This input defines the number of periods (or bars) the script will hold a position after the earnings announcement.
" Surprise threshold (%) ": This input sets the minimum percentage for an earnings surprise, which triggers the strategy to enter either a long or short position. In essence, it represents the minimum deviation between the estimated and actual Earnings Per Share (EPS) that will trigger a trade. A higher threshold may lead to fewer, potentially more significant trades, while a lower threshold might result in more frequent, possibly less impactful trades. This parameter allows you to adjust the sensitivity of the strategy to earnings surprises.
Positive earnings surprise
After the earnings announcement, the script compares the actual EPS with the estimated EPS to identify an earnings surprise. If there is a positive earnings surprise, the script will enter a long position. A long position is a bullish strategy where the investor expects the stock price to rise.
Negative earnings surprise
On the other hand, if there is a negative earnings surprise, the script will enter a short position. A short position is a bearish strategy where the investor expects the stock price to fall.
In both scenarios, the position (either long or short) is held for the number of periods specified in the "Holding periods (bar)" input. This strategy is based on the assumption that the stock price will continue to drift in the direction of the earnings surprise for the specified holding period.
Disclaimer: The script provided herein is for educational purposes only. It should not be considered as investment advice or a recommendation of any particular security, strategy or investment product. Past performance is not indicative of future results.
The results of the Pine Script backtesting are hypothetical and should not be considered as a true reflection of the results that might be achieved in a live trading environment. The backtest results are based on historical data and may not take into account certain factors such as actual transaction costs, taxes, or changes in market conditions.
Investors should consult with their financial advisor before making any investment decisions. All investments involve risk, including the potential loss of all invested capital.
EMA Scalping StrategyEMA Slope Indicator Overview:
The indicator plots two exponential moving averages (EMAs) on the chart: a 9-period EMA and a 15-period EMA.
It visually represents the EMAs on the chart and highlights instances where the slope of each EMA exceeds a certain threshold (approximately 30 degrees).
Scalping Strategy:
Using the EMA Slope Indicator on a 5-minute timeframe for scalping can be effective, but it requires adjustments to account for the shorter time horizon.
Trend Identification: Look for instances where the 9-period EMA is above the 15-period EMA. This indicates an uptrend. Conversely, if the 9-period EMA is below the 15-period EMA, it suggests a downtrend.
Slope Analysis: Pay attention to the slope of each EMA. When the slope of both EMAs is steep (exceeds 30 degrees), it signals a strong trend. This can be a favorable condition for scalping as it suggests potential momentum.
Entry Points:
For Long (Buy) Positions: Consider entering a long position when both EMAs are sloping upwards strongly (exceeding 30 degrees) and the 9-period EMA is above the 15-period EMA. Look for entry points when price retraces to the EMAs or when there's a bullish candlestick pattern.
For Short (Sell) Positions: Look for opportunities to enter short positions when both EMAs are sloping downwards strongly (exceeding -30 degrees) and the 9-period EMA is below the 15-period EMA. Similar to long positions, consider entering on retracements or bearish candlestick patterns.
Exit Strategy: Use tight stop-loss orders to manage risk, and aim for small, quick profits. Since scalping involves short-term trading, consider exiting positions when the momentum starts to weaken or when the price reaches a predetermined profit target.
Risk Management:
Scalping involves high-frequency trading with smaller profit targets, so it's crucial to implement strict risk management practices. This includes setting stop-loss orders to limit potential losses and not risking more than a small percentage of your trading capital on each trade.
Backtesting and Optimization:
Before implementing the strategy in live trading, backtest it on historical data to assess its performance under various market conditions. You may also consider optimizing the strategy parameters (e.g., EMA lengths) to maximize its effectiveness.
Continuous Monitoring:
Keep a close eye on market conditions and adjust your strategy accordingly. Market dynamics can change rapidly, so adaptability is key to successful scalping.
WaveTrendnel Oscillator [UAlgo]🔶Description:
The WaveTrendnel Oscillator, is a technical analysis tool designed for traders to identify potential trend reversals and overbought/oversold conditions in the market. It combines the concepts of wave analysis and trend analysis to generate signals based on the current market conditions. This indicator aims to provide traders with insights into the strength and direction of the prevailing trend, facilitating better decision-making in trading strategies.
🔶Key Features:
Customizable Parameters: Users can customize various parameters including the source data, channel length, average length, and signal length according to their trading preferences and market conditions.
Signal Display: The indicator offers the option to display buy and sell signals on the chart, helping traders to visually identify potential entry and exit points.
Wave and Kernel Analysis: The WaveTrendnel Oscillator utilizes a rational quadratic kernel function, which applies a mathematical approach known as the kernel method. This method analyzes historical price data by assigning weights to each data point based on its proximity to the current period, providing a smoother and more accurate representation of market trends.
Overbought/Oversold Levels: Traders can define overbought and oversold levels using customizable threshold parameters, enabling them to identify potential reversal points in the market.
🔶Credit:
The WaveTrendnel Oscillator indicator is a modification of the original WaveTrend Oscillator developed by @LazyBear on TradingView.
🔶Disclaimer:
Use with Caution: This indicator is provided for educational and informational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
Liquidation Longs/Shorts [UAlgo]🔶Description:
The "Liquidation Longs/Shorts " indicator is designed to identify potential liquidation levels for long and short positions. It calculates the distance of the selected price source (close, high, low, or open) from two moving averages (MA) and plots the resulting values on the chart. When the price is at an extreme distance from the moving averages, it suggests a potential liquidation point for either long or short positions.
🔶Key Features:
Liquidation Calculations: The indicator calculates the distance of the selected price source from two moving averages: a simple moving average (SMA) and an exponential moving average (EMA) with customizable lengths.
Color Customization: Users can customize the colors of the plotted columns representing the distance from the moving averages for long and short liquidation levels.
Liquidation Circles: The indicator marks potential liquidation levels with small circles on the chart, with customizable colors for long and short liquidations.
Orange Circles -> Identifies Potential Short Liquidations
Aqua Circles -> Identifies Potential Long Liquidations
Example:
Adaptive Source Selection: Traders can select the price source (close, high, low, or open) for liquidation calculations, allowing flexibility based on their trading strategies.
Dynamic Threshold Calculation: The indicator dynamically adjusts the liquidation threshold based on the selected moving average lengths, providing adaptability to changing market conditions.
Disclaimer:
Use with Caution: This indicator is provided for educational purposes only and should not be considered as financial advice. Users should exercise caution and perform their own analysis before making trading decisions based on the indicator's signals.
Not Financial Advice: The information provided by this indicator does not constitute financial advice, and the creator (UAlgo) shall not be held responsible for any trading losses incurred as a result of using this indicator.
Backtesting Recommended: Traders are encouraged to backtest the indicator thoroughly on historical data before using it in live trading to assess its performance and suitability for their trading strategies.
Risk Management: Trading involves inherent risks, and users should implement proper risk management strategies, including but not limited to stop-loss orders and position sizing, to mitigate potential losses.
No Guarantees: The accuracy and reliability of the indicator's signals cannot be guaranteed, as they are based on historical price data and past performance may not be indicative of future results.
This indicator serves as a tool to assist traders in identifying potential liquidation levels, but it should be used in conjunction with other technical analysis tools and risk management practices for effective trading decision-making.
HolidayLibrary "Holiday"
- Full Control over Holidays and Daylight Savings Time (DLS)
The Holiday Library is an essential tool for traders and analysts who engage in backtesting and live trading . This comprehensive library enables the incorporation of crucial calendar elements - specifically Daylight Savings Time (DLS) adjustments and public holidays - into trading strategies and backtesting environments.
Key Features:
- DLS Adjustments: The library takes into account the shifts in time due to Daylight Savings. This feature is particularly vital for backtesting strategies, as DLS can impact trading hours, which in turn affects the volatility and liquidity in the market. Accurate DLS adjustments ensure that backtesting scenarios are as close to real-life conditions as possible.
- Comprehensive Holiday Metadata: The library includes a rich set of holiday metadata, allowing for the detailed scheduling of trading activities around public holidays. This feature is crucial for avoiding skewed results in backtesting, where holiday trading sessions might differ significantly in terms of volume and price movement.
- Customizable Holiday Schedules: Users can add or remove specific holidays, tailoring the library to fit various regional market schedules or specific trading requirements.
- Visualization Aids: The library supports on-chart labels, making it visually intuitive to identify holidays and DLS shifts directly on trading charts.
Use Cases:
1. Strategy Development: When developing trading strategies, it’s important to account for non-trading days and altered trading hours due to holidays and DLS. This library enables a realistic and accurate representation of these factors.
2. Risk Management: Trading around holidays can be riskier due to thinner liquidity and greater volatility. By integrating holiday data, traders can better manage their risk exposure.
3. Backtesting Accuracy: For backtesting to be effective, it must simulate the actual market conditions as closely as possible. Incorporating holidays and DLS adjustments contributes to more reliable and realistic backtesting results.
4. Global Trading: For traders active in multiple global markets, this library provides an easy way to handle different holiday schedules and DLS shifts across regions.
The Holiday Library is a versatile tool that enhances the precision and realism of trading simulations and strategy development . Its integration into the trading workflow is straightforward and beneficial for both novice and experienced traders.
EasterAlgo(_year)
Calculates the date of Easter Sunday for a given year using the Anonymous Gregorian algorithm.
`Gauss Algorithm for Easter Sunday` was developed by the mathematician Carl Friedrich Gauss
This algorithm is based on the cycles of the moon and the fact that Easter always falls on the first Sunday after the first ecclesiastical full moon that occurs on or after March 21.
While it's not considered to be 100% accurate due to rare exceptions, it does give the correct date in most cases.
It's important to note that Gauss's formula has been found to be inaccurate for some 21st-century years in the Gregorian calendar. Specifically, the next suggested failure years are 2038, 2051.
This function can be used for Good Friday (Friday before Easter), Easter Sunday, and Easter Monday (following Monday).
en.wikipedia.org
Parameters:
_year (int) : `int` - The year for which to calculate the date of Easter Sunday. This should be a four-digit year (YYYY).
Returns: tuple - The month (1-12) and day (1-31) of Easter Sunday for the given year.
easterInit()
Inits the date of Easter Sunday and Good Friday for a given year.
Returns: tuple - The month (1-12) and day (1-31) of Easter Sunday and Good Friday for the given year.
isLeapYear(_year)
Determine if a year is a leap year.
Parameters:
_year (int) : `int` - 4 digit year to check => YYYY
Returns: `bool` - true if input year is a leap year
method timezoneHelper(utc)
Helper function to convert UTC time.
Namespace types: series int, simple int, input int, const int
Parameters:
utc (int) : `int` - UTC time shift in hours.
Returns: `string`- UTC time string with shift applied.
weekofmonth()
Function to find the week of the month of a given Unix Time.
Returns: number - The week of the month of the specified UTC time.
dayLightSavingsAdjustedUTC(utc, adjustForDLS)
dayLightSavingsAdjustedUTC
Parameters:
utc (int) : `int` - The normal UTC timestamp to be used for reference.
adjustForDLS (bool) : `bool` - Flag indicating whether to adjust for daylight savings time (DLS).
Returns: `int` - The adjusted UTC timestamp for the given normal UTC timestamp.
getDayOfYear(monthOfYear, dayOfMonth, weekOfMonth, dayOfWeek, lastOccurrenceInMonth, holiday)
Function gets the day of the year of a given holiday (1-366)
Parameters:
monthOfYear (int)
dayOfMonth (int)
weekOfMonth (int)
dayOfWeek (int)
lastOccurrenceInMonth (bool)
holiday (string)
Returns: `int` - The day of the year of the holiday 1-366.
method buildMap(holidayMap, holiday, monthOfYear, weekOfMonth, dayOfWeek, dayOfMonth, lastOccurrenceInMonth, closingTime)
Function to build the `holidaysMap`.
Namespace types: map
Parameters:
holidayMap (map) : `map` - The map of holidays.
holiday (string) : `string` - The name of the holiday.
monthOfYear (int) : `int` - The month of the year of the holiday.
weekOfMonth (int) : `int` - The week of the month of the holiday.
dayOfWeek (int) : `int` - The day of the week of the holiday.
dayOfMonth (int) : `int` - The day of the month of the holiday.
lastOccurrenceInMonth (bool) : `bool` - Flag indicating whether the holiday is the last occurrence of the day in the month.
closingTime (int) : `int` - The closing time of the holiday.
Returns: `map` - The updated map of holidays
holidayInit(addHolidaysArray, removeHolidaysArray, defaultHolidays)
Initializes a HolidayStorage object with predefined US holidays.
Parameters:
addHolidaysArray (array) : `array` - The array of additional holidays to be added.
removeHolidaysArray (array) : `array` - The array of holidays to be removed.
defaultHolidays (bool) : `bool` - Flag indicating whether to include the default holidays.
Returns: `map` - The map of holidays.
Holidays(utc, addHolidaysArray, removeHolidaysArray, adjustForDLS, displayLabel, defaultHolidays)
Main function to build the holidays object, this is the only function from this library that should be needed. \
all functionality should be available through this function. \
With the exception of initializing a `HolidayMetaData` object to add a holiday or early close. \
\
**Default Holidays:** \
`DLS begin`, `DLS end`, `New Year's Day`, `MLK Jr. Day`, \
`Washington Day`, `Memorial Day`, `Independence Day`, `Labor Day`, \
`Columbus Day`, `Veterans Day`, `Thanksgiving Day`, `Christmas Day` \
\
**Example**
```
HolidayMetaData valentinesDay = HolidayMetaData.new(holiday="Valentine's Day", monthOfYear=2, dayOfMonth=14)
HolidayMetaData stPatricksDay = HolidayMetaData.new(holiday="St. Patrick's Day", monthOfYear=3, dayOfMonth=17)
HolidayMetaData addHolidaysArray = array.from(valentinesDay, stPatricksDay)
string removeHolidaysArray = array.from("DLS begin", "DLS end")
܂Holidays = Holidays(
܂ utc=-6,
܂ addHolidaysArray=addHolidaysArray,
܂ removeHolidaysArray=removeHolidaysArray,
܂ adjustForDLS=true,
܂ displayLabel=true,
܂ defaultHolidays=true,
܂ )
plot(Holidays.newHoliday ? open : na, title="newHoliday", color=color.red, linewidth=4, style=plot.style_circles)
```
Parameters:
utc (int) : `int` - The UTC time shift in hours
addHolidaysArray (array) : `array` - The array of additional holidays to be added
removeHolidaysArray (array) : `array` - The array of holidays to be removed
adjustForDLS (bool) : `bool` - Flag indicating whether to adjust for daylight savings time (DLS)
displayLabel (bool) : `bool` - Flag indicating whether to display a label on the chart
defaultHolidays (bool) : `bool` - Flag indicating whether to include the default holidays
Returns: `HolidayObject` - The holidays object | Holidays = (holidaysMap: map, newHoliday: bool, holiday: string, dayString: string)
HolidayMetaData
HolidayMetaData
Fields:
holiday (series string) : `string` - The name of the holiday.
dayOfYear (series int) : `int` - The day of the year of the holiday.
monthOfYear (series int) : `int` - The month of the year of the holiday.
dayOfMonth (series int) : `int` - The day of the month of the holiday.
weekOfMonth (series int) : `int` - The week of the month of the holiday.
dayOfWeek (series int) : `int` - The day of the week of the holiday.
lastOccurrenceInMonth (series bool)
closingTime (series int) : `int` - The closing time of the holiday.
utc (series int) : `int` - The UTC time shift in hours.
HolidayObject
HolidayObject
Fields:
holidaysMap (map) : `map` - The map of holidays.
newHoliday (series bool) : `bool` - Flag indicating whether today is a new holiday.
activeHoliday (series bool) : `bool` - Flag indicating whether today is an active holiday.
holiday (series string) : `string` - The name of the holiday.
dayString (series string) : `string` - The day of the week of the holiday.
Session Breakout Scalper Trading BotHi Traders !
Introduction:
I have recently been exploring the world of automated algorithmic trading (as I prefer more objective trading strategies over subjective technical analysis (TA)) and would like to share one of my automation compatible (PineConnecter compatible) scripts “Session Breakout Scalper”.
The strategy is really simple and is based on time conditional breakouts although has more ”relatively” advanced optional features such as the regime indicators (Regime Filters) that attempt to filter out noise by adding more confluence states and the ATR multiple SL that takes into account volatility to mitigate the down side risk of the trade.
What is Algorthmic Trading:
Firstly what is algorithmic trading? Algorithmic trading also known as algo-trading, is a method of using computer programs (in this case pine script) to execute trades based on predetermined rules and instructions (this trading strategy). It's like having a robot trader who follows a strict set of commands to buy and sell assets automatically, without any human intervention.
Important Note:
For Algorithmic trading the strategy will require you having an essential TV subscription at the minimum (so that you can set alerts) plus a PineConnecter subscription (scroll down to the .”How does the strategy send signals” headings to read more)
The Strategy Explained:
Is the Time input true ? (this can be changed by toggling times under the “TRADE MEDIAN TIMES” group for user inputs).
Given the above is true the strategy waits x bars after the session and then calculates the highest high (HH) to lowest low (LL) range. For this box to form, the user defined amount of bars must print after the session. The box is symmetrical meaning the HH and LL are calculated over a lookback that is equal to the sum of user defined bars before and after the session (+ 1).
The Strategy then simultaneously defines the HH as the buy level (green line) and the LL as the sell level (red line). note the strategy will set stop orders at these levels respectively.
Enter a buy if price action crosses above the HH, and then cancel the sell order type (The opposite is true for a stop order).
If the momentum based regime filters are true the strategy will check for the regime / regimes to be true, if the regime if false the strategy will exit the current trade, as the regime filter has predicted a slowing / reversal of momentum.
The image below shows the strategy executing these trading rules ( Regime filters, "Trades on chart", "Signal & Label" and "Quantity" have been omitted. "Strategy label plots" has been switched to true)
Other Strategy Rules:
If a new session (time session which is user defined) is true (blue vertical line) and the strategy is currently still in a trade it will exit that trade immediately.
It is possible to also set a range of percentage gain per day that the strategy will try to acquire, if at any point the strategy’s profit is within the percentage range then the position / trade will be exited immediately (This can be changed in the “PERCENT DAY GAIN” group for user inputs)
Stops and Targets:
The strategy has either static (fixed) or variable SL options. TP however is only static. The “STRAT TP & TP” group of user inputs is responsible for the SL and TP values (quoted in pips). Note once the ATR stop is set to true the SL values in the above group no longer have any affect on the SL as expected.
What are the Regime Filters:
The Larry Williams Large Trade Index (LWLTI): The Larry Williams Large Trade Index (LWTI) is a momentum-based technical indicator developed by iconic trader Larry Williams. It identifies potential entries and exits for trades by gauging market sentiment, particularly the buying and selling pressure from large market players. Here's a breakdown of the LWTI:
LWLTI components and their interpretation:
Oscillator: It oscillates between 0 and 100, with 50 acting as the neutral line.
Sentiment Meter: Values above 75 suggest a bearish market dominated by large selling, while readings below 25 indicate a bullish market with strong buying from large players.
Trend Confirmation: Crossing above 75 during an uptrend and below 25 during a downtrend confirms the trend's continuation.
The Andean Oscillator (AO) : The Andean Oscillator is a trend and momentum based indicator designed to measure the degree of variations within individual uptrends and downtrends in the prices.
Regime Filter States:
In trading, a regime filter is a tool used to identify the current state or "regime" of the market.
These Regime filters are integrated within the trading strategy to attempt to lower risk (equity volatility and/or draw down). The regime filters have different states for each market order type (buy and sell). When the regime filters are set to true, if these regime states fail to be true the trade is exited immediately.
For Buy Trades:
LWLTI positive momentum state: Quotient of the lagged trailing difference and the ATR > 50
AO positive momentum state: Bull line > Bear line (signal line is omitted)
For Sell Trades:
LWLTI negative momentum stat: Quotient of the lagged trailing difference and the ATR < 50
AO negative momentum state: Bull line < Bear line (signal line is omitted)
How does the Strategy Send Signals:
The strategy triggers a TV alert (you will neet to set a alert first), TV then sends a HTTP request to the automation software (PineConnecter) which receives the request and then communicates to an MT4/5 EA to automate the trading strategy.
For the strategy to send signals you must have the following
At least a TV essential subscription
This Script added to your chart
A PineConnecter account, which is paid and not free. This will provide you with the expert advisor that executes trades based on these strategies signals.
For more detailed information on the automation process I would recommend you read the PineConnecter documentation and FAQ page.
Dashboard:
This Dashboard (top right by defualt) lists some simple trading statistics and also shows when a trade is live.
Important Notice:
- USE THIS STRATEGY AT YOUR OWN RISK AND ALWAYS DO YOUR OWN RESEARCH & MANUAL BACKTESTING !
- THE STRATEGY WILL NOT EXHIBIT THE BACKTEST PERFORMANCE SEEN BELOW IN ALL MARKETS !
Perfect RSIOverview:
The "Enhanced RSI" is a comprehensive TradingView indicator designed to provide traders with a nuanced and detailed analysis of market conditions using the Relative Strength Index (RSI). It amalgamates various RSI calculation methods to offer a more robust and adaptable approach to technical analysis.
Originality:
This script is unique in its synthesis of multiple RSI calculation techniques, including Regular RSI, Dynamic RSI, DMI RSI, Wilder's RSI, TSI RSI, Momentum RSI, and PPO RSI. By combining these methods, the script creates a distinctive and versatile tool for traders seeking a holistic view of RSI dynamics.
How It Works:
Diverse RSI Calculations:
Regular RSI: Calculates standard RSI with user-defined length and source.
Dynamic RSI: Adjusts RSI dynamically based on price movement direction.
DMI RSI: Uses Directional Movement Index for RSI calculation.
Wilder's RSI: Implements Wilder's smoothing technique for RSI.
TSI RSI: Utilizes True Strength Index for RSI calculation.
Momentum RSI: Calculates RSI based on momentum.
PPO RSI: Applies Percentage Price Oscillator for RSI calculation.
Composite RSI:
Combines the individual RSIs into three composite indices (RSI1, RSI2, RSI) using a weighted average approach.
Dynamic Level Adjustment:
Uses the correlation coefficient to dynamically adjust overbought and oversold levels, enhancing adaptability to market changes.
Visualization and Background Coloring:
Visualizes overbought and oversold zones on the chart.
Adjusts background color based on these conditions for clearer interpretation.
How to Use:
Installation:
Copy and paste the script into the Pine Editor on TradingView.
Adjust parameters as needed.
Analysis:
Utilize the "Enhanced RSI" as a comprehensive analysis tool for RSI dynamics.
Consider it as a confirmation tool alongside other technical indicators.
Customization:
Experiment with different RSI lengths and methods to align with your trading strategy.
Backtest the script to validate its effectiveness.
Considerations:
Complexity:
The script is sophisticated; users are advised to understand each calculation method before reliance.
Parameter Sensitivity:
Effectiveness may vary based on chosen parameters; thorough backtesting and parameter optimization are recommended.
Market SessionsMarket Sessions Indicator Overview:
The "Market Sessions" indicator is a powerful tool designed to enhance traders' insights by providing comprehensive information about key market sessions, daily high/low values, and important exponential moving averages (EMAs) directly on the trading chart.
Key Features:
Market Sessions Display:
Visually represents Sydney/Tokyo, London, and New York sessions using distinct color-coded shapes.
Enhances visibility by dynamically changing the background color during specific trading sessions.
Daily High/Low:
Plots and labels the high and low values of the previous trading day on the chart.
Customizable colors for daily high and low markers.
Exponential Moving Averages (EMAs):
Includes 20, 50, and 200-period EMAs for comprehensive trend analysis.
Users have the flexibility to customize the visibility and color of each EMA.
Dashboard Information:
Real-time information about the current and upcoming market sessions.
Displays the time remaining for the upcoming session, aiding in timely decision-making.
Stock Session Information:
Clearly marks open and close times for Asia, Euro, and USA stock sessions.
Customizable visibility options for stock open/close lines, allowing for a tailored chart display.
Usage Guidelines:
Market Session Identification: Easily identify distinct market sessions using color-coded shapes and background color changes.
Daily Analysis: Quickly reference labeled lines for the high and low values of the previous trading day.
Trend Analysis: Observe the plotted EMAs on the chart for insights into the prevailing trends.
Real-time Monitoring: Utilize the dashboard for real-time information on current and upcoming sessions.
Stock Session Details: Identify specific open and close times for stock sessions, aiding in strategic planning.
Customization Options:
User-Friendly Parameters: Customize visibility, color, and positioning based on individual preferences.
Dashboard Configuration: Adjust dashboard position, text placement, and EMA parameters to tailor the indicator to specific needs.
Backtesting Feature:
The indicator includes a backtest feature, allowing users to visualize past sessions for testing and refining trading strategies.
This Market Sessions Indicator provides traders with a holistic view of market dynamics, facilitating informed decision-making and enhancing overall trading experiences.
[KVA]Body Percentage Counter This indicator presents a comprehensive view of the historical candle data within user-defined body percentage ranges. Each column represents a specific body size percentage threshold, starting from as low as 0.01% and extending up to 20%.
The rows categorize candles by their closing and opening price differences, effectively sorting them into green (bullish) and red (bearish) candles based on whether they closed higher or lower than their opening prices.
First Row of the table is the bu
For developers, this table can be immensely useful in determining stop-loss ranges. By analyzing the frequency of candles that fall within certain body percentage ranges, developers can better understand where to set stop-loss orders. For instance, if a developer notices a high frequency of candles with body sizes within a specific percentage range, they may choose to set their stop-loss orders outside of this range to avoid being stopped out by normal market fluctuations.
Moreover, the indicator can be used to:
Volatility Assessment : The indicator can be used to gauge market volatility. Smaller bodies may indicate consolidation periods, while larger bodies might suggest more volatile market conditions.
Optimize Trading Strategies : Adjust entry and exit points based on the prevalence of certain candle sizes.
Risk Management : Determine the commonality of price movements within a certain range to better manage risks.
Backtesting : Use historical data to backtest how different stop-loss ranges would have performed in the past.
Comparative Analysis : Traders can compare the frequency of different body sizes over a selected period, providing insights into how the market is evolving.
Educational Use : For new traders, the indicator can serve as an educational tool to understand the implications of candlestick sizes and their relationship with market dynamics
The data provided in this output can guide developers to make more informed decisions about where to place stop-loss orders, potentially increasing the effectiveness of their trading algorithms or manual trading strategies.
The output of the " Body Percentage Counter" indicator is organized into a table format, which can be broken down as follows:
Header (First Row) : This row lists the body percentage thresholds used to categorize the candles. It starts from 0.01% and increases incrementally to 20%. These thresholds are likely set by the user and represent the range of candle body sizes as a percentage of the total candle size.
Green Candle Count (Second Row) : This row displays the count of green candles—candles where the close price is higher than the open price—that fall within each body percentage threshold. For example, under the column "0.01", the number 25 indicates there are 25 green candles whose body size is 0.01% of the total candle size.
Red Candle Count (Third Row) : This row shows the count of red candles—candles where the close price is lower than the open price—for each body percentage threshold. The numbers in this row reflect the number of red candles that match the body percentage criteria in the corresponding column.
Total Candle Count (Fourth Row) : This row sums the counts of both green and red candles for each body percentage threshold, providing a total count of candles that have a body size within the specific range. For instance, if under "0.01" the green count is 25 and the red count is 26, then the total would be 51.
This organized data representation allows users to quickly assess the distribution of candle body sizes over a historical period, which is especially useful for determining the frequency of price movements that are significant enough to consider for stop-loss settings or other trade management decisions.
Heatmap MACD Strategy - Pineconnector (Dynamic Alerts)Hello traders
This script is an upgrade of this template script.
Heatmap MACD Strategy
Pineconnector
Pineconnector is a trading bot software that forwards TradingView alerts to your Metatrader 4/5 for automating trading.
Many traders don't know how to dynamically create Pineconnector-compatible alerts using the data from their TradingView scripts.
Traders using trading bots want their alerts to reflect the stop-loss/take-profit/trailing-stop/stop-loss to breakeven options from your script and then create the orders accordingly.
This script showcases how to create Pineconnector alerts dynamically.
Pineconnector doesn't support alerts with multiple Take Profits.
As a workaround, for 2 TPs, I had to open two trades.
It's not optimal, as we end up paying more spreads for that extra trade - however, depending on your trading strategy, it may not be a big deal.
TradingView Alerts
1) You'll have to create one alert per asset X timeframe = 1 chart.
Example : 1 alert for EUR/USD on the 5 minutes chart, 1 alert for EUR/USD on the 15-minute chart (assuming you want your bot to trade the EUR/USD on the 5 and 15-minute timeframes)
2) For each alert, the alert message is pre-configured with the text below
{{strategy.order.alert_message}}
Please leave it as it is.
It's a TradingView native variable that will fetch the alert text messages built by the script.
3) Don't forget to set the webhook URL in the Notifications tab of the TradingView alerts UI.
EA configuration
The Pyramiding in the EA on Metatrader must be set to 2 if you want to trade with 2 TPs => as it's opening 2 trades.
If you only want 1 TP, set the EA Pyramiding to 1.
Regarding the other EA settings, please refer to the Pineconnector documentation on their website.
Logger
The Pineconnector commands are logged in the TradingView logger.
You'll find more information about it from this TradingView blog post
Important Notes
1) This multiple MACDs strategy doesn't matter much.
I could have selected any other indicator or concept for this script post.
I wanted to share an example of how you can quickly upgrade your strategy, making it compatible with Pineconnector.
2) The backtest results aren't relevant for this educational script publication.
I used realistic backtesting data but didn't look too much into optimizing the results, as this isn't the point of why I'm publishing this script.
3) This template is made to take 1 trade per direction at any given time.
Pyramiding is set to 1 on TradingView.
The strategy default settings are:
Initial Capital: 100000 USD
Position Size: 1 contract
Commission Percent: 0.075%
Slippage: 1 tick
No margin/leverage used
For example, those are realistic settings for trading CFD indices with low timeframes but not the best possible settings for all assets/timeframes.
Concept
The Heatmap MACD Strategy allows selecting one MACD in five different timeframes.
You'll get an exit signal whenever one of the 5 MACDs changes direction.
Then, the strategy re-enters whenever all the MACDs are in the same direction again.
It takes:
long trades when all the 5 MACD histograms are bullish
short trades when all the 5 MACD histograms are bearish
You can select the same timeframe multiple times if you don't need five timeframes.
For example, if you only need the 30min, the 1H, and 2H, you can set your timeframes as follow:
30m
30m
30m
1H
2H
Risk Management Features
All the features below are pips-based.
Stop-Loss
Trailing Stop-Loss
Stop-Loss to Breakeven after a certain amount of pips has been reached
Take Profit 1st level and closing X% of the trade
Take Profit 2nd level and close the remaining of the trade
Custom Exit
I added the option ON/OFF to close the opened trade whenever one of the MACD diverges with the others.
Help me help the community
If you see any issue when adding your strategy logic to that template regarding the orders fills on your Metatrader, please let me know in the comments.
I'll use your feedback to make this template more robust. :)
What's next?
I'll publish a more generic template built as a connector so you can connect any indicator to that Pineconnector template.
Then, I'll publish a template for Capitalise AI, ProfitView, AutoView, and Alertatron.
Thank you
Dave
Heatmap MACD StrategyHello traders
A customer gave me the idea indirectly after I made an update to that script:
Supertrend MTF Heatmap
Important Notes
The backtest results aren't relevant for this educational script publication.
I used realistic backtesting data but didn't look too much into optimizing the results, as this isn't the point of why I'm publishing this script.
I wanted to showcase that any Heatmap script can be converted into a strategy.
The strategy default settings are:
Initial Capital: 100000 USD
Position Size: 1 contract
Commission Percent: 0.075%
Slippage: 1 tick
No margin/leverage used
For example, those are realistic settings for trading CFD indices with low timeframes, but not the best possible settings for all assets/timeframes.
Concept
The Heatmap MACD Strategy allows selecting one MACD in five different timeframes.
You'll get an exit signal whenever one of the 5 MACDs changes direction.
Then, the strategy re-enters whenever all the MACDs are in the same direction again.
It takes:
long trades when all the 5 MACD histograms are bullish
short trades when all the 5 MACD histograms are bearish
You can select the same timeframe multiple times if you don't need five timeframes.
For example, if you only need the 30min, the 1H, and 2H, you can set your timeframes as follow:
30m
30m
30m
1H
2H
Risk Management Features
Nothing too fancy
All the features below are pips-based
Stop-Loss
Trailing Stop-Loss
Stop-Loss to Breakeven after a certain amount of pips has been reached
Take Profit 1st level and closing X% of the trade
Take Profit 2nd level and close the remaining of the trade
What's next?
I'll publish this script's open-source Pineconnector, ProfitView, and AutoView versions for educational purposes.
Thank you
Dave
Trailing Stop with RSI - Momentum-Based StrategyTrailing Stop with RSI - Momentum-Based Strategy
Description:
The Trailing Stop with RSI strategy combines momentum analysis and trailing stop functionality to help traders identify potential entry and exit points in their trading decisions. This strategy is suitable for various markets and timeframes.
Key Features:
Momentum Analysis: The strategy incorporates momentum indicators to identify potential buying and selling opportunities based on momentum shifts in the price.
Trailing Stop Functionality: The strategy utilizes a trailing stop to protect profits and dynamically adjust the stop loss level as the trade moves in the desired direction.
RSI Confirmation: The Relative Strength Index (RSI) is included to provide additional confirmation for trade entries by considering overbought and oversold conditions.
How to Use:
Entry Conditions: Long positions are triggered when positive momentum is detected, and the RSI confirms an oversold condition. Short positions are triggered when negative momentum is detected, and the RSI confirms an overbought condition.
Trailing Stop Activation: Once a position is opened, the trailing stop is activated when the specified profit level (as a percentage) is reached.
Trailing Stop Level: The trailing stop maintains a stop loss level at a specified distance (as a percentage) from the highest profit achieved since opening the position.
Exit Conditions: The trailing stop will trigger an exit and close all positions when the trailing stop level is breached.
Markets and Conditions:
This strategy can be applied to various markets, including stocks, forex, cryptocurrencies, and commodities. It can be used in trending and ranging market conditions, making it versatile for different market environments.
Important Considerations:
Adjust Parameters: Traders can modify the length of the momentum and RSI indicators to suit their preferred timeframe and trading style.
Risk Management: It is recommended to consider appropriate position sizing, risk-to-reward ratios, and overall risk management practices when using this strategy.
Backtesting and Optimization: Traders are encouraged to backtest the strategy on historical data and optimize the parameters to find the best settings for their chosen market and timeframe.
By incorporating momentum analysis, trailing stop functionality, and RSI confirmation, this strategy aims to provide traders with a systematic approach to capturing profitable trades while managing risk effectively.
Trend hunter strategy - buy & sellThe indicator combines multiple technical indicators and conditions to generate buy and sell signals.
Here's how the indicator works and how to use it:
Strategy Selection:
The indicator provides a dropdown menu to choose the type of strategy. The available options are "Pullback" and "Simple."
Supertrend Settings:
The Supertrend indicator is used to identify the trend direction.
The indicator takes two input parameters:
ATR Length: Specifies the length of the Average True Range (ATR) used in the Supertrend calculation. The default value is 10.
Factor: Specifies the factor used in the Supertrend calculation. The default value is 3.0.
EMA Settings:
The indicator also includes an Exponential Moving Average (EMA) condition.
You can enable or disable the EMA condition using the "Ema Condition On/Off" checkbox.
If enabled, the indicator calculates an EMA based on the close price.
You can specify the length of the EMA using the "Ema Length" input parameter. The default value is 200.
RSI Settings:
The Relative Strength Index (RSI) indicator is used to generate additional conditions.
You can enable or disable the RSI condition using the "Rsi Condition On/Off" checkbox.
If enabled, the indicator calculates the RSI based on the close price.
You can specify the length of the RSI using the "Rsi Length" input parameter. The default value is 14.
Additionally, you can set the overbought and oversold levels for the RSI using the "RSI BUY Level" and "RSI SELL Level" input parameters, respectively. The default value for both is 50.
Final Conditions:
The indicator combines the Supertrend, EMA, and RSI conditions to generate buy and sell signals.
The specific conditions depend on the chosen strategy:
For the "Simple" strategy, the buy condition is when the Supertrend is in an up trend, not in a previous long position, the RSI is above the overbought level, and the close price is above the EMA.
For the "Pullback" strategy, the buy condition is when there is a cross under of the previous low with the Supertrend, the Supertrend is in an up trend, the RSI is above the overbought level, and the close price is above the EMA.
The sell conditions are the opposite of the respective buy conditions.
Backtest Period:
You can specify the start and end dates for the backtesting using the "Start calculations from" and "End calculations" inputs, respectively. The default start date is "2005-01-01" and the default end date is "2045-03-01." (this is work in progress) Still working on the table part, it is a bit tricky.
Trade Direction:
You can choose the trade direction using the "Trade Direction" input parameter. The available options are "Long," "Short," and "Both."
Depending on the selected trade direction, the indicator will generate signals accordingly.
Visual Display:
The indicator plots the Supertrend line on the price chart.
Buy signals are shown as green labels below the price bars.
Sell signals are shown as red labels above the price bars.
Adjust the input parameters according to your preferences, and then apply the indicator to a chart to see the generated signals. Please note that this indicator should be used for educational purposes only and should be thoroughly tested before using it for real trading.
Super 8 - 30M BTCWelcome to Super 8, the ultimate automatic trading script for Pine!
This bad boy is designed to go both long and short, and it's equipped with all the tools you need to maximize your profits. Whether you're looking to take profit, set a trailing stop, or protect yourself with a stop loss, Super 8 has you covered.
But that's not all! Super 8 is also loaded with 8 powerful indicators to help you make informed decisions. We've got the EMA, ADX, SAR, MACD, VOLUME, BOLLINGER BANDS, DONCHIAN, and ATR all working together to give you the best possible trading experience.
And if you want to take it to the next level, Super 8 also has a feature that lets you use stepped entries in normal mode or incremental 1,2,3,... to improve your average price. Plus, if you're using trailing stop, you can activate the Backtest precision to use lower timeframes.
But what's in a name? Super 8 is called that because it's just that... super! It's tailored specifically for the OKX:BTCUSDT.P pair, so you know you're getting the best possible results. it's highly adjustable and can be used with any other pair. So no matter what market you're trading in, Super 8 has got you covered.
So if you want to level up your trading game, give Super 8 a try. You won't be disappointed.
Certain Risks of Live Algorithmic Trading:
Backtesting Cannot Assure Actual Results.
The relevant market might fail or behave unexpectedly.
Your broker may experience failures in its infrastructure, fail to execute your orders in a correct or timely fashion or reject your orders.
The system you use for generating trading orders, communicating those orders to your broker, and receiving queries and trading results from your broker may fail.
Time lag at various point in live trading might cause unexpected behavior.
The systems of third parties in addition to those of the provider from which we obtain various services, your broker, and the applicable securities market may fail or malfunction.
Strategy Myth-Busting #20 - HalfTrend+HullButterfly - [MYN]#20 on the Myth-Busting bench, we are automating the " I Found Super Easy 1 Minute Scalping System And Backtest It 100 Times " strategy from " Jessy Trading " who claims 30.58% net profit over 100 trades in a couple of weeks with a 51% win rate and profit factor of 1.56 on EURUSD .
This one surprised us quite a bit. Despite the title of this strategy indicating this is on the 1 min timeframe, the author demonstrates the backtesting manually on the 5 minute timeframe. Given the simplicity of this strategy only incorporating a couple of indicators, it's robustness being able to be profitable in both low and high timeframes and on multiple symbols was quite refreshing.
The 3 settings which we need to pay most attention to here is the Hull Butterfly length, HalfTrend amplitude and the Max Number Of Bars Between Hull and HalfTrend Trigger. Depending on the timeframe and symbol, these settings greatly impact the performance outcomes of the strategy. I've listed a couple of these below.
And as always, If you know of or have a strategy you want to see myth-busted or just have an idea for one, please feel free to message me.
This strategy uses a combination of 3 open-source public indicators:
Hull Butterfly Oscillator by LuxAlgo
HalfTrend by Everget
Trading Rules
5 min candles but higher / lower candles work too.
Stop loss at swing high/low
Take Profit 1.5x the risk
Long
Hull Butterfly gives us green column, Wait for HalfTrend to present an up arrow and enter trade.
Short
Hull Butterfly gives us a red column , Wait for HalfTrend to present a down arrow and enter trade.
Alternative Trading Settings for different time frames
1 Minute Timeframe
Move the Hull Butterfly length from the default 11 to 9
Move the HalfTrend Amplitude from the default 2 to 1
Enabling ADX Filter with a 25 threshold
2 Hour Timeframe
Move the HalfTrend Amplitude from the default 2 to 1
Laddered Take Profits from 14.5% to 19% with an 8% SL
Catching the Bottom (by Coinrule)This script utilises the RSI and EMA indicators to enter and close the trade.
The relative strength index (RSI) is a momentum indicator used in technical analysis. RSI measures the speed and magnitude of a security's recent price changes to evaluate overvalued or undervalued conditions in the price of that security. The RSI is displayed as an oscillator (a line graph) on a scale of zero to 100. The RSI can do more than point to overbought and oversold securities. It can also indicate securities that may be primed for a trend reversal or corrective pullback in price. It can signal when to buy and sell. Traditionally, an RSI reading of 70 or above indicates an overbought situation. A reading of 30 or below indicates an oversold condition.
An exponential moving average (EMA) is a type of moving average (MA) that places a greater weight and significance on the most recent data points. The exponential moving average is also referred to as the exponentially weighted moving average. An exponentially weighted moving average reacts more significantly to recent price changes than a simple moving average simple moving average (SMA), which applies an equal weight to all observations in the period.
The strategy enters and exits the trade based on the following conditions.
ENTRY
RSI has a decrease of 3.
RSI <40.
EMA100 has crossed above the EMA50.
EXIT
RSI is greater than 65.
EMA9 has crossed above EMA50.
This strategy is back tested from 1 April 2022 to simulate how the strategy would work in a bear market and provides good returns.
Pairs that produce very strong results include ETH on the 5m timeframe, BNB on 5m timeframe, XRP on the 45m timeframe, MATIC on the 30m timeframe and MATIC on the 2H timeframe.
The strategy assumes each order is using 30% of the available coins to make the results more realistic and to simulate you only ran this strategy on 30% of your holdings. A trading fee of 0.1% is also taken into account and is aligned to the base fee applied on Binance.
Bjorgum Double Tap█ OVERVIEW
Double Tap is a pattern recognition script aimed at detecting Double Tops and Double Bottoms. Double Tap can be applied to the broker emulator to observe historical results, run as a trading bot for live trade alerts in real time with entry signals, take profit, and stop orders, or to simply detect patterns.
█ CONCEPTS
How Is A Pattern Defined?
Doubles are technical formations that are both reversal patterns and breakout patterns. These formations typically have a distinctive “M” or a “W” shape with price action breaking beyond the neckline formed by the center of the pattern. They can be recognized when a pivot fails to break when tested for a second time and the retracement that follows breaks beyond the key level opposite. This can trap entrants that were playing in the direction of the prior trend. Entries are made on the breakout with a target projected beyond the neckline equal to the height of the pattern.
Pattern Recognition
Patterns are recognized through the use of zig-zag; a method of filtering price action by connecting swing highs and lows in an alternating fashion to establish trend, support and resistance, or derive shapes from price action. The script looks for the highest or lowest point in a given number of bars and updates a list with the values as they form. If the levels are exceeded, the values are updated. If the direction changes and a new significant point is made, a new point is added to the list and the process starts again. Meanwhile, we scan the list of values looking for the distinctive shape to form as previously described.
█ STRATEGY RESULTS
Back Testing
Historical back testing is the most common method to test a strategy due in part to the general ease of gathering quick results. The underlying theory is that any strategy that worked well in the past is likely to work well in the future, and conversely, any strategy that performed poorly in the past is likely to perform poorly in the future. It is easy to poke holes in this theory, however, as for one to accept it as gospel, one would have to assume that future results will match what has come to pass. The randomness of markets may see to it otherwise, so it is important to scrutinize results. Some commonly used methods are to compare to other markets or benchmarks, perform statistical analysis on the results over many iterations and on differing datasets, walk-forward testing, out-of-sample analysis, or a variety of other techniques. There are many ways to interpret the results, so it is important to do research and gain knowledge in the field prior to taking meaningful conclusions from them.
👉 In short, it would be naive to place trust in one good backtest and expect positive results to continue. For this reason, results have been omitted from this publication.
Repainting
Repainting is simply the difference in behaviour of a strategy in real time vs the results calculated on the historical dataset. The strategy, by default, will wait for confirmed signals and is thus designed to not repaint. Waiting for bar close for entires aligns results in the real time data feed to those calculated on historical bars, which contain far less data. By doing this we align the behaviour of the strategy on the 2 data types, which brings significance to the calculated results. To override this behaviour and introduce repainting one can select "Recalculate on every tick" from the properties tab. It is important to note that by doing this alerts may not align with results seen in the strategy tester when the chart is reloaded, and thus to do so is to forgo backtesting and restricts a strategy to forward testing only.
👉 It is possible to use this script as an indicator as opposed to a full strategy by disabling "Use Strategy" in the "Inputs" tab. Basic alerts for detection will be sent when patterns are detected as opposed to complex order syntax. For alerts mid-bar enable "Recalculate on every tick" , and for confirmed signals ensure it is disabled.
█ EXIT ORDERS
Limit and Stop Orders
By default, the strategy will place a stop loss at the invalidation point of the pattern. This point is beyond the pattern high in the case of Double Tops, or beneath the pattern low in the case of Double Bottoms. The target or take profit point is an equal-legs measurement, or 100% of the pattern height in the direction of the pattern bias. Both the stop and the limit level can be adjusted from the user menu as a percentage of the pattern height.
Trailing Stops
Optional from the menu is the implementation of an ATR based trailing stop. The trailing stop is designed to begin when the target projection is reached. From there, the script looks back a user-defined number of bars for the highest or lowest point +/- the ATR value. For tighter stops the user can look back a lesser number of bars, or decrease the ATR multiple. When using either Alertatron or Trading Connector, each change in the trail value will trigger an alert to update the stop order on the exchange to reflect the new trail price. This reduces latency and slippage that can occur when relying on alerts only as real exchange orders fill faster and remain in place in the event of a disruption in communication between your strategy and the exchange, which ensures a higher level of safety.
👉 It is important to note that in the case the trailing stop is enabled, limit orders are excluded from the exit criteria. Rather, the point in time that the limit value is exceeded is the point that the trail begins. As such, this method will exit by stop loss only.
█ ALERTS
Five Built-in 3rd Party Destinations
The following are five options for delivering alerts from Double Tap to live trade execution via third party API solutions or chat bots to share your trades on social media. These destinations can be selected from the input menu and alert syntax will automatically configure in alerts appropriately to manage trades.
Custom JSON
JSON, or JavaScript Object Notation, is a readable format for structuring data. It is used primarily to transmit data between a server and a web application. In regards to this script, this may be a custom intermediary web application designed to catch alerts and interface with an exchange API. The JSON message is a trade map for an application to read equipped with where its been, where its going, targets, stops, quantity; a full diagnostic of the current state and its previous state. A web application could be configured to follow the messages sent in this format and conduct trades in sync with alerts running on the TV server.
Below is an example of a rendered JSON alert:
{
"passphrase": "1234",
"time": "2022-05-01T17:50:05Z",
"ticker": "ETHUSDTPERP",
"plot": {
"stop_price": 2600.15,
"limit_price": 3100.45
},
"strategy": {
"position_size": 0.1,
"order_action": "buy",
"market_position": "long",
"market_position_size": 0,
"prev_market_position": "flat",
"prev_market_position_size": 0
}
}
Trading Connector
Trading Connector is a third party fully autonomous Chrome extension designed to catch alert webhooks from TradingView and interface with MT4/MT5 to execute live trades from your machine. Alerts to Trading Connector are simple; just select the destination from the input drop down menu, set your ticker in the "TC Ticker" box in the "Alert Strings" section and enter your URL in the alert window when configuring your alert.
Alertatron
Alertatron is an automated algo platform for cryptocurrency trading that is designed to automate your trading strategies. Although the platform is currently restricted to crypto, it offers a versatile interface with high flexibility syntax for complex market orders and conditions. To direct alerts to Alertatron, select the platform from the 3rd party drop down, configure your API key in the ”Alertatron Key” box and add your URL in the alert message box when making alerts.
3 Commas
3 Commas is an easy and quick to use click-and-go third party crypto API solution. Alerts are simple without overly complex syntax. Messages are simply pasted into alerts and executed as alerts are triggered. There are 4 boxes at the bottom of the "Inputs" tab where the appropriate messages to be placed. These messages can be copied from 3 Commas after the bots are set up and pasted directly into the settings menu. Remember to select 3 Commas as a destination from the third party drop down and place the appropriate URL in the alert message window.
Discord
Some may wish to share their trades with their friends in a Discord chat via webhook chat bot. Messages are configured to notify of the pattern type with targets and stop values. A bot can be configured through the integration menu in a Discord chat to which you have appropriate access. Select Discord from the 3rd party drop down menu and place your chat bot URL in the alert message window when configuring alerts.
👉 For further information regarding alert setup, refer to the platform specific instructions given by the chosen third party provider.
█ IMPORTANT NOTES
Setting Alerts
For alert messages to be properly delivered on order fills it is necessary to place the following placeholder in the alert message box when creating an alert.
{{strategy.order.alert_message}}
This placeholder will auto-populate the alert message with the appropriate syntax that is designated for the 3rd party selected in the user menu.
Order Sizing and Commissions
The values that are sent in alert messages are populated from live metrics calculated by the strategy. This means that the actual values in the "Properties" tab are used and must be set by the user. The initial capital, order size, commission, etc. are all used in the calculations, so it is important to set these prior to executing live trades. Be sure to set the commission to the values used by the exchange as well.
👉 It is important to understand that the calculations on the account size take place from the beginning of the price history of the strategy. This means that if historical results have inflated or depleted the account size from the beginning of trade history until now, the values sent in alerts will reflect the calculated size based on the inputs in the "Properties" tab. To start fresh, the user must set the date in the "Inputs" tab to the current date as to remove trades from the trade history. Failure to follow this instruction can result in an unexpected order size being sent in the alert.
█ FOR PINECODERS
• With the recent introduction of matrices in Pine, the script utilizes a matrix to track pivot points with the bars they occurred on, while tracking if that pivot has been traded against to prevent duplicate detections after a trade is exited.
• Alert messages are populated with placeholders ; capability that previously was only possible in alertcondition() , but has recently been extended to `strategy.*()` functions for use in the `alert_message` argument. This allows delivery of live trade values to populate in strategy alert messages.
• New arguments have been added to strategy.exit() , which allow differentiated messages to be sent based on whether the exit occurred at the stop or the limit. The new arguments used in this script are `alert_profit` and `alert_loss` to send messages to Discord
CoinFlip Indicator + StrategyFlip a coin every Monday.
Heads, go long. Tail, go short. Stoploss at 1 ATR, and Take profit at 1 ATR too. 1:1 risk to reward ratio.
After backtesting 2018, 2019, and 2020 with 28 major currency pairs. We are getting close to a 50% win rate with an 8% standard deviation.
Believe it or not, this simple performs better than lots of the popular indicators out there.
Don't believe me? Test it out yourself!!
Use this as a baseline for your backtest and expose all your other crappy indicators :)
HOW TO USE:
As an indicator:
1. Use a daily chart
2. Green arrow below chart, go long, set a stop-loss at 1 x ATR, and take profit at 1 x ATR
3. Red arrow above chart, go short, set a stop-loss at 1 x ATR, and take profit at 1 x ATR
As an indicator:
1. In setting, set a year to test (default to 2020)
2. Go to the strategy tester and observe the stats
P.s. You can also set the period of the ATR to another value other than 14 periods.
[KL] Mean Reversion (ATR) StrategyThis strategy will enter into a position when price volatility is relative high, betting that price will subsequently trend in a favourable direction.
Hypothesis : During periods of high price volatility, ATR will divert from its moving average by at least +/- one standard deviation. Eventually, ATR will revert back to the mean. However, just knowing the magnitude of increase/decrease of ATR does not give a trend signal, so we need to introduce a model in this script to predict whether the next bars will be up/down.
Trend Prediction : This strategy calculates the expected logarithmic return of the security (the "Drift") and considers prices to be moving in uptrend if the drift curve is upward sloping or if the drift value is positive.
Entry Conditions : Long position is entered when:
(a) ATR has diverted from mean by one standard deviation, and
(b) trend is predicted to move in our favor.
Exit Condition : When trailing stop loss is hit.
Results from backtesting against VOO (1H timeframe):
- approx 46% win rate over 491 trades, on average holding for 20 hours per trade
- price at the beginning of backtest (Jan. 2015) was $187.52, giving holding period return of ~120% had we not sold in between ("HPR of HODL'ing")
- this strategy gained ~159%, exceeding ~120% HPR of HODL'ing