Bober XM v2.0# ₿ober XM v2.0 Trading Bot Documentation
**Developer's Note**: While our previous Bot 1.3.1 was removed due to guideline violations, this setback only fueled our determination to create something even better. Rising from this challenge, Bober XM 2.0 emerges not just as an update, but as a complete reimagining with multi-timeframe analysis, enhanced filters, and superior adaptability. This adversity pushed us to innovate further and deliver a strategy that's smarter, more agile, and more powerful than ever before. Challenges create opportunity - welcome to Cryptobeat's finest work yet.
## !!!!You need to tune it for your own pair and timeframe and retune it periodicaly!!!!!
## Overview
The ₿ober XM v2.0 is an advanced dual-channel trading bot with multi-timeframe analysis capabilities. It integrates multiple technical indicators, customizable risk management, and advanced order execution via webhook for automated trading. The bot's distinctive feature is its separate channel systems for long and short positions, allowing for asymmetric trade strategies that adapt to different market conditions across multiple timeframes.
### Key Features
- **Multi-Timeframe Analysis**: Analyze price data across multiple timeframes simultaneously
- **Dual Channel System**: Separate parameter sets for long and short positions
- **Advanced Entry Filters**: RSI, Volatility, Volume, Bollinger Bands, and KEMAD filters
- **Machine Learning Moving Average**: Adaptive prediction-based channels
- **Multiple Entry Strategies**: Breakout, Pullback, and Mean Reversion modes
- **Risk Management**: Customizable stop-loss, take-profit, and trailing stop settings
- **Webhook Integration**: Compatible with external trading bots and platforms
### Strategy Components
| Component | Description |
|---------|-------------|
| **Dual Channel Trading** | Uses either Keltner Channels or Machine Learning Moving Average (MLMA) with separate settings for long and short positions |
| **MLMA Implementation** | Machine learning algorithm that predicts future price movements and creates adaptive bands |
| **Pivot Point SuperTrend** | Trend identification and confirmation system based on pivot points |
| **Three Entry Strategies** | Choose between Breakout, Pullback, or Mean Reversion approaches |
| **Advanced Filter System** | Multiple customizable filters with multi-timeframe support to avoid false signals |
| **Custom Exit Logic** | Exits based on OBV crossover of its moving average combined with pivot trend changes |
### Note for Novice Users
This is a fully featured real trading bot and can be tweaked for any ticker — SOL is just an example. It follows this structure:
1. **Indicator** – gives the initial signal
2. **Entry strategy** – decides when to open a trade
3. **Exit strategy** – defines when to close it
4. **Trend confirmation** – ensures the trade follows the market direction
5. **Filters** – cuts out noise and avoids weak setups
6. **Risk management** – controls losses and protects your capital
To tune it for a different pair, you'll need to start from scratch:
1. Select the timeframe (candle size)
2. Turn off all filters and trend entry/exit confirmations
3. Choose a channel type, channel source and entry strategy
4. Adjust risk parameters
5. Tune long and short settings for the channel
6. Fine-tune the Pivot Point Supertrend and Main Exit condition OBV
This will generate a lot of signals and activity on the chart. Your next task is to find the right combination of filters and settings to reduce noise and tune it for profitability.
### Default Strategy values
Default values are tuned for: Symbol BITGET:SOLUSDT.P 5min candle
Filters are off by default: Try to play with it to understand how it works
## Configuration Guide
### General Settings
| Setting | Description | Default Value |
|---------|-------------|---------------|
| **Long Positions** | Enable or disable long trades | Enabled |
| **Short Positions** | Enable or disable short trades | Enabled |
| **Risk/Reward Area** | Visual display of stop-loss and take-profit zones | Enabled |
| **Long Entry Source** | Price data used for long entry signals | hl2 (High+Low/2) |
| **Short Entry Source** | Price data used for short entry signals | hl2 (High+Low/2) |
The bot allows you to trade long positions, short positions, or both simultaneously. Each direction has its own set of parameters, allowing for fine-tuned strategies that recognize the asymmetric nature of market movements.
### Multi-Timeframe Settings
1. **Enable Multi-Timeframe Analysis**: Toggle 'Enable Multi-Timeframe Analysis' in the Multi-Timeframe Settings section
2. **Configure Timeframes**: Set appropriate higher timeframes based on your trading style:
- Timeframe 1: Default is now 15 minutes (intraday confirmation)
- Timeframe 2: Default is 4 hours (trend direction)
3. **Select Sources per Indicator**: For each indicator (RSI, KEMAD, Volume, etc.), choose:
- The desired timeframe (current, mtf1, or mtf2)
- The appropriate price type (open, high, low, close, hl2, hlc3, ohlc4)
### Entry Strategies
- **Breakout**: Enter when price breaks above/below the channel
- **Pullback**: Enter when price pulls back to the channel
- **Mean Reversion**: Enter when price is extended from the channel
You can enable different strategies for long and short positions.
### Core Components
### Risk Management
- **Position Size**: Control risk with percentage-based position sizing
- **Stop Loss Options**:
- Fixed: Set a specific price or percentage from entry
- ATR-based: Dynamic stop-loss based on market volatility
- Swing: Uses recent swing high/low points
- **Take Profit**: Multiple targets with percentage allocation
- **Trailing Stop**: Dynamic stop that follows price movement
## Advanced Usage Strategies
### Moving Average Type Selection Guide
- **SMA**: More stable in choppy markets, good for higher timeframes
- **EMA/WMA**: More responsive to recent price changes, better for entry signals
- **VWMA**: Adds volume weighting for stronger trends, use with Volume filter
- **HMA**: Balance between responsiveness and noise reduction, good for volatile markets
### Multi-Timeframe Strategy Approaches
- **Trend Confirmation**: Use higher timeframe RSI (mtf2) for overall trend, current timeframe for entries
- **Entry Precision**: Use KEMAD on current timeframe with volume filter on mtf1
- **False Signal Reduction**: Apply RSI filter on mtf1 with strict KEMAD settings
### Market Condition Optimization
| Market Condition | Recommended Settings |
|------------------|----------------------|
| **Trending** | Use Breakout strategy with KEMAD filter on higher timeframe |
| **Ranging** | Use Mean Reversion with strict RSI filter (mtf1) |
| **Volatile** | Increase ATR multipliers, use HMA for moving averages |
| **Low Volatility** | Decrease noise parameters, use pullback strategy |
## Webhook Integration
The strategy features a professional webhook system that allows direct connectivity to your exchange or trading platform of choice through third-party services like 3commas, Alertatron, or Autoview.
The webhook payload includes all necessary parameters for automated execution:
- Entry price and direction
- Stop loss and take profit levels
- Position size
- Custom identifier for webhook routing
## Performance Optimization Tips
1. **Start with Defaults**: Begin with the default settings for your timeframe before customizing
2. **Adjust One Component at a Time**: Make incremental changes and test the impact
3. **Match MA Types to Market Conditions**: Use appropriate moving average types based on the Market Condition Optimization table
4. **Timeframe Synergy**: Create logical relationships between timeframes (e.g., 5min chart with 15min and 4h higher timeframes)
5. **Periodic Retuning**: Markets evolve - regularly review and adjust parameters
## Common Setups
### Crypto Trend-Following
- MLMA with EMA or HMA
- Higher RSI thresholds (75/25)
- KEMAD filter on mtf1
- Breakout entry strategy
### Stock Swing Trading
- MLMA with SMA for stability
- Volume filter with higher threshold
- KEMAD with increased filter order
- Pullback entry strategy
### Forex Scalping
- MLMA with WMA and lower noise parameter
- RSI filter on current timeframe
- Use highest timeframe for trend direction only
- Mean Reversion strategy
## Webhook Configuration
- **Benefits**:
- Automated trade execution without manual intervention
- Immediate response to market conditions
- Consistent execution of your strategy
- **Implementation Notes**:
- Requires proper webhook configuration on your exchange or platform
- Test thoroughly with small position sizes before full deployment
- Consider latency between signal generation and execution
### Backtesting Period
Define a specific historical period to evaluate the bot's performance:
| Setting | Description | Default Value |
|---------|-------------|---------------|
| **Start Date** | Beginning of backtest period | January 1, 2025 |
| **End Date** | End of backtest period | December 31, 2026 |
- **Best Practice**: Test across different market conditions (bull markets, bear markets, sideways markets)
- **Limitation**: Past performance doesn't guarantee future results
## Entry and Exit Strategies
### Dual-Channel System
A key innovation of the Bober XM is its dual-channel approach:
- **Independent Parameters**: Each trade direction has its own channel settings
- **Asymmetric Trading**: Recognizes that markets often behave differently in uptrends versus downtrends
- **Optimized Performance**: Fine-tune settings for both bullish and bearish conditions
This approach allows the bot to adapt to the natural asymmetry of markets, where uptrends often develop gradually while downtrends can be sharp and sudden.
### Channel Types
#### 1. Keltner Channels
Traditional volatility-based channels using EMA and ATR:
| Setting | Long Default | Short Default |
|---------|--------------|---------------|
| **EMA Length** | 37 | 20 |
| **ATR Length** | 13 | 17 |
| **Multiplier** | 1.4 | 1.9 |
| **Source** | low | high |
- **Strengths**:
- Reliable in trending markets
- Less prone to whipsaws than Bollinger Bands
- Clear visual representation of volatility
- **Weaknesses**:
- Can lag during rapid market changes
- Less effective in choppy, non-trending markets
#### 2. Machine Learning Moving Average (MLMA)
Advanced predictive model using kernel regression (RBF kernel):
| Setting | Description | Options |
|---------|-------------|--------|
| **Source MA** | Price data used for MA calculations | Any price source (low/high/close/etc.) |
| **Moving Average Type** | Type of MA algorithm for calculations | SMA, EMA, WMA, VWMA, RMA, HMA |
| **Trend Source** | Price data used for trend determination | Any price source (close default) |
| **Window Size** | Historical window for MLMA calculations | 5+ (default: 16) |
| **Forecast Length** | Number of bars to forecast ahead | 1+ (default: 3) |
| **Noise Parameter** | Controls smoothness of prediction | 0.01+ (default: ~0.43) |
| **Band Multiplier** | Multiplier for channel width | 0.1+ (default: 0.5-0.6) |
- **Strengths**:
- Predictive rather than reactive
- Adapts quickly to changing market conditions
- Better at identifying trend reversals early
- **Weaknesses**:
- More computationally intensive
- Requires careful parameter tuning
- Can be sensitive to input data quality
### Entry Strategies
| Strategy | Description | Ideal Market Conditions |
|----------|-------------|-------------------------|
| **Breakout** | Enters when price breaks through channel bands, indicating strong momentum | High volatility, emerging trends |
| **Pullback** | Enters when price retraces to the middle band after testing extremes | Established trends with regular pullbacks |
| **Mean Reversion** | Enters at channel extremes, betting on a return to the mean | Range-bound or oscillating markets |
#### Breakout Strategy (Default)
- **Implementation**: Enters long when price crosses above the upper band, short when price crosses below the lower band
- **Strengths**: Captures strong momentum moves, performs well in trending markets
- **Weaknesses**: Can lead to late entries, higher risk of false breakouts
- **Optimization Tips**:
- Increase channel multiplier for fewer but more reliable signals
- Combine with volume confirmation for better accuracy
#### Pullback Strategy
- **Implementation**: Enters long when price pulls back to middle band during uptrend, short during downtrend pullbacks
- **Strengths**: Better entry prices, lower risk, higher probability setups
- **Weaknesses**: Misses some strong moves, requires clear trend identification
- **Optimization Tips**:
- Use with trend filters to confirm overall direction
- Adjust middle band calculation for market volatility
#### Mean Reversion Strategy
- **Implementation**: Enters long at lower band, short at upper band, expecting price to revert to the mean
- **Strengths**: Excellent entry prices, works well in ranging markets
- **Weaknesses**: Dangerous in strong trends, can lead to fighting the trend
- **Optimization Tips**:
- Implement strong trend filters to avoid counter-trend trades
- Use smaller position sizes due to higher risk nature
### Confirmation Indicators
#### Pivot Point SuperTrend
Combines pivot points with ATR-based SuperTrend for trend confirmation:
| Setting | Default Value |
|---------|---------------|
| **Pivot Period** | 25 |
| **ATR Factor** | 2.2 |
| **ATR Period** | 41 |
- **Function**: Identifies significant market turning points and confirms trend direction
- **Implementation**: Requires price to respect the SuperTrend line for trade confirmation
#### Weighted Moving Average (WMA)
Provides additional confirmation layer for entries:
| Setting | Default Value |
|---------|---------------|
| **Period** | 15 |
| **Source** | ohlc4 (average of Open, High, Low, Close) |
- **Function**: Confirms trend direction and filters out low-quality signals
- **Implementation**: Price must be above WMA for longs, below for shorts
### Exit Strategies
#### On-Balance Volume (OBV) Based Exits
Uses volume flow to identify potential reversals:
| Setting | Default Value |
|---------|---------------|
| **Source** | ohlc4 |
| **MA Type** | HMA (Options: SMA, EMA, WMA, RMA, VWMA, HMA) |
| **Period** | 22 |
- **Function**: Identifies divergences between price and volume to exit before reversals
- **Implementation**: Exits when OBV crosses its moving average in the opposite direction
- **Customizable MA Type**: Different MA types provide varying sensitivity to OBV changes:
- **SMA**: Traditional simple average, equal weight to all periods
- **EMA**: More weight to recent data, responds faster to price changes
- **WMA**: Weighted by recency, smoother than EMA
- **RMA**: Similar to EMA but smoother, reduces noise
- **VWMA**: Factors in volume, helpful for OBV confirmation
- **HMA**: Reduces lag while maintaining smoothness (default)
#### ADX Exit Confirmation
Uses Average Directional Index to confirm trend exhaustion:
| Setting | Default Value |
|---------|---------------|
| **ADX Threshold** | 35 |
| **ADX Smoothing** | 60 |
| **DI Length** | 60 |
- **Function**: Confirms trend weakness before exiting positions
- **Implementation**: Requires ADX to drop below threshold or DI lines to cross
## Filter System
### RSI Filter
- **Function**: Controls entries based on momentum conditions
- **Parameters**:
- Period: 15 (default)
- Overbought level: 71
- Oversold level: 23
- Multi-timeframe support: Current, MTF1 (15min), or MTF2 (4h)
- Customizable price source (open, high, low, close, hl2, hlc3, ohlc4)
- **Implementation**: Blocks long entries when RSI > overbought, short entries when RSI < oversold
### Volatility Filter
- **Function**: Prevents trading during excessive market volatility
- **Parameters**:
- Measure: ATR (Average True Range)
- Period: Customizable (default varies by timeframe)
- Threshold: Adjustable multiplier
- Multi-timeframe support
- Customizable price source
- **Implementation**: Blocks trades when current volatility exceeds threshold × average volatility
### Volume Filter
- **Function**: Ensures adequate market liquidity for trades
- **Parameters**:
- Threshold: 0.4× average (default)
- Measurement period: 5 (default)
- Moving average type: Customizable (HMA default)
- Multi-timeframe support
- Customizable price source
- **Implementation**: Requires current volume to exceed threshold × average volume
### Bollinger Bands Filter
- **Function**: Controls entries based on price relative to statistical boundaries
- **Parameters**:
- Period: Customizable
- Standard deviation multiplier: Adjustable
- Moving average type: Customizable
- Multi-timeframe support
- Customizable price source
- **Implementation**: Can require price to be within bands or breaking out of bands depending on strategy
### KEMAD Filter (Kalman EMA Distance)
- **Function**: Advanced trend confirmation using Kalman filter algorithm
- **Parameters**:
- Process Noise: 0.35 (controls smoothness)
- Measurement Noise: 24 (controls reactivity)
- Filter Order: 6 (higher = more smoothing)
- ATR Length: 8 (for bandwidth calculation)
- Upper Multiplier: 2.0 (for long signals)
- Lower Multiplier: 2.7 (for short signals)
- Multi-timeframe support
- Customizable visual indicators
- **Implementation**: Generates signals based on price position relative to Kalman-filtered EMA bands
## Risk Management System
### Position Sizing
Automatically calculates position size based on account equity and risk parameters:
| Setting | Default Value |
|---------|---------------|
| **Risk % of Equity** | 50% |
- **Implementation**:
- Position size = (Account equity × Risk %) ÷ (Entry price × Stop loss distance)
- Adjusts automatically based on volatility and stop placement
- **Best Practices**:
- Start with lower risk percentages (1-2%) until strategy is proven
- Consider reducing risk during high volatility periods
### Stop-Loss Methods
Multiple stop-loss calculation methods with separate configurations for long and short positions:
| Method | Description | Configuration |
|--------|-------------|---------------|
| **ATR-Based** | Dynamic stops based on volatility | ATR Period: 14, Multiplier: 2.0 |
| **Percentage** | Fixed percentage from entry | Long: 1.5%, Short: 1.5% |
| **PIP-Based** | Fixed currency unit distance | 10.0 pips |
- **Implementation Notes**:
- ATR-based stops adapt to changing market volatility
- Percentage stops maintain consistent risk exposure
- PIP-based stops provide precise control in stable markets
### Trailing Stops
Locks in profits by adjusting stop-loss levels as price moves favorably:
| Setting | Default Value |
|---------|---------------|
| **Stop-Loss %** | 1.5% |
| **Activation Threshold** | 2.1% |
| **Trailing Distance** | 1.4% |
- **Implementation**:
- Initial stop remains fixed until profit reaches activation threshold
- Once activated, stop follows price at specified distance
- Locks in profit while allowing room for normal price fluctuations
### Risk-Reward Parameters
Defines the relationship between risk and potential reward:
| Setting | Default Value |
|---------|---------------|
| **Risk-Reward Ratio** | 1.4 |
| **Take Profit %** | 2.4% |
| **Stop-Loss %** | 1.5% |
- **Implementation**:
- Take profit distance = Stop loss distance × Risk-reward ratio
- Higher ratios require fewer winning trades for profitability
- Lower ratios increase win rate but reduce average profit
### Filter Combinations
The strategy allows for simultaneous application of multiple filters:
- **Recommended Combinations**:
- Trending markets: RSI + KEMAD filters
- Ranging markets: Bollinger Bands + Volatility filters
- All markets: Volume filter as minimum requirement
- **Performance Impact**:
- Each additional filter reduces the number of trades
- Quality of remaining trades typically improves
- Optimal combination depends on market conditions and timeframe
### Multi-Timeframe Filter Applications
| Filter Type | Current Timeframe | MTF1 (15min) | MTF2 (4h) |
|-------------|-------------------|-------------|------------|
| RSI | Quick entries/exits | Intraday trend | Overall trend |
| Volume | Immediate liquidity | Sustained support | Market participation |
| Volatility | Entry timing | Short-term risk | Regime changes |
| KEMAD | Precise signals | Trend confirmation | Major reversals |
## Visual Indicators and Chart Analysis
The bot provides comprehensive visual feedback on the chart:
- **Channel Bands**: Keltner or MLMA bands showing potential support/resistance
- **Pivot SuperTrend**: Colored line showing trend direction and potential reversal points
- **Entry/Exit Markers**: Annotations showing actual trade entries and exits
- **Risk/Reward Zones**: Visual representation of stop-loss and take-profit levels
These visual elements allow for:
- Real-time strategy assessment
- Post-trade analysis and optimization
- Educational understanding of the strategy logic
## Implementation Guide
### TradingView Setup
1. Load the script in TradingView Pine Editor
2. Apply to your preferred chart and timeframe
3. Adjust parameters based on your trading preferences
4. Enable alerts for webhook integration
### Webhook Integration
1. Configure webhook URL in TradingView alerts
2. Set up receiving endpoint on your trading platform
3. Define message format matching the bot's output
4. Test with small position sizes before full deployment
### Optimization Process
1. Backtest across different market conditions
2. Identify parameter sensitivity through multiple tests
3. Focus on risk management parameters first
4. Fine-tune entry/exit conditions based on performance metrics
5. Validate with out-of-sample testing
## Performance Considerations
### Strengths
- Adaptability to different market conditions through dual channels
- Multiple layers of confirmation reducing false signals
- Comprehensive risk management protecting capital
- Machine learning integration for predictive edge
### Limitations
- Complex parameter set requiring careful optimization
- Potential over-optimization risk with so many variables
- Computational intensity of MLMA calculations
- Dependency on proper webhook configuration for execution
### Best Practices
- Start with conservative risk settings (1-2% of equity)
- Test thoroughly in demo environment before live trading
- Monitor performance regularly and adjust parameters
- Consider market regime changes when evaluating results
## Conclusion
The ₿ober XM v2.0 represents a significant evolution in trading strategy design, combining traditional technical analysis with machine learning elements and multi-timeframe analysis. The core strength of this system lies in its adaptability and recognition of market asymmetry.
### Market Asymmetry and Adaptive Approach
The strategy acknowledges a fundamental truth about markets: bullish and bearish phases behave differently and should be treated as distinct environments. The dual-channel system with separate parameters for long and short positions directly addresses this asymmetry, allowing for optimized performance regardless of market direction.
### Targeted Backtesting Philosophy
It's counterproductive to run backtests over excessively long periods. Markets evolve continuously, and strategies that worked in previous market regimes may be ineffective in current conditions. Instead:
- Test specific market phases separately (bull markets, bear markets, range-bound periods)
- Regularly re-optimize parameters as market conditions change
- Focus on recent performance with higher weight than historical results
- Test across multiple timeframes to ensure robustness
### Multi-Timeframe Analysis as a Game-Changer
The integration of multi-timeframe analysis fundamentally transforms the strategy's effectiveness:
- **Increased Safety**: Higher timeframe confirmations reduce false signals and improve trade quality
- **Context Awareness**: Decisions made with awareness of larger trends reduce adverse entries
- **Adaptable Precision**: Apply strict filters on lower timeframes while maintaining awareness of broader conditions
- **Reduced Noise**: Higher timeframe data naturally filters market noise that can trigger poor entries
The ₿ober XM v2.0 provides traders with a framework that acknowledges market complexity while offering practical tools to navigate it. With proper setup, realistic expectations, and attention to changing market conditions, it delivers a sophisticated approach to systematic trading that can be continuously refined and optimized.
Wyszukaj w skryptach "Trailing stop"
ATR Stop-Loss & TargetsATR and Supertrend-based SL/TP & Trailing System
This indicator combines Average True Range (ATR) and Supertrend logic to help traders define precise stop-loss, first target, and trailing stop-loss (TSL) levels.
⚙️ Key Features:
📏 ATR-based Stop-Loss & Target Lines:
Uses ATR (default period: 5) based on the previous day's candle for more stable risk management.
Traders can choose the price source: Close, Open, or enter a manual price.
SL and first target are calculated using multipliers:
Multiplier 1 = Stop Loss
Multiplier 2 = First Target
📉 Supertrend for Trailing Stop:
Built-in Supertrend logic for trailing stop-loss management.
Uses ATR(10) with a multiplier of 2.1, based on HL2.
Supertrend can be toggled ON/OFF from the settings.
Multi-Timeframe Parabolic SAR Strategy ver 1.0Multi-Timeframe Parabolic SAR Strategy (MTF PSAR) - Enhanced Trend Trading
This strategy leverages the power of the Parabolic SAR (Stop and Reverse) indicator across multiple timeframes to provide robust trend identification, precise entry/exit signals, and dynamic trailing stop management. By combining the insights of both the current chart's timeframe and a user-defined higher timeframe, this strategy aims to improve trading accuracy, reduce risk, and capture more significant market moves.
Key Features:
Dual Timeframe Analysis: Simultaneously analyzes the Parabolic SAR on the current chart and a higher timeframe (e.g., Daily PSAR on a 1-hour chart). This allows you to align your trades with the dominant trend and filter out noise from lower timeframes.
Configurable PSAR: Fine-tune the PSAR calculation with adjustable Start, Increment, and Maximum values to optimize sensitivity for your trading style and the asset's volatility.
Independent Timeframe Control: Choose to display and trade based on either or both the current timeframe PSAR and the higher timeframe PSAR. Focus on the most relevant information for your analysis.
Clear Visual Signals: Distinct colors for the current and higher timeframe PSAR dots provide a clear visual representation of potential entry and exit points.
Multiple Entry Strategies: The strategy offers flexible entry conditions, allowing you to trade based on:
Confirmation: Both current and higher timeframe PSAR signals agree and the current timeframe PSAR has just flipped direction. (Most conservative)
Current Timeframe Only: Trades based solely on the current timeframe PSAR, ideal for when the higher timeframe is less relevant or disabled.
Higher Timeframe Only: Trades based solely on the higher timeframe PSAR.
Dynamic Trailing Stop (PSAR-Based): Implements a trailing stop-loss based on the current timeframe's Parabolic SAR. This helps protect profits by automatically adjusting the stop-loss as the price moves in your favor. Exits are triggered when either the current or HTF PSAR flips.
No Repainting: Uses lookahead=barmerge.lookahead_off in the security() function to ensure that the higher timeframe data is accessed without any data leakage, preventing repainting issues.
Fully Configurable: All parameters (PSAR settings, higher timeframe, visibility, colors) are adjustable through the strategy's settings panel, allowing for extensive customization and optimization.
Suitable for Various Trading Styles: Applicable to swing trading, day trading, and trend-following strategies across various markets (stocks, forex, cryptocurrencies, etc.).
How it Works:
PSAR Calculation: The strategy calculates the standard Parabolic SAR for both the current chart's timeframe and the selected higher timeframe.
Trend Identification: The direction of the PSAR (dots below price = uptrend, dots above price = downtrend) determines the current trend for each timeframe.
Entry Signals: The strategy generates buy/sell signals based on the chosen entry strategy (Confirmation, Current Timeframe Only, or Higher Timeframe Only). The Confirmation strategy offers the highest probability signals by requiring agreement between both timeframes.
Trailing Stop Exit: Once a position is entered, the strategy uses the current timeframe PSAR as a dynamic trailing stop. The stop-loss is automatically adjusted as the PSAR dots move, helping to lock in profits and limit losses. The strategy exits when either the Current or HTF PSAR changes direction.
Backtesting and Optimization: The strategy automatically backtests on the chart's historical data, allowing you to evaluate its performance and optimize the settings for different assets and timeframes.
Example Use Cases:
Trend Confirmation: A trader on a 1-hour chart observes a bullish PSAR flip on the current timeframe. They check the MTF PSAR strategy and see that the Daily PSAR is also bullish, confirming the strength of the uptrend and providing a high-probability long entry signal.
Filtering Noise: A trader on a 5-minute chart wants to avoid whipsaws caused by short-term price fluctuations. They use the strategy with a 1-hour higher timeframe to filter out noise and only trade in the direction of the dominant trend.
Dynamic Risk Management: A trader enters a long position and uses the current timeframe PSAR as a trailing stop. As the price rises, the PSAR dots move upwards, automatically raising the stop-loss and protecting profits. The trade is exited when the current (or HTF) PSAR flips to bearish.
Disclaimer:
The Parabolic SAR is a lagging indicator and can produce false signals, particularly in ranging or choppy markets. This strategy is intended for educational and informational purposes only and should not be considered financial advice. It is essential to backtest and optimize the strategy thoroughly, use it in conjunction with other technical analysis tools, and implement sound risk management practices before using it with real capital. Past performance is not indicative of future results. Always conduct your own due diligence and consider your risk tolerance before making any trading decisions.
Catalyst TrendCatalyst Trend – A Comprehensive Trend and Regime Analyzer
The Catalyst Trend indicator was designed to dynamically and intuitively merge various classic analytical techniques. The goal is to filter out short-term market noise and reveal reliable trend phases or potential turning points. Below is a detailed explanation of its core elements and practical usage.
1. Concept and Idea
Multidimensional Trend Detection
This indicator goes beyond a simple momentum or volatility focus. It factors in multiple measurements to provide a more well-rounded market perspective.
Versatile Indicator Fusion
Linear Regression (LinReg): Multiple LinReg calculations are combined to smooth out price fluctuations and produce a robust trendline—known here as the “Cycle Reduced Line.”
ADX (Average Directional Index): Measures trend strength.
RSI (Relative Strength Index): Flags potential overbought or oversold conditions, in both the current timeframe and a higher timeframe.
ATR (Average True Range): Assesses volatility; used to dynamically adjust calculation lengths.
By weaving these elements together, the indicator adds value beyond simply stacking multiple indicators. It adapts to real-time market conditions, aiming to highlight genuine trends and reduce false signals.
2. Key Functions and Calculations
Dynamic Length & Smoothing
A blend of volatility (ATR), ADX values, and RSI inputs determines how many candles are used in the LinReg calculations and how heavily the data is smoothed.
This allows the indicator to respond promptly during periods of high volatility, while automatically adjusting to filter out unnecessary noise in quieter phases.c
Cycle Reduced Line
The script averages several offset LinReg calculations to produce a cleaner overall signal. Random outliers are thus minimized, making the trend path more visually consistent.
An additional EMA smoothing (“Final Smoothing”) further stabilizes this trendline, reducing the impact of minor price fluctuations.
Channel Bands (Optional)
These bands are derived from the standard deviation of the price residual (the difference between the smoothed price and the trendline).
They highlight potential over-extension zones: the upper band can mark short-term overbought areas, while the lower band might indicate oversold conditions.
Trend and Sideways Determination
Slope Calculation: The slope of the trendline (comparing the current bar to the previous one) helps identify short-term directional shifts.
DX Threshold: Once the ADX surpasses a user-defined threshold and the slope is positive, it may indicate a developing uptrend. Similarly, if the slope is negative and ADX > threshold, it could signal a potential downtrend.
Multi-Level Color Coding
Original Mode: Interpolated colors reflect uptrends, downtrends, and sideways phases, factoring in metrics like ADX and RSI.
Single Color: For a neutral look, the indicator can be displayed in one uniform color.
HTF RSI: This mode uses the higher-timeframe RSI to color the trendline (Long/Short/Neutral), offering a quick gauge of overarching market pressure.
3. Use Cases and Interpretation
Timeframes & Markets
The indicator is versatile and adapts well to different intervals, from 5-minute charts to weekly views.
It can be applied to various markets—crypto, forex, stocks—since volatility and trend strength are universal concepts.
Signal Recognition
Color Swings into a more pronounced upward hue (e.g., green) may signal mounting strength.
Neutral or mixed tones often point to sideways phases, which breakout traders might watch for potential price surges.
A shift to downward colors (e.g., red) may indicate a growing bearish trend.
Channel Bands & Volatility
When the bands spread widely, it’s wise to proceed with caution: abrupt spikes above the upper band or below the lower band can flag rapid short-term extremes.
These bands are more of a reference for potential overextension than a strict buy or sell trigger.
Additional Confirmations
Not a standalone panacea: The Catalyst Trend indicator is an analytical tool, best used alongside other methods such as volume analysis or price action (candlestick patterns, support/resistance levels) to bolster confidence in trading decisions.
4. Practical Tips
Parameter Adjustments
Depending on the market—crypto vs. traditional currency pairs—different ADX, RSI, or smoothing periods may be more effective. Experiment with the settings to tailor the indicator to your preferred timeframe.
Strategic Integration
Trailing Stops: For those riding a trend, the trendline or the channel bands may serve as a reference to trail stop-loss orders.
Trend Confirmation: Using RSI and ADX filters can help traders avoid sideways markets or stay the course when the trend is strong.
5. Important Final Notes
No Guarantee of Profits
No indicator can predict the future. Markets are inherently volatile and often unpredictable.
Responsible Risk Management
Test the indicator in a demo environment or with smaller positions before committing to large trades.
Martingale with MACD+KDJ opening conditionsStrategy Overview:
This strategy is based on a Martingale trading approach, incorporating MACD and KDJ indicators. It features pyramiding, trailing stops, and dynamic profit-taking mechanisms, suitable for both long and short trades. The strategy increases position size progressively using a Multiplier, a key feature of Martingale systems.
Key Concepts:
Martingale Strategy: A trading system where positions are doubled or increased after a loss to recover previous losses with a single successful trade. In this script, the position size is incremented using a Multiplier for each addition.
Pyramiding: Allows adding to existing trades when market conditions are favorable, enhancing profitability during trends.
Settings:
Basic Inputs:
Initial Order: Defines the starting size of the position.
Default: 150.0
MACD Settings: Customize the fast, slow, and signal smoothing lengths.
Default: Fast Length: 9, Slow Length: 26, Signal Smoothing: 9
KDJ Settings: Customize the length and smoothing parameters for KDJ.
Default: Length: 14, Smooth K: 3, Smooth D: 3
Max Additions: Sets the number of additional positions (pyramiding).
Default: 5 (Min: 1, Max: 10)
Position Sizing: Percent to add to positions on favorable conditions.
Default: 1.0%
Martingale Multiplier:
Add Multiplier: This value controls the scaling of additional positions according to the Martingale principle. After each loss, a new position is added, and its size is increased by the Multiplier factor. For example, with a multiplier of 2, each new addition will be twice as large as the previous one, accelerating recovery if the price moves favorably.
Default: 1.0 (no multiplication)
Can be adjusted up to 10x to aggressively increase position size after losses.
Trade Execution:
Long Trades:
Entry Condition: A long position is opened when the MACD line crosses over the signal line, and the KDJ’s %K crosses above %D.
Additions (Martingale): After the initial long position, new positions are added if the price drops by the defined percentage, and each new addition is increased using the Multiplier. This continues up to the set Max Additions.
Short Trades:
Entry Condition: A short position is opened when the MACD line crosses under the signal line, and the KDJ’s %K crosses below %D.
Additions (Martingale): After the initial short position, new positions are added if the price rises by the defined percentage, and each new addition is increased using the Multiplier.
Exit Conditions:
Take Profit: Exits are triggered when the price reaches the take-profit threshold.
Stop Loss: If the price moves unfavorably, the position will be closed at the set stop-loss level.
Trailing Stop: Adjusts dynamically as the price moves in favor of the trade to lock in profits.
On-Chart Visuals:
Long Signals: Blue triangles below the bars indicate long entries, and green triangles mark additional long positions.
Short Signals: Red triangles above the bars indicate short entries, and orange triangles mark additional short positions.
Information Table:
The strategy displays a table with key metrics:
Open Price: The entry price of the trade.
Average Price: The average price of the current position.
Additions: The number of additional positions taken.
Next Add Price: The price level for the next position.
Take Profit: The price at which profits will be taken.
Stop Loss: The stop-loss level to minimize risk.
Usage Instructions:
Adjust the parameters to your trading style using the input settings.
The Multiplier amplifies your position size after each addition, so use it cautiously, especially in volatile markets.
Monitor the signals and table on the chart for entry/exit decisions and trade management.
NASDAQ 100 Peak Hours StrategyNASDAQ 100 Peak Hours Trading Strategy
Description
Our NASDAQ 100 Peak Hours Trading Strategy leverages a carefully designed algorithm to trade within specific hours of high market activity, particularly focusing on the first two hours of the trading session from 09:30 AM to 11:30 AM GMT-5. This period is identified for its increased volatility and liquidity, offering numerous trading opportunities.
The strategy incorporates a blend of technical indicators to identify entry and exit points for both long and short positions. These indicators include:
Exponential Moving Averages (EMAs) : A short-term 9-period EMA and a longer-term 21-period EMA to determine the market trend and momentum.
Relative Strength Index (RSI) : A 14-period RSI to gauge the market's momentum.
Average True Range (ATR) : A 14-period ATR to assess market volatility and to set dynamic stop losses and trailing stops.
Volume Weighted Average Price (VWAP) : To identify the market's average price weighted by volume, serving as a benchmark for the trading day.
Our strategy uniquely applies a volatility filter using the ATR, ensuring trades are only executed in conditions that favor our setup. Additionally, we consider the direction of the EMAs to confirm the market's trend before entering trades.
Originality and Usefulness
This strategy stands out by combining these indicators within the NASDAQ 100's peak hours, exploiting the specific market conditions that prevail during these times. The inclusion of a volatility filter and dynamic stop-loss mechanisms based on the ATR provides a robust method for managing risk.
By focusing on the early trading hours, the strategy aims to capture the initial market movements driven by overnight news and the opening rush, often characterized by higher volatility. This approach is particularly useful for traders looking to maximize gains from short-term fluctuations while limiting exposure to longer-term market uncertainty.
Strategy Results
To ensure the strategy's effectiveness and reliability, it has undergone rigorous backtesting over a significant dataset to produce a sample size of more than 100 trades. This testing phase helps in identifying the strategy's potential in various market conditions, its consistency, and its risk-to-reward ratio.
Our backtesting adheres to realistic trading conditions, accounting for slippage and commission to reflect actual trading scenarios accurately. The strategy is designed with a conservative approach to risk management, advising not to risk more than 5-10% of equity on a single trade. The default settings in the script align with these principles, ensuring that users can replicate our tested conditions.
Using the Strategy
The strategy is designed for simplicity and ease of use:
Trade Hours : Focuses on 09:30 AM to 11:30 AM GMT-5, during the NASDAQ 100's peak activity hours.
Entry Conditions : Trades are initiated based on the alignment of EMAs, RSI, VWAP, and the ATR's volatility filter within the designated time frame.
Exit Conditions : Includes dynamic trailing stops based on ATR, a predefined time exit strategy, and a trend reversal exit condition for risk management.
This script is a powerful tool for traders looking to leverage the NASDAQ 100's peak hours, providing a structured approach to navigating the early market hours with a robust set of criteria for making informed trading decisions.
Logical Trading Indicator V.1Features of the Logical Trading Indicator V.1
ATR-Based Trailing Stop Loss
The Logical Trading Indicator V.1 utilizes the Average True Range (ATR) to implement a dynamic trailing stop loss. You can customize the sensitivity of your alerts by adjusting the ATR Multiple and ATR Period settings.
Higher ATR Multiple values create wider stops, while lower values result in tighter stops. This feature ensures that your trades are protected against adverse price movements. For best practice, use higher values on higher timeframes and lower values on lower term timeframes.
Bollinger Bands
The Logical Trading Indicator V.1 includes Bollinger Bands, which can be customized to use either a Simple Moving Average (SMA) or an Exponential Moving Average (EMA) as the basis.
You can adjust the length and standard deviation multiplier of the Bollinger Bands to fine-tune your strategy. The color of the basis line changes to green when price is above and red when price is below the line to represent the trend.
The bands show a range vs a single band that also represents when the price is in overbought and oversold ranges similar to an RSI. These bands also control the take profit signals.
You also have the ability to change the band colors as well as toggle them off, which only affects the view, they are still active which will still fire the take profit signals.
Momentum Indicator
Our indicator offers a momentum filter option that highlights market momentum directly on the candlesticks, identifying periods of bullish, bearish, or consolidation phases. You can enable or disable this filter as needed, providing valuable insights into market conditions.
By default, you will see the candlestick colors represent the momentum direction as green or red, and consolidation periods as white, but the filter on the BUY and SELL signals is not active. The view options and filter can be toggled on and off in the settings.
Buy and Sell Signals
The Logical Trading Indicator V.1 generates buy and sell signals based on a combination of ATR-based filtering, Bollinger Band basis crossover, and optional momentum conditions if selected in the settings. These signals help you make informed decisions about when to enter or exit a trade. You can also enable a consolidation filter to stay out of trades during tight ranges.
Basically a BUY signal fires when the price closes above the basis line, and the price meets or exceeds the ATR multiple from the previous candle length, which is also editable in the settings.
If the momentum filter is engaged, it will not fire BUY signals when in consolidation periods. It works just the opposite for SELL signals.
Take Profit Signals
We've integrated a Take Profit feature that helps you identify points to exit your trades with profits. The indicator marks Long Take Profit when prices close below the upper zone line of the Bollinger Bands after the previous candle closes inside the band, suggesting an optimal point to exit a long trade or consider a short position.
Conversely, Short Take Profit signals appear when prices close above the lower zone after the previous candle closes inside of it, indicating the right time to exit a short trade or contemplate a long position.
Alerts for Informed Trading
The Logical Trading Indicator V.1 comes equipped with alert conditions for buy signals, sell signals, take profit points, and more. Receive real-time notifications to your preferred devices or platforms to stay updated on market movements and trading opportunities.
Supertrend Targets [ChartPrime]The Supertrend Targets indicator combines the concepts of trend-following with dynamic volatility-based target levels. It takes core simple and classical concepts and provides actionable insights. The core of this indicator revolves around the "Supertrend" algorithm, which essentially uses the Average True Range (ATR) and a multiplier to determine if the price of a financial instrument is in an uptrend or downtrend. The indicator generates various plot points on the trading chart, which traders can use to make informed trading decisions.
Users can set several input parameters such as the source price, custom levels, multiplier scale, length of the average true range, and the window length. Traders can also opt to enable a table that shows numeric target data by percentiles, risk ratio, take profit and stop loss points.
The generated plots and fills on the chart represent various levels of potential gains and drawdowns, acting as potential targets for taking profit or stopping losses. These include the 25th, 50th, 75th, 90th, and 100th percentiles, which are adjustable by scale. There are also plots for average gain and drawdown levels, enhanced by standard deviation curves if enabled.
The Supertrend line indicators are color-coded for ease of understanding: blue for bullish performance and orange for bearish performance. The "Center Line" represents the point at which traders might consider entering a position.
Lastly, the script presents a summary table (when enabled) at the right side of the chart displaying numeric data of the plotted targets. This data provides additional insights on the risk-reward balance for each percentile, helping traders to execute their strategies more effectively.
Here's a comprehensive breakdown of its functionalities and features:
Inputs:
Source: Determines the price series type (e.g., Close, Open, High, Low, etc.).
Show Trailing Stop: Option to display the trailing stop on the chart.
Levels: Sets the number of target levels you want to display. Can range from -5 to 5.
Scale: A scaling factor for adjusting targets, can be between 1 to 100.
Window Length: Length for the target computation, determines how many bars will be considered.
Unique: Ensures every data point used in calculations is unique.
Multiplier: Multiplier for the ATR (Average True Range) to compute the SuperTrend.
ATR Length: Period for the ATR computation.
Custom Level: Allows users to set their own levels using various statistics like Average, Average + STDEV, Percentile, or can be disabled.
Percent Rank: Determines the percentile rank for targeting.
Enable Table: Enables or disables a table display.
Methods:
Flag: Identifies bullish and bearish trend reversals.
Target Percent: Determines the expected price movement (both gains and drawdowns) based on historical trend reversals.
Value Percent: Computes the percentage difference between the current price and the entry price during trend reversals.
Plots:
Multiple target lines are plotted on the chart to visualize potential gain and drawdown levels. These levels are adjusted based on user settings. Additionally, the main Supertrend line is plotted to indicate the prevailing trend direction.
Gain Levels: Target levels which show potential upside from the current price.
Drawdown Levels: Target levels which represent potential downside from the current price.
SuperTrend Line: A line that adjusts based on price volatility and trend direction, acting as a dynamic support or resistance.
In conclusion, the "Supertrend Targets " indicator is a powerful tool that combines the principle of trend-following with dynamic targets, providing traders with insights into potential future price movements. The range of customization options allows traders to adapt the indicator to different trading strategies and market conditions.
CNTLibraryLibrary "CNTLibrary"
Custom Functions To Help Code In Pinescript V5
Coded By Christian Nataliano
First Coded In 10/06/2023
Last Edited In 22/06/2023
Huge Shout Out To © ZenAndTheArtOfTrading and his ZenLibrary V5, Some Of The Custom Functions Were Heavily Inspired By Matt's Work & His Pine Script Mastery Course
Another Shout Out To The TradingView's Team Library ta V5
//====================================================================================================================================================
// Custom Indicator Functions
//====================================================================================================================================================
GetKAMA(KAMA_lenght, Fast_KAMA, Slow_KAMA)
Calculates An Adaptive Moving Average Based On Perry J Kaufman's Calculations
Parameters:
KAMA_lenght (int) : Is The KAMA Lenght
Fast_KAMA (int) : Is The KAMA's Fastes Moving Average
Slow_KAMA (int) : Is The KAMA's Slowest Moving Average
Returns: Float Of The KAMA's Current Calculations
GetMovingAverage(Source, Lenght, Type)
Get Custom Moving Averages Values
Parameters:
Source (float) : Of The Moving Average, Defval = close
Lenght (simple int) : Of The Moving Average, Defval = 50
Type (string) : Of The Moving Average, Defval = Exponential Moving Average
Returns: The Moving Average Calculation Based On Its Given Source, Lenght & Calculation Type (Please Call Function On Global Scope)
GetDecimals()
Calculates how many decimals are on the quote price of the current market © ZenAndTheArtOfTrading
Returns: The current decimal places on the market quote price
Truncate(number, decimalPlaces)
Truncates (cuts) excess decimal places © ZenAndTheArtOfTrading
Parameters:
number (float)
decimalPlaces (simple float)
Returns: The given number truncated to the given decimalPlaces
ToWhole(number)
Converts pips into whole numbers © ZenAndTheArtOfTrading
Parameters:
number (float)
Returns: The converted number
ToPips(number)
Converts whole numbers back into pips © ZenAndTheArtOfTrading
Parameters:
number (float)
Returns: The converted number
GetPctChange(value1, value2, lookback)
Gets the percentage change between 2 float values over a given lookback period © ZenAndTheArtOfTrading
Parameters:
value1 (float)
value2 (float)
lookback (int)
BarsAboveMA(lookback, ma)
Counts how many candles are above the MA © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are above the MA
BarsBelowMA(lookback, ma)
Counts how many candles are below the MA © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many recent bars are below the EMA
BarsCrossedMA(lookback, ma)
Counts how many times the EMA was crossed recently © ZenAndTheArtOfTrading
Parameters:
lookback (int)
ma (float)
Returns: The bar count of how many times price recently crossed the EMA
GetPullbackBarCount(lookback, direction)
Counts how many green & red bars have printed recently (ie. pullback count) © ZenAndTheArtOfTrading
Parameters:
lookback (int)
direction (int)
Returns: The bar count of how many candles have retraced over the given lookback & direction
GetSwingHigh(Lookback, SwingType)
Check If Price Has Made A Recent Swing High
Parameters:
Lookback (int) : Is For The Swing High Lookback Period, Defval = 7
SwingType (int) : Is For The Swing High Type Of Identification, Defval = 1
Returns: A Bool - True If Price Has Made A Recent Swing High
GetSwingLow(Lookback, SwingType)
Check If Price Has Made A Recent Swing Low
Parameters:
Lookback (int) : Is For The Swing Low Lookback Period, Defval = 7
SwingType (int) : Is For The Swing Low Type Of Identification, Defval = 1
Returns: A Bool - True If Price Has Made A Recent Swing Low
//====================================================================================================================================================
// Custom Risk Management Functions
//====================================================================================================================================================
CalculateStopLossLevel(OrderType, Entry, StopLoss)
Calculate StopLoss Level
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, Defval = na
StopLoss (float) : Is The Custom StopLoss Distance, Defval = 2x ATR Below Close
Returns: Float - The StopLoss Level In Actual Price As A
CalculateStopLossDistance(OrderType, Entry, StopLoss)
Calculate StopLoss Distance In Pips
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
StopLoss (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
Returns: Float - The StopLoss Value In Pips
CalculateTakeProfitLevel(OrderType, Entry, StopLossDistance, RiskReward)
Calculate TakeProfit Level
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, Defval = na
StopLossDistance (float)
RiskReward (float)
Returns: Float - The TakeProfit Level In Actual Price
CalculateTakeProfitDistance(OrderType, Entry, TakeProfit)
Get TakeProfit Distance In Pips
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
Entry (float) : Is The Entry Level Of The Order, NEED TO INPUT PARAM
TakeProfit (float) : Level Based On Previous Calculation, NEED TO INPUT PARAM
Returns: Float - The TakeProfit Value In Pips
CalculateConversionCurrency(AccountCurrency, SymbolCurrency, BaseCurrency)
Get The Conversion Currecny Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
Parameters:
AccountCurrency (simple string) : Is For The Account Currency Used
SymbolCurrency (simple string) : Is For The Current Symbol Currency (Front Symbol)
BaseCurrency (simple string) : Is For The Current Symbol Base Currency (Back Symbol)
Returns: Tuple Of A Bollean (Convert The Currency ?) And A String (Converted Currency)
CalculateConversionRate(ConvertCurrency, ConversionRate)
Get The Conversion Rate Between Current Account Currency & Current Pair's Quoted Currency (FOR FOREX ONLY)
Parameters:
ConvertCurrency (bool) : Is To Check If The Current Symbol Needs To Be Converted Or Not
ConversionRate (float) : Is The Quoted Price Of The Conversion Currency (Input The request.security Function Here)
Returns: Float Price Of Conversion Rate (If In The Same Currency Than Return Value Will Be 1.0)
LotSize(LotSizeSimple, Balance, Risk, SLDistance, ConversionRate)
Get Current Lot Size
Parameters:
LotSizeSimple (bool) : Is To Toggle Lot Sizing Calculation (Simple Is Good Enough For Stocks & Crypto, Whilst Complex Is For Forex)
Balance (float) : Is For The Current Account Balance To Calculate The Lot Sizing Based Off
Risk (float) : Is For The Current Risk Per Trade To Calculate The Lot Sizing Based Off
SLDistance (float) : Is The Current Position StopLoss Distance From Its Entry Price
ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
Returns: Float - Position Size In Units
ToLots(Units)
Converts Units To Lots
Parameters:
Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
Returns: Float - Position Size In Lots
ToUnits(Lots)
Converts Lots To Units
Parameters:
Lots (float) : Is For How Many Lots Need To Be Converted Into Units (Minimun 0.01 Units)
Returns: Int - Position Size In Units
ToLotsInUnits(Units)
Converts Units To Lots Than Back To Units
Parameters:
Units (float) : Is For How Many Units Need To Be Converted Into Lots (Minimun 1000 Units)
Returns: Float - Position Size In Lots That Were Rounded To Units
ATRTrail(OrderType, SourceType, ATRPeriod, ATRMultiplyer, SwingLookback)
Calculate ATR Trailing Stop
Parameters:
OrderType (int) : Is To Determine A Long / Short Position, Defval = 1
SourceType (int) : Is To Determine Where To Calculate The ATR Trailing From, Defval = close
ATRPeriod (simple int) : Is To Change Its ATR Period, Defval = 20
ATRMultiplyer (float) : Is To Change Its ATR Trailing Distance, Defval = 1
SwingLookback (int) : Is To Change Its Swing HiLo Lookback (Only From Source Type 5), Defval = 7
Returns: Float - Number Of The Current ATR Trailing
DangerZone(WinRate, AvgRRR, Filter)
Calculate Danger Zone Of A Given Strategy
Parameters:
WinRate (float) : Is The Strategy WinRate
AvgRRR (float) : Is The Strategy Avg RRR
Filter (float) : Is The Minimum Profit It Needs To Be Out Of BE Zone, Defval = 3
Returns: Int - Value, 1 If Out Of Danger Zone, 0 If BE, -1 If In Danger Zone
IsQuestionableTrades(TradeTP, TradeSL)
Checks For Questionable Trades (Which Are Trades That Its TP & SL Level Got Hit At The Same Candle)
Parameters:
TradeTP (float) : Is The Trade In Question Take Profit Level
TradeSL (float) : Is The Trade In Question Stop Loss Level
Returns: Bool - True If The Last Trade Was A "Questionable Trade"
//====================================================================================================================================================
// Custom Strategy Functions
//====================================================================================================================================================
OpenLong(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue)
Open A Long Order Based On The Given Params
Parameters:
EntryID (string) : Is The Trade Entry ID, Defval = "Long"
LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
Comment (string) : Is The Order Comment, Defval = Long Entry Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
OpenShort(EntryID, LotSize, LimitPrice, StopPrice, Comment, CommentValue)
Open A Short Order Based On The Given Params
Parameters:
EntryID (string) : Is The Trade Entry ID, Defval = "Short"
LotSize (float) : Is The Lot Size Of The Trade, Defval = 1
LimitPrice (float) : Is The Limit Order Price To Set The Order At, Defval = Na / Market Order Execution
StopPrice (float) : Is The Stop Order Price To Set The Order At, Defval = Na / Market Order Execution
Comment (string) : Is The Order Comment, Defval = Short Entry Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
TP_SLExit(FromID, TPLevel, SLLevel, PercentageClose, Comment, CommentValue)
Exits Based On Predetermined TP & SL Levels
Parameters:
FromID (string) : Is The Trade ID That The TP & SL Levels Be Palced
TPLevel (float) : Is The Take Profit Level
SLLevel (float) : Is The StopLoss Level
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Returns: Void
CloseLong(ExitID, PercentageClose, Comment, CommentValue, Instant)
Exits A Long Order Based On A Specified Condition
Parameters:
ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Long"
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Instant (bool) : Is For Exit Execution Type, Defval = false
Returns: Void
CloseShort(ExitID, PercentageClose, Comment, CommentValue, Instant)
Exits A Short Order Based On A Specified Condition
Parameters:
ExitID (string) : Is The Trade ID That Will Be Closed, Defval = "Short"
PercentageClose (float) : Is The Amount To Close The Order At (In Percentage) Defval = 100
Comment (string) : Is The Order Comment, Defval = Exit Order
CommentValue (string) : Is For Custom Values In The Order Comment, Defval = Na
Instant (bool) : Is For Exit Execution Type, Defval = false
Returns: Void
BrokerCheck(Broker)
Checks Traded Broker With Current Loaded Chart Broker
Parameters:
Broker (string) : Is The Current Broker That Is Traded
Returns: Bool - True If Current Traded Broker Is Same As Loaded Chart Broker
OpenPC(LicenseID, OrderType, UseLimit, LimitPrice, SymbolPrefix, Symbol, SymbolSuffix, Risk, SL, TP, OrderComment, Spread)
Compiles Given Parameters Into An Alert String Format To Open Trades Using Pine Connector
Parameters:
LicenseID (string) : Is The Users PineConnector LicenseID
OrderType (int) : Is The Desired OrderType To Open
UseLimit (bool) : Is If We Want To Enter The Position At Exactly The Previous Closing Price
LimitPrice (float) : Is The Limit Price Of The Trade (Only For Pending Orders)
SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
Symbol (string) : Is The Traded Symbol
SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
Risk (float) : Is The Trade Risk Per Trade / Fixed Lot Sizing
SL (float) : Is The Trade SL In Price / In Pips
TP (float) : Is The Trade TP In Price / In Pips
OrderComment (string) : Is The Executed Trade Comment
Spread (float) : is The Maximum Spread For Execution
Returns: String - Pine Connector Order Syntax Alert Message
ClosePC(LicenseID, OrderType, SymbolPrefix, Symbol, SymbolSuffix)
Compiles Given Parameters Into An Alert String Format To Close Trades Using Pine Connector
Parameters:
LicenseID (string) : Is The Users PineConnector LicenseID
OrderType (int) : Is The Desired OrderType To Close
SymbolPrefix (string) : Is The Current Symbol Prefix (If Any)
Symbol (string) : Is The Traded Symbol
SymbolSuffix (string) : Is The Current Symbol Suffix (If Any)
Returns: String - Pine Connector Order Syntax Alert Message
//====================================================================================================================================================
// Custom Backtesting Calculation Functions
//====================================================================================================================================================
CalculatePNL(EntryPrice, ExitPrice, LotSize, ConversionRate)
Calculates Trade PNL Based On Entry, Eixt & Lot Size
Parameters:
EntryPrice (float) : Is The Trade Entry
ExitPrice (float) : Is The Trade Exit
LotSize (float) : Is The Trade Sizing
ConversionRate (float) : Is The Currency Conversion Rate (Used For Complex Lot Sizing Only)
Returns: Float - The Current Trade PNL
UpdateBalance(PrevBalance, PNL)
Updates The Previous Ginve Balance To The Next PNL
Parameters:
PrevBalance (float) : Is The Previous Balance To Be Updated
PNL (float) : Is The Current Trade PNL To Be Added
Returns: Float - The Current Updated PNL
CalculateSlpComm(PNL, MaxRate)
Calculates Random Slippage & Commisions Fees Based On The Parameters
Parameters:
PNL (float) : Is The Current Trade PNL
MaxRate (float) : Is The Upper Limit (In Percentage) Of The Randomized Fee
Returns: Float - A Percentage Fee Of The Current Trade PNL
UpdateDD(MaxBalance, Balance)
Calculates & Updates The DD Based On Its Given Parameters
Parameters:
MaxBalance (float) : Is The Maximum Balance Ever Recorded
Balance (float) : Is The Current Account Balance
Returns: Float - The Current Strategy DD
CalculateWR(TotalTrades, LongID, ShortID)
Calculate The Total, Long & Short Trades Win Rate
Parameters:
TotalTrades (int) : Are The Current Total Trades That The Strategy Has Taken
LongID (string) : Is The Order ID Of The Long Trades Of The Strategy
ShortID (string) : Is The Order ID Of The Short Trades Of The Strategy
Returns: Tuple Of Long WR%, Short WR%, Total WR%, Total Winning Trades, Total Losing Trades, Total Long Trades & Total Short Trades
CalculateAvgRRR(WinTrades, LossTrades)
Calculates The Overall Strategy Avg Risk Reward Ratio
Parameters:
WinTrades (int) : Are The Strategy Winning Trades
LossTrades (int) : Are The Strategy Losing Trades
Returns: Float - The Average RRR Values
CAGR(StartTime, StartPrice, EndTime, EndPrice)
Calculates The CAGR Over The Given Time Period © TradingView
Parameters:
StartTime (int) : Is The Starting Time Of The Calculation
StartPrice (float) : Is The Starting Price Of The Calculation
EndTime (int) : Is The Ending Time Of The Calculation
EndPrice (float) : Is The Ending Price Of The Calculation
Returns: Float - The CAGR Values
//====================================================================================================================================================
// Custom Plot Functions
//====================================================================================================================================================
EditLabels(LabelID, X1, Y1, Text, Color, TextColor, EditCondition, DeleteCondition)
Edit / Delete Labels
Parameters:
LabelID (label) : Is The ID Of The Selected Label
X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
Text (string) : Is The Text Than Wants To Be Written In The Label
Color (color) : Is The Color Value Change Of The Label Text
TextColor (color)
EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
Returns: Void
EditLine(LineID, X1, Y1, X2, Y2, Color, EditCondition, DeleteCondition)
Edit / Delete Lines
Parameters:
LineID (line) : Is The ID Of The Selected Line
X1 (int) : Is The X1 Coordinate IN BARINDEX Xloc
Y1 (float) : Is The Y1 Coordinate IN PRICE Yloc
X2 (int) : Is The X2 Coordinate IN BARINDEX Xloc
Y2 (float) : Is The Y2 Coordinate IN PRICE Yloc
Color (color) : Is The Color Value Change Of The Line
EditCondition (int) : Is The Edit Condition of The Line (Setting Location / Color)
DeleteCondition (bool) : Is The Delete Condition Of The Line If Ture Deletes The Prev Itteration Of The Line
Returns: Void
//====================================================================================================================================================
// Custom Display Functions (Using Tables)
//====================================================================================================================================================
FillTable(TableID, Column, Row, Title, Value, BgColor, TextColor, ToolTip)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
Column (int) : Is The Current Column Of The Table That Wants To Be Edited
Row (int) : Is The Current Row Of The Table That Wants To Be Edited
Title (string) : Is The String Title Of The Current Cell Table
Value (string) : Is The String Value Of The Current Cell Table
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
ToolTip (string) : Is The ToolTip Of The Current Cell In The Table
Returns: Void
DisplayBTResults(TableID, BgColor, TextColor, StartingBalance, Balance, DollarReturn, TotalPips, MaxDD)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
StartingBalance (float) : Is The Account Starting Balance
Balance (float)
DollarReturn (float) : Is The Account Dollar Reture
TotalPips (float) : Is The Total Pips Gained / loss
MaxDD (float) : Is The Maximum Drawdown Over The Backtesting Period
Returns: Void
DisplayBTResultsV2(TableID, BgColor, TextColor, TotalWR, QTCount, LongWR, ShortWR, InitialCapital, CumProfit, CumFee, AvgRRR, MaxDD, CAGR, MeanDD)
Filling The Selected Table With The Inputed Information
Parameters:
TableID (table) : Is The Table ID That Wants To Be Edited
BgColor (color) : Is The Selected Color For The Current Table
TextColor (color) : Is The Selected Color For The Current Table
TotalWR (float) : Is The Strategy Total WR In %
QTCount (int) : Is The Strategy Questionable Trades Count
LongWR (float) : Is The Strategy Total WR In %
ShortWR (float) : Is The Strategy Total WR In %
InitialCapital (float) : Is The Strategy Initial Starting Capital
CumProfit (float) : Is The Strategy Ending Cumulative Profit
CumFee (float) : Is The Strategy Ending Cumulative Fee (Based On Randomized Fee Assumptions)
AvgRRR (float) : Is The Strategy Average Risk Reward Ratio
MaxDD (float) : Is The Strategy Maximum DrawDown In Its Backtesting Period
CAGR (float) : Is The Strategy Compounded Average GRowth In %
MeanDD (float) : Is The Strategy Mean / Average Drawdown In The Backtesting Period
Returns: Void
//====================================================================================================================================================
// Custom Pattern Detection Functions
//====================================================================================================================================================
BullFib(priceLow, priceHigh, fibRatio)
Calculates A Bullish Fibonacci Value (From Swing Low To High) © ZenAndTheArtOfTrading
Parameters:
priceLow (float)
priceHigh (float)
fibRatio (float)
Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
BearFib(priceLow, priceHigh, fibRatio)
Calculates A Bearish Fibonacci Value (From Swing High To Low) © ZenAndTheArtOfTrading
Parameters:
priceLow (float)
priceHigh (float)
fibRatio (float)
Returns: The Fibonacci Value Of The Given Ratio Between The Two Price Points
GetBodySize()
Gets The Current Candle Body Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Body Size IN POINTS
GetTopWickSize()
Gets The Current Candle Top Wick Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Top Wick Size IN POINTS
GetBottomWickSize()
Gets The Current Candle Bottom Wick Size IN POINTS © ZenAndTheArtOfTrading
Returns: The Current Candle Bottom Wick Size IN POINTS
GetBodyPercent()
Gets The Current Candle Body Size As A Percentage Of Its Entire Size Including Its Wicks © ZenAndTheArtOfTrading
Returns: The Current Candle Body Size IN PERCENTAGE
GetTopWickPercent()
Gets The Current Top Wick Size As A Percentage Of Its Entire Body Size
Returns: Float - The Current Candle Top Wick Size IN PERCENTAGE
GetBottomWickPercent()
Gets The Current Bottom Wick Size As A Percentage Of Its Entire Bodu Size
Returns: Float - The Current Candle Bottom Size IN PERCENTAGE
BullishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Engulfing Candle
Parameters:
Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Engulfing Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Engulfing Candle
BearishEC(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bearish Engulfing Candle
Parameters:
Allowance (int) : To Give Flexibility Of Engulfing Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Engulfing Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Engulfing Candle
Hammer(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod)
Checks If The Current Bar Is A Hammer Candle
Parameters:
Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
Star(Fib, ColorMatch, NearSwings, SwingLookBack, ATRFilterCheck, ATRPeriod)
Checks If The Current Bar Is A Hammer Candle
Parameters:
Fib (float) : To Specify Which Fibonacci Ratio To Use When Determining The Hammer Candle, Defval = 0.382 Ratio
ColorMatch (bool) : To Filter Only Bullish Closed Hammer Candle Pattern, Defval = false
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
ATRFilterCheck (float) : To Filter Smaller Hammer Candles That Might Be Better Classified As A Doji Candle, Defval = 1
ATRPeriod (simple int) : To Change ATR Period Of The ATR Filter, Defval = 20
Returns: Bool - True If The Current Bar Matches The Requirements of a Hammer Candle
Doji(MaxWickSize, MaxBodySize, DojiType, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Doji Candle
Parameters:
MaxWickSize (float) : To Specify The Maximum Lenght Of Its Upper & Lower Wick, Defval = 2
MaxBodySize (float) : To Specify The Maximum Lenght Of Its Candle Body IN PERCENT, Defval = 0.05
DojiType (int)
NearSwings (bool) : To Specify If We Want The Doji To Be Near A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High / Low (Only In Dragonlyf / Gravestone Mode), Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Doji Candle
BullishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Harami Candle
Parameters:
Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bullsih Harami Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing Low, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing Low, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bullish Harami Candle
BearishIB(Allowance, RejectionWickSize, EngulfWick, NearSwings, SwingLookBack)
Checks If The Current Bar Is A Bullish Harami Candle
Parameters:
Allowance (int) : To Give Flexibility Of Harami Pattern Detection In Markets That Have Micro Gaps, Defval = 0
RejectionWickSize (float) : To Filter Out long (Upper And Lower) Wick From The Bearish Harami Pattern, Defval = na
EngulfWick (bool) : To Specify If We Want The Pattern To Also Engulf Its Upper & Lower Previous Wicks, Defval = false
NearSwings (bool) : To Specify If We Want The Pattern To Be Near A Recent Swing High, Defval = true
SwingLookBack (int) : To Specify How Many Bars Back To Detect A Recent Swing High, Defval = 10
Returns: Bool - True If The Current Bar Matches The Requirements of a Bearish Harami Candle
//====================================================================================================================================================
// Custom Time Functions
//====================================================================================================================================================
BarInSession(sess, useFilter)
Determines if the current price bar falls inside the specified session © ZenAndTheArtOfTrading
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls within the given time session
BarOutSession(sess, useFilter)
Determines if the current price bar falls outside the specified session © ZenAndTheArtOfTrading
Parameters:
sess (simple string)
useFilter (bool)
Returns: A boolean - true if the current bar falls outside the given time session
DateFilter(startTime, endTime)
Determines if this bar's time falls within date filter range © ZenAndTheArtOfTrading
Parameters:
startTime (int)
endTime (int)
Returns: A boolean - true if the current bar falls within the given dates
DayFilter(monday, tuesday, wednesday, thursday, friday, saturday, sunday)
Checks if the current bar's day is in the list of given days to analyze © ZenAndTheArtOfTrading
Parameters:
monday (bool)
tuesday (bool)
wednesday (bool)
thursday (bool)
friday (bool)
saturday (bool)
sunday (bool)
Returns: A boolean - true if the current bar's day is one of the given days
AUSSess()
Checks If The Current Australian Forex Session In Running
Returns: Bool - True If Currently The Australian Session Is Running
ASIASess()
Checks If The Current Asian Forex Session In Running
Returns: Bool - True If Currently The Asian Session Is Running
EURSess()
Checks If The Current European Forex Session In Running
Returns: Bool - True If Currently The European Session Is Running
USSess()
Checks If The Current US Forex Session In Running
Returns: Bool - True If Currently The US Session Is Running
UNIXToDate(Time, ConversionType, TimeZone)
Converts UNIX Time To Datetime
Parameters:
Time (int) : Is The UNIX Time Input
ConversionType (int) : Is The Datetime Output Format, Defval = DD-MM-YYYY
TimeZone (string) : Is To Convert The Outputed Datetime Into The Specified Time Zone, Defval = Exchange Time Zone
Returns: String - String Of Datetime
Three-Day Rolling PivotThe three-day rolling pivot is another pivot concept,
which may be used by intermediate positions, for several days or even weeks.
It can be utilized in many ways, such as to determine an entry point or trailing stop.
As the name suggests, this pivot is based on the last three days.
I learned this concept of the book "The logical Trader" by Mark Fisher.
Kudos go to him!
My version of the Three-Day Rolling Pivot uses actual data!
And all similar scripts I have found so far calculate future data and don't take into account the original data.
I hope this script will help some people to do some better decisions.
And I am pleased to get some advice to make this script even better!
Future data vs original data
Pine Script v5 Reference Manual:
Merge strategy for the requested data position... This merge strategy can lead to undesirable effect of getting data from "future" on calculation on history. This is unacceptable in backtesting strategies, but can be useful in indicators.
e2e4 on Stack Overflow said:
Pine v1-v2's security() function is using the lookahead parameter by default, which could be modified in v3-v5...
stackoverflow.com
I haven't found a script which put this into account jet.
I leave this option available for people that wanna more speculated data. But it's disabled by default.
Long/Short Example
You can enter Long when the market cross over the upper line (default color is green) and you should put your trailing stop 1-5 ticks below the lower line (default color is red).
The opposite when Shorting, then the market has to cross down the lower line and your trailing stop should be 1-5 ticks above the upper line.
How does this script work:
First it fetches the highest high of ...
yesterday,
the day before yesterday,
and the day before that.
After that the script looks for the highest high of all three.
Next it does the same for previous lowest low.
Last but not least, it fetches the closing price of the last day.
After that it adds all three prices together and divide them by three.
This result in a three day pivot price.
Then it adds the highest high and lowest low of the three last days and divide it by two.
This gives us the second number we need to calculate the differential.
The differential is the gap between the three day pivot price and the second number.
Sometimes the second number is bigger than the three day pivot price so I took that into account too. Other wise the colors plotted would be on the wrong site.
Finally, the script is rounding the numbers to the nearest minimum tick of that security.
MPF EMA Cross Strategy (8~13~21) by Market Pip FactoryThis script is for a complete strategy to win maximum profit on trades whilst keeping losses at a minimum, using sound risk management at no greater than 1.5%
The 3x EMA Strategy uses the following parameters for trade activation and closure.
1/ Daily Time Frame for trend confirmation
2/ 4 Hourly Time Frame for trend confirmation
3/ 1 Hourly Time Frame for trend confirmation AND trade execution
4/ 3x EMAs (Exponential Moving Averages)
* EMA#1 = 8 EMA (Red Color)
* EMA#2 = 13 EMA (Blue Color)
* EMA#3 = 21 EMA (Orange Color)
5/ Fanning of all 3x EMAs and CrossOver/CrossUnder for Trend Confirmation
6/ Price Action touching an 8 EMA for trade activation
7/ Price Action touching a 21 EMA for trade cancellation BEFORE activation
* For LONG trades: 8 EMA would be ABOVE 21 EMA
* For SHORT trades: 8 EMA would be BELOW 21 EMA
* For trade Cancellation, price action would touch the 21 EMA before trade is activated
* For trade Entry, price action would touch 8 EMA
Once trigger parameter is identified, entry is found by:
a) Price action touches 8 EMA (Candle must Close for confirmed Trade preparation)
b) Trade preparation can be cancelled before trade is activated if price action touches 21 EMA
c) Trailing Stop Loss can be used (optional) by counting back 5 candles from current candle
CLOSURE of a Trade is identified by:
e) 8 EMA crossing the 21 EMA, then close trade, no matter LONG or SHORT
f) Trail Stop Loss
IMPORTANT:
g) No more than ONE activated trade per EMA crossover
h) No more than ONE active trade per pair
NOTE: This strategy is to be used in conjunction with Cipher Twister (my other indicator) to reduce trades on
sideways price action and market trends for super high win ratio.
NOTE: Enabling of LONGs and SHORTs Via Cipher Twister is done by using the previous
green or red dot made. Additionally, when the trend changes, so do the dot's validity based
on being above or below the 0 centerline.
----------------------------
Strategy and Bot Logic
----------------------------
.....::: FOR SHORT TRADES ONLY :::.....
The Robot must use the following logic to enable and activate the SHORT trades:
Parameters:
$(crossunder)=8EMA,21EMA=Bearish $(crossover)=8EMA,21EMA=Bullish $entry=SELL STOP ORDER (Short)
$EMA#1 = 8 EMA (Red Color) $EMA#2 = 13 EMA (Blue Color) $EMA#3 = 21 EMA (Orange Color)
Strategy Logic:
1/ Check Daily Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=daily and trend=$(crossunder) then goto 2/ *Means: crossunder = ema21 > ema8
$(chart)=daily and trend=$(crossover) then stop (No trades) *Means: crossover = ema8 > ema21
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
2/ Check 4 Hourly Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=4H and trend=$(crossunder) then goto 3/ *Means: crossunder = ema21 > ema8
$(chart)=4H and trend=$(crossover) then stop (No trades) *Means: crossover = ema8 > ema21
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
3/ 1 Hourly Time Frame for trend confirmation AND trade execution if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=1H and trend=$(crossunder) then goto 4/ *Means: crossunder = ema21 > ema8
$(chart)=1H and trend=$(crossover) then stop (No trades) *Means: crossover = ema8 > ema21
4/ Trade preparation:
* if Next (subsequent) candle touches 8EMA, then set STOP LOSS and ENTRY
* $stoploss=3 pips ABOVE current candle HIGH
* $entry=3 pips BELOW current candle LOW
5/ Trade waiting (ONLY BEFORE entry is hit and trade activated):
* if price action touches 21 EMA then cancel trade and goto 1/
Note: Once trade is active this function does not apply !
6/ Trade Activation:
* if price activates/hits ENTRY price, then bot activates trade SHORTs market
7/ Optional Trailing stop:
* if active, then trailing stop 3 pips ABOVE previous HIGH of previous 5th candle
or * Move Stop Loss to Break Even after $X number of pips
NOTE: This means count back and apply accordingly to the 5th previous candle from current candle.
NOTE: This function is switchable. 0=off and 1=on(active). Default = 0 (off)
8/ Trade Close ~ Take Profit:
* Only TP when
$(chart)=1H and trend=$(crossover) then close trade ~ Or obviously if Stop Loss is hit if 7/ is activated.
----------END FOR SHORT TRADES LOGIC----------
.....::: FOR LONG TRADES ONLY :::.....
The Robot must use the following logic to enable and activate the LONG trades:
Parameters:
$(crossunder)=8EMA,21EMA=Bearish $(crossover)=8EMA,21EMA=Bullish $entry=BUY STOP ORDER (Long)
$EMA#1 = 8 EMA (Red Color) $EMA#2 = 13 EMA (Blue Color) $EMA#3 = 21 EMA (Orange Color)
Strategy Logic:
1/ Check Daily Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=daily and trend=$(crossover) then goto 2/ *Means: crossover = ema8 > ema21
$(chart)=daily and trend=$(crossunder) then stop (No trades) *Means: crossunder = ema21 > ema8
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
2/ Check 4 Hourly Time Frame for trend confirmation if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=4H and trend=$(crossover) then goto 3/ *Means: crossover = ema8 > ema21
$(chart)=4H and trend=$(crossunder) then stop (No trades) *Means: crossunder = ema21 > ema8
NOTE: This function is switchable. 0=off and 1=on(active). Default = 1 (on)
3/ 1 Hourly Time Frame for trend confirmation AND trade execution if:
(look back up to 50 candles - find last cross of EMAs)
$(chart)=1H and trend=$(crossover) then goto 4/ *Means: crossover = ema8 > ema21
$(chart)=1H and trend=$(crossunder) then stop (No trades) *Means: crossunder = ema21 > ema8
4/ Trade preparation:
* if Next (subsequent) candle touches 8EMA, then set STOP LOSS and ENTRY
* $stoploss=3 pips BELOW current candle LOW
* $entry=3 pips ABOVE current candle HIGH
5/ Trade waiting (ONLY BEFORE entry is hit and trade activated):
* if price action touches 21 EMA then cancel trade and goto 1/
Note: Once trade is active this function does not apply !
6/ Trade Activation:
* if price activates/hits ENTRY price, then bot activates trade LONGs market
7/ Optional Trailing stop:
* if active, then trailing stop 3 pips BELOW previous LOW of previous 5th candle
or * Move Stop Loss to Break Even after $X number of pips
NOTE: This means count back and apply accordingly to the 5th previous candle from current candle.
NOTE: This function is switchable. 0=off and 1=on(active). Default = 0 (off)
8/ Trade Close ~ Take Profit:
* Only TP when
$(chart)=1H and trend=$(crossunder) then close trade ~ Or obviously if Stop Loss is hit if 7/ is activated.
----------END FOR LONG TRADES LOGIC----------
IMPORTANT:
* If an existing trade is already open for that same pair, & price action touches 8EMA, do NOT open a new trade..
* bot must continuously check if a trade is currently open on the pair that triggers
* New trades are to be only opened if there is no active trade opened on current pair.
* Only 1 trade per pair rule !
* 5 simultaneous open trades (not same pairs) default = 5 but value can be changed accordingly.
* Maximum risk management must not exceed 1.5% on lot size
*** Some features are not yet available autoated, they will be added in due course in subsequent version updates ***
Bjorgum AutoTrailOne Time Trade Risk Management
Incorporating the new interactive feature, this script is meant as a one time trailing stop for the active trader to manage positional risk of an ongoing trade. As a crypto trader or Fx trader, many may find themselves in a position late into the evening, or perhaps daily life is calling while a trade progresses in their favor. Adding a trailing stop to a position thats trending can help to keep you in the trade and lock in gains if things turn around when you are unable to react.
To use the trail, the user would add the script to the chart. Once added, a set of crosshairs will appear allowing the user to choose a point to begin. Often choosing to start a trail from a swing high/ low can be an ideal option. This tends to provide some protection for a stop by placing it under support for a long trade or above resistance for a short trade.
Price based trail
The trail will automatically plot and the offset is a factor of the distance from price action selected by the crosshairs. If placed above price action the script will plot a short trail, if placed below it will trail for a long position.
Additionally, there are several other trail types other than price based. There is also percent based, which offsets the trail as a percent from close. A hard stop is placed at the cross hair value, then once the distance is exceeded by the percentage specified, the trail begins.
There are 2 more volatility based trails. There is a PSAR trail which can provide quicker and tighter stops that accelerate with the trend locking in gains faster, and an ATR trail that keeps a distance from price action as a function of volatility. Volatility levels can be adjusted from the menu.
Volatility based trail (ATR)
Volatility based trail (PSAR)
Lastly, within the code for more the more technical savvy, is some starting setups for string alerts to be sent to exchanges via 3rd party or custom API applications. Some string manipulation is required for specific providers to meet their requirements, but there is some building block alerts that will take the ticker symbol, recognize the asset your trading (Fx, Crypto, etc) and take input quantity or exchange names from the settings via inputs.
Complex strings can be built to perform almost any trade related task when to comes to alerts via web hook. A little setup this way with some technology to back your system can mean a semi-automated half man, half machine setup that actually manages your trail stop while you cannot. For those that don’t go this far, there is some basic alert functionality that well trigger when a trail is hit so you can react and make a decision.
Please note that for now, interactive mode is engaged only when the script is added to the chart. Additional stops, or for adjustments to be made it is best to add a new version. Also as real trades could be at play managing an actual position, alerts are designed to go off only once to ensure no duplicate orders are sent meaning alerts are not reoccurring. Once an alert is triggered, a new trail is to be set up.
A modified version of the TradingView built in SAR equation was used in this script. To provide the value of the SAR on the stop candle, it was necessary to alter the equation to extract this value as the regular SAR “flips” at this point. Thank you to TradingView for supplying access to the built in formula so that this SAR could behave the same as the built-in function outside of these alterations
Example of SAR value maintained in trigger candle
Cheers and happy trading.
Zignaly TutorialThis strategy serves as a beginner's guide to connect TradingView signals to Zignaly Crypto Trading Platform.
It was originally tested at BTCUSDT pair and 1D timeframe.
Before using this documentation it's recommended that you:
Use default TradingView strategy script or another script and setup its associated alert manually. Just make the alert pop-up in the screen.
Create a 'Copy-Trader provider' (or Signal Provider) in Zignaly and send signals to it either thanks to your browser or with some basic programming.
SETTINGS
__ SETTINGS - Capital
(CAPITAL) Capital quote invested per order in USDT units {100.0}. This setting is only used when '(ZIG) Provider type' is set to 'Signal Provider'.
(CAPITAL) Capital percentage invested per order (%) {25.0}. This setting is only used when '(ZIG) Provider type' is set to 'Copy Trader Provider'.
__ SETTINGS - Misc
(ZIG) Enable Alert message {True}: Whether to enable alert message or not.
(DEBUG) Enable debug on order comments {True}: Whether to show alerts on order comments or not.
Number of decimal digits for Prices {2}.
(DECIMAL) Maximum number of decimal for contracts {3}.
__ SETTINGS - Zignaly
(ZIG) Integration type {TradingView only}: Hybrid : Both TradingView and Zignaly handle take profit, trailing stops and stop losses. Useful if you are scared about TradingView not firing an alert. It might arise problems if TradingView and Zignaly get out of sync. TradingView only : TradingView sends entry and exit orders to Zignaly so that Zignaly only buys or sells. Zignaly won't handle stop loss or other settings on its own.
(ZIG) Zignaly Alert Type {WebHook}: 'Email' or 'WebHook'.
(ZIG) Provider type {Copy Trader Provider}: 'Copy Trader Provider' or 'Signal Provider'. 'Copy Trader Provider' sends a percentage to manage. 'Signal Provider' sends a quote to manage.
(ZIG) Exchange: 'Binance' or 'Kucoin'.
(ZIG) Exchange Type {Spot}: 'Spot' or 'Futures'.
(ZIG) Leverage {1}. Set it to '1' when '(ZIG) Exchange Type' is set to 'Spot'.
__ SETTINGS - Strategy
(STRAT) Strategy Type: 'Long and Short', 'Long Only' or 'Short Only'.
(STOPTAKE) Take Profit? {false}: Whether to enable Take Profit.
(STOPTAKE) Stop Loss? {True}: Whether to enable Stop Loss.
(TRAILING) Enable Trailing Take Profit (%) {True}: Whether to enable Trailing Take Profit.
(STOPTAKE) Take Profit % {3.0}: Take profit percentage. This setting is only used when '(STOPTAKE) Take Profit?' setting is set to true.
(STOPTAKE) Stop Loss % {2.0}: Stop loss percentage. This setting is only used when '(STOPTAKE) Stop Loss?' setting is set to true.
(TRAILING) Trailing Take Profit Trigger (%) {2.5}: Trailing Stop Trigger Percentage. This setting is only used when '(TRAILING) Enable Trailing Take Profit (%)' setting is set to true.
(TRAILING) Trailing Take Profit as a percentage of Trailing Take Profit Trigger (%) {25.0}: Trailing Stop Distance Percentage. This setting is only used when '(TRAILING) Enable Trailing Take Profit (%)' setting is set to true.
(RECENT) Number of minutes to wait to open a new order after the previous one has been opened {6}.
DEFAULT SETTINGS
By default this strategy has been setup with these beginner settings:
'(ZIG) Integration type' : TradingView only
'(ZIG) Provider type' : 'Copy Trader Provider'
'(ZIG) Exchange' : 'Binance'
'(ZIG) Exchange Type' : 'Spot'
'(STRAT) Strategy Type' : 'Long Only'
'(ZIG) Leverage' : '1' (Or no leverage)
but you can change those settings if needed.
FIRST STEP
For both future of spot markets you should make sure to change '(ZIG) Zignaly Alert Type' to match either WebHook or Email. If you have a non paid account in TradingView as in October 2020 you would have to use Email which it's free to use.
RECOMMENDED SETTINGS
__ RECOMMENDED SETTINGS - Spot markets
'(ZIG) Exchange Type' setting should be set to 'Spot'
'(STRAT) Strategy Type' setting should be set to 'Long Only'
'(ZIG) Leverage' setting should be set to '1'
__ RECOMMENDED SETTINGS - Future markets
'(ZIG) Exchange Type' setting should be set to 'Futures'
'(STRAT) Strategy Type' setting should be set to 'Long and Short'
'(ZIG) Leverage' setting might be changed if desired.
__ RECOMMENDED SETTINGS - Signal Providers
'(ZIG) Provider type' setting should be set to 'Signal Provider'
'(CAPITAL) Capital quote invested per order in USDT units' setting might be changed if desired.
__ RECOMMENDED SETTINGS - Copy Trader Providers
'(ZIG) Provider type' setting should be set to 'Copy Trader Provider'
'(CAPITAL) Capital percentage invested per order (%)' setting might be changed if desired.
Strategy Properties setting: 'Initial Capital' might be changed if desired.
INTEGRATION TYPE EXPLANATION
'Hybrid': Both TradingView and Zignaly handle take profit, trailing stops and stop losses. Useful if you are scared about TradingView not firing an alert. It might arise problems if TradingView and Zignaly get out of sync.
'TradingView only': TradingView sends entry and exit orders to Zignaly so that Zignaly only buys or sells. Zignaly won't handle stop loss or other settings on its own.
HOW TO USE THIS STRATEGY
Beginner: Copy and paste the strategy and change it to your needs. Turn off '(DEBUG) Enable debug on order comments' setting.
Medium: Reuse functions and inputs from this strategy into your own as if it was a library.
Advanced: Check Strategy Tester. List of trades. Copy and paste the different suggested 'alert_message' variable contents to your script.
Expert: I needed a way to pass data from TradingView script to the alert. Now I know it's the 'alert_message' variable. I can do this own my own.
ALERTS SETUP
This is the important piece of information that allows you to connect TradingView to Zignaly in a semi-automatic manner.
__ ALERTS SETUP - WebHook
Webhook URL: https : // zignaly . com / api / signals.php?key=MYSECRETKEY
Message: { {{strategy.order.alert_message}} , "key" : "MYSECRETKEY" }
__ ALERTS SETUP - Email
Setup a new Hotmail account
Add it as an 'SMS email' in TradingView Profile settings page.
Confirm your own the email address
Create a rule in your Hotmail account that 'Redirects' (not forwards) emails to 'signals @ zignaly . email' when (1): 'Subject' includes 'Alert', (2): 'Email body' contains string 'MYZIGNALYREDIRECTTRIGGER' and (3): 'From' contains 'noreply @ tradingview . com'.
In 'More Actions' check: Send Email-to-SMS
Message: ||{{strategy.order.alert_message}}||key=MYSECRETKEY||
MYZIGNALYREDIRECTTRIGGER
'(DEBUG) Enable debug on order comments' is turned on by default so that you can see in the Strategy Tester. List of Trades. The different orders alert_message that would have been sent to your alert. You might want to turn it off it some many letters in the screen is problem.
STRATEGY ADVICE
If you turn on 'Take Profit' then turn off 'Trailing Take Profit'.
ZIGNALY SIDE ADVICE
If you are a 'Signal Provider' make sure that 'Allow reusing the same signalId if there isn't any open position using it?' setting in the profile tab is set to true.
You can find your 'MYSECRETKEY' in your 'Copy Trader/Signal' provider Edit tab at 'Signal URL'.
ADDITIONAL ZIGNALY DOCUMENTATION
docs . zignaly . com / signals / how-to -- How to send signals to Zignaly
3 Ways to send signals to Zignaly
SIGNALS
FINAL REMARKS
This strategy tries to match the Pine Script Coding Conventions as best as possible.
Fibonacci-Trading-Indicator_2 (Code-Änderung)Tägliche Gewinne mit dem Fibonacci-Trading Indikator
Die Notierungen bewegen sich in liquiden Märkten in Fibonacci-Verhältnissen. Mit diesem Indikator erhalten Sie für Tagesgeschäfte und für Positionstrades auf Basis einer Woche oder eines Monats Informationen, wo Sie in den Markt einsteigen sollten und was das mindeste erreichbare Kursziel ist. Dieses Kursziel liegt bei 61,8% der gestrigen Handelspanne, der Handelspanne der Vorwoche oder der Handelspanne des Vormonats. Dort realisieren Sie Ihre Gewinne.
Erforderliche Eingaben im Eigenschaftenfenster des Indikators:
• Vorwahl Aufwärtstrend/ Abwärtstrend.
• Zeitrahmen des Kursbalkens für das zu ermittelnde mögliche Hoch/ Tief.
• Handelspanne der vorherigen Periode.
• Aktuell tiefstes Tief des vorgewählten Zeitrahmens, wenn die Notierungen steigen.
• Aktuell höchstes Hoch des vorgewählten Zeitrahmens, wenn die Notierungen fallen.
Für die Erkennung der Bewegungsrichtung kann der Camelback-Indikator eine gute Hilfe sein.
Ausgaben im Chart sind die möglichen Kurslevels, für das mögliche Hoch oder Tief des Kursbalkens im eingestellten Zeitrahmen des Trading-Indikators.
Wichtige Bereiche für das Trading sind folgende Kurslevels:
• Einstiegsbereich 0% - 14,6% oder 0% - 23,6%
• Kursziellevel 61,8%
Kaufen/ verkaufen Sie innerhalb des Einstiegsbereichs zwischen 0% und 23,6%, während der Markt die Bewegungsrichtung vorgibt und sich in Richtung des long-/ oder short-Einstiegspunktes bewegt. Das sind jeweils die Kurslevels bei 14,6% oder 23,6%. Der 61,8%-Kurslevel ist das mindeste erwartbare Kursziel. Wir gehen davon aus, dass der aktuelle Kursbalken mindestens 61,8% der Handelsspanne, der vorherigen Periode erreichen wird. Realisieren Sie deshalb die angelaufenen Gewinne mit 50% der Position, wenn die Notierungen den 61,8% - Level erreicht haben. Mit einem geeigneten Trailing-Stopp lassen Sie sich mit der restlichen Position ausstoppen, riskieren Sie dafür aber nicht mehr als 50 % der angelaufenen Gewinne.
Wählen Sie einen kleinen Zeitrahmen, wenn sich die Notierungen noch im Einstiegsbereich bewegen, um die Richtung des Kursbalkens zu erkennen. Für Positionstrades auf Wochen- oder Monatssicht wird für den Einstieg der Einstiegsbereich 0% - bis 14,6% gewählt. Für Tagesgeschäfte (Zeitrahmen Tag vorgewählt) wird wegen der geringeren Tageshandelspanne der Einstiegsbereich 0% - 23,6% empfohlen.
Mit der Vorwahl Jahr und den entsprechenden Eingaben kann auch das mindeste erwartbare Jahreshoch/ Jahrestief ermittelt werden.
Die Fibonacci-Kurslevels lassen sich ein- und ausblenden. Klicken Sie im Chart auf das Zahnrad für „Chart Einstellungen“. Im Menü „Skalierungen“ kann mit der Vorwahl „Label für Indikatornahmen“ und „Label für letzten Indikatorwert“ die Kurslevels angezeigt werden. Schieben Sie den Chart nach rechts um Unterstützungen und Widerstände an den Kurslevels zu finden.
Bei Eingabefehlern oder fehlenden Eingaben zu einem Zeitrahmen wird der Indikator ausgeblendet.
Achten Sie zur Vermeidung von Verlusten auf ihr Handelsmanagement.
Daily profits with the Fibonacci trading indicator
The quotes move in Fibonacci ratios in liquid markets. With this indicator you receive information for daily trades and position trades based on a week or a month, where you should enter the market and what is the minimum price target that you can achieve. This price target is 61.8% of yesterday's trading range, the trading range of the previous week or the trading range of the previous month.
There you realize your profits.Required entries in the properties window of the indicator:
• Preselection uptrend / downtrend.
• Time frame of the price bar for the possible high / low to be determined.
• previous period trading range.
• Current lowest low of the selected time frame when prices rise.
• Current highest high in the selected time frame when prices fall.
The camelback indicator can be of great help in recognizing the direction of movement.
Outputs in the chart are the possible price levels for the possible high or low of the price bar in the set time frame of the trading indicator.
The following price levels are important areas for trading:
• Entry range 0% - 14.6% or 0% - 23.6%
• Target price level 61.8%
Buy / sell within the entry range between 0% and 23.6% as the market sets the direction of movement and moves towards the long / or short entry point. These are the price levels at 14.6% or 23.6%. The 61.8% price level is the minimum expected price target. We assume that the current bar will reach at least 61.8% of the trading range of the previous period. You should therefore realize the profits you have made with 50% of the position when the prices have reached the 61.8% level. With a suitable trailing stop you can be stopped with the rest of the position, but do not risk more than 50% of the profits.
Choose a small time frame when the quotes are still moving in the entry area to see the direction of the price bar. For position trades on a weekly or monthly perspective, the entry range 0% - to 14.6% is chosen. For day-to-day trades (pre-selected time frame), the entry range 0% - 23.6% is recommended due to the lower daily trading range.With the preselection year and the corresponding entries, the minimum expected annual high / annual low can also be determined.
The Fibonacci price levels can be shown and hidden. In the chart click on the gear wheel for “Chart Settings”. In the “Scaling” menu, the price levels can be displayed with the preselection “Label for indicator names” and “Label for last indicator value”. Slide the chart to the right to find support and resistance at the price levels.
In the event of input errors or missing entries for a time frame, the indicator is hidden.
Pay attention to your trade management to avoid losses.
Parabolic SAR & Arnoud Legoux Moving Avarage StrategyIn the first short signal example, after price closes below the ALMA and the parabolic SAR plots above the price high, sell signal is opened with the stops trailed to the PSAR values until the trade is stopped out.
Similarly, you can see a long position where price cuts above the ALMA and the Parabolic SAR plots below the price low. Using these values as the trailing stop levels, we can stay long into the trade until the trade is stopped out.
Find out optimal values by trying. May not produce accurate results in horizontal markets. Thank you.
ScalpZone — EMA+RSI+ATR (Nifty/Sensex)//@version=5
indicator("ScalpZone — EMA+RSI+ATR (Nifty/Sensex)", overlay=true, shorttitle="ScalpZone v2")
// === Inputs ===
fastLen = input.int(9, title="Fast EMA", minval=1)
slowLen = input.int(21, title="Slow EMA", minval=1)
rsiLen = input.int(7, title="RSI Length", minval=1)
rsi_high = input.int(70, title="RSI Overbought")
rsi_low = input.int(35, title="RSI Oversold (for entries)")
atrLen = input.int(14, title="ATR Length")
atrMult = input.float(1.5, title="ATR Multiplier (trailing stop)")
useStrictPullback = input.bool(true, title="Require pullback candle (close < fast EMA) for entry")
showStops = input.bool(true, title="Show trailing stop line")
showEMAs = input.bool(true, title="Show EMAs")
// === Core indicators ===
emaFast = ta.ema(close, fastLen)
emaSlow = ta.ema(close, slowLen)
rsiVal = ta.rsi(close, rsiLen)
atr = ta.atr(atrLen)
// === Trend detection ===
bullTrend = emaFast > emaSlow
bearTrend = emaFast < emaSlow
// Pullback
pullback = close < emaFast
// Entry conditions
longCondition = bullTrend and (not useStrictPullback or pullback) and (rsiVal > rsi_low and rsiVal < rsi_high) and close > open and close > emaFast
shortCondition = bearTrend and (not useStrictPullback or not pullback) and (rsiVal < rsi_high and rsiVal > rsi_low) and close < open and close < emaFast
// === Trailing stops ===
var float longTrail = na
var float shortTrail = na
if (longCondition)
longTrail := close - atr * atrMult
else if not na(longTrail)
longTrail := math.max(longTrail, close - atr * atrMult)
if (shortCondition)
shortTrail := close + atr * atrMult
else if not na(shortTrail)
shortTrail := math.min(shortTrail, close + atr * atrMult)
// Exit signals
longExit = not na(longTrail) and close < longTrail
shortExit = not na(shortTrail) and close > shortTrail
// === Dynamic EMA colors ===
emaFastColor = emaFast > emaSlow ? color.green : color.red
emaSlowColor = color.orange
// === Plots ===
// Signals
plotshape(longCondition, title="Long Entry", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.tiny, text="LONG")
plotshape(shortCondition, title="Short Entry", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.tiny, text="SHORT")
plotshape(longExit, title="Long Exit", location=location.abovebar, color=color.orange, style=shape.xcross, size=size.tiny, text="EXIT")
plotshape(shortExit, title="Short Exit", location=location.belowbar, color=color.orange, style=shape.xcross, size=size.tiny, text="EXIT")
// EMAs (with visibility toggle)
plot(emaFast, title="EMA Fast", color=emaFastColor, linewidth=2,
display = showEMAs ? display.all : display.none)
plot(emaSlow, title="EMA Slow", color=emaSlowColor, linewidth=2,
display = showEMAs ? display.all : display.none)
// Trailing stops (with visibility toggle)
plot(longTrail, title="Long Trail", style=plot.style_linebr, linewidth=2, color=color.green,
display = showStops ? display.all : display.none)
plot(shortTrail, title="Short Trail", style=plot.style_linebr, linewidth=2, color=color.red,
display = showStops ? display.all : display.none)
// RSI (hidden panel — you can enable in Style menu)
plot(rsiVal, title="RSI", color=color.blue, display=display.none)
hline(rsi_high, "RSI High", color=color.gray, linestyle=hline.style_dotted)
hline(rsi_low, "RSI Low", color=color.gray, linestyle=hline.style_dotted)
// === Alerts ===
alertcondition(longCondition, title="ScalpZone Long", message="ScalpZone: LONG signal on {{ticker}} {{interval}} — Close: {{close}}")
alertcondition(shortCondition, title="ScalpZone Short", message="ScalpZone: SHORT signal on {{ticker}} {{interval}} — Close: {{close}}")
alertcondition(longExit, title="ScalpZone Long Exit", message="ScalpZone: EXIT LONG on {{ticker}} {{interval}} — Close: {{close}}")
alertcondition(shortExit, title="ScalpZone Short Exit", message="ScalpZone: EXIT SHORT on {{ticker}} {{interval}} — Close: {{close}}")
Gann Fan Strategy [KedarArc Quant]Description
A single-concept, rule-based strategy that trades around a programmatic Gann Fan.
It anchors to a swing (or a manual point), builds 1×1 and related fan lines numerically, and triggers entries when price interacts with the 1×1 (breakout or bounce). Management is done entirely with the fan structure (next/previous line) plus optional ATR trailing.
What TV indicators are used
* Pivots: `ta.pivothigh/ta.pivotlow` to confirm swing highs/lows for anchor selection.
* ATR: `ta.atr` only to scale the 1×1 slope (optional) and for an optional trailing stop.
* EMA: `ta.ema` as a trend filter (e.g., only long above the EMA, short below).
No RSI/MACD/Stoch/Heikin/etc. The logic is one coherent framework: Gann price–time geometry, with ATR as a scale and EMA as a risk filter.
How it works
1. Anchor
* Auto: chooses the most recent *confirmed* pivot (you control Left/Right).
* Manual: set a price and bar index and the fan will hold that point (no re-anchoring).
* Optional Re-anchor when a newer pivot confirms.
2. 1×1 Slope (numeric, not cosmetic)
* ATR mode: `1×1 = ATR(Length) × Multiplier` (adapts to volatility).
* Fixed mode: `ticks per bar` (constant slope).
Because slope is numeric, it doesn’t change with chart zoom, unlike the drawing tool.
3. Fan Lines
Builds classic ratios around the 1×1: 1/8, 1/4, 1/3, 1/2, 1/1, 2/1, 3/1, 4/1, 8/1.
4. Signals
* Breakout: cross of price over/under the 1×1 in the EMA-aligned direction.
* Bounce (optional): touch + reversal across the 1×1 to reduce whipsaw.
5. Exits & Risk
* Take-profit at the next fan line; Stop at the previous fan line.
* If a level is missing (right after re-anchor), a fallback Risk-Reward (RR) is used.
* Optional ATR trailing stop.
Why this is unique
* True numeric fan: The 1×1 slope is calculated from ATR or fixed ticks—not from screen geometry—so it is scale-invariant and reproducible across users/timeframes.
* Deterministic anchor logic: Uses confirmed pivots (with your L/R settings). No look-ahead; anchors update only when the right bars complete.
* Fan-native trade management: Both entries and exits come from the fan structure itself (with a minimal ATR/EMA assist), keeping the method pure.
* Two entry archetypes: Breakout for momentum days; Bounce for range days—switchable without changing the core model.
* Manual mode: Lock a session’s bias by anchoring to a chosen swing (e.g., day’s first major low/high) and keep the fan constant all day.
Inputs (quick guide)
* Auto Anchor (Left/Right): pivot sensitivity. Higher values = fewer, stronger anchors.
* Re-anchor: refresh to newer pivots as they confirm.
* Manual Anchor Price / Bar Index: fixes the fan (turn Auto off).
* Scale 1×1 by ATR: on = adaptive; off = use ticks per bar.
* ATR Length / ATR Multiplier: controls adaptive slope; start around 14 / 0.25–0.35.
* Ticks per bar: exact fixed slope (match a hand-drawn fan by computing slope ÷ mintick).
* EMA Trend Filter: e.g., 50–100; trades only in EMA direction.
* Use Bounce: require touch + reverse across 1×1 (helps in chop).
* TP/SL at fan lines; Fallback RR for missing levels; ATR Trailing Stop optional.
* Transparency/Plot EMA: visual preferences.
Tips
* Range days: larger pivots (L/R 8–12), Bounce ON, ATR Multiplier \~0.30–0.40, EMA 100.
* Trend days: L/R 5–6, Breakout, Multiplier \~0.20–0.30, EMA 50, ATR trail 1.0–1.5.
* Match the TV Gann Fan drawing: turn ATR scale OFF, set ticks per bar = `(Δprice between anchor and 1×1 target) / (bars) / mintick`.
Repainting & testing notes
* Pivots require Right bars to confirm; anchors are set after confirmation (no look-ahead).
* Signals use the current bar close with TradingView strategy mechanics; real-time vs. bar-close can differ slightly, as with any strategy.
* Re-anchoring legitimately moves the structure when new pivots confirm—by design.
⚠️ Disclaimer
This script is provided for educational purposes only.
Past performance does not guarantee future results.
Trading involves risk, and users should exercise caution and use proper risk management when applying this strategy.
J12Matic Builder by galgoomA flexible Renko/tick strategy that lets you choose between two entry engines (Multi-Source 3-way or QBand+Moneyball), with a unified trailing/TP exit engine, NY-time trading windows with auto-flatten, daily profit/loss and trade-count limits (HALT mode), and clean webhook routing using {{strategy.order.alert_message}}.
Highlights
Two entry engines
Multi-Source (3): up to three long/short sources with Single / Dual / Triple logic and optional lookback.
QBand + Moneyball: Gate → Trigger workflow with timing windows, OR/AND trigger modes, per-window caps, optional same-bar fire.
Unified exit engine: Trailing by Bricks or Ticks, plus optional static TP/SL.
Session control (NY time): Evening / Overnight / NY Session windows; auto-flatten at end of any enabled window.
Day controls: Profit/Loss (USD) and Trade-count limits. When hit, strategy HALTS new entries, shows an on-chart label/background.
Alert routing designed for webhooks: Every order sets alert_message= so you can run alerts with:
Condition: this strategy
Notify on: Order fills only
Message: {{strategy.order.alert_message}}
Default JSONs or Custom payloads: If a Custom field is blank, a sensible default JSON is sent. Fill a field to override.
How to set up alerts (the 15-second version)
Create a TradingView alert with this strategy as Condition.
Notify on: Order fills only.
Message: {{strategy.order.alert_message}} (exactly).
If you want your own payloads, paste them into Inputs → 08) Custom Alert Payloads.
Leave blank → the strategy sends a default JSON.
Fill in → your text is sent as-is.
Note: Anything you type into the alert dialog’s Message box is ignored except the {{strategy.order.alert_message}} token, which forwards the payload supplied by the strategy at order time.
Publishing notes / best practices
Renko users: Make sure “Renko Brick Size” in Inputs matches your chart’s brick size exactly.
Ticks vs Bricks: Exit distances switch instantly when you toggle Exit Units.
Same-bar flips: If enabled, a new opposite signal will first close the open trade (with its exit payload), then enter the new side.
HALT mode: When day profit/loss limit or trade-count limit triggers, new entries are blocked for the rest of the session day. You’ll see a label and a soft background tint.
Session end flatten: Auto-closes positions at window ends; these exits use the “End of Session Window Exit” payload.
Bar magnifier: Strategy is configured for on-close execution; you can enable Bar Magnifier in Properties if needed.
Default JSONs (used when a Custom field is empty)
Open: {"event":"open","side":"long|short","symbol":""}
Close: {"event":"close","side":"long|short|flat","reason":"tp|sl|flip|session|limit_profit|limit_loss","symbol":""}
You can paste any text/JSON into the Custom fields; it will be forwarded as-is when that event occurs.
Input sections — user guide
01) Entries & Signals
Entry Logic: Choose Multi-Source (3) or QBand + Moneyball (pick one).
Enable Long/Short Signals: Master on/off switches for entering long/short.
Flip on opposite signal: If enabled, a new opposite signal will close the current position first, then open the other side.
Signal Logic (Multi-Source):
Single: any 1 of the 3 sources > 0
Dual: Source1 AND Source2 > 0
Triple (default): 1 AND 2 AND 3 > 0
Long/Short Signal Sources 1–3: Provide up to three series (often indicators). A positive value (> 0) is treated as a “pulse”.
Use Lookback: Keeps a source “true” for N bars after it pulses (helps catch late triggers).
Long/Short Lookback (bars): How many bars to remember that pulse.
01b) QBands + Moneyball (Gate -> Trigger)
Allow same-bar Gate->Trigger: If ON, a trigger can fire on the same bar as the gate pulse.
Trigger must fire within N bars after Gate: Size of the gate window (in bars).
Max signals per window (0 = unlimited): Cap the number of entries allowed while a gate window is open.
Buy/Sell Source 1 – Gate: Gate pulse sources that open the buy/sell window (often a regime/zone, e.g., QBands bull/bear).
Trigger Pulse Mode (Buy/Sell): How to detect a trigger pulse from the trigger sources (Change / Appear / Rise>0 / Fall<0).
Trigger A/B sources + Extend Bars: Primary/secondary triggers plus optional extension to persist their pulse for N bars.
Trigger Mode: Pick S2 only, S3 only, S2 OR S3, or S2 AND S3. AND mode remembers both pulses inside the window before firing.
02) Exit Units (Trailing/TP)
Exit Units: Choose Bricks (Renko) or Ticks. All distances below switch accordingly.
03) Tick-based Trailing / Stops (active when Exit Units = Ticks)
Initial SL (ticks): Starting stop distance from entry.
Start Trailing After (ticks): Start trailing once price moves this far in your favor.
Trailing Distance (ticks): Offset of the trailing stop from peak/trough once trailing begins.
Take Profit (ticks): Optional static TP distance.
Stop Loss (ticks): Optional static SL distance (overrides trailing if enabled).
04) Brick-based Trailing / Stops (active when Exit Units = Bricks)
Renko Brick Size: Must match your chart’s brick size.
Initial SL / Start Trailing After / Trailing Distance (bricks): Same definitions as tick mode, measured in bricks.
Take Profit / Stop Loss (bricks): Optional static distances.
05) TP / SL Switch
Enable Static Take Profit: If ON, closes the trade at the fixed TP distance.
Enable Static Stop Loss (Overrides Trailing): If ON, trailing is disabled and a fixed SL is used.
06) Trading Windows (NY time)
Use Trading Windows: Master toggle for all windows.
Evening / Overnight / NY Session: Define each session in NY time.
Flatten at End of : Auto-close any open position when a window ends (sends the Session Exit payload).
07) Day Controls & Limits
Enable Profit Limits / Profit Limit (Dollars): When daily net PnL ≥ limit → auto-flatten and HALT.
Enable Loss Limits / Loss Limit (Dollars): When daily net PnL ≤ −limit → auto-flatten and HALT.
Enable Trade Count Limits / Number of Trades Allowed: After N entries, HALT new entries (does not auto-flatten).
On-chart HUD: A label and soft background tint appear when HALTED; a compact status table shows Day PnL, trade count, and mode.
08) Custom Alert Payloads (used as strategy.order.alert_message)
Long/Short Entry: Payload sent on entries (if blank, a default open JSON is sent).
Regular Long/Short Exit: Payload sent on closes from SL/TP/flip (if blank, a default close JSON is sent).
End of Session Window Exit: Payload sent when any enabled window ends and positions are flattened.
Profit/Loss/Trade Limit Close: Payload sent when daily profit/loss limit causes auto-flatten.
Tip: Any tokens you include here are forwarded “as is”. If your downstream expects variables, do the substitution on the receiver side.
Known limitations
No bracket orders from Pine: This strategy doesn’t create OCO/attached brackets on the broker; it simulates exits with strategy logic and forwards your payloads for external automation.
alert_message is per order only: Alerts fire on order events. General status pings aren’t sent unless you wire a separate indicator/alert.
Renko specifics: Backtests on synthetic Renko can differ from live execution. Always forward-test on your instrument and settings.
Quick checklist before you publish
✅ Brick size in Inputs matches your Renko chart
✅ Exit Units set to Bricks or Ticks as you intend
✅ Day limits/Windows toggled as you want
✅ Custom payloads filled (or leave blank to use defaults)
✅ Your alert uses Order fills only + {{strategy.order.alert_message}}
PowerTrend Pro Strategy – Gold OptimizedTired of false signals on Gold?
PowerTrend Pro combines VWAP, Supertrend, RSI, and smart MA filters with trailing stops & break-even logic to deliver high-probability trades on XAUUSD.
PowerTrend Pro Strategy is a professional-grade trading system designed to capture high-probability swing and intraday opportunities on XAUUSD (Gold) and other volatile markets.
🔑 Core Features
VWAP Anchoring – institutional fair value reference to filter trades.
Supertrend (ATR-based) – adaptive trend filter tuned for Gold’s volatility.
Multi-Timeframe RSI – confirms momentum alignment across intraday and higher timeframe.
EMA + SMA Combo – ensures trades follow strong directional bias, reducing false signals.
Dynamic Risk Management
Adjustable Take Profit / Stop Loss (%)
Trailing Stop that locks in profits on extended moves
Break-Even Logic (stop loss moves to entry once price is in profit)
⚡ Gold-Tuned Presets
XAUUSD 1H → tighter TP/SL & faster entries for active intraday trading.
XAUUSD 4H → wider ATR filter & trailing stops to capture bigger swings.
Generic Mode → works on Forex, Indices, and Crypto (fully customizable).
🎯 Why It Works
Gold is notoriously volatile — quick spikes wipe out weak strategies. PowerTrend Pro solves this by combining:
✅ Institutional bias (VWAP)
✅ Adaptive trend filter (Supertrend)
✅ Momentum confirmation (RSI MTF)
✅ Robust trend structure (EMA + SMA)
✅ Smart exits (TP, SL, trailing & breakeven)
This multi-layer confirmation makes entries stronger and keeps risk under control.
🛠️ Usage
Add the strategy to your chart.
Choose a preset (XAUUSD 1H, 4H, or Generic).
Run Strategy Tester for performance metrics.
Optimize TP/SL and ATR values for your broker & market conditions.
🔥 Pro Tip: Combine this strategy with a session filter (London/NY overlap) or volume confirmation to boost accuracy in Gold.
Control Point System📊 Control Zone Strategy - Trading System Summary
🎯 Core Concept
Trade based on control zone breaks where buyers take over seller zones (bullish) or sellers take over buyer zones (bearish).
📍 Key Levels Setup
Seller Control Zones (Resistance)
PMH (Pre Market High) - Where sellers stopped buyers
YDH (Yesterday High) - Where sellers stopped buyers
Buyer Control Zones (Support)
PML (Pre Market Low) - Where buyers stopped sellers
YDL (Yesterday Low) - Where buyers stopped sellers
📈 EMA System
200 EMA (Purple) - Trend Filter: Above = Bullish bias | Below = Bearish bias
48 EMA (Red) - Last line of defense for pullbacks/shorts
13 EMA (Green) - Pullback levels (if above 200) or Short levels (if below 200)
8 EMA (Orange) - Exit indicator
⚡ Entry Signals
BULLISH Setup (Buyers Take Control)
Condition: Price breaks above PMH or YDH (seller zones)
Confirmation: Above 200 EMA for bullish trend
Entry: Use 5-minute timeframe for precise entries
Logic: Buyers have overpowered seller control zones
BEARISH Setup (Sellers Take Control)
Condition: Price breaks below PML or YDL (buyer zones)
Confirmation: Below 200 EMA for bearish trend
Entry: Use 5-minute timeframe for precise entries
Logic: Sellers have overpowered buyer control zones
🚪 Exit Strategy
Main Exit Rule
Exit Signal: Full candle close above 8 EMA on 5 or 10-minute chart
Runners: Take partial profits along the way, let runners ride until 8 EMA exit
Profit Taking
Scale out at key resistance/support levels
Use Daily 13 EMA as potential exit target
Trail stops using 8 EMA
⏰ Timeframes
Entry: 5-minute chart
Exit Monitoring: 5-minute or 10-minute chart for 8 EMA signals
PMH/PML: Calculated from 4:00 AM - 8:29 AM EST premarket session
🎯 Quick Decision Matrix
ScenarioActionBiasBreak above PMH/YDH + Above 200 EMABUYBullishBreak below PML/YDL + Below 200 EMASELLBearishFull candle close above 8 EMAEXITNeutralPrice at 13/48 EMA + Trend intactAdd/ScaleContinue
💡 Key Rules
Trend is king - Always check 200 EMA first
Zone breaks = control shifts - Trade in direction of new control
8 EMA exit - Respect the exit signal to preserve profits
Scale profits - Don't exit everything at once, use runners
Bottom Line: Trade the battle for control between buyers and sellers at key levels, with trend as your guide and 8 EMA as your exit!
Trader Marks Trailing SL + TP (Long & Short, mirrored)📌 Trader Marks Trailing SL + TP (Long & Short, mirrored)
This script implements an advanced trailing stop and take-profit system for both long and short trades.
It combines fixed entry/TP levels with a progressive looping mechanism that dynamically adjusts the trailing stop.
🔑 Key Features
Long & Short mirrored
The script works symmetrically for both long and short setups.
Fixed or percentage-based Take-Profit
You can either set a fixed TP price or have it calculated automatically as entry ± percentage distance.
Progressive Trailing Stop with Looping Mechanism
The stop-loss moves progressively towards the take-profit depending on price development.
For longs, the SL only moves upward (never lower).
For shorts, the SL only moves downward (never higher).
The looping exponent (tightPower) controls how strongly the gap between price and SL “tightens” over time:
Smaller values (e.g. 1.0) → gentle tightening, SL follows loosely.
Larger values (e.g. 3.0) → aggressive tightening, SL closes in on price faster.
Dynamic Minimum Distance
Default: 0.9 % distance from price.
As soon as the stop-loss touches the current or previous candle → automatic switch to 1.5 %.
Once the next candle no longer touches the SL → it reverts back to 0.9 %.
Lock at TP
Option to pull the SL exactly to the TP level once it is reached.
Automatic Reset
If any inputs change (Entry, TP, Trade Direction), the SL can be re-initialized automatically.
🎨 Visualization
Blue line → Entry level
Teal line → Take-profit level
Red line → Dynamic trailing stop
The data window also shows whether the tight mode (1.5 %) is currently active.
EAOBS by MIGVersion 1
1. Strategy Overview Objective: Capitalize on breakout movements in Ethereum (ETH) price after the Asian open pre-market session (7:00 PM–7:59 PM EST) by identifying high and low prices during the session and trading breakouts above the high or below the low.
Timeframe: Any (script is timeframe-agnostic, but align with session timing).
Session: Pre-market session (7:00 PM–7:59 PM EST, adjustable for other time zones, e.g., 12:00 AM–12:59 AM GMT).
Risk-Reward Ratios (R:R): Targets range from 1.2:1 to 5.2:1, with a fixed stop loss.
Instrument: Ethereum (ETH/USD or ETH-based pairs).
2. Market Setup Session Monitoring: Monitor ETH price action during the pre-market session (7:00 PM–7:59 PM EST), which aligns with the Asian market open (e.g., 9:00 AM–9:59 AM JST).
The script tracks the highest high and lowest low during this session.
Breakout Triggers: Buy Signal: Price breaks above the session’s high after the session ends (7:59 PM EST).
Sell Signal: Price breaks below the session’s low after the session ends.
Visualization: The session is highlighted on the chart with a white background.
Horizontal lines are drawn at the session’s high and low, extended for 30 bars, along with take-profit (TP) and stop-loss (SL) levels.
3. Entry Rules Long (Buy) Entry: Enter a long position when the price breaks above the session’s high price after 7:59 PM EST.
Entry price: Just above the session high (e.g., add a small buffer, like 0.1–0.5%, to avoid false breakouts, depending on volatility).
Short (Sell) Entry: Enter a short position when the price breaks below the session’s low price after 7:59 PM EST.
Entry price: Just below the session low (e.g., subtract a small buffer, like 0.1–0.5%).
Confirmation: Use a candlestick close above/below the breakout level to confirm the entry.
Optionally, add volume confirmation or a momentum indicator (e.g., RSI or MACD) to filter out weak breakouts.
Position Size: Calculate position size based on risk tolerance (e.g., 1–2% of account per trade).
Risk is determined by the stop-loss distance (10 points, as defined in the script).
4. Exit Rules Take-Profit Levels (in points, based on script inputs):TP1: 12 points (1.2:1 R:R).
TP2: 22 points (2.2:1 R:R).
TP3: 32 points (3.2:1 R:R).
TP4: 42 points (4.2:1 R:R).
TP5: 52 points (5.2:1 R:R).
Example for Long: If session high is 3000, TP levels are 3012, 3022, 3032, 3042, 3052.
Example for Short: If session low is 2950, TP levels are 2938, 2928, 2918, 2908, 2898.
Strategy: Scale out of the position (e.g., close 20% at TP1, 20% at TP2, etc.) or take full profit at a preferred TP level based on market conditions.
Stop-Loss: Fixed at 10 points from the entry.
Long SL: Session high - 10 points (e.g., entry at 3000, SL at 2990).
Short SL: Session low + 10 points (e.g., entry at 2950, SL at 2960).
Trailing Stop (Optional):After reaching TP2 or TP3, consider trailing the stop to lock in profits (e.g., trail by 10–15 points below the current price).
5. Risk Management per Trade: Limit risk to 1–2% of your trading account per trade.
Calculate position size: Account Size × Risk % ÷ (Stop-Loss Distance × ETH Price per Point).
Example: $10,000 account, 1% risk = $100. If SL = 10 points and 1 point = $1, position size = $100 ÷ 10 = 0.1 ETH.
Daily Risk Limit: Cap daily losses at 3–5% of the account to avoid overtrading.
Maximum Exposure: Avoid taking both long and short positions simultaneously unless using separate accounts or strategies.
Volatility Consideration: Adjust position size during high-volatility periods (e.g., major news events like Ethereum upgrades or macroeconomic announcements).
6. Trade Management Monitoring :Watch for breakouts after 7:59 PM EST.
Monitor price action near TP and SL levels using alerts or manual checks.
Trade Duration: Breakout lines extend for 30 bars (script parameter). Close trades if no TP or SL is hit within this period, or reassess based on market conditions.
Adjustments: If the market shows strong momentum, consider holding beyond TP5 with a trailing stop.
If the breakout fails (e.g., price reverses before TP1), exit early to minimize losses.
7. Additional Considerations Market Conditions: The 7:00 PM–7:59 PM EST session aligns with the Asian market open (e.g., Tokyo Stock Exchange open at 9:00 AM JST), which may introduce higher volatility due to Asian trading activity.
Avoid trading during low-liquidity periods or extreme volatility (e.g., major crypto news).
Check for upcoming events (e.g., Ethereum network upgrades, ETF decisions) that could impact price.
Backtesting: Test the strategy on historical ETH data using the session high/low breakouts for the 7:00 PM–7:59 PM EST window to validate performance.
Adjust TP/SL levels based on backtest results if needed.
Broker and Fees: Use a low-fee crypto exchange (e.g., Binance, Kraken, Coinbase Pro) to maximize R:R.
Account for trading fees and slippage in your position sizing.
Time zone Adjustment: Adjust session time input for your time zone (e.g., "0000-0059" for GMT).
Ensure your trading platform’s clock aligns with the script’s time zone (default: America/New_York).
8. Example Trade Scenario: Session (7:00 PM–7:59 PM EST) records a high of 3050 and a low of 3000.
Long Trade: Entry: Price breaks above 3050 (e.g., enter at 3051).
TP Levels: 3063 (TP1), 3073 (TP2), 3083 (TP3), 3093 (TP4), 3103 (TP5).
SL: 3040 (3050 - 10).
Position Size: For a $10,000 account, 1% risk = $100. SL = 11 points ($11). Size = $100 ÷ 11 = ~0.09 ETH.
Short Trade: Entry: Price breaks below 3000 (e.g., enter at 2999).
TP Levels: 2987 (TP1), 2977 (TP2), 2967 (TP3), 2957 (TP4), 2947 (TP5).
SL: 3010 (3000 + 10).
Position Size: Same as above, ~0.09 ETH.
Execution: Set alerts for breakouts, enter with limit orders, and monitor TPs/SL.
9. Tools and Setup Platform: Use TradingView to implement the Pine Script and visualize breakout levels.
Alerts: Set price alerts for breakouts above the session high or below the session low after 7:59 PM EST.
Set alerts for TP and SL levels.
Chart Settings: Use a 1-minute or 5-minute chart for precise session tracking.
Overlay the script to see high/low lines, TP levels, and SL levels.
Optional Indicators: Add RSI (e.g., avoid overbought/oversold breakouts) or volume to confirm breakouts.
10. Risk Warnings Crypto Volatility: ETH is highly volatile; unexpected news can cause rapid price swings.
False Breakouts: Breakouts may fail, especially in low-volume sessions. Use confirmation signals.
Leverage: Avoid high leverage (e.g., >5x) to prevent liquidation during volatile moves.
Session Accuracy: Ensure correct session timing for your time zone to avoid misaligned entries.
11. Performance Tracking Journaling :Record each trade’s entry, exit, R:R, and outcome.
Note market conditions (e.g., trending, ranging, news-driven).
Review: Weekly: Assess win rate, average R:R, and adherence to the plan.
Monthly: Adjust TP/SL or session timing based on performance.
MVO - MA Signal StrategyStrategy Description: MA Signal Strategy with Heikin Ashi, Break-even and Trailing Stop
⸻
🔍 Core Concept
This strategy enters long or short trades based on Heikin Ashi candles crossing above or below a moving average (MA), with optional confirmation from the Money Flow Index (MFI). It includes:
• Dynamic stop loss and take profit levels based on ATR
• Optional break-even stop adjustment
• Optional trailing stop activation after breakeven
• Full visual feedback for trades and zones
⸻
⚙️ Indicators Used
• Heikin Ashi Candles: Smooth price action to reduce noise.
• Simple Moving Average (MA): Determines trend direction.
• Average True Range (ATR): Sets volatility-based SL/TP.
• Money Flow Index (MFI): Optional momentum filter for entries.
⸻
📈 Trade Entry Logic
✅ Long Entry:
Triggered if:
• Heikin Ashi close crosses above the MA
or
• MFI is below 20 and Heikin Ashi close is above the MA
❌ Short Entry:
Triggered if:
• Heikin Ashi close crosses below the MA
or
• MFI is above 90 and Heikin Ashi close is below the MA
⸻
🛑 Stop Loss & Take Profit
• SL is set using riskMult * ATR
• TP is set using rewardMult * ATR
Example:
• If ATR = 10, riskMult = 1, rewardMult = 5
→ SL = 10 points, TP = 50 points from entry
⸻
⚖️ Break-even Logic (Optional)
• If price moves in your favor by breakevenTicks * ATR, SL is moved to entry price.
• Enabled via checkbox Enable Break Even.
⸻
📉 Trailing Stop Logic (Optional)
• Once break-even is hit, a trailing stop starts moving behind price by trailATRmult * ATR.
• Trailing stop only activates after break-even is reached.
• Enabled via checkbox Enable Trailing Stop.
📊 Visual Elements
• Heikin Ashi candles are drawn on the main chart.
• Trade zones are shaded between SL and TP during open trades.
• Lines mark Entry, SL, TP, Break-even trigger.
• Markers show entries and exits:
• Green/red triangles = long/short entries
• ✅ = Take profit hit
• ❌ = Stop loss hit
✅ Best Use Case
• Trending markets with strong pullbacks
• Works on multiple timeframes
• Better suited for assets with consistent volatility (ATR behavior)