Volume Profile + Price Action Strategy (POC-based)This indicator combines volume dynamics, price action patterns, and a simplified Point of Control (POC) to highlight potential high-probability trade zones.
🔍 Key Features
POC-Based Logic
Plots the POC from the most recent closed 10-minute candle as a horizontal level for intraday structure.
Volume Spike Detection
Highlights unusual activity based on volume compared to the average of the last N candles.
Effort vs. Result Analysis
Based on Wyckoff-inspired logic:
Absorption: Large volume, small body → possible buyer/seller absorption
False Move: Small volume, large body → potential fakeout
Price Action Recognition Detects:
Inside Bars
Pin Bars
Engulfing Candles
Signal Highlights
🔺 Absorption Signals (below bar, teal triangle)
🔻 False Move Signals (above bar, orange triangle)
🔷 POC Line
⚙️ Customizable Inputs
You can control signal sensitivity with these inputs:
Volume Spike Multiplier
Raise to filter only extreme volume spikes
→ Recommended: 2.0 to 3.0 for cleaner setups
Absorption Body Ratio
Lower to detect only very small bodies (tight candles)
→ Try 0.3 to 0.4 for stricter absorption logic
False Move Body Ratio
Raise to catch only large candles on low volume
→ Use 2.0+ to filter weak moves
🧠 How to Use
Use in confluence with:
Support/Resistance
VWAP or moving averages
Session opens/closes
Best on 10-minute charts, but adjustable
✅ Signal Tuning Tips
Want fewer but cleaner signals?
Increase Volume Spike Multiplier: 2.5+
Decrease Absorption Body Ratio: 0.3
Increase False Move Ratio: 2.0+
Want more frequent signals?
Lower Volume Multiplier: 1.2–1.5
Raise Absorption Ratio: 0.6+
Lower False Move Ratio: 1.2–1.4
📊 Recommended Timeframe
Optimized for 10-minute charts
Works intraday, especially around session opens and POC re-tests
⚠️ Disclaimer
This script is for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any asset. Past performance is not indicative of future results. Always do your own research and consult a licensed financial advisor before making trading decisions.
Use at your own risk.
Komut dosyalarını "中海油+10年股价涨幅" için ara
EMA Crossover Signal (15min)📈 EMA Crossover Signal (15min)
This indicator generates Buy and Sell signals based on a simple yet effective Exponential Moving Average (EMA) crossover strategy, strictly evaluated on the 15-minute timeframe.
✅ Strategy:
Buy Signal: Triggered when the 5 EMA crosses above the 10 EMA.
Sell Signal: Triggered when the 5 EMA crosses below the 10 EMA.
📌 Features:
Signals are evaluated using 15-minute data, regardless of your current chart timeframe.
Clear Buy/Sell labels are displayed directly on the chart.
Optional plotting of the 5 EMA and 10 EMA from the 15-minute chart for visual confirmation.
This tool is ideal for traders who want to follow short-term momentum shifts with high clarity and precision.
ZigZag█ Overview
This Pine Script™ library provides a comprehensive implementation of the ZigZag indicator using advanced object-oriented programming techniques. It serves as a developer resource rather than a standalone indicator, enabling Pine Script™ programmers to incorporate sophisticated ZigZag calculations into their own scripts.
Pine Script™ libraries contain reusable code that can be imported into indicators, strategies, and other libraries. For more information, consult the Libraries section of the Pine Script™ User Manual.
█ About the Original
This library is based on TradingView's official ZigZag implementation .
The original code provides a solid foundation with user-defined types and methods for calculating ZigZag pivot points.
█ What is ZigZag?
The ZigZag indicator filters out minor price movements to highlight significant market trends.
It works by:
1. Identifying significant pivot points (local highs and lows)
2. Connecting these points with straight lines
3. Ignoring smaller price movements that fall below a specified threshold
Traders typically use ZigZag for:
- Trend confirmation
- Identifying support and resistance levels
- Pattern recognition (such as Elliott Waves)
- Filtering out market noise
The algorithm identifies pivot points by analyzing price action over a specified number of bars, then only changes direction when price movement exceeds a user-defined percentage threshold.
█ My Enhancements
This modified version extends the original library with several key improvements:
1. Support and Resistance Visualization
- Adds horizontal lines at pivot points
- Customizable line length (offset from pivot)
- Adjustable line width and color
- Option to extend lines to the right edge of the chart
2. Support and Resistance Zones
- Creates semi-transparent zone areas around pivot points
- Customizable width for better visibility of important price levels
- Separate colors for support (lows) and resistance (highs)
- Visual representation of price areas rather than just single lines
3. Zig Zag Lines
- Separate colors for upward and downward ZigZag movements
- Visually distinguishes between bullish and bearish price swings
- Customizable colors for text
- Width customization
4. Enhanced Settings Structure
- Added new fields to the Settings type to support the additional features
- Extended Pivot type with supportResistance and supportResistanceZone fields
- Comprehensive configuration options for visual elements
These enhancements make the ZigZag more useful for technical analysis by clearly highlighting support/resistance levels and zones, and providing clearer visual cues about market direction.
█ Technical Implementation
This library leverages Pine Script™'s user-defined types (UDTs) to create a robust object-oriented architecture:
- Settings : Stores configuration parameters for calculation and display
- Pivot : Represents pivot points with their visual elements and properties
- ZigZag : Manages the overall state and behavior of the indicator
The implementation follows best practices from the Pine Script™ User Manual's Style Guide and uses advanced language features like methods and object references. These UDTs represent Pine Script™'s most advanced feature set, enabling sophisticated data structures and improved code organization.
For newcomers to Pine Script™, it's recommended to understand the language fundamentals before working with the UDT implementation in this library.
█ Usage Example
//@version=6
indicator("ZigZag Example", overlay = true, shorttitle = 'ZZA', max_bars_back = 5000, max_lines_count = 500, max_labels_count = 500, max_boxes_count = 500)
import andre_007/ZigZag/1 as ZIG
var group_1 = "ZigZag Settings"
//@variable Draw Zig Zag on the chart.
bool showZigZag = input.bool(true, "Show Zig-Zag Lines", group = group_1, tooltip = "If checked, the Zig Zag will be drawn on the chart.", inline = "1")
// @variable The deviation percentage from the last local high or low required to form a new Zig Zag point.
float deviationInput = input.float(5.0, "Deviation (%)", minval = 0.00001, maxval = 100.0,
tooltip = "The minimum percentage deviation from a previous pivot point required to change the Zig Zag's direction.", group = group_1, inline = "2")
// @variable The number of bars required for pivot detection.
int depthInput = input.int(10, "Depth", minval = 1, tooltip = "The number of bars required for pivot point detection.", group = group_1, inline = "3")
// @variable registerPivot (series bool) Optional. If `true`, the function compares a detected pivot
// point's coordinates to the latest `Pivot` object's `end` chart point, then
// updates the latest `Pivot` instance or adds a new instance to the `ZigZag`
// object's `pivots` array. If `false`, it does not modify the `ZigZag` object's
// data. The default is `true`.
bool allowZigZagOnOneBarInput = input.bool(true, "Allow Zig Zag on One Bar", tooltip = "If checked, the Zig Zag calculation can register a pivot high and pivot low on the same bar.",
group = group_1, inline = "allowZigZagOnOneBar")
var group_2 = "Display Settings"
// @variable The color of the Zig Zag's lines (up).
color lineColorUpInput = input.color(color.green, "Line Colors for Up/Down", group = group_2, inline = "4")
// @variable The color of the Zig Zag's lines (down).
color lineColorDownInput = input.color(color.red, "", group = group_2, inline = "4",
tooltip = "The color of the Zig Zag's lines")
// @variable The width of the Zig Zag's lines.
int lineWidthInput = input.int(1, "Line Width", minval = 1, tooltip = "The width of the Zig Zag's lines.", group = group_2, inline = "w")
// @variable If `true`, the Zig Zag will also display a line connecting the last known pivot to the current `close`.
bool extendInput = input.bool(true, "Extend to Last Bar", tooltip = "If checked, the last pivot will be connected to the current close.",
group = group_1, inline = "5")
// @variable If `true`, the pivot labels will display their price values.
bool showPriceInput = input.bool(true, "Display Reversal Price",
tooltip = "If checked, the pivot labels will display their price values.", group = group_2, inline = "6")
// @variable If `true`, each pivot label will display the volume accumulated since the previous pivot.
bool showVolInput = input.bool(true, "Display Cumulative Volume",
tooltip = "If checked, the pivot labels will display the volume accumulated since the previous pivot.", group = group_2, inline = "7")
// @variable If `true`, each pivot label will display the change in price from the previous pivot.
bool showChgInput = input.bool(true, "Display Reversal Price Change",
tooltip = "If checked, the pivot labels will display the change in price from the previous pivot.", group = group_2, inline = "8")
// @variable Controls whether the labels show price changes as raw values or percentages when `showChgInput` is `true`.
string priceDiffInput = input.string("Absolute", "", options = ,
tooltip = "Controls whether the labels show price changes as raw values or percentages when 'Display Reversal Price Change' is checked.",
group = group_2, inline = "8")
// @variable If `true`, the Zig Zag will display support and resistance lines.
bool showSupportResistanceInput = input.bool(true, "Show Support/Resistance Lines",
tooltip = "If checked, the Zig Zag will display support and resistance lines.", group = group_2, inline = "9")
// @variable The number of bars to extend the support and resistance lines from the last pivot point.
int supportResistanceOffsetInput = input.int(50, "Support/Resistance Offset", minval = 0,
tooltip = "The number of bars to extend the support and resistance lines from the last pivot point.", group = group_2, inline = "10")
// @variable The width of the support and resistance lines.
int supportResistanceWidthInput = input.int(1, "Support/Resistance Width", minval = 1,
tooltip = "The width of the support and resistance lines.", group = group_2, inline = "11")
// @variable The color of the support lines.
color supportColorInput = input.color(color.red, "Support/Resistance Color", group = group_2, inline = "12")
// @variable The color of the resistance lines.
color resistanceColorInput = input.color(color.green, "", group = group_2, inline = "12",
tooltip = "The color of the support/resistance lines.")
// @variable If `true`, the support and resistance lines will be drawn as zones.
bool showSupportResistanceZoneInput = input.bool(true, "Show Support/Resistance Zones",
tooltip = "If checked, the support and resistance lines will be drawn as zones.", group = group_2, inline = "12-1")
// @variable The color of the support zones.
color supportZoneColorInput = input.color(color.new(color.red, 70), "Support Zone Color", group = group_2, inline = "12-2")
// @variable The color of the resistance zones.
color resistanceZoneColorInput = input.color(color.new(color.green, 70), "", group = group_2, inline = "12-2",
tooltip = "The color of the support/resistance zones.")
// @variable The width of the support and resistance zones.
int supportResistanceZoneWidthInput = input.int(10, "Support/Resistance Zone Width", minval = 1,
tooltip = "The width of the support and resistance zones.", group = group_2, inline = "12-3")
// @variable If `true`, the support and resistance lines will extend to the right of the chart.
bool supportResistanceExtendInput = input.bool(false, "Extend to Right",
tooltip = "If checked, the lines will extend to the right of the chart.", group = group_2, inline = "13")
// @variable References a `Settings` instance that defines the `ZigZag` object's calculation and display properties.
var ZIG.Settings settings =
ZIG.Settings.new(
devThreshold = deviationInput,
depth = depthInput,
lineColorUp = lineColorUpInput,
lineColorDown = lineColorDownInput,
textUpColor = lineColorUpInput,
textDownColor = lineColorDownInput,
lineWidth = lineWidthInput,
extendLast = extendInput,
displayReversalPrice = showPriceInput,
displayCumulativeVolume = showVolInput,
displayReversalPriceChange = showChgInput,
differencePriceMode = priceDiffInput,
draw = showZigZag,
allowZigZagOnOneBar = allowZigZagOnOneBarInput,
drawSupportResistance = showSupportResistanceInput,
supportResistanceOffset = supportResistanceOffsetInput,
supportResistanceWidth = supportResistanceWidthInput,
supportColor = supportColorInput,
resistanceColor = resistanceColorInput,
supportResistanceExtend = supportResistanceExtendInput,
supportResistanceZoneWidth = supportResistanceZoneWidthInput,
drawSupportResistanceZone = showSupportResistanceZoneInput,
supportZoneColor = supportZoneColorInput,
resistanceZoneColor = resistanceZoneColorInput
)
// @variable References a `ZigZag` object created using the `settings`.
var ZIG.ZigZag zigZag = ZIG.newInstance(settings)
// Update the `zigZag` on every bar.
zigZag.update()
//#endregion
The example code demonstrates how to create a ZigZag indicator with customizable settings. It:
1. Creates a Settings object with user-defined parameters
2. Instantiates a ZigZag object using these settings
3. Updates the ZigZag on each bar to detect new pivot points
4. Automatically draws lines and labels when pivots are detected
This approach provides maximum flexibility while maintaining readability and ease of use.
Volume Patterns [SS]Hey everyone,
Been a while since doing anything with Pinescript.
Here is my iteration of a Volume Pattern identification, inspired by Bulkowski's work on patterns and volume.
The indicator aims to identify the 4 major types of volume patterns, these are:
Bullish Breakout Volume
Bearish Breakout Volume
Inverted Domes
Domes
Classification
These patterns are all assigned to a classification based on theory. For example, dome volume is usually bearish, inverted dome is usually bullish, etc. etc. However, in order to accommodate changing sentiments and volatility, I have coded logic into the indicator to assess for the actual sentiment associated with these patterns itself.
The indicator calculates the average return associated with each pattern, scaling the data into a percent return. It then has the ability to re-scale the target using the close price associated with the pattern at the time of pattern signaling, to calculate the target price and plot the target on the chart for you.
Additionally, it provides you with the following:
Labels to signal when a pattern has happened
A table that shows you the average returns associated with the 4 major patterns
Target lines with labels that visually show you the target price associated with the pattern, as well as which pattern they are associated with.
All of these things can be toggled on or off depending on your preference.
Customizing the indicator
In addition to being able to toggle the visuals on or off depending on what you want to see or not see, there are some minor customization abilities in terms of training the indicator to recognize the patterns and predict the TP.
The first one is the Training length
In the settings, you will see "Train", and the default is 500. This is the amount the indicator is looking back in history to learn the patterns and returns associated with them. This 500 is appropriate in most cases and on most timeframes.
Lastly, the Lookforward Length
The look forward length represents the number of bars forward you want to determine the returns for. It is defaulted to 10, but you can modify it.
So, if you are on the 1-Minute chart and have the look forward set to 10, then once a signal happens, the target price is calculated based on 10 minutes from the time of signal. You can increase this or decrease this based on your preference.
Longer look forwards can be good for swingers but should be used on the larger timeframes, shorter are good for scalpers but should be used on the shorter timeframes.
The indicator's use is incredibly simple, you'll pick it up in no time!
Hope you enjoy it and as always, safe trades!
Just an FYI for those who may have questions:
The indicator is open source. This means you are free to take it and modify it as you wish. You do not need to ask me.
Please read the description carefully, as 100% of questions I am asked about indicators are covered in the description. ;-)
Have a good one guys and gals! 🚀🚀🚀
CVD Oscillator - Short Term SwiftEdgeOverview
The CVD Oscillator - Short Term is a technical indicator designed to assist traders in identifying short-term buying and selling pressure in the market. It calculates the Cumulative Volume Delta (CVD) to measure the net volume difference between buying and selling activity, displayed as an oscillator in a separate panel. This indicator is tailored for short-term trading strategies, such as scalping or day trading, on low timeframes (e.g., 1-minute, 5-minute, or 15-minute charts).
How It Works
Cumulative Volume Delta (CVD): The indicator calculates CVD by assigning volume to buyers (when close > open) or sellers (when close < open). If close = open, the volume is neutral.
Short-Term Focus: The CVD is calculated over a user-defined lookback period (default: 10 candles), making it sensitive to recent market activity.
Normalization: The raw CVD is normalized by dividing it by the average volume (over a short period, default: 5 candles) and scaled to fit within a range of -100 to +100, creating an oscillator-like behavior.
Reset Options: Users can reset the CVD at specific intervals (e.g., every minute, 5 minutes, 15 minutes, or daily) to focus on intraday movements.
Live CVD Value: The raw (unnormalized) CVD value is displayed as a label on each candle for real-time monitoring.
Key Features
Customizable Lookback Period: Adjust the number of recent candles (default: 10) to calculate CVD, allowing for precise short-term analysis.
Flexible Reset Periods: Choose to reset the CVD every 1 minute, 5 minutes, 15 minutes, daily, or never, to suit your trading style.
Normalized Oscillator: The CVD is scaled between -100 and +100, making it easier to visualize short-term momentum.
Live CVD Labels: Displays the raw CVD value on each candle, with options to position the label above or below the oscillator line.
How to Use
Add to Chart: Apply the indicator to your chart on a low timeframe (e.g., 1m, 5m, or 15m) for short-term trading.
Interpret the Oscillator:
Above 0 (Green): Indicates buying pressure dominates.
Below 0 (Red): Indicates selling pressure dominates.
Near 0: Suggests neutral market conditions.
Monitor Live CVD: Use the raw CVD value (shown in the label) to assess the exact net volume difference over the lookback period.
Combine with Other Tools: Use the oscillator alongside price action, support/resistance levels, or other indicators to confirm trading decisions.
Adjust Settings:
CVD Lookback Period: Set to a small value (e.g., 5-20 candles) for scalping.
CVD Reset Period: Choose "1m" or "5m" for intraday resets to focus on very short-term trends.
Volume Average Length: Use a short length (e.g., 3-5) for faster responsiveness.
Scale Factor: Increase (e.g., 2.0-3.0) to amplify small changes in CVD.
Settings
CVD Reset Period: Defines when to reset the CVD calculation ("None", "D" for daily, "15m", "5m", "1m").
CVD Lookback Period (Candles): Number of recent candles to calculate CVD (default: 10).
Volume Average Length: Period for averaging volume to normalize CVD (default: 5).
CVD Scale Factor: Adjusts the sensitivity of the normalized CVD (default: 2.0).
CVD Label Position: Choose to display the raw CVD label above or below the oscillator line.
CVD Label Color: Customize the color of the CVD label (default: white).
Limitations
Not a Standalone Tool: This indicator should be used in conjunction with other technical analysis tools, as it does not guarantee profitable trades.
Volume Dependency: The accuracy of CVD relies on the quality of volume data provided by your broker or exchange.
Short-Term Focus: The indicator is optimized for low timeframes and may produce noise on higher timeframes unless adjusted.
No Predictive Claims: The CVD Oscillator reflects past and current market activity but does not predict future price movements.
Notes
This indicator is designed for informational purposes and does not constitute financial advice. Trading involves risk, and past performance is not indicative of future results.
Test the indicator on a demo account to understand its behavior before using it in live trading.
Feedback is welcome! If you have suggestions for improvements, feel free to share them in the comments.
*Auto Backtest & Optimize EngineFull-featured Engine for Automatic Backtesting and parameter optimization. Allows you to test millions of different combinations of stop-loss and take profit parameters, including on any connected indicators.
⭕️ Key Futures
Quickly identify the optimal parameters for your strategy.
Automatically generate and test thousands of parameter combinations.
A simple Genetic Algorithm for result selection.
Saves time on manual testing of multiple parameters.
Detailed analysis, sorting, filtering and statistics of results.
Detailed control panel with many tooltips.
Display of key metrics: Profit, Win Rate, etc..
Comprehensive Strategy Score calculation.
In-depth analysis of the performance of different types of stop-losses.
Possibility to use to calculate the best Stop-Take parameters for your position.
Ability to test your own functions and signals.
Customizable visualization of results.
Flexible Stop-Loss Settings:
• Auto ━ Allows you to test all types of Stop Losses at once(listed below).
• S.VOLATY ━ Static stop based on volatility (Fixed, ATR, STDEV).
• Trailing ━ Classic trailing stop following the price.
• Fast Trail ━ Accelerated trailing stop that reacts faster to price movements.
• Volatility ━ Dynamic stop based on volatility indicators.
• Chandelier ━ Stop based on price extremes.
• Activator ━ Dynamic stop based on SAR.
• MA ━ Stop based on moving averages (9 different types).
• SAR ━ Parabolic SAR (Stop and Reverse).
Advanced Take-Profit Options:
• R:R: Risk/Reward ━ sets TP based on SL size.
• T.VOLATY ━ Calculation based on volatility indicators (Fixed, ATR, STDEV).
Testing Modes:
• Stops ━ Cyclical stop-loss testing
• Pivot Point Example ━ Example of using pivot points
• External Example ━ Built-in example how test functions with different parameters
• External Signal ━ Using external signals
⭕️ Usage
━ First Steps:
When opening, select any point on the chart. It will not affect anything until you turn on Manual Start mode (more on this below).
The chart will immediately show the best results of the default Auto mode. You can switch Part's to try to find even better results in the table.
Now you can display any result from the table on the chart by entering its ID in the settings.
Repeat steps 3-4 until you determine which type of Stop Loss you like best. Then set it in the settings instead of Auto mode.
* Example: I flipped through 14 parts before I liked the first result and entered its ID so I could visually evaluate it on the chart.
Then select the stop loss type, choose it in place of Auto mode and repeat steps 3-4 or immediately follow the recommendations of the algorithm.
Now the Genetic Algorithm at the bottom right will prompt you to enter the Parameters you need to search for and select even better results.
Parameters must be entered All at once before they are updated. Enter recommendations strictly in fields with the same names.
Repeat steps 5-6 until there are approximately 10 Part's left or as you like. And after that, easily pour through the remaining Parts and select the best parameters.
━ Example of the finished result.
━ Example of use with Takes
You can also test at the same time along with Take Profit. In this example, I simply enabled Risk/Reward mode and immediately specified in the TP field Maximum RR, Minimum RR and Step. So in this example I can test (3-1) / 0.1 = 20 Takes of different sizes. There are additional tips in the settings.
━
* Soon you will start to understand how the system works and things will become much easier.
* If something doesn't work, just reset the engine settings and start over again.
* Use the tips I have left in the settings and on the Panel.
━ Details:
Sort ━ Sorting results by Score, Profit, Trades, etc..
Filter ━ Filtring results by Score, Profit, Trades, etc..
Trade Type ━ Ability to disable Long\Short but only from statistics.
BackWin ━ Backtest Window Number of Candle the script can test.
Manual Start ━ Enabling it will allow you to call a Stop from a selected point. which you selected when you started the engine.
* If you have a real open position then this mode can help to save good Stop\Take for it.
1 - 9 Сheckboxs ━ Allow you to disable any stop from Auto mode.
Ex Source - Allow you to test Stops/Takes from connected indicators.
Connection guide:
//@version=6
indicator("My script")
rsi = ta.rsi(close, 14)
buy = not na(rsi) and ta.crossover (rsi, 40) // OS = 40
sell = not na(rsi) and ta.crossunder(rsi, 60) // OB = 60
Signal = buy ? +1 : sell ? -1 : 0
plot(Signal, "🔌Connector🔌", display = display.none)
* Format the signal for your indicator in a similar style and then select it in Ex Source.
⭕️ How it Works
Hypothesis of Uniform Distribution of Rare Elements After Mixing.
'This hypothesis states that if an array of N elements contains K valid elements, then after mixing, these valid elements will be approximately uniformly distributed.'
'This means that in a random sample of k elements, the proportion of valid elements should closely match their proportion in the original array, with some random variation.'
'According to the central limit theorem, repeated sampling will result in an average count of valid elements following a normal distribution.'
'This supports the assumption that the valid elements are evenly spread across the array.'
'To test this hypothesis, we can conduct an experiment:'
'Create an array of 1,000,000 elements.'
'Select 1,000 random elements (1%) for validation.'
'Shuffle the array and divide it into groups of 1,000 elements.'
'If the hypothesis holds, each group should contain, on average, 1~ valid element, with minor variations.'
* I'd like to attach more details to My hypothesis but it won't be very relevant here. Since this is a whole separate topic, I will leave the minimum part for understanding the engine.
Practical Application
To apply this hypothesis, I needed a way to generate and thoroughly mix numerous possible combinations. Within Pine, generating over 100,000 combinations presents significant challenges, and storing millions of combinations requires excessive resources.
I developed an efficient mechanism that generates combinations in random order to address these limitations. While conventional methods often produce duplicates or require generating a complete list first, my approach guarantees that the first 10% of possible combinations are both unique and well-distributed. Based on my hypothesis, this sampling is sufficient to determine optimal testing parameters.
Most generators and randomizers fail to accommodate both my hypothesis and Pine's constraints. My solution utilizes a simple Linear Congruential Generator (LCG) for pseudo-randomization, enhanced with prime numbers to increase entropy during generation. I pre-generate the entire parameter range and then apply systematic mixing. This approach, combined with a hybrid combinatorial array-filling technique with linear distribution, delivers excellent generation quality.
My engine can efficiently generate and verify 300 unique combinations per batch. Based on the above, to determine optimal values, only 10-20 Parts need to be manually scrolled through to find the appropriate value or range, eliminating the need for exhaustive testing of millions of parameter combinations.
For the Score statistic I applied all the same, generated a range of Weights, distributed them randomly for each type of statistic to avoid manual distribution.
Score ━ based on Trade, Profit, WinRate, Profit Factor, Drawdown, Sharpe & Sortino & Omega & Calmar Ratio.
⭕️ Notes
For attentive users, a little tricks :)
To save time, switch parts every 3 seconds without waiting for it to load. After 10-20 parts, stop and wait for loading. If the pause is correct, you can switch between the rest of the parts without loading, as they will be cached. This used to work without having to wait for a pause, but now it does slower. This will save a lot of time if you are going to do a deeper backtest.
Sometimes you'll get the error “The scripts take too long to execute.”
For a quick fix you just need to switch the TF or Ticker back and forth and most likely everything will load.
The error appears because of problems on the side of the site because the engine is very heavy. It can also appear if you set too long a period for testing in BackWin or use a heavy indicator for testing.
Manual Start - Allow you to Start you Result from any point. Which in turn can help you choose a good stop-stick for your real position.
* It took me half a year from idea to current realization. This seems to be one of the few ways to build something automatic in backtest format and in this particular Pine environment. There are already better projects in other languages, and they are created much easier and faster because there are no limitations except for personal PC. If you see solutions to improve this system I would be glad if you share the code. At the moment I am tired and will continue him not soon.
Also You can use my previosly big Backtest project with more manual settings(updated soon)
AI Adaptive Oscillator [PhenLabs]📊 Algorithmic Adaptive Oscillator
Version: PineScript™ v6
📌 Description
The AI Adaptive Oscillator is a sophisticated technical indicator that employs ensemble learning and adaptive weighting techniques to analyze market conditions. This innovative oscillator combines multiple traditional technical indicators through an AI-driven approach that continuously evaluates and adjusts component weights based on historical performance. By integrating statistical modeling with machine learning principles, the indicator adapts to changing market dynamics, providing traders with a responsive and reliable tool for market analysis.
🚀 Points of Innovation:
Ensemble learning framework with adaptive component weighting
Performance-based scoring system using directional accuracy
Dynamic volatility-adjusted smoothing mechanism
Intelligent signal filtering with cooldown and magnitude requirements
Signal confidence levels based on multi-factor analysis
🔧 Core Components
Ensemble Framework : Combines up to five technical indicators with performance-weighted integration
Adaptive Weighting : Continuous performance evaluation with automated weight adjustment
Volatility-Based Smoothing : Adapts sensitivity based on current market volatility
Pattern Recognition : Identifies potential reversal patterns with signal qualification criteria
Dynamic Visualization : Professional color schemes with gradient intensity representation
Signal Confidence : Three-tiered confidence assessment for trading signals
🔥 Key Features
The indicator provides comprehensive market analysis through:
Multi-Component Ensemble : Integrates RSI, CCI, Stochastic, MACD, and Volume-weighted momentum
Performance Scoring : Evaluates each component based on directional prediction accuracy
Adaptive Smoothing : Automatically adjusts based on market volatility
Pattern Detection : Identifies potential reversal patterns in overbought/oversold conditions
Signal Filtering : Prevents excessive signals through cooldown periods and minimum change requirements
Confidence Assessment : Displays signal strength through intuitive confidence indicators (average, above average, excellent)
🎨 Visualization
Gradient-Filled Oscillator : Color intensity reflects strength of market movement
Clear Signal Markers : Distinct bullish and bearish pattern signals with confidence indicators
Range Visualization : Clean representation of oscillator values from -6 to 6
Zero Line : Clear demarcation between bullish and bearish territory
Customizable Colors : Color schemes that can be adjusted to match your chart style
Confidence Symbols : Intuitive display of signal confidence (no symbol, +, or ++) alongside direction markers
📖 Usage Guidelines
⚙️ Settings Guide
Color Settings
Bullish Color
Default: #2b62fa (Blue)
This setting controls the color representation for bullish movements in the oscillator. The color appears when the oscillator value is positive (above zero), with intensity indicating the strength of the bullish momentum. A brighter shade indicates stronger bullish pressure.
Bearish Color
Default: #ce9851 (Amber)
This setting determines the color representation for bearish movements in the oscillator. The color appears when the oscillator value is negative (below zero), with intensity reflecting the strength of the bearish momentum. A more saturated shade indicates stronger bearish pressure.
Signal Settings
Signal Cooldown (bars)
Default: 10
Range: 1-50
This parameter sets the minimum number of bars that must pass before a new signal of the same type can be generated. Higher values reduce signal frequency and help prevent overtrading during choppy market conditions. Lower values increase signal sensitivity but may generate more false positives.
Min Change For New Signal
Default: 1.5
Range: 0.5-3.0
This setting defines the minimum required change in oscillator value between consecutive signals of the same type. It ensures that new signals represent meaningful changes in market conditions rather than minor fluctuations. Higher values produce fewer but potentially higher-quality signals, while lower values increase signal frequency.
AI Core Settings
Base Length
Default: 14
Minimum: 2
This fundamental setting determines the primary calculation period for all technical components in the ensemble (RSI, CCI, Stochastic, etc.). It represents the lookback window for each component’s base calculation. Shorter periods create a more responsive but potentially noisier oscillator, while longer periods produce smoother signals with potential lag.
Adaptive Speed
Default: 0.1
Range: 0.01-0.3
Controls how quickly the oscillator adapts to new market conditions through its volatility-adjusted smoothing mechanism. Higher values make the oscillator more responsive to recent price action but potentially more erratic. Lower values create smoother transitions but may lag during rapid market changes. This parameter directly influences the indicator’s adaptiveness to market volatility.
Learning Lookback Period
Default: 150
Minimum: 10
Determines the historical data range used to evaluate each ensemble component’s performance and calculate adaptive weights. This setting controls how far back the AI “learns” from past performance to optimize current signals. Longer periods provide more stable weight distribution but may be slower to adapt to regime changes. Shorter periods adapt more quickly but may overreact to recent anomalies.
Ensemble Size
Default: 5
Range: 2-5
Specifies how many technical components to include in the ensemble calculation.
Understanding The Interaction Between Settings
Base Length and Learning Lookback : The base length determines the reactivity of individual components, while the lookback period determines how their weights are adjusted. These should be balanced according to your timeframe - shorter timeframes benefit from shorter base lengths, while the lookback should generally be 10-15 times the base length for optimal learning.
Adaptive Speed and Signal Cooldown : These settings control sensitivity from different angles. Increasing adaptive speed makes the oscillator more responsive, while reducing signal cooldown increases signal frequency. For conservative trading, keep adaptive speed low and cooldown high; for aggressive trading, do the opposite.
Ensemble Size and Min Change : Larger ensembles provide more stable signals, allowing for a lower minimum change threshold. Smaller ensembles might benefit from a higher threshold to filter out noise.
Understanding Signal Confidence Levels
The indicator provides three distinct confidence levels for both bullish and bearish signals:
Average Confidence (▲ or ▼) : Basic signal that meets the minimum pattern and filtering criteria. These signals indicate potential reversals but with moderate confidence in the prediction. Consider using these as initial alerts that may require additional confirmation.
Above Average Confidence (▲+ or ▼+) : Higher reliability signal with stronger underlying metrics. These signals demonstrate greater consensus among the ensemble components and/or stronger historical performance. They offer increased probability of successful reversals and can be traded with less additional confirmation.
Excellent Confidence (▲++ or ▼++) : Highest quality signals with exceptional underlying metrics. These signals show strong agreement across oscillator components, excellent historical performance, and optimal signal strength. These represent the indicator’s highest conviction trade opportunities and can be prioritized in your trading decisions.
Confidence assessment is calculated through a multi-factor analysis including:
Historical performance of ensemble components
Degree of agreement between different oscillator components
Relative strength of the signal compared to historical thresholds
✅ Best Use Cases:
Identify potential market reversals through oscillator extremes
Filter trade signals based on AI-evaluated component weights
Monitor changing market conditions through oscillator direction and intensity
Confirm trade signals from other indicators with adaptive ensemble validation
Detect early momentum shifts through pattern recognition
Prioritize trading opportunities based on signal confidence levels
Adjust position sizing according to signal confidence (larger for ++ signals, smaller for standard signals)
⚠️ Limitations
Requires sufficient historical data for accurate performance scoring
Ensemble weights may lag during dramatic market condition changes
Higher ensemble sizes require more computational resources
Performance evaluation quality depends on the learning lookback period length
Even high confidence signals should be considered within broader market context
💡 What Makes This Unique
Adaptive Intelligence : Continuously adjusts component weights based on actual performance
Ensemble Methodology : Combines strength of multiple indicators while minimizing individual weaknesses
Volatility-Adjusted Smoothing : Provides appropriate sensitivity across different market conditions
Performance-Based Learning : Utilizes historical accuracy to improve future predictions
Intelligent Signal Filtering : Reduces noise and false signals through sophisticated filtering criteria
Multi-Level Confidence Assessment : Delivers nuanced signal quality information for optimized trading decisions
🔬 How It Works
The indicator processes market data through five main components:
Ensemble Component Calculation :
Normalizes traditional indicators to consistent scale
Includes RSI, CCI, Stochastic, MACD, and volume components
Adapts based on the selected ensemble size
Performance Evaluation :
Analyzes directional accuracy of each component
Calculates continuous performance scores
Determines adaptive component weights
Oscillator Integration :
Combines weighted components into unified oscillator
Applies volatility-based adaptive smoothing
Scales final values to -6 to 6 range
Signal Generation :
Detects potential reversal patterns
Applies cooldown and magnitude filters
Generates clear visual markers for qualified signals
Confidence Assessment :
Evaluates component agreement, historical accuracy, and signal strength
Classifies signals into three confidence tiers (average, above average, excellent)
Displays intuitive confidence indicators (no symbol, +, ++) alongside direction markers
💡 Note:
The AI Adaptive Oscillator performs optimally when used with appropriate timeframe selection and complementary indicators. Its adaptive nature makes it particularly valuable during changing market conditions, where traditional fixed-weight indicators often lose effectiveness. The ensemble approach provides a more robust analysis by leveraging the collective intelligence of multiple technical methodologies. Pay special attention to the signal confidence indicators to optimize your trading decisions - excellent (++) signals often represent the most reliable trade opportunities.
Average Daily LiquidityIt is important to ensure sufficient stock trading liquidity so that you have sufficient volume to enter the trade and most importantly sufficient liquidity to exit the trade. Because daily trading liquidity can jump around so much by price changes and volume changes, it is important to smooth out the liquidity by using a moving average. Some use a 5 days (trading week) moving average, others use 10 day (2 weeks), 20 day ("month") and some use 65 day (quarter). The default is 10 days based upon the work of Colin Nicholson (The Aggressive Investor and Building Wealth in the Stock Market). Liquidity line changes color dependent upon the chart background luminescence. The amount you are planning to invest in a stock should have a liquidity of 10 (default) times that amount.
EMA 5 Alert Candle ShortThe 5 EMA (Exponential Moving Average) Strategy is a simple yet effective trading strategy that helps traders identify short-term trends and potential entry and exit points. This strategy is widely used in intraday and swing trading, particularly in forex, stocks, and crypto markets.
Components of the 5 EMA Strategy
5 EMA: A fast-moving average that reacts quickly to price movements.
15-minute or 1-hour timeframe (commonly used, but adaptable to other timeframes).
Candlestick Patterns: To confirm entry signals.
How the 5 EMA Strategy Works
Buy (Long) Setup:
Price Above the 5 EMA: The price should be trading above the 5 EMA.
Pullback to the 5 EMA: A minor retracement or consolidation near the 5 EMA.
Bullish Candlestick Confirmation: A bullish candle (e.g., engulfing or pin bar) forms near the 5 EMA.
Entry: Enter a long trade at the close of the bullish candle.
Stop Loss: Place below the recent swing low or 5-10 pips below the 5 EMA.
Take Profit: Aim for a risk-reward ratio of at least 1:2 or trail the stop using a higher EMA (e.g., 10 or 20 EMA).
Sell (Short) Setup:
Price Below the 5 EMA: The price should be trading below the 5 EMA.
Pullback to the 5 EMA: A small retracement towards the 5 EMA.
Bearish Candlestick Confirmation: A bearish candle (e.g., engulfing or pin bar) near the 5 EMA.
Entry: Enter a short trade at the close of the bearish candle.
Stop Loss: Place above the recent swing high or 5-10 pips above the 5 EMA.
Take Profit: Aim for a 1:2 risk-reward ratio or use a trailing stop.
Additional Filters for Better Accuracy
Higher Timeframe Confirmation: Check the trend on a higher timeframe (e.g., 1-hour or 4-hour).
Volume Confirmation: Enter trades when volume is increasing.
Avoid Sideways Market: Use the strategy only when the market is trending.
Advantages of the 5 EMA Strategy
✔️ Simple and easy to use.
✔️ Works well in trending markets.
✔️ Helps traders capture short-term momentum.
Disadvantages
❌ Less effective in choppy or sideways markets.
❌ Requires discipline in following stop-loss rules.
CAPE / Shiller PE Ratio - cristianhkrThe Cyclically Adjusted Price-to-Earnings Ratio (CAPE Ratio), also known as the Shiller P/E Ratio, is a long-term valuation measure for stocks. It was developed by Robert Shiller and smooths out earnings fluctuations by using an inflation-adjusted average of the last 10 years of earnings.
This TradingView Pine Script indicator calculates the CAPE Ratio for a specific stock by:
Fetching historical Earnings Per Share (EPS) data using request.earnings().
Adjusting the EPS for inflation by dividing it by the Consumer Price Index (CPI).
Computing the 10-year (40-quarter) moving average of the inflation-adjusted EPS.
Calculating the CAPE Ratio as (Stock Price) / (10-year Average EPS adjusted for inflation).
Plotting the CAPE Ratio on the chart with a reference line at CAPE = 20, a historically significant threshold.
Cryptolabs Global Liquidity Cycle Momentum IndicatorCryptolabs Global Liquidity Cycle Momentum Indicator (LMI-BTC)
This open-source indicator combines global central bank liquidity data with Bitcoin price movements to identify medium- to long-term market cycles and momentum phases. It is designed for traders who want to incorporate macroeconomic factors into their Bitcoin analysis.
How It Works
The script calculates a Liquidity Index using balance sheet data from four central banks (USA: ECONOMICS:USCBBS, Japan: FRED:JPNASSETS, China: ECONOMICS:CNCBBS, EU: FRED:ECBASSETSW), augmented by the Dollar Index (TVC:DXY) and Chinese 10-year bond yields (TVC:CN10Y). This index is:
- Logarithmically scaled (math.log) to better represent large values like central bank balances and Bitcoin prices.
- Normalized over a 50-period range to balance fluctuations between minimum and maximum values.
- Compared to prior-year values, with the number of bars dynamically adjusted based on the timeframe (e.g., 252 for 1D, 52 for 1W), to compute percentage changes.
The liquidity change is analyzed using a Chande Momentum Oscillator (CMO) (period: 24) to measure momentum trends. A Weighted Moving Average (WMA) (period: 10) acts as a signal line. The Bitcoin price is also plotted logarithmically to highlight parallels with liquidity cycles.
Usage
Traders can use the indicator to:
- Identify global liquidity cycles influencing Bitcoin price trends, such as expansive or restrictive monetary policies.
- Detect momentum phases: Values above 50 suggest overbought conditions, below -50 indicate oversold conditions.
- Anticipate trend reversals by observing CMO crossovers with the signal line.
It performs best on higher timeframes like daily (1D) or weekly (1W) charts. The visualization includes:
- CMO line (green > 50, red < -50, blue neutral), signal line (white), Bitcoin price (gray).
- Horizontal lines at 50, 0, and -50 for improved readability.
Originality
This indicator stands out from other momentum tools like RSI or basic price analysis due to:
- Unique Data Integration: Combines four central bank datasets, DXY, and CN10Y as macroeconomic proxies for Bitcoin.
- Dynamic Prior-Year Analysis: Calculates liquidity changes relative to historical values, adjustable by timeframe.
- Logarithmic Normalization: Enhances visibility of extreme values, critical for cryptocurrencies and macro data.
This combination offers a rare perspective on the interplay between global liquidity and Bitcoin, unavailable in other open-source scripts.
Settings
- CMO Period: Default 24, adjustable for faster/slower signals.
- Signal WMA: Default 10, for smoothing the CMO line.
- Normalization Window: Default 50 periods, customizable.
Users can modify these parameters in the Pine Editor to tailor the indicator to their strategy.
Note
This script is designed for medium- to long-term analysis, not scalping. For optimal results, combine it with additional analyses (e.g., on-chain data, support/resistance levels). It does not guarantee profits but supports informed decisions based on macroeconomic trends.
Data Sources
- Bitcoin: INDEX:BTCUSD
- Liquidity: ECONOMICS:USCBBS, FRED:JPNASSETS, ECONOMICS:CNCBBS, FRED:ECBASSETSW
- Additional: TVC:DXY, TVC:CN10Y
Auto-Length Moving Average + Trend Signals (Zeiierman)█ Overview
The Auto-Length Moving Average + Trend Signals (Zeiierman) is an easy-to-use indicator designed to help traders dynamically adjust their moving average length based on market conditions. This tool adapts in real-time, expanding and contracting the moving average based on trend strength and momentum shifts.
The indicator smooths out price fluctuations by modifying its length while ensuring responsiveness to new trends. In addition to its adaptive length algorithm, it incorporates trend confirmation signals, helping traders identify potential trend reversals and continuations with greater confidence.
This indicator suits scalpers, swing traders, and trend-following investors who want a self-adjusting moving average that adapts to volatility, momentum, and price action dynamics.
█ How It Works
⚪ Dynamic Moving Average Length
The core feature of this indicator is its ability to automatically adjust the length of the moving average based on trend persistence and market conditions:
Expands in strong trends to reduce noise.
Contracts in choppy or reversing markets for faster reaction.
This allows for a more accurate moving average that aligns with current price dynamics.
⚪ Trend Confirmation & Signals
The indicator includes built-in trend detection logic, classifying trends based on market structure. It evaluates trend strength based on consecutive bars and smooths out transitions between bullish, bearish, and neutral conditions.
Uptrend: Price is persistently above the adjusted moving average.
Downtrend: Price remains below the adjusted moving average.
Neutral: Price fluctuates around the moving average, indicating possible consolidation.
⚪ Adaptive Trend Smoothing
A smoothing factor is applied to enhance trend readability while minimizing excessive lag. This balances reactivity with stability, making it easier to follow longer-term trends while avoiding false signals.
█ How to Use
⚪ Trend Identification
Bullish Trend: The indicator confirms an uptrend when the price consistently stays above the dynamically adjusted moving average.
Bearish Trend: A downtrend is recognized when the price remains below the moving average.
⚪ Trade Entry & Exit
Enter long when the dynamic moving average is green and a trend signal occurs. Exit when the price crosses below the dynamic moving average.
Enter short when the dynamic moving average is red and a trend signal occurs. Exit when the price crosses above the dynamic moving average.
█ Slope-Based Reset
This mode resets the trend counter when the moving average slope changes direction.
⚪ Interpretation & Insights
Best for trend-following traders who want to filter out noise and only reset when a clear shift in momentum occurs.
Higher slope length (N): More stable trends, fewer resets.
Lower slope length (N): More reactive to small price swings, frequent resets.
Useful in swing trading to track significant trend reversals.
█ RSI-Based Reset
The counter resets when the Relative Strength Index (RSI) crosses predefined overbought or oversold levels.
⚪ Interpretation & Insights
Best for reversal traders who look for extreme overbought/oversold conditions.
High RSI threshold (e.g., 80/20): Fewer resets, only extreme conditions trigger adjustments.
Lower RSI threshold (e.g., 60/40): More frequent resets, detecting smaller corrections.
Great for detecting exhaustion in trends before potential reversals.
█ Volume-Based Reset
A reset occurs when current volume significantly exceeds its moving average, signaling a shift in market participation.
⚪ Interpretation & Insights
Best for traders who follow institutional activity (high volume often means large players are active).
Higher volume SMA length: More stable trends, only resets on massive volume spikes.
Lower volume SMA length: More reactive to short-term volume shifts.
Useful in identifying breakout conditions and trend acceleration points.
█ Bollinger Band-Based Reset
A reset occurs when price closes above the upper Bollinger Band or below the lower Bollinger Band, signaling potential overextension.
⚪ Interpretation & Insights
Best for traders looking for volatility-based trend shifts.
Higher Bollinger Band multiplier (k = 2.5+): Captures only major price extremes.
Lower Bollinger Band multiplier (k = 1.5): Resets on moderate volatility changes.
Useful for detecting overextensions in strong trends before potential retracements.
█ MACD-Based Reset
A reset occurs when the MACD line crosses the signal line, indicating a momentum shift.
⚪ Interpretation & Insights
Best for momentum traders looking for trend continuation vs. exhaustion signals.
Longer MACD lengths (260, 120, 90): Captures major trend shifts.
Shorter MACD lengths (10, 5, 3): Reacts quickly to momentum changes.
Useful for detecting strong divergences and market shifts.
█ Stochastic-Based Reset
A reset occurs when Stochastic %K crosses overbought or oversold levels.
⚪ Interpretation & Insights
Best for short-term traders looking for fast momentum shifts.
Longer Stochastic length: Filters out false signals.
Shorter Stochastic length: Captures quick intraday shifts.
█ CCI-Based Reset
A reset occurs when the Commodity Channel Index (CCI) crosses predefined overbought or oversold levels. The CCI measures the price deviation from its statistical mean, making it a useful tool for detecting overextensions in price action.
⚪ Interpretation & Insights
Best for cycle traders who aim to identify overextended price deviations in trending or ranging markets.
Higher CCI threshold (e.g., ±200): Detects extreme overbought/oversold conditions before reversals.
Lower CCI threshold (e.g., ±10): More sensitive to trend shifts, useful for early signal detection.
Ideal for detecting momentum shifts before price reverts to its mean or continues trending strongly.
█ Momentum-Based Reset
A reset occurs when Momentum (Rate of Change) crosses zero, indicating a potential shift in price direction.
⚪ Interpretation & Insights
Best for trend-following traders who want to track acceleration vs. deceleration.
Higher momentum length: Captures longer-term shifts.
Lower momentum length: More responsive to short-term trend changes.
█ How to Interpret the Trend Strength Table
The Trend Strength Table provides valuable insights into the current market conditions by tracking how the dynamic moving average is adjusting based on trend persistence. Each metric in the table plays a role in understanding the strength, longevity, and stability of a trend.
⚪ Counter Value
Represents the current length of trend persistence before a reset occurs.
The higher the counter, the longer the current trend has been in place without resetting.
When this value reaches the Counter Break Threshold, the moving average resets and contracts to become more reactive.
Example:
A low counter value (e.g., 10) suggests a recent trend reset, meaning the market might be changing directions frequently.
A high counter value (e.g., 495) means the trend has been ongoing for a long time, indicating strong trend persistence.
⚪ Trend Strength
Measures how strong the current trend is based on the trend confirmation logic.
Higher values indicate stronger trends, while lower values suggest weaker trends or consolidations.
This value is dynamic and updates based on price action.
Example:
Trend Strength of 760 → Indicates a high-confidence trend.
Trend Strength of 50 → Suggests weak price action, possibly a choppy market.
⚪ Highest Trend Score
Tracks the strongest trend score recorded during the session.
Helps traders identify the most dominant trend observed in the timeframe.
This metric is useful for analyzing historical trend strength and comparing it with current conditions.
Example:
Highest Trend Score = 760 → Suggests that at some point, there was a strong trend in play.
If the current trend strength is much lower than this value, it could indicate trend exhaustion.
⚪ Average Trend Score
This is a rolling average of trend strength across the session.
Provides a bigger picture of how the trend strength fluctuates over time.
If the average trend score is high, the market has had persistent trends.
If it's low, the market may have been choppy or sideways.
Example:
Average Trend Score of 147 vs. Current Trend Strength of 760 → Indicates that the current trend is significantly stronger than the historical average, meaning a breakout might be occurring.
Average Trend Score of 700+ → Suggests a strong trending market overall.
█ Settings
⚪ Dynamic MA Controls
Base MA Length – Sets the starting length of the moving average before dynamic adjustments.
Max Dynamic Length – Defines the upper limit for how much the moving average can expand.
Trend Confirmation Length – The number of bars required to validate an uptrend or downtrend.
⚪ Reset & Adaptive Conditions
Reset Condition Type – Choose what triggers the moving average reset (Slope, RSI, Volume, MACD, etc.).
Trend Smoothing Factor – Adjusts how smoothly the moving average responds to price changes.
-----------------
Disclaimer
The content provided in my scripts, indicators, ideas, algorithms, and systems is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
Custom Support LineIt is made with the following conditions in mind.
1. At the center of the candle at the moment,
Out of the last 10 candles, the low price (L) is within 3% of each other, drawing one line at the low prices of the candles.
2. Out of the last 10 candles, the market price (O) is within 3% of each other, drawing one line at the low end of each candle.
3.Out of the last 10 candles, the closing price (C) is within 3% of each other, and one line is drawn at the lower prices of the candles.
4. Draw one line when the three lines match the above three conditions.
We wanted to create a clear support line according to the above conditions.
Display MB on BarsDescription
The "Display MB on Bars" Pine Script indicator is designed to visually represent Market Breadth values and R4.5 scores on trading charts. This script enables traders to highlight and analyze key market behavior using pre-defined thresholds for MB scores and dynamically calculated R4.5 values. Additionally, it includes a moving average status table to assess price levels relative to the 10-day and 20-day moving averages.
Features:
1. COB Date Matching: Displays data corresponding to specific "COB dates" provided by the user.
2. MB Value Visualization:
o Highlights bars with a background color based on MB values:
Red if MB ≤ MB_Red (default: -1).
Green if MB ≥ MB_Green (default: 3).
3. R4.5 Scores Display:
o Creates a label on the chart with the MB and R4.5 values when conditions are met (e.g., R4.5 > 200 or specific MB thresholds).
4. Index Moving Average Comparison:
o Calculates 10-day and 20-day moving averages for the selected symbol (default: NSE:NIFTYMIDSML400).
o Shows the price position relative to these moving averages in a table.
How to Use:
1. Configure Inputs:
o COB Dates: Enter a comma-separated list of dates in the format DD-MM-YYYY.
o MB Values: Provide the corresponding MB scores for the COB dates.
o R4.5 Values: Provide the R4.5 scores for the COB dates.
o Set the thresholds for MB values (MB Red<= and MB Green>=).
o Toggle features like MB, RS (R4.5), and the moving average status table.
2. Interpret the Output:
o Observe background colors on the bars:
Red: Indicates MB is less than or equal to the lower threshold.
Green: Indicates MB exceeds the upper threshold.
o Check labels above bars for R4.5 and MB values when conditions are met.
o Refer to the status table on the top-right corner to understand price positions relative to 10-day and 20-day moving averages.
This script is especially useful for traders seeking insights into custom metrics like MB and R4.5, enabling quick identification of key patterns and trends in the market.
Dynamic Market Structure DetectorTitle: Dynamic Market Structure Detector – Real-Time BoS & ChoCH Signals
Short Description:
Identify market structure dynamically with real-time Break of Structure (BoS) and Change of Character (ChoCH) signals. Highlight untested support and resistance zones to improve trading precision.
Full Description:
The Dynamic Market Structure Detector is a powerful TradingView indicator designed for traders who want to automate the identification of key market structure levels. This indicator simplifies market analysis by dynamically tracking swing highs and lows, marking critical Break of Structure (BoS) and Change of Character (ChoCH) points, and highlighting untested support and resistance zones.
Key Features:
1. Real-Time Signals:
• Marks Break of Structure (BoS) and Change of Character (ChoCH) points as they occur.
• Automatically updates as the market evolves.
2. Dynamic Swing Highs and Lows:
• Tracks swing highs and lows based on user-defined sensitivity (Swing Length).
• Adjust swing length to tailor signals for intraday or swing trading.
3. Untested Zones Highlight:
• Visualize untested support and resistance zones dynamically.
• Opacity settings allow customization for better chart readability.
4. Customizable Inputs:
• Swing Length:
Adjust the sensitivity of BoS and ChoCH signals.
• Smaller Swing Length values (e.g., 3–5): Capture short-term market movements, ideal for intraday trading.
• Larger Swing Length values (e.g., 10–20): Focus on significant market structure changes for swing or positional trading.
Experiment with these values to find the best fit for your trading style.
• Untested Zone Opacity:
Control the visibility of highlighted support and resistance zones.
• Lower opacity values (e.g., 10–50): Make the zones more prominent, helpful for darker chart backgrounds.
• Higher opacity values (e.g., 70–90): Provide subtle highlights, better suited for lighter chart setups.
• A value of 100% renders the zones completely transparent (invisible).
Use this setting to customize the visual appearance of your chart while still retaining key zone information.
5. User-Friendly Visualization:
• Color-coded labels for BoS (Green) and ChoCH (Red).
• Highlight zones for untested areas using customizable colors (Support: Blue, Resistance: Orange).
Why Use This Indicator?
• Simplifies market structure analysis by automating key calculations.
• Helps traders identify potential trend reversals and continuation points.
• Reduces the need for manual charting, saving time and effort.
• Provides visual clarity on untested zones for better decision-making.
Recommended Usage:
• Intraday Traders: Use smaller Swing Length values (e.g., 3–5) to capture short-term market movements.
• Swing Traders: Opt for higher Swing Length values (e.g., 10–20) to focus on larger market structure changes.
• Monitor untested zones for potential price reactions, enhancing your trade entries and exits.
Notes :
This indicator is best suited for traders who prefer price action trading and market structure analysis. While the indicator provides reliable insights, it is recommended to use it in conjunction with other analysis tools for a holistic trading approach.
Credits:
Developed by TradeTech Analysis to empower traders with automated tools for smarter trading decisions.
Breakout Detection using EMAs and Mansfield Relative StrengthThis script identifies breakout opportunities based on a combination of price action, volume, and relative strength. It is designed for daily timeframe charts and helps traders pinpoint strong bullish setups with the following criteria:
Price Action: Stock price is above both the 10-day EMA and 5-week EMA.
EMA Trends: The 10-day EMA is above the 20-day EMA, and the 5-week EMA is above the 10-week EMA, confirming bullish momentum.
Customizable Parameters: Customize the index for the Mansfield Relative Strength, the volume multiplier, and the price breakout look-back period.
Price Breakout: The price is at a 3-month high, indicating strength.
Volume Breakout: A volume spike occurs, surpassing the 20-day average volume by a user-defined multiplier.
Features:
Generates clear breakout signals with a green triangle below the bar.
Integrated Mansfield Relative Strength for relative performance analysis.
Alerts for when all conditions are met, ensuring you never miss an opportunity.
How to Use:
Add this script to a daily chart of your chosen stock.
Look for green triangle signals indicating a potential breakout.
Adjust the parameters to suit your trading strategy and preferred index for the Mansfield Relative Strength.
This tool is ideal for swing traders looking to combine technical analysis with relative strength metrics for high-conviction bullish setups.
Composite Indicator (CCI + ATR)Composite Indicator (CCI + ATR)
The Composite Indicator (CCI + ATR) combines the Commodity Channel Index (CCI) with the Average True Range (ATR) , providing traders with a dynamic tool for identifying entry and exit points based on momentum and volatility. This indicator is particularly useful for markets like cryptocurrencies, which often exhibit sharp sell-offs and gradual upward trends.
Key Features
Momentum Analysis with CCI: The CCI calculates price momentum by comparing the current price level to its average over a specific period. The indicator generates signals when CCI crosses predefined thresholds.
- Buy Signal: Triggered when CCI crosses above the lower threshold (e.g., -100).
- Sell Signal: Triggered when CCI crosses below the upper threshold (e.g., +100).
Volatility Filtering with ATR: The ATR measures market volatility, ensuring signals occur only during significant price movements.
Separate multipliers for buy and sell signals allow tailored filtering based on market behavior.
Stop Loss Calculation: Dynamic stop loss levels are calculated using the ATR multiplier to adapt to market volatility, offering better risk management.
How It Works
CCI Calculation: The CCI is calculated using the typical price ((High + Low + Close) / 3) and a user-defined length. It detects momentum changes by measuring deviations from the average price.
ATR Calculation: The ATR determines the average price range over a specified period, identifying the market’s volatility. The ATR SMA acts as a baseline to filter signals.
Buy Signal: A buy signal is triggered when:
- CCI crosses above the lower threshold (e.g., -100).
- ATR exceeds its SMA multiplied by the buy multiplier (e.g., 1.0).
Sell Signal: A sell signal is triggered when:
- CCI crosses below the upper threshold (e.g., +100).
- ATR exceeds its SMA multiplied by the sell multiplier (e.g., 0.95).
Stop Loss Integration:
- Long positions: Stop loss = Low – (ATR * ATR Multiplier)
- Short positions: Stop loss = High + (ATR * ATR Multiplier)
Advantages
Combines momentum (CCI) and volatility (ATR) for precise signal generation.
Customizable thresholds and multipliers for different market conditions.
Dynamic stop loss ensures better risk management in volatile markets.
Suggested Parameter Settings
CCI Length: 20 (default). Adjust as follows:
- 10–15: Shorter timeframes (e.g., 5-15 minutes).
- 20: General use for 1-hour timeframes.
- 30–50: Longer timeframes (e.g., 4-hour or daily charts).
CCI Threshold: 100 (default). Adjust as follows:
- 50–75: For more frequent signals in ranging markets.
- 100: Balanced for most trading conditions.
- 150–200: For strong trends to reduce noise.
ATR Length: 14 (default). Adjust as follows:
- 10–14: For assets with moderate volatility.
- 20: For assets with lower volatility.
ATR Buy Multiplier: 1.0 (default). Adjust as follows:
- 0.9–1.0: For gradual uptrends in crypto markets.
- 1.1–1.2: For stronger trend filtering.
ATR Sell Multiplier: 0.95 (default). Adjust as follows:
- 0.8–0.95: For sharp sell-offs.
- 1.0–1.1: For stable downward trends.
ATR Multiplier (Stop Loss): 1.5 (default). Adjust as follows:
- 1.0–1.2: For shorter timeframes or less volatile markets.
- 2.0–2.5: For highly volatile markets like cryptocurrencies.
Example Use Cases
Scalping (5-15 minute charts): Use CCI Length = 10, CCI Threshold = 75, ATR Buy Multiplier = 0.9, ATR Sell Multiplier = 0.8.
Day Trading (1-hour charts): Use CCI Length = 20, CCI Threshold = 100, ATR Buy Multiplier = 1.0, ATR Sell Multiplier = 0.95.
Swing Trading (4-hour or daily charts): Use CCI Length = 30, CCI Threshold = 150, ATR Buy Multiplier = 1.2, ATR Sell Multiplier = 1.0.
Final Thoughts The Composite Indicator (CCI + ATR) is a versatile tool designed to enhance trading decisions by combining momentum analysis with volatility filtering. Whether scalping or swing trading, this indicator provides actionable insights and robust risk management to navigate complex markets effectively.
Dynamic Support and Resistance Pivot Strategy The Dynamic Support and Resistance Pivot Strategy is a flexible and adaptive tool designed to identify short-term support and resistance levels using the concept of price pivots.
### Key Elements of the Strategy
1. Pivot points as support and resistance levels
Pivots are significant turning points on the price chart, often marking local highs and lows where the price has reversed direction. A pivot high occurs when the price forms a local peak, while a pivot low occurs when the price forms a local trough. When a new pivot high is formed, it creates a resistance level. Conversely, when a new pivot low is formed, it creates a support level.
The strategy continuously updates these levels as new pivots are detected, ensuring they remain relevant to the current market conditions. By identifying these price levels, the strategy dynamically adjusts to market conditions, allowing it to adapt to both trending and ranging markets, since it has a long target and can perform reversal operations.
2. Entry Criteria
- Buy (Long): A long position is triggered when the price is near the support level and then crosses it from below to above. This suggests that the price has found support and may start moving upwards.
- Sell (Short): A short position is triggered when the price is near the resistance level and then crosses it from above to below. This indicates that the price may be reversing and moving downward.
3. Support/Resistance distance (%)
- This parameter establishes a percentage range around the identified support and resistance level. For example, if the Support Resistance Distance is 0.4% (default), the closing price must be within a range of 0.4% above support or below the resistance to be considered "close" and trigger a trade.
4. Exit criteria
- Take profit = 27 %
- Stop loss = 10 %
- Reversal if a new entry point is identified in the opposite direction
5. No Repainting
- The Dynamic Support and Resistance Pivot Strategy is not subject to repainting.
6. Position Sizing by Equity and risk management
- This strategy has a default configuration to operate with 35% of the equity. The stop loss is set to 10% from the entry price. This way, the strategy is putting at risk about 10% of 35% of equity, that is, around 3.5% of equity for each trade. The percentage of equity and stop loss can be adjusted by the user according to their risk management.
7. Backtest results
- This strategy was subjected to backtest and operations in replay mode on **1000000MOGUSDT.P**, with the inclusion of transaction fees at 0.12% and slipagge of 5 ticks, and the past results have shown consistent profitability. Past results are no guarantee of future results. The strategy's backtest results may even be due to overfitting with past data.
8. Chart Visualization
- Support and resistance levels are displayed as green (support) and red (resistance) lines.
- Pivot prices are displayed as green (pivot low) and red (pivot high) labels.
In this image above, the Support/Resistance distance (%) parameter was set to 0.8.
9. Default Configuration
Chart Timeframe: 1h
Pivot Lengh: 2
Support/Resistance distance (%): 0.4*
Stop Loss: 10 %
Take Profit: 27 %
* This parameter can alternatively be set to 0.8.
10. Alternative Configuration
Chart Timeframe: 20 min
Pivot Lengh: 4
Support/Resistance distance (%): 0.1
Stop Loss: 10 %
Take Profit: 25 %
BYBIT:1000000MOGUSDT.P
AlphaEdge Crypto Tracker [CHE]AlphaEdge Crypto Tracker
Efficiently Identify Top Performers and Underperformers Among 40 Crypto Assets at a Glance
In the fast-paced world of cryptocurrency trading, staying ahead requires the ability to quickly assess the performance of multiple assets simultaneously. AlphaEdge Crypto Tracker is an advanced Pine Script™ indicator designed for TradingView that empowers traders to effortlessly monitor and evaluate 40 different crypto assets in real-time.
This tool is my Christmas gift to all traders. I wish you all a Merry Christmas and successful trades in the coming year!
Why It’s Important to Identify Winners and Losers Among 40 Assets at a Glance:
1. Time Efficiency: Managing a diverse portfolio can be overwhelming. With AlphaEdge Crypto Tracker, traders can swiftly identify which assets are performing exceptionally well (winners) and which are underperforming (losers) without the need to analyze each asset individually.
2. Informed Decision-Making: By having a clear overview of top gainers and losers, traders can make strategic decisions such as reallocating investments, taking profits, or cutting losses, thereby optimizing their trading strategies.
3. Risk Management: Quickly spotting underperforming assets helps in mitigating potential losses and adjusting positions to maintain a balanced and profitable portfolio.
4. Opportunity Identification: Recognizing top-performing assets allows traders to capitalize on emerging trends and maximize their returns by focusing on the most promising opportunities.
Key Features of AlphaEdge Crypto Tracker :
- Comprehensive Asset Tracking: Monitors 40 crypto assets simultaneously, providing a broad view of the market landscape.
- Max Gain and Adjusted Max Loss Calculations: Utilizes a 14-bar (configurable) period to calculate the highest gains and the adjusted maximum losses for each asset, offering insights into potential profitability and risk.
- Dynamic Ranking: Automatically sorts and ranks assets based on their performance, highlighting the top 10 gainers and top 10 losers for easy comparison.
- Customizable Display:
- Table Settings: Adjust the size, position, and colors of the performance table to fit your chart layout.
- Interactive Tooltips: Hover over asset names to view detailed tooltips, enhancing usability and information accessibility.
- Visual Alerts: Changes in asset performance are visually indicated through background color updates, allowing for immediate recognition of significant shifts.
- User-Friendly Interface: Intuitive table layout with clear headers and organized data presentation, making it easy for traders of all levels to interpret the information.
How It Works:
1. Data Calculation: For each of the 40 tracked assets, AlphaEdge Crypto Tracker calculates the maximum gain and adjusted maximum loss over the defined trading period.
2. Sorting and Ranking: The assets are sorted based on their maximum gains and adjusted maximum losses, automatically updating to reflect the latest market movements.
3. Real-Time Display: The top 10 gainers and losers are displayed in a neatly organized table directly on your TradingView chart, providing immediate visual insights.
4. Customization: Users can tailor the tracking period, select specific assets to monitor, and adjust the table’s appearance to match their trading style and preferences.
Conclusion:
AlphaEdge Crypto Tracker is an essential tool for cryptocurrency traders seeking to enhance their market analysis and decision-making processes. By providing a comprehensive and customizable overview of multiple assets, it enables traders to efficiently identify profitable opportunities and manage risks effectively. Whether you’re a seasoned trader or just starting, AlphaEdge Crypto Tracker equips you with the insights needed to navigate the dynamic crypto market with confidence.
Get Started Today:
Integrate AlphaEdge Crypto Tracker into your TradingView setup and take control of your crypto trading strategy with unparalleled clarity and precision.
Disclaimer:
The content provided, including all code and materials, is strictly for educational and informational purposes only. It is not intended as, and should not be interpreted as, financial advice, a recommendation to buy or sell any financial instrument, or an offer of any financial product or service. All strategies, tools, and examples discussed are provided for illustrative purposes to demonstrate coding techniques and the functionality of Pine Script within a trading context.
Any results from strategies or tools provided are hypothetical, and past performance is not indicative of future results. Trading and investing involve high risk, including the potential loss of principal, and may not be suitable for all individuals. Before making any trading decisions, please consult with a qualified financial professional to understand the risks involved.
By using this script, you acknowledge and agree that any trading decisions are made solely at your discretion and risk.
License Information:
This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0. You can view the full license (mozilla.org).
© chervolino
Enhanced Kaufman Adaptive Moving Average (KAMA) with Bollinger B# Enhanced Kaufman Adaptive Moving Average (KAMA) with Bollinger Bands
## Overview
This indicator combines the Kaufman Adaptive Moving Average (KAMA) with Bollinger Bands to create a comprehensive trading system. It provides adaptive trend following capabilities while measuring market volatility and potential reversal points.
## Key Features
- Adaptive moving average that adjusts to market conditions
- Dynamic Bollinger Bands for volatility measurement
- Color-coded KAMA line indicating trend direction
- Integrated buy/sell signals based on multiple confirmations
- Customizable parameters for both KAMA and Bollinger Bands
- Optional bar confirmation wait feature
- Built-in alert conditions for trade signals
## Main Components
### 1. Kaufman Adaptive Moving Average (KAMA)
- Adapts to market volatility using an efficiency ratio
- Changes color based on trend direction (green for uptrend, red for downtrend)
- Adjustable parameters for fine-tuning:
- Base Length: Controls the main calculation period (default: 10)
- Fast EMA Length: For rapid market response (default: 2)
- Slow EMA Length: For stable market conditions (default: 30)
### 2. Bollinger Bands
- Standard deviation-based volatility bands
- Customizable length and standard deviation multiplier
- Includes expansion threshold for volatility measurement
- Components:
- Upper Band: Upper volatility threshold
- Middle Band: Simple moving average
- Lower Band: Lower volatility threshold
## Signal Generation
### Buy Signals
Generated when:
1. KAMA color changes from red to green
2. Price closes above KAMA
3. Price closes above the middle Bollinger Band
4. Signals are marked with:
- Green triangles below the candles
- "B" labels for easy identification
### Sell Signals
Generated when:
1. KAMA color changes from green to red
2. Price closes below KAMA
3. Price closes below the middle Bollinger Band
4. Signals are marked with:
- Red triangles above the candles
- "S" labels for easy identification
## Customizable Parameters
### KAMA Settings
- Base Length (1-50)
- Fast EMA Length (1-10)
- Slow EMA Length (10-50)
- Source Price Selection
- Direction Highlight Toggle
- Bar Confirmation Option
### Bollinger Bands Settings
- Length (default: 20)
- Standard Deviation Multiplier (default: 2.0)
- Expansion Threshold (0.1-3.0)
## Alert Functionality
Built-in alerts for:
- Buy signals with customizable messages
- Sell signals with customizable messages
## Best Practices
### Timeframe Selection
- Works well on multiple timeframes
- Recommended for 15m to 4h charts for optimal signal generation
- Higher timeframes provide more reliable trend signals
### Parameter Optimization
- Adjust KAMA lengths based on trading style:
- Shorter lengths for day trading
- Longer lengths for swing trading
- Fine-tune BB multiplier based on market volatility
- Consider waiting for bar confirmation in volatile markets
### Risk Management
- Use in conjunction with other indicators for confirmation
- Consider market conditions and volatility when trading signals
- Implement proper position sizing and stop-loss levels
## Technical Notes
- Written in Pine Script™ v6
- Overlay indicator (displays on price chart)
- Compatible with all TradingView-supported markets
- Resource-efficient implementation for smooth performance
## Disclaimer
This indicator is provided under the Mozilla Public License 2.0. While it can be a valuable tool for technical analysis, it should not be used as the sole basis for trading decisions. Always combine with proper risk management and additional analysis methods.
Dual Timeframe Stochastic Momentum Index w/buy sell signalsThis indicator combines momentum analysis across two timeframes to identify high-probability trading opportunities. It plots the Stochastic Momentum Index (SMI) for both the chart timeframe and a higher timeframe (default 10 minutes) to help traders align with the broader market trend.
Key Features
Displays SMI and its EMA for both timeframes
Background shading indicates favorable trading conditions
Signal dots mark potential entry points
Customizable parameters for fine-tuning
Signals Explained
Bullish Signals (Green Dots)
Appear when the chart timeframe SMI crosses above its EMA
Only trigger during periods when the higher timeframe shows:
SMI is above its EMA (increasing momentum)
SMI is between -40 and +40 (not overbought/oversold)
Bearish Signals (Red Dots)
Appear when the chart timeframe SMI crosses below its EMA
Only trigger during periods when the higher timeframe shows:
SMI is below its EMA (decreasing momentum)
SMI is between -40 and +40 (not overbought/oversold)
Settings
%K Length: Lookback period for SMI calculation (default: 10)
%D Length: Smoothing period for primary calculation (default: 3)
EMA Length: Smoothing period for signal line (default: 3)
Alternative Timeframe: Higher timeframe for trend analysis (default: 10 minutes)
Best Practices
Use higher timeframe signals to determine market bias
Wait for signal dots in the chart timeframe for entry timing
Avoid trades when higher timeframe SMI is in extreme zones (above 40 or below -40)
Consider additional confirmation from price action or other indicators
Note: This indicator combines trend and momentum analysis but should be used as part of a complete trading strategy that includes proper risk management.
Wick Detection (1 and 0) - AYNETDetailed Scientific Explanation
1. Wick Detection Logic
Definition of a Wick:
A wick, also known as a shadow, represents the price action outside the range of a candlestick's body (the region between open and close).
Upper Wick: Occurs when the high value exceeds the greater of open and close.
Lower Wick: Occurs when the low value is lower than the smaller of open and close.
Upper Wick Detection:
pinescript
Kodu kopyala
bool has_upper_wick = high > math.max(open, close)
This checks if the high price of the candle is greater than the maximum of the open and close prices. If true, an upper wick exists.
Lower Wick Detection:
pinescript
Kodu kopyala
bool has_lower_wick = low < math.min(open, close)
This checks if the low price of the candle is less than the minimum of the open and close prices. If true, a lower wick exists.
2. Binary Representation
The presence of a wick is encoded as a binary value for simplicity and computational analysis:
Upper Wick: Represented as 1 if present, otherwise 0.
pinescript
Kodu kopyala
float upper_wick_binary = has_upper_wick ? 1 : 0
Lower Wick: Represented as 1 if present, otherwise 0. This value is inverted (-1) for visualization purposes.
pinescript
Kodu kopyala
float lower_wick_binary = has_lower_wick ? 1 : 0
3. Visualization with Histograms
The plot function is used to create histograms for visualizing the binary wick data:
Upper Wicks: Plotted as positive values with green columns:
pinescript
Kodu kopyala
plot(upper_wick_binary, title="Upper Wick", color=color.new(color.green, 0), style=plot.style_columns, linewidth=2)
Lower Wicks: Plotted as negative values with red columns:
pinescript
Kodu kopyala
plot(lower_wick_binary * -1, title="Lower Wick", color=color.new(color.red, 0), style=plot.style_columns, linewidth=2)
Features and Applications
1. Wick Visualization:
Upper wicks are displayed as positive green columns.
Lower wicks are displayed as negative red columns.
This provides a clear visual representation of wick presence in historical data.
2. Technical Analysis:
Wick formations often indicate market sentiment:
Upper Wicks: Sellers pushed the price lower after buyers drove it higher, signaling rejection at the top.
Lower Wicks: Buyers pushed the price higher after sellers drove it lower, signaling rejection at the bottom.
3. Signal Generation:
Traders can use wick detection to build strategies, such as identifying key price levels or market reversals.
Enhancements and Future Improvements
1. Wick Length Measurement
Instead of binary detection, measure the actual length of the wick:
pinescript
Kodu kopyala
float upper_wick_length = high - math.max(open, close)
float lower_wick_length = math.min(open, close) - low
This approach allows for thresholds to identify significant wicks:
pinescript
Kodu kopyala
bool significant_upper_wick = upper_wick_length > 10 // For wicks longer than 10 units.
bool significant_lower_wick = lower_wick_length > 10
2. Alerts for Long Wicks
Trigger alerts when significant wicks are detected:
pinescript
Kodu kopyala
alertcondition(significant_upper_wick, title="Long Upper Wick", message="A significant upper wick has been detected.")
alertcondition(significant_lower_wick, title="Long Lower Wick", message="A significant lower wick has been detected.")
3. Combined Wick Analysis
Analyze both upper and lower wicks to assess volatility:
pinescript
Kodu kopyala
float total_wick_length = upper_wick_length + lower_wick_length
bool high_volatility = total_wick_length > 20 // Combined wick length exceeds 20 units.
Conclusion
This script provides a compact and computationally efficient way to detect candlestick wicks and represent them as binary data. By visualizing the data with histograms, traders can easily identify wick formations and use them for technical analysis, signal generation, and volatility assessment. The approach can be extended further to measure wick length, detect significant wicks, and integrate these insights into automated trading systems.
FTMO Rules MonitorFTMO Rules Monitor: Stay on Track with Your FTMO Challenge Goals
TLDR; You can test with this template whether your strategy for one asset would pass the FTMO challenges step 1 then step 2, then with real money conditions.
Passing a prop firm challenge is ... challenging.
I believe a toolkit allowing to test in minutes whether a strategy would have passed a prop firm challenge in the past could be very powerful.
The FTMO Rules Monitor is designed to help you stay within FTMO’s strict risk management guidelines directly on your chart. Whether you’re aiming for the $10,000 or the $200,000 account challenge, this tool provides real-time tracking of your performance against FTMO’s rules to ensure you don’t accidentally breach any limits.
NOTES
The connected indicator for this post doesn't matter.
It's just a dummy double supertrends (see below)
The strategy results for this script post does not matter as I'm posting a FTMO rules template on which you can connect any indicator/strategy.
//@version=5
indicator("Supertrends", overlay=true)
// Supertrend 1 Parameters
var string ST1 = "Supertrend 1 Settings"
st1_atrPeriod = input.int(10, "ATR Period", minval=1, maxval=50, group=ST1)
st1_factor = input.float(2, "Factor", minval=0.5, maxval=10, step=0.5, group=ST1)
// Supertrend 2 Parameters
var string ST2 = "Supertrend 2 Settings"
st2_atrPeriod = input.int(14, "ATR Period", minval=1, maxval=50, group=ST2)
st2_factor = input.float(3, "Factor", minval=0.5, maxval=10, step=0.5, group=ST2)
// Calculate Supertrends
= ta.supertrend(st1_factor, st1_atrPeriod)
= ta.supertrend(st2_factor, st2_atrPeriod)
// Entry conditions
longCondition = direction1 == -1 and direction2 == -1 and direction1 == 1
shortCondition = direction1 == 1 and direction2 == 1 and direction1 == -1
// Optional: Plot Supertrends
plot(supertrend1, "Supertrend 1", color = direction1 == -1 ? color.green : color.red, linewidth=3)
plot(supertrend2, "Supertrend 2", color = direction2 == -1 ? color.lime : color.maroon, linewidth=3)
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Long")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Short")
signal = longCondition ? 1 : shortCondition ? -1 : na
plot(signal, "Signal", display = display.data_window)
To connect your indicator to this FTMO rules monitor template, please update it as follow
Create a signal variable to store 1 for the long/buy signal or -1 for the short/sell signal
Plot it in the display.data_window panel so that it doesn't clutter your chart
signal = longCondition ? 1 : shortCondition ? -1 : na
plot(signal, "Signal", display = display.data_window)
In the FTMO Rules Monitor template, I'm capturing this external signal with this input.source variable
entry_connector = input.source(close, "Entry Connector", group="Entry Connector")
longCondition = entry_connector == 1
shortCondition = entry_connector == -1
🔶 USAGE
This indicator displays essential FTMO Challenge rules and tracks your progress toward meeting each one. Here’s what’s monitored:
Max Daily Loss
• 10k Account: $500
• 25k Account: $1,250
• 50k Account: $2,500
• 100k Account: $5,000
• 200k Account: $10,000
Max Total Loss
• 10k Account: $1,000
• 25k Account: $2,500
• 50k Account: $5,000
• 100k Account: $10,000
• 200k Account: $20,000
Profit Target
• 10k Account: $1,000
• 25k Account: $2,500
• 50k Account: $5,000
• 100k Account: $10,000
• 200k Account: $20,000
Minimum Trading Days: 4 consecutive days for all account sizes
🔹 Key Features
1. Real-Time Compliance Check
The FTMO Rules Monitor keeps track of your daily and total losses, profit targets, and trading days. Each metric updates in real-time, giving you peace of mind that you’re within FTMO’s rules.
2. Color-Coded Visual Feedback
Each rule’s status is shown clearly with a ✓ for compliance or ✗ if the limit is breached. When a rule is broken, the indicator highlights it in red, so there’s no confusion.
3. Completion Notification
Once all FTMO requirements are met, the indicator closes all open positions and displays a celebratory message on your chart, letting you know you’ve successfully completed the challenge.
4. Easy-to-Read Table
A table on your chart provides an overview of each rule, your target, current performance, and whether you’re meeting each goal. The table adjusts its color scheme based on your chart settings for optimal visibility.
5. Dynamic Position Sizing
Integrated ATR-based position sizing helps you manage risk and avoid large drawdowns, ensuring each trade aligns with FTMO’s risk management principles.
Daveatt