Peak Valley Estimation StrategyIntroduction
Its the first strategy that i post here, so don't expect ground breaking stuff, when testing my indicators i always used prorealtime and not tradingview. This strategy use signals generated by the peak/valley estimator indicator i posted long ago, i think the signals generated where sometimes quite accurate in some markets thus providing potential material for a profitable strategy.
The indicator use 3 parameters, therefore the optimisation process is not easy, but i selected what i judged good parameters values at first glance. The strategy is in its more simple form without stop or anything, the detection of peaks and valley can allow for tighter stops since we expect the price to reverse, but take into account that sops and take profits are parameters subject to optimization process except if selected with strict money management rules and not profit optimization.
Of course trading the strategy in this form is far from being great, if we take into account the market non stationarity then we might expect loss during trending markets. Trend strength indicators could help switch from a reversal to breakout strategy thus maybe providing more control.
I really hope you find an use for the strategy.
Notes
Its been three long years since i started tradingview, and i put more efforts in my indicators than in my studies and life overall, this have created complicated situations and i can't afford to follow up with this, therefore i announce that in the end of june i will leave tradingview for quite a long time, at least until i have my degree. I announce it in advance in case some of you want helps of any kind. I will post all the indicators, both in progress and finished i have made during those three years. I hope you can all understand.
Thanks for reading !
Pesquisar nos scripts por "take profit"
Cyatophilum Bands Pro Trader V4 [BACKTEST]This version includes a new feature, engineered to increase profitability.
About the backtest below:
Short + Long Strategy
0.05% Commission
10% of 10 000% equity per trade. Net Profit can be increased with a bigger % of equity.
Strategy data from 01/11/2019 to 30/04/2019
The Cyatophilum Bands, Trailing Stop Loss and Take Profit System are explained in the last version:
The access to this indicator and its Alert Setup version are included in the Cyatophilum Indicators pack available on my website blockchainfiesta.com
To get a free trial, leave a comment, thank you.
Cryptocurrency trend following EMA Ribbon LONG only strategyThis strategy is based on EMA Ribbon and uses multiple indicators to find optimal time to enter/exit the trade and filter out false signals. The script with default setting is developed mainly for trading altcoins/stable coin pair such as ADA/USDT etc on 4h timeframe but it can be applied to any pair/any timeframe with some settings adjustments.
For plot on chart features make sure that you have both study and strategy scripts on chart with same settings.
Strategy settings description:
1. Signal EMA Length - Value for exponencial moving average (slowest from EMA Ribbon)
1a. Buy price toleration (%) - Price deviation for filtering bounces of EMA - price must close defined percents above EMA to open long trade
1b. Sell price toleration (%) - Price deviation for filtering bounces of EMA - price must close defined percents bellow EMA to close long trade
1c. EMA deelay - EMA id delayed by defined bars for smoothening
2. Filter by Fast EMA - Strategy filters signals to prevent buy while coin is dropping
2a. Fast EMA Length - Value for fast exponencial moving average
3. Filter by SMA - Strategy filters signals to confirm trend change
3a. SMA Length - Value for simple moving average
4. Filter by RSI - Strategy filters signals to prevent buing/selling overbought/oversold coins
4a. RSI Length - Length of RSI identificator
4b. RSI Source candle - What price of candle is used for RSI calculation (open, close, high, low)
4c. RSI Long condition - When buy, RSI indicator must be below this value to prevent of buying already overbought coin
4d. RSI Short condition - When sell, RSI indicator must be above this value to prevent of selling already oversold coin
5. RSI Close Trade Condition - Strategy sell coin once RSI reach defined value
5a. RSI close trade condition - Sell once RSI indicator acquires defined value
6. Close trade by Take Profit or Stop Loss Condition (STRATEGY ONLY) - Strategy sell coin once defined take profit / stoploss level is reached
6a. Take Profit (%) - Take profit value in percent
6b. Stop Loss (%) - Stop loss value in percent
6c. Plot targets on chart - defined targets will be plotted as lines on chart
7. Date range from
7a From Year - To run strategy in interval
7b From Month - To run strategy in interval
7c From Day - To run strategy in interval
8. Date range to
8a To Year - To run strategy in interval
8b To Month - To run strategy in interval
8c To Day - To run strategy in interval
9. Wait to confirm the signal
9a Wait candless to buy - strategy will wait defined candless to confirm the signal before buy
9b Wait candless to sell - strategy will wait defined candless to confirm the signal before sell
10. Plotting on chart (STUDY ONLY)
10a Plot signal line channel with bows on chart
10b Plot simple moving average on chart
10c Plot EMA Ribbon on chart
10d Plot recent support and resistance levels on chart
11. Show Every signal (STUDY ONLY) - Unchecked shows only first signal based on strategy. But if you use take profit/stoploss settings within your bot, you might want to rebuy on next signal. Checked shows signal on each candle.
Throw on chart also buld-in RSI indicator and set the same as strategy
Notice that there might be false signals, especially when the coin is not trending or is strongly manipulated. Overall strategy is profitable though. You just take some minor loses and wont miss the big move.
You may also consider to compare buy&hold return vs profit from trading this strategy. In downtrend as we have seen recently, profit may not be as high as you expect but it is still much better than just hold and hope.
You can use the strategy script for fine tunning settings and find best settings for yourself.
Study script helps you to automate trading with use of alerts perharps with 3commas bot or even trade manually based on email/sms notification setted by tradingview
Notice that study script does not handle takeprofit/stoploss order. That is why sell arrows could be plotted by study script later than strategy script. To rebuy after takeprofit/stop-loss use "11. Show Every signal (STUDY ONLY)" setting
Make sure that you keep same settings for strategy and study scripts.
If you need any help with settings do not hesitate to ask. I would also appriciate any feedback and ideas how to improve this script.
Here is backtest result from 1. Nov 2018 using constant 100USD Buy ammount:
ADX+DI+SUPERTREND StrategyThis strategy is a port of famous script from MasaNakamura ADX and DI.
Here is the exact startegy from original study from MasaNakamura MasaNakamura at
In this version, I added also SUPERTREND as filter!
Scope of this port is to identify corrects inputs to get best results from signals that indicator gives.
I added the possibility to choose stop loss and take profits and to smooth the results also with heikin ashi candles.
Please use comment section for any feedback.
Next improvement (only to whom is interested to this script and follows me): study with alerts on multiple tickers all at one. Leave a comment if you want to have access to study.
********************************** IMPORTANT*******************************
I have developed an expert advisor for metatrader4 (MT4) and for jforex platform: results of expert advisor form 2015-01-01 to 2018-11-25 are very good with low drawdown and good profit.
********************************************************************************
External Signals Strategy Tester v5External Signals Strategy Tester v5 – User Guide (English)
1. Purpose
This Pine Script strategy is a universal back‑tester that lets you plug in any external buy/sell series (for example, another indicator, webhook feed, or higher‑time‑frame condition) and evaluate a rich set of money‑management rules around it – with a single click on/off workflow for every module.
2. Core Workflow
Feed signals
Buy Signal / Sell Signal inputs accept any series (price, boolean, output of request.security(), etc.).
A crossover above 0 is treated as “signal fired”.
Date filter
Start Date / End Date restricts the test window so you can exclude unwanted history.
Trade engine
Optional Long / Short enable toggles.
Choose whether opposite signals simply close the trade or reverse it (flip direction in one transaction).
Risk modules – all opt‑in via check‑boxes
Classic % block – fixed % Take‑Profit / Stop‑Loss / Break‑Even.
Fibonacci Bollinger Bands (FBB) module
Draws dynamic VWMA/HMA/SMA/EMA/DEMA/TEMA mid‑line with ATR‑scaled Fibonacci envelopes.
Every line can be used for stops, trailing, or multi‑target exits.
Separate LONG and SHORT sub‑modules
Each has its own SL plus three Take‑Profits (TP1‑TP3).
Per TP you set line, position‑percentage to close, and an optional trailing flag.
Executed TP/SLs deactivate themselves so they cannot refire.
Trailing behaviour
If Trail is checked, the selected line is re‑evaluated once per bar; the order is amended via strategy.exit().
3. Inputs Overview
Group Parameter Notes
Trade Settings Enable Long / Enable Short Master switches
Close on Opposite / Reverse Position How to react to a counter‑signal
Risk % Use TP / SL / BE + their % Traditional fixed‑distance management
Fibo Bands FIBO LEVELS ENABLE + visual style/length Turn indicator overlay on/off
FBB LONG SL / TP1‑TP3 Enable, Line, %, Trail Rules applied only while a long is open
FBB SHORT SL / TP1‑TP3 Enable, Line, %, Trail Rules applied only while a short is open
Line choices: Basis, 0.236, 0.382, 0.5, 0.618, 0.764, 1.0 – long rules use lower bands, short rules use upper bands automatically.
4. Algorithm Details
Position open
On the very first bar after entry, the script checks the direction and activates the corresponding LONG or SHORT module, deactivating the other.
Order management loop (every bar)
FBB Stop‑Loss: placed/updated at chosen band; if trailing, follows the new value.
TP1‑TP3: each active target updates its limit price to the selected band (or holds static if trailing is off).
The classic % block runs in parallel; its exits have priority because they call strategy.close_all().
Exit handling
When any strategy.exit() fires, the script reads exit_id and flips the *_Active flag so that order will not be recreated.
A Stop‑Loss (SL) also disables all remaining TPs for that leg.
5. Typical Use Cases
Scenario Suggested Setup
Scalping longs into VWAP‐reversion Enable LONG TP1 @ 0.382 (30 %), TP2 @ 0.618 (40 %), SL @ 0.236 + trailing
Fade shorts during news spikes Enable SHORT SL @ 1.0 (no trail) and SHORT TP1,2,3 on consecutive lowers with small size‑outs
Classic trend‑follow Use only classic % TP/SL block and disable FBB modules
6. Hints & Tips
Signal quality matters – this script manages exits, it does not generate entries.
Keep TV time zone in mind when picking start/end dates.
For portfolio‑style testing allocate smaller default_qty_value than 100 % or use strategy.percent_of_equity sizing.
You can combine FBB exits with fixed‑% ones for layered management.
7. Limitations / Safety
No pyramiding; the script holds max one position at a time.
All calculations are bar‑close; intra‑bar touches may differ from real‑time execution.
The indicator overlay is optional, so you can run visual‑clean tests by unchecking FIBO LEVELS ENABLE.
ADX and DI StrategyThis strategy is a port of famous script from MasaNakamura ADX and DI
Original study from MasaNakamura MasaNakamura at
Scope of this port is to identify corrects inputs to get best results from signals that indicator gives.
I added the possibility to choose stop loss and take profits and to smooth the results also with heikin ashi candles.
Please use comment section for any feedback.
Next improvement (only to whom is interested to this script and follows me): study with alerts on multiple tickers all at one. Leave a comment if you want to have access to study.
********************************** IMPORTANT*******************************
I have developed an expert advisor for metatrader4 (MT4) and for jforex platform: results of expert advisor form 2015-01-01 to 2018-11-25 are very good with low drawdown and good profit.
********************************************************************************
Cryptocurrency trend following LONG only strategyThis strategy uses multiple indicators to find optimal time to enter/exit the trade. The default setting is mainly for trading bitcoin/stable coin pair such as USDT etc on 1h timeframe but it can be applied to any pair/any timeframe with some settings adjustments.
Strategy settings description:
ID Name Descrption
1 FastMA - Value for fast exponencial moving average
2 SlowEMA - Value for slow exponencial moving average
3 SMA - Value for simple moving average
4 RSI Length - Length of RSI identificator
5 RSI Source candle - What price of candle is used for RSI calculation (open, close, high, low)
6 RSI Long condition - When buy, RSI indicator must be below this value to prevent of buying already overbought coin
7 RSI Short condition - When sell, RSI indicator must be above this value to prevent of selling already oversold coin
8 RSI close trade condition - Sell once RSI indicator acquires defined value
9 Take Profit (%) - Take profit value in percent
10 Stop Loss (%) - Stop loss value in percent
11 Long price toleration (%) - Price deviation for filtering bounces of simple moving average - price must close defined percents above SMA to open long trade
12 Short price toleration (%) - Price deviation for filtering bounces of simple moving average - price must close defined percents bellow SMA to close long trade
13 From Year - To run strategy in interval
14 From Month - To run strategy in interval
15 From Day - To run strategy in interval
16 To Year - To run strategy in interval
17 To Month - To run strategy in interval
18 To Day - To run strategy in interval
19 Show every signal? - (Study only) Unchecked shows only first signal based on strategy. But if you use take profit/stoploss settings within your bot, you might want to rebuy on next signal. Checked shows signal on each candle.
Notice that there are also false signals, especially when the coin is not trending or is strongly manipulated. Overall strategy is profitable though. You just take some minor loses and wont miss the big move.
You may also consider to compare buy&hold return vs profit from trading this strategy. In downtrend as we have seen recently, profit may not be as high as you expect but it is still much better than just hold and hope.
You can use the strategy script for fine tunning settings and find best settings for yourself
Study script helps you to automate trading with use of alerts perharps with 3commas bot or even trade manually based on email/sms notification setted by tradingview
Make sure that you keep same settings for strategy and study scripts.
If you need any help with settings do not hesitate to ask. I would also appriciate any feedback and ideas how to improve this script.
Here is backtest result from 23.08.2017:
-- Ultimate Crypto Trading Strategy -- Backtesting version** This is the backtesting (strategy) version of the ~ Ultimate Crypto Trading Strategy ~ script in TradingView. **
~ Ultimate Crypto Trading Strategy ~
֎ Trading system script on @tradingview that brings the easiest approach to trading with a high profitability rate
֎ Optimized for crypto markets, to catch trend movements as soon as possible and maximize profitability
֎ Sell & Buy alerts, Safeguard mode, Take Profits alerts, auto resistance-support and always adding new features!
֎ Customizable settings.
֎ Users Discord community for learning, sharing and direct support
֎ Ultimate Crypto Trading Strategy Tutorial Video: www.youtube.com www.youtube.com
֎ Safeguard feature (match multiple timeframes signals) explained: youtu.be youtu.be
If you’d like to test the trading script in TradingView, I can give you access to a 10 days trial.
Please send me a message in tradingview and I’ll activate it right away.
Thank you!
Bedrock Bot - BTCUSD 30m Scalper BotBedrock Bot trades on BTCUSD charts and is a high frequency scalper bot - for those that like a little more action.
The strategy was developed for use on more recent market conditions - smaller trends within larger sideways ranges. It will work in trends as well. It is made for quick take profits and tight stop losses to maximize overall profit and minimize losses (check out the win ratio and downdraw results). It does not trade on the weekends as much of the volume is now weekday based.
Backtest results look great and we have been running this bot on live markets as well in forward testing with profit results.
These live tests were done exclusively on BitMex and by using automation on Crypto Bots Hub . Monthly returns have been around 8% - you may think this doesn't sound amazing but understand compound interest and do check out the win percentage and downdraw. In these sideways markets, this can keep building your profits slow and steady with minimal risk.
The bot controls entries, stop losses, and take profits as part of the code.
Message me on information to get free access.
Golden Cross, SMA 200 Moving Average Strategy (by ChartArt)This famous moving average strategy is very easy to follow to decide when to buy (go long) and when to take profit.
The strategy goes long when the faster SMA 50 (the simple moving average of the last 50 bars) crosses above the slower SMA 200. Orders are closed when the SMA 50 crosses below the SMA 200. This simple strategy does not have any other stop loss or take profit money management logic. The strategy does not short and goes long only!
Here is an article explaining the "golden cross" strategy in more detail:
www.stockopedia.com
On the S&P 500 index (symbol "SPX") this strategy worked on the daily chart 81% since price data is available since 1982. And on the DOW Jones Industrial Average (symbol "DOWI") this strategy worked on the daily chart 55% since price data is available since 1916. The low number of trades is in both cases not statistically significant though.
All trading involves high risk; past performance is not necessarily indicative of future results. Hypothetical or simulated performance results have certain inherent limitations. Unlike an actual performance record, simulated results do not represent actual trading. Also, since the trades have not actually been executed, the results may have under- or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to those shown.
BG CloseCandleThis simple yet effective strategy script allows you to schedule automated entries (Buy or Sell) at three customizable times throughout the trading day. Each session can be individually enabled, with its own execution time and trade direction.
You can define:
• Entry time (Hour & Minute) for each session
• Whether each session should execute a Buy or a Sell order
• Your preferred Take Profit and Stop Loss levels (in ticks)
• Lot size per order
The strategy is designed specifically for the 1-minute timeframe, offering the most precise execution of time-based entries. It resets automatically each day and limits the number of trades to a maximum of three per session.
📌 I personally use this strategy on the Nasdaq 100 E-mini Futures (NQ) for intraday setups and session-based candle closes.
Perfect for testing market behavior at defined moments — ideal for overnight, premarket, or close-of-candle strategies.
Thank you for your interest, and wishing you profitable trading
N4A - Dynamic ORB Algo v7N4A - Dynamic ORB Algo v7
A precision-engineered intraday breakout system designed for professional traders operating in NQ and ES futures markets. The strategy blends advanced ORB (Opening Range Breakout) logic with adaptive session control, dynamic filters, and quartile-based trade management to deliver robust and structured execution across multiple global trading zones.
🧠 Core Framework
Opening Range Breakout (ORB)
Automatically defines a breakout window and detects directional moves when price decisively exits the range high or low, triggering structured entries with defined risk.
Multi-Session Adaptability
Supports automated session presets for Pre-London, London, and New York trading hours. Each session auto-configures its own ORB and entry periods, while maintaining full manual control via Custom mode. Timezones are always user-configurable.
Quartile-Based Structure
All risk and profit calculations are grounded in the ORB range and its quartile subdivisions. Stops and targets are derived from mathematically relevant price zones, not arbitrary values.
🧠 Advanced Filtering Architecture
In the 4 modes, the strategy employs a multi-dimensional filter stack to validate breakout quality and reduce false signals. Each filter contributes unique confirmation logic:
1. 📏 EMA Bias Filter
Establishes directional bias using 2x 200-period EMAs clouds (on both high and close).
Filters out counter-trend setups.
Active in: Moderate, Conservative modes.
2. 📐 Range Geometry (RG) Filter
Measures directional conviction by analyzing whether price consistently pushes in one direction within a smoothed dynamic range:
Utilizes smoothed deviation envelopes and adaptive trend centerline.
Monitors for sustained directional flow (via upCounter/downCounter logic).
Prevents entries during sideways or mean-reverting environments.
3. ⚡️ Momentum Shift Validator
A WAE-style module using fast vs slow EMAs to capture directional thrust:
Tracks positive or negative momentum shifts between bars.
Long trades require increasing bullish momentum; shorts require the opposite.
Ensures active market participation and screens out weak breakouts.
This layered logic produces high-confidence signals and eliminates low-quality market noise.
⚙️ Strategic Mode Selection (Built-in Presets)
Users can select from four predefined filter configurations depending on risk appetite and market conditions:
Basic – Raw ORB breakout without filters; ideal for clean trend days
Conservative – EMA filter active with higher sensitivity (19), RG filter off
Aggressive – EMA filter active with fast sensitivity (5), RG filter off
Custom – Full manual control over all filters and logic components
Each mode automatically configures the system without requiring manual re-adjustments.
🎯 Execution Logic
Entry Conditions
A breakout entry is triggered only after a full bar closes beyond the ORB boundary, subject to filter validation.
Stop Loss Structure
Stops are placed using the ORB quartile framework (typically below Q1 or above Q4), combined with mid-range invalidation logic.
Risk Sizing:
Contract size is dynamically computed from ORB range volatility.
Typical exposure per trade: $200–$400
Profit-Taking Methodology
Targets can be enabled at SD0.5, SD1.0, SD1.5, and SD2.0 intervals from the ORB range. Users control exit percentages per target level. Breakeven is automatically managed after partial take-profit.
Additional Controls
No pyramiding
No re-entries per signal
Max hold duration enforced (default: 270 minutes)
🔔 Alerts Included
Instant alerts trigger upon confirmed Long or Short entries, fully compatible with popup and sound actions.
👤 Developed by Antony.N4A
Built for intraday strategists, quant developers, and execution modelers who demand structured logic, visual clarity, and multi-context adaptability.
Protected script. Unauthorized reuse or redistribution is strictly prohibited.
For access or customization inquiries, contact the author directly.
CTP - 5M Scalping Strategy v2CTP- 1 MINUTE NASDAQ FUTURES
## Overview
The CTP (Correlation Trading Platform) 5M Scalping Strategy v2 is an advanced algorithmic trading system designed for 5-minute timeframe scalping. This strategy combines multiple technical indicators with sophisticated correlation analysis to identify high-probability entry and exit points in volatile markets.
## Key Features
### Advanced Signal Generation
- Correlation Analysis: Uses composite correlation between price momentum, volume momentum, and RSI to identify market synchronization
### Sophisticated Risk Management
- **Comprehensive Stop Loss**: Percentage-based stop loss with customizable levels
- **Take Profit in Pips**: Precise pip-based profit targets for Nasdaq
- **Trailing Stop**: Dynamic trailing stops that lock in profits as trades move favorably
- **Breakeven Management**: Automatic move to breakeven when trades reach specified profit levels
- **Daily Drawdown Protection**: Automatic position closure when daily drawdown limits are exceeded
### Enhanced Position Management
- **Daily Trade Limits**: Configurable maximum daily trades to prevent overtrading
- **End-of-Day Closure**: Automatic position closure at specified times
- **News Hour Avoidance**: Optional filtering to avoid high-impact news periods
- **Volatility Filtering**: ATR-based volatility analysis to avoid excessive market noise
### Intelligent Market Conditions
- **Trend Strength Analysis**: Differentiates between strong and weak trends for better entry timing
- **RSI Optimization**: Uses RSI extremes (30/70) for additional confirmation
- **Signal Cooldown**: Prevents signal clustering with customizable cooldown periods
- **Market Session Awareness**: Respects trading hours and session-based rules
### Input Parameters
- **Trigger Threshold**: 0.5-0.9 (default: 0.6)
- **Signal Cooldown**: 1-15 bars (default: 3)
- **Stop Loss**: 0.1-1.0% (default: 0.3%)
- **Take Profit**: 4-20 pips (default: 8 pips)
- **Trailing Stop**: 2-15 pips (default: 5 pips)
### Performance Monitoring
- **Real-time Performance Table**: Displays win rate, profit factor, daily trades, and current market status
- **Visual Position Tracking**: Clear visual indicators for long/short positions
- **Comprehensive Alerts**: Detailed entry alerts with price, RSI, and correlation data
## Best Use Cases
- **Timeframe**: Optimized for 1-minute charts
- **Markets**: NASDAQ futures
- **Trading Style**: Intraday scalping with quick entries and exits
- **Risk Profile**: Suitable for moderate to aggressive risk tolerance
- **Session**: Works best during active trading sessions with good liquidity
## Unique Advantages
1. **Multi-Factor Confirmation**: Combines correlation, momentum, trend, and volume analysis
2. **Adaptive Risk Management**: Dynamic position sizing and risk controls
3. **Market Awareness**: Intelligent filtering based on volatility and market conditions
4. **Performance Transparency**: Real-time monitoring of all key metrics
5. **Highly Customizable**: Extensive parameter options for different trading styles
## Installation & Setup
1. Apply to 1-minute NASDAQ ONLY charts for optimal performance
2. Adjust correlation threshold based on market volatility (higher for trending markets)
3. Configure risk parameters according to your account size and risk tolerance
4. Enable alerts for real-time trade notifications
5. Monitor the performance table for strategy effectiveness
## Risk Disclaimer
This strategy involves substantial risk and may not be suitable for all investors. Past performance does not guarantee future results. Always use proper position sizing and never risk more than you can afford to lose.
*Strategy developed for educational and research purposes. Always backtest thoroughly before live trading.*
XAUT Box with RSI Div(Dynamic Adjustment + MA + Short + English)Strategy Overview: Box Range with RSI Divergence (Dynamic Adjustment - OKX Signal Format)
This Pine Script strategy, "XAUT Box with RSI Div (Dynamic Adjustment + MA + Short + English )", is designed for trading within a box range while leveraging RSI divergences and moving average trends. It is optimized for use with OKX signal credentials and integrates TradingView alerts for automated trading.
Optimal Configuration
Take-Profit: 18% return rate.
Initial Margin: $50.
Total Margin: $800 USDT.
Expected Monthly Return: 10%+.
TrendR - Algo v6
Overview
The TrendR Algorithm is a sophisticated trend-following trading strategy implemented in Pine Script for TradingView. This professional-grade algorithm combines advanced trend detection, comprehensive risk management, and intelligent market condition filtering to deliver consistent trading performance across various market conditions.
Core Algorithm Architecture
Volatility-Adaptive Band System
The algorithm incorporates a sophisticated volatility measurement system that adapts to changing market conditions.
Intelligent Trend State Management
The TrendR algorithm features a sophisticated trend state tracking system with hysteresis to prevent false signals.
Advanced Risk Management System
Professional 1:3 Risk-Reward Framework
The algorithm implements a comprehensive risk management system designed for professional trading.
Customizable Risk-Reward Ratios : Default 1:3 ratio with user adjustment from 1:1 to 1:10
Percentage-Based Stop Loss : Configurable stop loss distance as a percentage of entry price (default: 2%)
Dual Take Profit Methods :
- Risk-reward ratio based calculation (recommended for consistent risk management)
- Fixed percentage take profit for advanced users requiring specific targets
Automatic Order Management : Seamless integration with TradingView's strategy engine for precise execution
Position Management Features
Entry Price Tracking : Precise entry price recording for accurate SL/TP calculations
Dynamic Level Updates : Real-time calculation and display of stop loss and take profit levels
Position Size Control : Configurable position sizing based on account equity percentage (default: 1%)
Commission and Slippage : Built-in consideration for realistic trading costs (0.1% commission, 3 ticks slippage)
Risk Management Calculations
The system employs sophisticated mathematical models for risk calculation:
Stop Loss Distance : Calculated as percentage of entry price for consistent risk exposure
Take Profit Distance : Dynamically calculated based on stop loss distance multiplied by risk-reward ratio
Position Sizing : Maintains consistent risk per trade through percentage-based allocation
Risk-Adjusted Returns : Optimizes for risk-adjusted performance rather than absolute returns
Entry and Exit Management
Automatic Position Closure : Intelligently closes opposing positions before entering new trades
Risk Management Integration : Automatically places stop loss and take profit orders upon entry
Order Sequencing : Ensures proper order execution sequence to prevent position conflicts
Alert System : Comprehensive alert notifications for entry, exit, and risk management events
Signal Quality Enhancement
The algorithm incorporates multiple layers of signal filtering:
Volatility Filtering : Adjusts signal sensitivity based on current market volatility
Trend Strength Assessment : Evaluates trend momentum before signal generation
False Signal Reduction : Employs hysteresis mechanism to prevent whipsaw trades
Market Condition Awareness : Adapts signal generation to current market regime
Visual Enhancement System
Chart Visualization Features
The TrendR algorithm provides extensive visual feedback for enhanced trading decision-making:
Trend Line Plotting : Dynamic trend lines with color-coded direction indication
Basis Line Display : Central reference line showing the calculated trend basis
Support/Resistance Levels : Visual representation of dynamic support and resistance levels
Risk Management Levels : Clear display of stop loss and take profit levels with color coding
Color-Coded Market States
Bullish Trend : Green coloring system for upward trend conditions
Bearish Trend : Red coloring system for downward trend conditions
Gradient Background : Intensity-based background coloring showing trend strength progression
Bar Coloring : Optional candlestick coloring based on current trend direction
Information Display System
Signal Labels : Clear entry point markers with integrated risk management information
Risk Management Table : Real-time display of current position parameters and risk metrics
Dynamic Updates : Live updating of all visual elements as market conditions evolve
Performance Metrics : Visual representation of strategy performance statistics
Risk Management Configuration
Enable/Disable Toggle : Complete control over risk management system activation
Risk-Reward Ratio : Customizable from 1:1 to 1:10 with 0.1 increments (default: 1:3)
Stop Loss Percentage : Adjustable from 0.1% to 10% with 0.1% increments (default: 2%)
Take Profit Method : Choice between ratio-based or fixed percentage calculation
Fixed Take Profit : Alternative percentage-based take profit (range: 0.1%-20%, default: 6%)
Visualization Controls
Color Customization : User-defined colors for bullish and bearish market conditions
Display Toggles : Individual control over bars, background, signals, and risk levels
Chart Elements : Selective display of various algorithm components
Information Table : Configurable display of real-time strategy metrics
Alert and Notification System
Comprehensive Alert Framework
The TrendR algorithm provides multiple alert types for different trading scenarios:
Entry Signals : Immediate notifications for long and short entry opportunities
Risk Management Alerts : Specific alerts for positions with active risk management
Position Risk Alerts : Advanced warnings when positions approach stop loss levels
Strategy Alerts : Dynamic alerts with real-time risk management data integration
Alert Message Architecture
Static Alerts : Consistent alert messages for basic signal notifications (compatible with Pine Script requirements)
Dynamic Strategy Alerts : Real-time data including entry prices, SL/TP levels, and risk ratios
Risk Event Alerts : Specialized notifications for stop loss and take profit activations
Market Condition Alerts : Notifications for significant market regime changes
Performance Characteristics
Optimal Market Conditions
The TrendR algorithm demonstrates exceptional performance in:
Trending Markets : Clear directional moves with sustained momentum and defined trend channels
Medium to Long-term Timeframes : Reduced noise environment with clearer trend identification
Volatile Assets : Benefits from volatility-adaptive band system and dynamic risk management
Liquid Markets : Optimal execution environment with minimal slippage impact
Algorithm Strengths
Trend Following Excellence : Captures major market moves with minimal lag through advanced EMA system
Risk Management Integration : Professional-grade position protection with customizable parameters
Market Adaptability : Automatically adjusts to changing market volatility conditions
Visual Clarity : Comprehensive chart visualization system for enhanced decision support
Customization Flexibility : Extensive parameter adjustment capabilities for different trading styles
Performance Metrics
Win Rate Optimization : Designed to maximize risk-adjusted returns rather than win percentage
Drawdown Control : Risk management system limits maximum position risk exposure
Profit Factor Enhancement : 1:3 risk-reward ratio improves overall profit factor
Consistency : Standardized risk per trade creates predictable performance patterns
Implementation Details
Technical Specifications
Platform : TradingView Pine Script v6 with full strategy functionality
Strategy Type : Overlay strategy with integrated risk management system
Position Sizing : Percentage of equity based with configurable allocation
Commission Model : Percentage-based commission structure with realistic slippage modeling
Execution Model : Market orders with automatic stop loss and take profit placement
Backtesting Framework
Date Range Control : Configurable start and end dates for comprehensive historical testing
Performance Metrics : Detailed strategy performance analysis with risk-adjusted metrics
Risk Analytics : Comprehensive risk measurement including maximum drawdown and Sharpe ratio
Trade Analysis : Individual trade performance tracking with entry/exit analysis
Code Architecture
The implementation follows professional software development principles:
Modular Design : Separate functions for trend calculation, risk management, and visualization
Single Responsibility : Each function handles a specific aspect of the algorithm
Clean Code Structure : Well-organized sections with comprehensive commenting
Error Handling : Robust handling of edge cases and market conditions
Implementation
Mahnam BTC with breake outThis strategy is designed and coded specifically for trading Bitcoin in the 15-minute timeframe.
Of course, those who are skilled in coding can use it in other timeframes and currencies by changing its codes and personalizing it.
Of course, it is strongly recommended that people who want to use it first perform the necessary backtests or test this strategy on demo sites and then trade on the Tetri platform.
In this strategy, it only checks the entry and exit conditions and connects to the exchange using the API code and trades completely automatically.
This strategy determines the stop loss and take profit points on the exchange at the same time as entering the transaction and sets them.
///////////////////////// Code ////////////////////////////////
//@version=5
// Copyright (c) 2021-present, Alex Orekhov (everget)
//indicator('HalfTrend and TMA', overlay=true , max_lines_count = 500, max_labels_count = 500)
strategy(title='Mahnam BTC with breake out', overlay=true , max_bars_back=5000 , max_labels_count= 500 , max_boxes_count = 500,max_lines_count = 500, initial_capital=1000, currency = currency.USDT, default_qty_type=strategy.cash )
import PineCoders/Time/4
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
newyork = '0000-2400' // input.session(title='Session', defval='0000-2400')
time_newyork = time(timeframe.period, newyork)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// تعیین تاریخ شروع و پایان (بر حسب timestamp یونیکس)
// تنظیمات Input برای تاریخ شروع و پایان
startDate = input.time(timestamp('01 Jan 2025 00:00 UTC'), "📅 تاریخ شروع معاملات", inline="dateRange")
endDate = input.time(timestamp('31 Dec 2025 23:59 UTC'), "📅 تاریخ پایان معاملات", inline="dateRange")
// بررسی اینکه آیا زمان فعلی در بازه مجاز است یا خیر
isTradeEnabled = (time >= startDate) //and (time <= endDate)
///////////////////////////////////////////////////////////////////////////////////////////
// currentTime = time("15", "GMT+0")
// hourOfDay = hour(currentTime)
// notrade_hours1 = input.(12 , minval = 0 , maxval = 24 , title = "Hours Friday")
// notrade_hours2 = input.int(12 , minval = 0 , maxval = 24 , title = "Hours Monday")
////////////////////////////////////////////////////////////Holidays/////////////////////
// تعریف روزهای هفته
isSaturday = dayofweek == dayofweek.saturday //and hourOfDay > 12
isSunday = dayofweek == dayofweek.sunday
// isMonday = dayofweek == dayofweek.monday and hourOfDay < notrade_hours1
// isFriday = dayofweek == dayofweek.friday and hourOfDay > notrade_hours2
// رنگآمیزی پسزمینه برای شنبه (آبی کمرنگ) و یکشنبه (نارنجی کمرنگ)
bgcolor(isSaturday ? color.new(color.blue, 90) : isSunday ? color.new(color.orange, 90) : na)
//bgcolor(isMonday ? color.new(color.white, 90) : isFriday ? color.new(color.green, 90) : na)
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تنظیمات پوزیشن
leverage = input.int(defval = 10 , title = "leverage" , minval = 1 , maxval = 20,step = 5 , group="Posistion Settings==========================================")
quantity = input.float(defval = 500 , title = "quantity" , minval = 1, group="Posistion Settings==========================================")
sl_manager = input.float(defval = 0.5 , step = 0.1 , title = "Risk Percent Of Capital", group="Posistion Settings==========================================")
persent_fee = input.float(defval = 0.05 , title = "Persent Fee Eexchange" , minval = 0 , maxval = 1,step = 0.01 , group="Posistion Settings==========================================")
position_type = input.string(defval = "Buy_And_Sell" , title = "Position_type" , options = , group="Posistion Settings==========================================" )
r_r_long = input.float(defval = 2 , step = 0.1 , title = "R - R =>", group="Posistion Settings==========================================")
r_r_short = r_r_long // input.float(defval = 1.8 , step = 0.1 , title = "r_r Short =>")
//////////////////////////////////////////////////////// END ROC /////////////////////////////////////
day_of_week = input.bool(false , title = "Trade in 7 days", group="Posistion Settings==========================================")
show_tp_sl_ent = true // input.bool(defval=true, title= "Show Tp Sl Ent Box", group="Posistion Settings==========================================")
show_qty = true // input.bool(defval = true , title = "Show Qty Label", group="Posistion Settings==========================================")
//////////////////////////////////////////////////////// Information Position ////////////////////////////////////////////////////
var short_is_open = false
var long_is_open = false
//variant for sell position
var sl1 = 0.0
var tp1 = 0.0
var ent1 = 0.0
var equity1 = 0.0
var qty1 = ""
//variant for buy position
var sl3 = 0.0
var qty2 = ""
var tp3 = 0.0
var ent2 = 0.0
var equity2 = 0.0
symbol = str.tostring(syminfo.basecurrency + "-" + syminfo.currency )
////////////////////////////////////////////////////////////////////////////////////////////////////////
var long_condition = false
var short_condition = false
persent_candel = 0.7 // input.float(defval = 0.7 , step = 0.1 , title = "درصد حرکت آخرین کندل", group="CANDEL Settings==========================================")
////////////////////////////////////////////////////////////////////////////////////////////////////////
amplitude = 2 // input.int(title='Amplitude', defval=2)
channelDeviation =2 //input.int(title='Channel Deviation', defval=2)
showChannels =true // input.bool(title='Show Channels', defval=true)
var int trend = 0
var int nextTrend = 0
var float maxLowPrice = nz(low , low)
var float minHighPrice = nz(high , high)
var float up = 0.0
var float down = 0.0
float atrHigh = 0.0
float atrLow = 0.0
float arrowUp = na
float arrowDown = na
len_atr = 130 // input.int(130 , title = "Len Half Trend")
atr2 = ta.atr(len_atr) / 2
dev = channelDeviation * atr2
highPrice = high
lowPrice = low
highma = ta.sma(high, amplitude)
lowma = ta.sma(low, amplitude)
if nextTrend == 1
maxLowPrice := math.max(lowPrice, maxLowPrice)
if highma < maxLowPrice and close < nz(low , low)
trend := 1
nextTrend := 0
minHighPrice := highPrice
minHighPrice
else
minHighPrice := math.min(highPrice, minHighPrice)
if lowma > minHighPrice and close > nz(high , high)
trend := 0
nextTrend := 1
maxLowPrice := lowPrice
maxLowPrice
if trend == 0
if not na(trend ) and trend != 0
up := na(down ) ? down : down
arrowUp := up - atr2
arrowUp
else
up := na(up ) ? maxLowPrice : math.max(maxLowPrice, up )
up
atrHigh := up + dev
atrLow := up - dev
atrLow
else
if not na(trend ) and trend != 1
down := na(up ) ? up : up
arrowDown := down + atr2
arrowDown
else
down := na(down ) ? minHighPrice : math.min(minHighPrice, down )
down
atrHigh := down + dev
atrLow := down - dev
atrLow
//////////////////////////////////////////////////////////////////////////////////////////////////////////
len_rsi = 14 // input.int(14, group = "RSI Setting=================================")
rsi = ta.rsi(close , len_rsi)
//////////////////////////////////////////////////////////////////////////////////
// محاسبات مربوط به تعیین خطوط حمایت و مقاومت و شکست آنها
show_ATR = input.bool(false)
lookback_15 = 4 // input.int(4, title = "====>Look Back 1H=====>", inline = "2", group = "Setting Pivot======================", tooltip = "Drawing support and resistance in time frame 15 min in selected look back")
pl60 = fixnan(ta.pivotlow( low , lookback_15 , lookback_15 ))
ph60 = fixnan(ta.pivothigh( high , lookback_15 , lookback_15 ))
plot(show_ATR ? pl60 : na , color = color.red)
plot(show_ATR ? ph60 : na , color = color.green)
//////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////
len_ema_fast_long = 2 // input.int(2)
sorce_tma_long = low // input.source(low)
ema_fast_long = ta.ema(sorce_tma_long , len_ema_fast_long)
len_ema_slow_long = 25 // input.int(25)
ema_slow_long = ta.ema(sorce_tma_long , len_ema_slow_long)
//**********************************
len_ema_fast_short = 2 // input.int(2)
sorce_tma_short = high // input.source(close)
ema_fast_short = ta.ema(sorce_tma_short , len_ema_fast_short)
len_ema_slow_short = 25 // input.int(25)
ema_slow_short = ta.ema(sorce_tma_short , len_ema_slow_short)
///////////////////////////////////////////////////////////////////////////////////////////////////////////
bars = 2 // input.int(9,title="Volume Previous bars to check")
//one_side = input.bool(false, title="Positive values only")
float volume_up = 0
float volume_down = 0
for i = 0 to bars
if (close >open )
volume_up:=volume_up+volume
else
volume_down:=volume_down+volume
total_up_down_vol= volume_up-volume_down
vol_bb = 8 // input.int(8)
vol_aa = 2 // input.int(2)
pivot_high_vol = fixnan(ta.pivothigh(total_up_down_vol , vol_bb , vol_aa ))
pivot_low_vol = fixnan(ta.pivotlow(total_up_down_vol , vol_bb , vol_aa ))
///////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
CLOSE = close
LOW = low
HIGH = high
//////////////////////////////////////////////////////////////////////////////////
//
//reg_trend_on = input(true, 'Activate Reg Trend Line')
length_bull_bear = 4 // input.int(defval= 4, title='🔹 Length Reg Trend line=', minval=1)
//
BullTrend_hist = 0.0
BearTrend_hist = 0.0
BullTrend = (CLOSE - ta.lowest(LOW, length_bull_bear)) / (ta.sma(ta.tr(true), length_bull_bear ))
BearTrend = (ta.highest(HIGH, length_bull_bear) - CLOSE) / (ta.sma(ta.tr(true), length_bull_bear ))
BearTrend2 = -1 * BearTrend
Trend = BullTrend - BearTrend
// plot columun
if BullTrend < 2
BullTrend_hist := BullTrend - 2
BullTrend_hist
if BearTrend2 > -2
BearTrend_hist := BearTrend2 + 2
BearTrend_hist
//alexgrover-Regression Line Formula
x = bar_index
y = Trend
x_ = ta.sma(x, length_bull_bear)
y_ = ta.sma(y, length_bull_bear)
mx = ta.stdev(x, length_bull_bear)
my = ta.stdev(y, length_bull_bear)
c = ta.correlation(x, y, length_bull_bear)
slope = c * (my / mx)
inter = y_ - slope * x_
reg_trend = x * slope + inter
/////////////////////////////////////////////////
long2 = true
short2 = true
close_H = request.security("" , "" , close )
open_H = request.security("" , "" , open )
if close_H > open_H and close_H > open_H
short2 := false
if close_H < open_H and close_H < open_H
long2 := false
nnn = 1.4 // input.float(1.4 , step = 0.1)
long_1 = BullTrend > nnn and ta.sma(reg_trend , 4 ) > ta.sma(reg_trend , 8 )
short_1 = BearTrend2 < -nnn and ta.sma(reg_trend , 4 ) < ta.sma(reg_trend , 8 )
///////////////////////////////////////////////////
lensig_mdi = 8 // input.int(8, title="ADX Smoothing", minval=1)
len_mdi = 2 // input.int(2, minval=1, title="DI Length")
up_mdi = ta.change(high)
down_mdi = -ta.change(low)
plusDM = na(up_mdi) ? na : (up_mdi > down_mdi and up_mdi > 0 ? up_mdi : 0)
minusDM = na(down_mdi) ? na : (down_mdi > up_mdi and down_mdi > 0 ? down_mdi : 0)
trur_mdi = ta.rma(ta.tr, len_mdi)
plus_mdi = fixnan(100 * ta.rma(plusDM, len_mdi) / trur_mdi)
minus_mdi = fixnan(100 * ta.rma(minusDM, len_mdi) / trur_mdi)
sum = plus_mdi + minus_mdi
adx = 100 * ta.rma(math.abs(plus_mdi - minus_mdi) / (sum == 0 ? 1 : sum), lensig_mdi)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// تنظیمات SuperTrend
atrPeriod = 28 // input(28, title="ATR Period Super Trend")
factor = 3 // input(3.0, title="Multiplier")
= ta.supertrend(factor, atrPeriod)
// تعریف تایمفریمهای بالاتر
htf0 = "30" // input.timeframe("30", title="تایمفریم تأیید اول (1H)")
htf1 = "60" // input.timeframe("60", title=" ایمفریم تأیید دوم (1H)")
htf2 = "240" // input.timeframe("240", title="تایمفریم تأیید سوم (4H)")
// محاسبه SuperTrend در تایمفریمهای بالاتر
supertrend1 = request.security(syminfo.tickerid, htf0, supertrend)
direction1 = request.security(syminfo.tickerid, htf0, direction)
supertrend1H = request.security(syminfo.tickerid, htf1, supertrend )
direction1H = request.security(syminfo.tickerid, htf1, direction)
supertrend4H = request.security(syminfo.tickerid, htf2, supertrend )
direction4H = request.security(syminfo.tickerid, htf2, direction)
// شرایط ورود
Condition_supertrend_long = (direction1H > 0 or direction4H > 0 or direction1 > 0) and volume > fixnan(ta.pivotlow(volume , 16 , 2 ))
Condition_supertrend_short = (direction1H < 0 or direction4H < 0 or direction1 < 0) and volume > fixnan(ta.pivotlow(volume , 16 , 2 ))
//////////////////////////////////////////////////////////////////////////////////////////////////////////
open_4h = request.security("" , "240" , open )
close_4h = request.security("" , "240" , close )
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
if day_of_week == false
if isTradeEnabled == true and time == time_newyork and not isSaturday and not isSunday //and not isFriday and not isMonday
long_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi > 51 and rsi < 80
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_long > ema_slow_long and high > ph60 and open < ph60 and long_1 == true and long2 == true
and plus_mdi > minus_mdi and Condition_supertrend_long == true and high > close_4h and close > atrHigh
short_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi < 49 and rsi > 20
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_short < ema_slow_short and low < pl60 and open > pl60 and short_1 == true and short2 == true
and plus_mdi < minus_mdi and Condition_supertrend_short == true and low < close_4h and close < atrLow
if day_of_week == true
if isTradeEnabled == true and time == time_newyork
long_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi > 51 and rsi < 80
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_long > ema_slow_long and high > ph60 and open < ph60 and long_1 == true and long2 == true
and plus_mdi > minus_mdi and Condition_supertrend_long == true and high > close_4h and close > atrHigh
short_condition := long_is_open == false and short_is_open == false and total_up_down_vol > pivot_low_vol and rsi < 49 and rsi > 20
and math.abs(close - open) < (persent_candel/100) * close and ema_fast_short < ema_slow_short and low < pl60 and open > pl60 and short_1 == true and short2 == true
and plus_mdi < minus_mdi and Condition_supertrend_short == true and low < close_4h and close < atrLow
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//تنظیمات استاپ سل پوزیشن شورت و لانگ بر اساس ATR
length_atr = 2 // input.int(title='Length', defval=2, minval=1, group = "StopLoss Setting=================================")
m = 0.9 // input.float(0.9,step = 0.1,title = 'Multiplier', group = "StopLoss Setting=================================")
show_atr = false // input.bool(false, group = "StopLoss Setting=================================")
src1_atr = high //input(high , title = "Stoploss Short")
src2_atr = low //input(low ,title = "Stoploss Long")
collong_atr = color.rgb(0,255,0,0)
colshort_atr = color.rgb(255,0,0,0)
a1 = (ta.sma(ta.tr(true), length_atr) * m) / 2 + (ta.wma(ta.tr(true), length_atr) * m) / 2
stop_loss_short = src1_atr + a1
stop_loss_long = src2_atr - a1
p1_atr1 = plot(show_atr ? stop_loss_long : na, title='ATR Short Stop Loss', color=colshort_atr, style=plot.style_circles)
p2_atr1 = plot(show_atr ? stop_loss_short : na, title='ATR Long Stop Loss', color=collong_atr, style=plot.style_circles)
/////////////////////////////////////////////////////////////////Start Stop Loss///////////////////////////////////////////////
/////////////////////////////////////////////////////////////////END Stop Loss///////////////////////////////////////////////
var total_long_trade = 0
var loss_long = 0
var profit_long = 0
var sood_pos_long = 0.00
var zarar_pos_long = 0.00
var kol_sood_long = 0.00
var total_short_trade = 0
var loss_short = 0
var profit_short = 0
var sood_pos_short = 0.00
var zarar_pos_short = 0.00
var kol_sood_short = 0.00
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ━━━━━━━━━━━━━━━━━━ تنظیمات ورودی ━━━━━━━━━━━━━━━━━━
var int candlesToWait = 12 // input.int(1, "تعداد کندلهای انتظار پس از معامله", minval=1)
// ━━━━━━━━━━━━━━━━━━ شناسایی آخرین معامله ━━━━━━━━━━━━━━━━━━
var int lastTradeCloseBar = na
var bool isCoolDownOver = true
// اگر معاملهای بسته شد، شماره کندل آن را ذخیره کن
if strategy.closedtrades > 0 and (na(lastTradeCloseBar) or strategy.closedtrades != strategy.closedtrades )
lastTradeCloseBar := bar_index
isCoolDownOver := false
// بررسی آیا تعداد کندلهای موردنظر گذشته است؟
if not na(lastTradeCloseBar) and (bar_index - lastTradeCloseBar) >= candlesToWait
isCoolDownOver := true
bgcolor(isCoolDownOver ? na : color.new(color.red, 90), title="Cooldown Status")
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// تنظیمات دستورات لازم برای ارسال به صرافی جهت پوزیشن لانگ
//ADD_quantity = 1.5 // input.float(2 , title = "در صورت واگرایی ماجین رو چند بابر کنم؟")
if position_type == "Buy" or position_type == "Buy_And_Sell"
if long_condition and isCoolDownOver
ent2 := close
sl3 :=stop_loss_long - (stop_loss_long * (0.5 / leverage) / 100 )
tp3 := ent2 + ((ent2 - sl3) * r_r_long)
number_coin = ((quantity * leverage * sl_manager) / ((ent2 - sl3) *100))
equity2 := math.round ((number_coin * close ) , 3)
if equity2 > quantity * leverage
equity2 := quantity * leverage
//////////////////////////////////////////////////////////////////////////////////
if show_qty
label.new(bar_index , low , str.tostring(equity2) + "$" , color = color.rgb(0, 255, 0,0) , size = size.normal , style = label.style_label_up)
strategy.entry(id="buy", direction = strategy.long , qty=(equity2/close) )
if close >= 10 and close < 500
qty2 := str.tostring(math.round(equity2/close , 2))
else
qty2 := str.tostring(math.round(equity2/close , 0))
if close > 500
qty2 := str.tostring(math.round(equity2/close , 3 ))
if symbol == "AAVEUSDT"
qty2 := str.tostring(math.round(equity2/close , 1))
// ================/ برای باز کردن پوزیشن از این مقدار استفاده میکند /======================
message1 = '{"symbol":"'+symbol+'","type":"MARKET", "side":"BUY", "positionSide": "LONG", "quantity":"'+qty2+'","leverage": "'+str.tostring(leverage)+'","marginMode": "Isolated","botmix-action":"open-market-order-v2"}'
// message1 = '{ "side":"Ask","symbol":"'+symbol+'","tradeType":"Market","entrustVolume":"'+qty1+'","action":"Open","marginMode":"Isolated","leverage":"'+str.tostring(leverage)+'", "takerProfitPrice":"'+str.tostring(tp1)+'","stopLossPrice":"'+str.tostring(sl1)+'","botmix-action":"open-market-order" }'
// message1 = '{ "batchOrders": ,"botmix-action":"open-multiple-order" }'
alert(message1 , alert.freq_once_per_bar)
message2 = '{"symbol":"'+symbol+'","type":"LIMIT","side":"SELL", "positionSide": "LONG","delay": 5 ,"quantity":"'+qty2+'","price": "'+str.tostring(tp3)+'", "botmix-action":"open-market-order-v2"}'
alert(message2 , alert.freq_once_per_bar)
message3 = '{"symbol":"'+symbol+'","type":"STOP_MARKET","side":"SELL","positionSide": "LONG","delay": 10 ,"quantity":"'+qty2+'","price": "'+str.tostring(sl3)+'", "stopPrice": "'+str.tostring(sl3)+'","botmix-action":"open-market-order-v2"}'
alert(message3 , alert.freq_once_per_bar)
long_is_open := true
if show_tp_sl_ent
line.new(bar_index, tp3, bar_index + 15, tp3, xloc= xloc.bar_index, color= color.rgb(0, 255, 0,0 ), width = 1)
box.new(bar_index , tp3 , bar_index + 15 , ent2 ,bgcolor = color.rgb(0, 255, 0 , 90) , border_color = color.rgb(0, 255, 0 , 80) )
line.new(bar_index, (tp3 - ((tp3 - ent2) /2)), bar_index + 15, (tp3 - ((tp3 - ent2) /2)), xloc= xloc.bar_index, color= color.rgb(0, 17, 255), width = 2 , style = line.style_dashed)
line.new(bar_index, sl3, bar_index + 15, sl3, xloc= xloc.bar_index, color= color.rgb(255, 0, 0,0), width = 1)
box.new(bar_index , sl3 , bar_index + 15 , ent2 ,bgcolor = color.rgb(255, 0, 0, 90) , border_color = color.rgb(255, 0, 0 , 80) )
line.new(bar_index , ent2 , bar_index + 15 , ent2 , color = color.rgb(255, 255, 0, 0))
/////////////////////////////////////////////////////////
total_long_trade := total_long_trade + 1
if low <= sl3 and long_is_open == true
loss_long := loss_long + 1
zarar_pos_long := zarar_pos_long + (((ent2 - sl3) / ent2) * equity2)
if high >= tp3 and long_is_open == true
profit_long := profit_long + 1
sood_pos_long := sood_pos_long +(((tp3 - ent2) / ent2) * equity2)
kol_sood_long := sood_pos_long - zarar_pos_long
/////////////////////////////////////////////////////////////
if (low <= sl3 or high >= tp3) and long_is_open == true
long_is_open := false
strategy.exit( id = "buy" , from_entry = "buy" , limit = tp3 , stop = sl3 , qty_percent = 100 , comment_profit = "tp" , comment_loss = "sl" )
color_kol_pos_long = kol_sood_long >0 ? color.rgb(0,255,0) : color.rgb(255,0,0)
// //////////////////////LONG___ENNNDD//////////////////////////////////////////////////////////
// تظیمات دستورات لازم برای ارسال به صرافی جهت پوزیشن شورت
if position_type == "Sell" or position_type == "Buy_And_Sell"
if short_condition and isCoolDownOver
ent1 := close
sl1 :=stop_loss_short + (stop_loss_short * (0.5 / leverage) / 100 )
tp1 := ent1 - ((sl1 - ent1 ) * r_r_short)
number_coin = ((quantity * leverage * sl_manager) / ((sl1 - ent1) *100))
equity1 := math.round ((number_coin * close ) , 3)
if equity1 > quantity * leverage
equity1 := quantity * leverage
/////////////////////////////////////////////////////////////////////////////////////////
if show_qty
label.new(bar_index , high , str.tostring(equity1) + "$" , color = color.rgb(255, 0, 0,0) , size = size.normal , style = label.style_label_down)
strategy.entry(id="sell", direction = strategy.short, qty=(equity1/close) )
if close >= 10 and close < 500
qty1 := str.tostring(math.round(equity1/close , 2))
else
qty1 := str.tostring(math.round(equity1/close , 0))
if close > 500
qty1 := str.tostring(math.round(equity1/close , 3))
if symbol == "AAVEUSDT"
qty1 := str.tostring(math.round(equity1/close , 1))
// ================/ برای باز کردن پوزیشن از این مقدار استفاده میکند /======================
message1 = '{"symbol":"'+symbol+'","type":"MARKET", "side":"SELL", "positionSide": "SHORT", "quantity":"'+qty1+'","leverage": "'+str.tostring(leverage)+'","marginMode": "Isolated","botmix-action":"open-market-order-v2"}'
// message1 = '{ "side":"Ask","symbol":"'+symbol+'","tradeType":"Market","entrustVolume":"'+qty1+'","action":"Open","marginMode":"Isolated","leverage":"'+str.tostring(leverage)+'", "takerProfitPrice":"'+str.tostring(tp1)+'","stopLossPrice":"'+str.tostring(sl1)+'","botmix-action":"open-market-order" }'
// message1 = '{ "batchOrders": ,"botmix-action":"open-multiple-order" }'
alert(message1 , alert.freq_once_per_bar)
message2 = '{"symbol":"'+symbol+'","type":"LIMIT","side":"BUY", "positionSide": "SHORT","delay": 5 ,"quantity":"'+qty1+'","price": "'+str.tostring(tp1)+'", "botmix-action":"open-market-order-v2"}'
alert(message2 , alert.freq_once_per_bar)
message3 = '{"symbol":"'+symbol+'","type":"STOP_MARKET","side":"BUY","positionSide": "SHORT","delay": 10 ,"quantity":"'+qty1+'","price": "'+str.tostring(sl1)+'", "stopPrice": "'+str.tostring(sl1)+'","botmix-action":"open-market-order-v2"}'
alert(message3 , alert.freq_once_per_bar)
short_is_open := true
if show_tp_sl_ent
line.new(bar_index, tp1, bar_index + 15, tp1, xloc= xloc.bar_index, color= color.rgb(0, 255, 0,0 ), width = 1)
box.new(bar_index , tp1 , bar_index + 15 , ent1 ,bgcolor = color.rgb(0, 255, 0 , 90) , border_color = color.rgb(0, 255, 0 , 80) )
line.new(bar_index, (tp1+((ent1 - tp1)/2)), bar_index + 15, (tp1+((ent1 - tp1)/2)), xloc= xloc.bar_index, color= color.rgb(4, 0, 255), width = 2 , style= line.style_dashed)
line.new(bar_index, sl1, bar_index + 15, sl1, xloc= xloc.bar_index, color= color.rgb(255, 0, 0,50), width = 1)
box.new(bar_index , sl1 , bar_index + 15 , ent1 ,bgcolor = color.rgb(255, 0, 0, 90) , border_color = color.rgb(255, 0, 0 , 80) )
line.new(bar_index , ent1 , bar_index + 15 , ent1 , color = color.rgb(255, 255, 0,0))
////////////////////////////////////////////////////////////////////////////////////
total_short_trade := total_short_trade + 1
if high >= sl1 and short_is_open == true
loss_short := loss_long + 1
zarar_pos_short := zarar_pos_short + (((sl1 - ent1) / ent1) * equity1)
if low <= tp1 and short_is_open == true
profit_short := profit_short + 1
sood_pos_short := sood_pos_short +(((ent1 - tp1) / ent1) * equity1)
kol_sood_short := sood_pos_short - zarar_pos_short
///////////////////////////////////////////////////////////////////////////////////
if (high >= sl1 or low <= tp1 ) and short_is_open == true
short_is_open := false
strategy.exit( id = "sellext1" , from_entry = "sell" , limit = tp1 , stop = sl1 , qty_percent = 100 , comment_profit = "tp" , comment_loss = "sl" )
color_kol_pos_short = kol_sood_short > 0 ? color.rgb(0,255,0) : color.rgb(255,0,0)
////////////////////////////////////////////////////////////////////////////////////////////
kol_trade = loss_short + loss_long + profit_long + profit_short
/////////////////////SHORT___ENNNDD//////////////////////////////////////////////////////
closed_trades = (loss_short + loss_long + profit_long + profit_short) // strategy.closedtrades
kolfee = (closed_trades * quantity * leverage * persent_fee) / 100
net_profit = math.round((kol_sood_short + kol_sood_long) , 2 ) - kolfee
net_percent = math.round((net_profit / quantity) * 100 , 2)
win_rate = math.round(((profit_long + profit_short) / kol_trade) * 100 , 2) //math.round((strategy.wintrades / strategy.closedtrades) * 100 , 2)
ending = math.round((quantity + net_profit) , 2)
profit_factor = math.round((sood_pos_long + sood_pos_short) / math.abs(zarar_pos_long + zarar_pos_short) , 2)
drow_down = math.round((strategy.max_drawdown / quantity) * 100, 2 )
show_reportTabel = input.bool(true)
if show_reportTabel
table_color = color.rgb(0, 0, 0)
var table result_table = table.new(position.top_right, 30, 40, bgcolor=color.rgb(255,255,255,0), frame_color=color.rgb(0, 0, 0,0), frame_width=1, border_width=2)
table.cell(result_table , column = 0 , row = 0 , text = "TEST BTC with breake out:\n" + str.tostring(kol_trade) , bgcolor = table_color , text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 1 , row = 0 , text = "starting:\n" + str.tostring(quantity) + "$" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 2 , row = 0 , text = "Net Profit:\n" + str.tostring(net_profit) + "$:\n" + " fee = " + str.tostring(kolfee) , bgcolor = table_color, text_color = net_profit > 0 ? color.rgb(0,255,0,0) : color.rgb(255,0,0,0))
table.cell(result_table , column = 0 , row = 1 , text = "Win Rate:\n" + str.tostring(win_rate) + "%" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 1 , row = 1 , text = "Ending:\n" + str.tostring(ending) + "$" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 2 , row = 1 , text = "Profit Factor:\n" + str.tostring(profit_factor) , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 3 , row = 0 , text = "Net Percent:\n" + str.tostring(net_percent) + "%" , bgcolor = table_color, text_color = net_percent > 0 ? color.rgb(0,255,0,0) : color.rgb(255,0,0,0))
table.cell(result_table , column = 3 , row = 1 , text = "Draw Down:\n" + str.tostring(drow_down) + "%" , bgcolor = table_color, text_color = color.rgb(255,255,255,0))
table.cell(result_table , column = 4 , row = 0 , text = "Stop:\n" + "Short =" + str.tostring(loss_short)+ "\n" +"Long =" + str.tostring(loss_long) , bgcolor = table_color, text_color = color.rgb(255,0,0,0))
table.cell(result_table , column = 4 , row = 1 , text = "TP:\n" + "Short =" + str.tostring(profit_short)+ "\n" +"Long =" + str.tostring(profit_long) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 5 , row = 0 , text = "Short:\n" + "sood =" + str.tostring(math.round(sood_pos_short,2)) + "\n" + "Zarar =" + str.tostring(math.round(zarar_pos_short,2)) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 5 , row = 1 , text = "Long:\n" + "sood =" + str.tostring(math.round(sood_pos_long,2)) + "\n" + "Zarar =" + str.tostring(math.round(zarar_pos_long,2)) , bgcolor = table_color, text_color = color.rgb(0,255,0,0))
table.cell(result_table , column = 6 , row = 0 , text = "Kol Sood Short:\n" + "Short =" + str.tostring(math.round(kol_sood_short,2)) , bgcolor = table_color, text_color = color_kol_pos_short)
table.cell(result_table , column = 6 , row = 1 , text = "Kol Sood Long:\n" + "LONG =" + str.tostring(math.round(kol_sood_long,2)) , bgcolor = table_color, text_color = color_kol_pos_long)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// //////////////////////////////////////////////////////////////////////////////////////////////////////
// // ********** تنظیمات **********
// show_monthly_Report = input.bool(false, "نمایش گزارش ماهیانه")
// exchange_fee_percent = 0.05 / 100 // input.float(0.05, "کارمزد صرافی (%)", step=0.01) / 100
// indicator_name = 'BTC with breake out' // input.string("تحلیلگر حرفه ای - گزارش ماهیانه", "عنوان اندیکاتور")
// show_total_row = true // input.bool(true, "نمایش سطر جمع کل")
// // ********** ایجاد جدول **********
// var table monthlyReport = table.new(position = position.top_right, columns = 6,rows = 21,bgcolor = color.rgb(33, 33, 33),
// border_width = 2,border_color = color.rgb(80, 80, 80),frame_width = 1,frame_color = color.rgb(50, 50, 50))
// // ********** متغیرهای ماهیانه **********
// var int currentMonth = na
// var int monthTrades = 0
// var int monthWinningTrades = 0
// var float totalFees = 0.0
// var float monthNetProfit = 0.0
// // ********** متغیرهای جمع کل **********
// var float totalAllTrades = 0.0
// var float totalAllFees = 0.0
// var float totalAllNetProfit = 0.0
// var int totalAllWinningTrades = 0
// var int totalAllMonths = 0
// // ********** تشخیص تغییر ماه **********
// isNewMonth = ta.change(month) or ta.change(year)
// // ********** محاسبات معاملات **********
// tradeClosed = strategy.closedtrades > strategy.closedtrades
// if tradeClosed
// lastTradeIndex = strategy.closedtrades - 1
// tradeSize = math.abs(strategy.closedtrades.size(lastTradeIndex) * strategy.closedtrades.exit_price(lastTradeIndex))
// tradeFee = tradeSize * exchange_fee_percent
// totalFees := totalFees + tradeFee
// tradeProfit = strategy.closedtrades.profit(lastTradeIndex)
// monthNetProfit := monthNetProfit + tradeProfit
// monthTrades := monthTrades + 1
// if tradeProfit > 0
// monthWinningTrades := monthWinningTrades + 1
// // ********** مدیریت گزارش ماهیانه **********
// if isNewMonth and show_monthly_Report and not na(currentMonth)
// // محاسبات ماهانه
// grossProfit = monthNetProfit
// netProfit = grossProfit - totalFees
// winRate = monthTrades > 0 ? (monthWinningTrades/monthTrades)*100 : 0
// // به روزرسانی جمع کل
// totalAllTrades := totalAllTrades + monthTrades
// totalAllFees := totalAllFees + totalFees
// totalAllNetProfit := totalAllNetProfit + netProfit
// totalAllWinningTrades := totalAllWinningTrades + monthWinningTrades
// totalAllMonths := totalAllMonths + 1
// // نمایش در جدول
// row = (month % 12 == 0 ? 12 : month % 12) + 2 // +2 برای جا دادن سطرهای عنوان
// monthName = str.tostring(year ) + "-" + str.tostring(month , "00")
// table.cell(monthlyReport, 0, row, monthName, text_color=color.white)
// table.cell(monthlyReport, 1, row, str.tostring(monthTrades), text_color=color.white)
// table.cell(monthlyReport, 2, row, str.tostring(grossProfit, "0.00") + " $")
// table.cell(monthlyReport, 3, row, str.tostring(totalFees, "0.00") + " $")
// table.cell(monthlyReport, 4, row, str.tostring(netProfit, "0.00") + " $")
// table.cell(monthlyReport, 5, row, str.tostring(winRate, "1.0") + "%")
// // رنگ آمیزی سود/زیان
// textColor = netProfit >= 0 ? color.rgb(0, 200, 0) : color.rgb(200, 0, 0)
// for i = 2 to 5
// table.cell_set_text_color(monthlyReport, i, row, textColor)
// // ********** سطر جمع کل **********
// if show_monthly_Report and show_total_row and totalAllMonths > 0
// totalWinRate = totalAllTrades > 0 ? (totalAllWinningTrades/totalAllTrades)*100 : 0
// table.cell(monthlyReport, 0, 15, "جمع کل (" + str.tostring(totalAllMonths) + " ماه)",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50),
// width=6)
// table.cell(monthlyReport, 1, 15, str.tostring(totalAllTrades),
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 2, 15, str.tostring(totalAllNetProfit + totalAllFees, "0.00") + " $",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 3, 15, str.tostring(totalAllFees, "0.00") + " $",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 4, 15, str.tostring(totalAllNetProfit, "0.00") + " $",
// text_color = totalAllNetProfit >= 0 ? color.green : color.red,
// bgcolor=color.rgb(50, 50, 50))
// table.cell(monthlyReport, 5, 15, str.tostring(totalWinRate, "1.0") + "%",
// text_color=color.yellow,
// bgcolor=color.rgb(50, 50, 50))
// // ********** ریست ماهیانه **********
// if isNewMonth
// currentMonth := month
// monthTrades := 0
// monthWinningTrades := 0
// totalFees := 0.0
// monthNetProfit := 0.0
// // ********** عنوانهای جدول **********
// if barstate.isfirst and show_monthly_Report
// // عنوان اصلی (یکپارچه در سطر اول)
// table.cell(
// monthlyReport,
// column = 4, // ستون شروع (0 = اولین ستون)
// row = 0, // ردیف 0 (اولین ردیف)
// text = indicator_name,
// bgcolor = color.rgb(0, 0, 0),
// text_size = size.small,
// text_color = color.rgb(255,255,0),
// width = 12, // گسترش روی تمام 6 ستون
// height = 4 // ارتفاع بیشتر برای وضوح بهتر
// )
// // عنوان ستونها (در ردیف دوم)
// headers = array.from("ماه", "تعداد", "سود ناخالص", "کارمزد", "سود خالص", "نرخ برد")
// for i = 0 to 5
// table.cell(
// monthlyReport,
// column = i,
// row = 1, // ردیف بعد از عنوان اصلی
// text = array.get(headers, i),
// text_color = color.white,
// bgcolor = color.rgb(60, 60, 60),
// width = 1 // عرض معمولی برای هر ستون
// )
Timeshifter Triple Timeframe Strategy w/ SessionsOverview
The "Enhanced Timeshifter Triple Timeframe Strategy with Session Filtering" is a sophisticated trading strategy designed for the TradingView platform. It integrates multiple technical indicators across three different timeframes and allows traders to customize their trading Sessions. This strategy is ideal for traders who wish to leverage multi-timeframe analysis and session-based trading to enhance their trading decisions.
Features
Multi-Timeframe Analysis and direction:
Higher Timeframe: Set to a daily timeframe by default, providing a broader view of market trends.
Trading Timeframe: Automatically set to the current chart timeframe, ensuring alignment with the trader's primary analysis period.
Lower Timeframe: Set to a 15-minute timeframe by default, offering a granular view for precise entry and exit points.
Indicator Selection:
RMI (Relative Momentum Index): Combines RSI and MFI to gauge market momentum.
TWAP (Time Weighted Average Price): Provides an average price over a specified period, useful for identifying trends.
TEMA (Triple Exponential Moving Average): Reduces lag and smooths price data for trend identification.
DEMA (Double Exponential Moving Average): Similar to TEMA, it reduces lag and provides a smoother trend line.
MA (Moving Average): A simple moving average for basic trend analysis.
MFI (Money Flow Index): Measures the flow of money into and out of a security, useful for identifying overbought or oversold conditions.
VWMA (Volume Weighted Moving Average): Incorporates volume data into the moving average calculation.
PSAR (Parabolic SAR): Identifies potential reversals in price movement.
Session Filtering:
London Session: Trade during the London market hours (0800-1700 GMT+1).
New York Session: Trade during the New York market hours (0800-1700 GMT-5).
Tokyo Session: Trade during the Tokyo market hours (0900-1800 GMT+9).
Users can select one or multiple sessions to align trading with specific market hours.
Trade Direction:
Long: Only long trades are permitted.
Short: Only short trades are permitted.
Both: Both long and short trades are permitted, providing flexibility based on market conditions.
ADX Confirmation:
ADX (Average Directional Index): An optional filter to confirm the strength of a trend before entering a trade.
How to Use the Script
Setup:
Add the script to your TradingView chart.
Customize the input parameters according to your trading preferences and strategy requirements.
Indicator Selection:
Choose the primary indicator you wish to use for generating trading signals from the dropdown menu.
Enable or disable the ADX confirmation based on your preference for trend strength analysis.
Session Filtering:
Select the trading sessions you wish to trade in. You can choose one or multiple Sessions based on your trading strategy and market focus.
Trade Direction:
Set your preferred trade direction (Long, Short, or Both) to align with your market outlook and risk tolerance. You can use this feature to gauge the market and understand the possible directions.
Tips for Profitable and Safe Trading:
Recommended Timeframes Combination:
LT: 1m , CT: 5m, HT: 1H
LT: 1-5m , CT: 15m, HT: 4H
LT: 5-15m , CT: 4H, HT: 1W
Backtesting:
Always backtest the strategy on historical data to understand its performance under various market conditions.
Adjust the parameters based on backtesting results to optimize the strategy for your specific trading style.
Risk Management:
Use appropriate risk management techniques, such as setting stop-loss and take-profit levels, to protect your capital.
Avoid over-leveraging and ensure that you are trading within your risk tolerance.
Market Analysis:
Combine the script with other forms of market analysis, such as fundamental analysis or market sentiment, to make well-rounded trading decisions.
Stay informed about major economic events and news that could impact market volatility and trading sessions.
Continuous Monitoring:
Regularly monitor the strategy's performance and make adjustments as necessary.
Keep an eye on the results and settings for real-time statistics and ensure that the strategy aligns with current market conditions.
Education and Practice:
Continuously educate yourself on trading strategies and market dynamics.
Practice using the strategy in a demo account before applying it to live trading to gain confidence and understanding.
Zero Lag MACD + Kijun-sen + EOM StrategyThis strategy offers a robust approach to identifying high-probability trading opportunities in the fast-paced cryptocurrency markets, particularly on lower timeframes (e.g., 5-minute). It leverages the synergistic power of three distinct indicators to confirm entries, ensuring a disciplined approach to risk management.
Key Components:
Zero Lag MACD Enhanced Version 1.2: This core momentum indicator is used to identify precise shifts in trend and momentum, offering reduced lag compared to traditional MACD. Entry signals are filtered based on the histogram's position (below for buys, above for sells) to enhance signal reliability.
Kijun-sen (Ichimoku Cloud): Acting as a dynamic support/resistance and trend filter, the Kijun-sen line confirms the prevailing market direction. Long entries are confirmed when price is above Kijun-sen, and short entries when price is below.
Ease of Movement (EoM): This volume-based oscillator provides crucial confirmation of price movements by measuring the ease with which price changes. Positive EoM confirms buying pressure, while negative confirms selling pressure, adding an essential layer of validation to trade setups.
How it Works:
The strategy generates entry signals only when all three indicators align simultaneously:
For Long Entries: A Zero Lag MACD buy signal (crossover below histogram) must coincide with price trading above the Kijun-sen, and the Ease of Movement indicator being above its zero line.
For Short Entries: A Zero Lag MACD sell signal (crossover above histogram) must coincide with price trading below the Kijun-sen, and the Ease of Movement indicator being below its zero line.
Entries are executed at the open of the candle immediately following the signal confirmation.
Risk Management:
Disciplined risk management is paramount to this strategy:
Dynamic Stop-Loss: An Average True Range (ATR) based stop-loss is implemented, set at 2.5 times the current ATR. This adapts the stop-loss distance to market volatility, ensuring sensible risk sizing.
Fixed Take-Profit: A consistent Risk-to-Reward (R:R) ratio of 1:1.2 is applied for all trades, promoting stable profit realization.
Customization & Optimization:
The strategy is built with fully customizable input parameters for each indicator (MACD lengths, Kijun-sen period, ATR period, ATR multiplier, and Risk-to-Reward ratio). This allows users to fine-tune the strategy for different assets, timeframes, and market conditions, facilitating robust backtesting and optimization.
Disclaimer: Trading involves substantial risk and is not suitable for all investors. Past performance is not indicative of future results. This strategy is provided for educational and informational purposes only. Always use proper risk management and conduct your own due diligence.
Pin Bar Reversal StrategyStrategy: Pin Bar Reversal with Trend Filter
One effective high-probability setup is a Pin Bar reversal in the direction of the larger trend. A pin bar is a candlestick with a tiny body and a long wick, signaling a sharp rejection of price
By itself, a pin bar often marks a potential reversal, but not all pin bars lead to profitable moves. To boost reliability, this strategy trades pin bars only when they align with the prevailing trend – for example, taking a bullish pin bar while the market is in an uptrend, or a bearish pin bar in a downtrend. The trend bias can be determined by a long-term moving average or higher timeframe analysis.
Why it works: In an uptrend, a bullish pin bar after a pullback often indicates that sellers tried to push price down but failed, and buyers are resuming control. Filtering for pin bars near key support or moving averages further improves odds of success. This aligns the entry with both a strong price pattern and the dominant market direction, yielding a higher win rate. The pin bar’s own structure provides natural levels for stop and target placement, keeping risk management straightforward.
Example Setup:
USDCHF - 4 Hour Chart
Trend SMA 12
Max Body - 34
Min Wick - 66
ATR -15
ATR Stop Loss Multiplier - 2.3
ATR Take Profit Multiplier - 2.9
Minimum ATR to Enter - 0.0025
Momentum Long + Short Strategy (BTC 3H)Momentum Long + Short Strategy (BTC 3H)
🔍 How It Works, Step by Step
Detect the Trend (📈/📉)
Calculate two moving averages (100-period and 500-period), either EMA or SMA.
For longs, we require MA100 > MA500 (uptrend).
For shorts, we block entries if MA100 exceeds MA500 by more than a set percentage (to avoid fading a powerful uptrend).
Apply Momentum Filters (⚡️)
RSI Filter: Measures recent strength—only allow longs when RSI crosses above its smoothed average, and shorts when RSI dips below the oversold threshold.
ADX Filter: Gauges trend strength—ensures we only enter when a meaningful trend exists (optional).
ATR Filter: Confirms volatility—avoids choppy, low-volatility conditions by requiring ATR to exceed its smoothed value (optional).
Confirm Entry Conditions (✅)
Long Entry:
Price is above both MAs
Trend alignment & optional filters pass ✅
Short Entry:
Price is below both MAs and below the lower Bollinger Band
RSI is sufficiently oversold
Trend-blocker & ATR filter pass ✅
Position Sizing & Risk (💰)
Each trade uses 100 % of account equity by default.
One pyramid addition allowed, so you can scale in if the move continues.
Commission and slippage assumptions built in for realistic backtests.
Stops & Exits (🛑)
Long Stop-Loss: e.g. 3 % below entry.
Long Auto-Exit: If price falls back under the 500-period MA.
Short Stop-Loss: e.g. 3 % above entry.
Short Take-Profit: e.g. 4 % below entry.
🎨 Why It’s Powerful & Customizable
Modular Filters: Turn on/off RSI, ADX, ATR filters to suit different market regimes.
Adjustable Thresholds: Fine-tune stop-loss %, take-profit %, RSI lengths, MA gaps and more.
Multi-Timeframe Potential: Although coded for 3 h BTC, you can adapt it to stocks, forex or other cryptos—just recalibrate!
Backtest Fine-Tuned: Default settings were optimized via backtesting on historical BTC data—but they’re not guarantees of future performance.
⚠️ Warning & Disclaimer
This strategy is for educational purposes only and designed for a toy fund. Crypto markets are highly volatile—you can lose 100 % of your capital. It is not a predictive “holy grail” but a rules-based framework using past data. The parameters have been fine-tuned on historical data and are not valid for future trades without fresh calibration. Always practice with paper-trading first, use proper risk management, and do your own research before risking real money. 🚨🔒
Good luck exploring and experimenting! 🚀📊
Ai BTC Signals Buy & Whales / Liquidation - Strategy [Ai Whales]Dear Trader,
The development involved professional analysts and incorporated AI to adapt signals to the modern, constantly changing, and highly volatile BTCUSD market, also taking into account the presence and actions of large institutional players — the so-called "Whales." The strategy allows you to instantly evaluate any configuration you set within the indicator and see the results reflected in professional performance metrics aligned with your chosen strategy.
The indicator displays several signals on the chart:
1) Buy signal (not sell signals)
2) Take profit line and price
3) Stop loss line and price
4) Manipulations & Liquidations observed in the market
5) Whale activity—buying in small, medium, and large amounts
The indicator does not repaint because it is based on showing signals only after the candle closes, so the calculations are true and not distorted.
Recommended pair: BTCUSD ; BTCUSDT ; BTCUSDTP and same.
The indicator can show R/R - 0.5:1 1:1 1:2 1:3 1:4
Recommended timeframes for use: from 4 hours up to 1 week, with the ideal being 1 day. However, you are free to experiment with other near timeframes.
Possible trading modes: spot or futures.
Some methods used in the calculations of the indicator:
- statistical patterns that have the ability to repeat in the future. Bitcoin cycles in different market phases that also have the ability to repeat and are included in the indicator,
- miners' capitulation and hashrate level are also taken into account by the indicator,
- candle volumes and their deltas are taken into account in the calculations,
- as well as other bases such as RSI and its divergence, the crossing of EMA of various configurations and etc.
**How the strategy calculates positions:**
A position opens at the Buy signal level and is fixed at the level of the thick green line, which serves as the primary take profit target. Pyramiding (adding to positions) can be enabled in the settings.
The size of each position is adjustable via the settings. Importantly, each signal creates its own take profit lines. When pyramiding is enabled, all positions are eventually closed at the nearest take profit level generated by any of the pyramiding signals. This approach minimizes potential losses if the price doesn’t reach the maximum take profit levels initially set; the strategy closes positions at the closest available take profit level. This conservative method for strategy reduces risk, although ideally, each position in the pyramid should be closed at an individual take-profit level, which would lead to even better results during deep backtesting.
The strategy includes alerts that can be configured based on your platform’s capabilities. Alerts trigger on the chart when "Buy" or "Whale" signals are detected.
**Settings Overview:**
- Inside the strategy: default platform options.
- Inside the indicato have some filters:
1) allows traders to choose display modes
2) position entries based on market phase—rising or falling
3) can also select whether to trade after manipulations and liquidations
4) can also select whether to trade after whale activity (small medium or big amounts of whales).
You can manually adjust take profit and stop loss levels via simple method selections, making these flexible yet user-friendly. The indicator offers three main styles:
- "Universal" (standard levels)
- "Aggressive"
- "Conservative"
**Performance and caveats:**
Deep Backtested from day one of Bitcoin’s listing on various exchanges under specific conditions (no liquidations, certain settings), the indicator has shown a maximum drawdown of about 5-15%, with final returns surpassing "buy and hold" more than 1000000% and WinRate 93-100% However, it’s crucial to understand that such spectacular past performance does not guarantee future results.
If you are serious about your investments, remember that geopolitical events, institutional shifts, or other unforeseen factors can significantly impact Bitcoin’s price—or even its existence. Unfortunately, AI has not yet learned to fully account for these macro conditions within its adaptive mechanisms.
Trade wisely, and use this powerful tool responsibly.
Best regards,
Fusion Sniper X [ Crypto Strategy]📌 Fusion Sniper X — Description for TradingView
Overview:
Fusion Sniper X is a purpose-built algorithmic trading strategy designed for cryptocurrency markets, especially effective on the 1-hour chart. It combines advanced trend analysis, momentum filtering, volatility confirmation, and dynamic trade management to deliver a fast-reacting, high-precision trading system. This script is not a basic mashup of indicators, but a fully integrated strategy with logical synergy between components, internal equity management, and visual trade analytics via a customizable dashboard.
🔍 How It Works
🔸 Trend Detection – McGinley Dynamic + Gradient Slope
McGinley Dynamic is used as the baseline to reflect adaptive price action more responsively than standard moving averages.
A custom gradient filter, calculated using the slope of the McGinley line normalized by ATR, determines if the market is trending up or down.
trendUp when slope > 0
trendDown when slope < 0
🔸 Momentum Confirmation – ZLEMA-Smoothed CCI
CCI (Commodity Channel Index) is used to detect momentum strength and direction.
It is further smoothed with ZLEMA (Zero Lag EMA) to reduce noise while keeping lag minimal.
Entry is confirmed when:
CCI > 0 (Bullish momentum)
CCI < 0 (Bearish momentum)
🔸 Volume Confirmation – Relative Volume Spike Filter
Uses a 20-period EMA of volume to calculate the expected average.
Trades are only triggered if real-time volume exceeds this average by a user-defined multiplier (default: 1.5x), filtering out low-conviction signals.
🔸 Trap Detection – Wick-to-Body Reversal Filter
Filters out potential trap candles using wick-to-body ratio and body size compared to ATR.
Avoids entering on manipulative price spikes where:
Long traps show large lower wicks.
Short traps show large upper wicks.
🔸 Entry Conditions
A trade is only allowed when:
Within selected date range
Cooldown between trades is respected
Daily drawdown guard is not triggered
All of the following align:
Trend direction (McGinley slope)
Momentum confirmation (CCI ZLEMA)
Volume spike active
No trap candle detected
🎯 Trade Management Logic
✅ Take Profit (TP1/TP2 System)
TP1: 50% of the position is closed at a predefined % gain (default 2%).
TP2: Remaining 100% is closed at a higher profit level (default 4%).
🛑 Stop Loss
A fixed 2% stop loss is enforced per position using strategy.exit(..., stop=...) logic.
Stop loss is active for both TP2 and primary entries and updates the dashboard if triggered.
❄️ Cooldown & Equity Protection
A user-defined cooldown period (in bars) prevents overtrading.
A daily equity loss guard blocks new trades if portfolio drawdown exceeds a % threshold (default: 2.5%).
📊 Real-Time Dashboard (On-Chart Table)
Fusion Sniper X features a futuristic, color-coded dashboard with theme controls, showing:
Current position and entry price
Real-time profit/loss (%)
TP1, TP2, and SL status
Trend and momentum direction
Volume spike state and trap candle alerts
Trade statistics: total, win/loss, drawdown
Symbol and timeframe display
Themes include: Neon, Cyber, Monochrome, and Dark Techno.
📈 Visuals
McGinley baseline is plotted in orange for trend bias.
Bar colors reflect active positions (green for long, red for short).
Stop loss line plotted in red when active.
Background shading highlights active volume spikes.
✅ Why It’s Not Just a Mashup
Fusion Sniper X is an original system architecture built on:
Custom logic (gradient-based trend slope, wick trap rejection)
Synergistic indicator stacking (ZLEMA-smoothed momentum, ATR-based slope)
Position and equity tracking (not just signal-based plotting)
Intelligent risk control with take-profits, stop losses, cooldown, and max loss rules
An interactive dashboard that enhances usability and transparency
Every component has a distinct role in the system, and none are used as-is from public sources without modification or integration logic. The design follows a cohesive and rule-based structure for algorithmic execution.
⚠️ Disclaimer
This strategy is for educational and informational purposes only. It does not constitute financial advice. Trading cryptocurrencies involves substantial risk, and past performance is not indicative of future results. Always backtest and forward-test before using on a live account. Use at your own risk.
📅 Backtest Range & Market Conditions Note
The performance results displayed for Fusion Sniper X are based on a focused backtest period from December 1, 2024 to May 10, 2025. This range was chosen intentionally due to the dynamic and volatile nature of cryptocurrency markets, where structural and behavioral shifts can occur rapidly. By evaluating over a shorter, recent time window, the strategy is tuned to current market mechanics and avoids misleading results that could come from outdated market regimes. This ensures more realistic, forward-aligned performance — particularly important for high-frequency systems operating on the 1-hour timeframe.
Dumb Money ConceptUse in 1 minute timeframe
1. Strategy setup
Name & sizing: Trades 25% of your account on each signal, assumes 0.04% commission + 2‑tick slippage, starts with a notional 10 million.
Timing: Only makes decisions at each 1‑minute bar close, and processes orders at bar‑close.
2. Optional filters (both default to off)
Volatility filter : when on, requires that yesterday’s ATR (average true range) ≥ your threshold before even placing an entry.
Trend filter : when on, only allows a “long” if yesterday’s close was above its daily MA, or a “short” if below.
You can toggle each filter on/off and adjust ATR period, ATR threshold, and MA length through the inputs at the top.
3. Signal logic (“dumb money” wicks)
At today’s first minute, the script pulls yesterday’s open, high, low, close, ATR and MA—using only completed daily bars so nothing repaints.
It measures the size of yesterday’s upper wick (close→high) vs. lower wick (open→low).
If the upper wick was longer, that sets a long bias (“dumb money” got shaken out at the top). Otherwise it sets a short bias.
4. Calculate where to place orders
On that same first minute of day:
Entry: a limit order at half of yesterday’s range away from today’s open (below the open for longs, above for shorts).
Stop‑loss: one full‑range (×1.0) below today’s open for longs (and above for shorts).
Take‑profit: 1.236× yesterday’s range above today’s open for longs (and below for shorts).
5. Apply filters before sending entry
Before actually placing that limit order, it checks:
Volatility: if enabled, requires yesterday’s ATR ≥ your “Min Daily ATR.”
Trend: if enabled, requires yesterday’s close to lie on the same side of its daily MA as your signal.
If either filter fails, no order is sent.
6. Give the limit order up to 24 hours to fill
The code remembers the bar‑index when the order went live.
If 1440 one‑minute bars pass (≈24 h) without a fill, it automatically cancels the unfilled entry—so stale orders don’t hang around.
7. Once filled, TP/SL manage the trade
As soon as your limit order executes, two opposite orders are placed:
A take‑profit at the 1.236× range level
A stop‑loss at the –1.0× range level
One cancels the other when triggered.
8. No overnight risk
On the very first minute of the next daily bar, any position still open is force‑closed (“Time Exit”)
Fibonacci + TP/SL Strategy [Backtest]✅ Key Features Added and Adjusted:
Fibonacci Retracement Levels:
Automatically calculated based on the last 100 bars' high/low
Plotted levels: 0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%
Extension targets: 161.8%, 261.8%, 423.6%
Buy/Sell Signal Logic:
Buy: Price is between 78.6% and 38.2% levels
Sell: Price is between 61.8% and 23.6% levels
Both depend on a can_trade time filter to avoid overtrading
ATR-based Stop-Loss:
Stop-loss dynamically adapts to market volatility:
SL = Entry - ATR * 1.5 (long)
SL = Entry + ATR * 1.5 (short)
Fixed Take-Profit:
Configurable via input: default is 4%
Can be changed in TradingView UI
Golden/Death Cross Indicator (Visual Only):
EMA 50 crossing EMA 200 plotted on chart:
Golden Cross = Buy signal (green triangle)
Death Cross = Sell signal (red triangle)
Weekly Profit Cap:
Prevents new trades if weekly profit exceeds 15%
Resets at the start of every week
Visual Elements:
All Fibonacci levels are plotted
Buy/Sell signals are labeled on the chart (BUY, SELL)