Multi SMA EMA WMA HMA BB (5x8 MAs Bollinger Bands) MAX MTF - RRBMulti SMA EMA WMA HMA 4x7 Moving Averages with Bollinger Bands MAX MTF by RagingRocketBull 2019
Version 1.0
All available MAX MTF versions are listed below (They are very similar and I don't want to publish them as separate indicators):
ver 1.0: 4x7 = 28 MTF MAs + 28 Levels + 3 BB = 59 < 64
ver 2.0: 5x6 = 30 MTF MAs + 30 Levels + 3 BB = 63 < 64
ver 3.0: 3x10 = 30 MTF MAs + 30 Levels + 3 BB = 63 < 64
ver 4.0: 5(4+1)x8 = 8 CurTF MAs + 32 MTF MAs + 20 Levels + 3 BB = 63 < 64
ver 5.0: 6(5+1)x6 = 6 CurTF MAs + 30 MTF MAs + 24 Levels + 3 BB = 63 < 64
ver 6.0: 4(3+1)x10 = 10 CurTF MAs + 30 MTF MAs + 20 Levels + 3 BB = 63 < 64
Fib numbers: 8, 13, 21, 34, 55, 89, 144, 233, 377
This indicator shows multiple MAs of any type SMA EMA WMA HMA etc with BB and MTF support, can show MAs as dynamically moving levels.
There are 4 MA groups + 1 BB group, a total of 4 TFs * 7 MAs = 28 MAs. You can assign any type/timeframe combo to a group, for example:
- EMAs 9,12,26,50,100,200,400 x H1, H4, D1, W1 (4 TFs x 7 MAs x 1 type)
- EMAs 8,13,21,30,34,50,55,89,100,144,200,233,377,400 x M15, H1 (2 TFs x 14 MAs x 1 type)
- D1 EMAs and SMAs 8,13,21,30,34,50,55,89,100,144,200,233,377,400 (1 TF x 14 MAs x 2 types)
- H1 WMAs 13,21,34,55,89,144,233; H4 HMAs 9,12,26,50,100,200,400; D1 EMAs 12,26,89,144,169,233,377; W1 SMAs 9,12,26,50,100,200,400 (4 TFs x 7 MAs x 4 types)
- +1 extra MA type/timeframe for BB
There are several versions: Simple, MTF, Pro MTF, Advanced MTF, MAX MTF and Ultimate MTF. This is the MAX MTF version. The Differences are listed below. All versions have BB
- Simple: you have 2 groups of MAs that can be assigned any type (5+5)
- MTF: +2 custom Timeframes for each group (2x5 MTF) +1 TF for BB, TF XY smoothing
- Pro MTF: 4 custom Timeframes for each group (4x3 MTF), 1 TF for BB, MA levels and show max bars back options
- Advanced MTF: +4 extra MAs/group (4x7 MTF), custom Ticker/Symbols, Timeframe <>= filter, Remove Duplicates Option
- MAX MTF: +2 subtypes/group, packed to the limit with max possible MAs/TFs: 4x7, 5x6, 3x10, 4(3+1)x10, 5(4+1)x8, 6(5+1)x6
- Ultimate MTF: +individual settings for each MA, custom Ticker/Symbols
MAX MTF version tests the limits of Pinescript trying to squeeze as many MAs/TFs as possible into a single indicator.
It's basically a maxed out Advanced version with subtypes allowing for mixed types within a group (i.e. both emas and smas in a single group/TF)
Pinescript has the following limits:
- max 40 security calls (6 calls are reserved for dupe checks and smoothing, 2 are used for BB, so only 32 calls are available)
- max 64 plot outputs (BB uses 3 outputs, so only 61 plot outputs are available)
- max 50000 (50kb) size of the compiled code
Based on those limits, you can only have the following MAs/TFs combos in a single script:
1. 4x7, 5x6, 3x10 - total number of MTF MAs must always be <= 32, and you can still have BB and Num Levels = total MAs, without any compromises
2. 5(4+1)x8, 6(5+1)x6, 4(3+1)x10 - you can use the Current Symbol/Timeframe as an extra (+1) fixed TF with the same number of MTF MAs
- you don't need to call security to display MAs on the Current Symbol/Timeframe, so the total number of MTF MAs remains the same and is still <= 32
- to fit that many MAs into the max 64 plot outputs limit you need to reduce the number of levels (not every MA Group will have corresponding levels)
Features:
- 4x7 = 28 MAs of any type
- 4x MTF groups with XY step line smoothing
- +1 extra TF/type for BB MAs
- 2 MA subtypes within each group/TF
- 4x7 = 28 MA levels with adjustable group offsets, indents and shift
- supports any existing type of MA: SMA, EMA, WMA, Hull Moving Average (HMA)
- custom tickers/symbols for each group
- show max bars back option
- show/hide both groups of MAs/levels/BB and individual MAs
- timeframe filter: show only MAs/Levels with TFs <>= Current TF
- hide MAs/Levels with duplicate TFs
- support for custom TFs that are not available in free accounts: 2D, 3D etc
- support for timeframes in H: H, 2H, 4H etc
Notes:
- Uses timeframe textbox instead of input resolution dropdown to allow for 240 120 and other custom TFs
- Uses symbol textbox instead of input symbol to avoid establishing multiple dummy security connections to the current ticker - otherwise empty symbols will prevent script from running
- Possible reasons for missing MAs on a chart:
- there may not be enough bars in history to start plotting it. For example, W1 EMA200 needs at least 200 bars on a weekly chart.
- for charts with low/fractional prices i.e. 0.00002 << 0.001 (default Y smoothing step) decrease Y smoothing as needed (set Y = 0.0000001) or disable it completely (set X,Y to 0,0)
- for charts with high price values i.e. 20000 >> 0.001 increase Y smoothing as needed (set Y = 10-20). Higher values exceeding MAs point density will cause it to disappear as there will be no points to plot. Different TFs may require diff adjustments
- TradingView Replay Mode UI and Pinescript security calls are limited to TFs >= D (D,2D,W,MN...) for free accounts
- attempting to plot any TF < D1 in Replay Mode will only result in straight lines, but all TFs will work properly in history and real-time modes. This is not a bug.
- Max Bars Back (num_bars) is limited to 5000 for free accounts (10000 for paid), will show error when exceeded. To plot on all available history set to 0 (default)
- Slow load/redraw times. This indicator becomes slower, its UI less responsive when:
- Pinescript Node.js graphics library is too slow and inefficient at plotting bars/objects in a browser window. Code optimization doesn't help much - the graphics engine is the main reason for general slowness.
- the chart has a long history (10000+ bars) in a browser's cache (you have scrolled back a couple of screens in a max zoom mode).
- Reload the page/Load a fresh chart and then apply the indicator or
- Switch to another Timeframe (old TF history will still remain in cache and that TF will be slow)
- in max possible zoom mode around 4500 bars can fit on 1 screen - this also slows down responsiveness. Reset Zoom level
- initial load and redraw times after a param change in UI also depend on TF. For example: D1/W1 - 2 sec, H1/H4 - 5-6 sec, M30 - 10 sec, M15/M5 - 4 sec, M1 - 5 sec. M30 usually has the longest history (up to 16000 bars) and W1 - the shortest (1000 bars).
- when indicator uses more MAs (plots) and timeframes it will redraw slower. Seems that up to 5 Timeframes is acceptable, but 6+ Timeframes can become very slow.
- show_last=last_bars plot limit doesn't affect load/redraw times, so it was removed from MA plot
- Max Bars Back (num_bars) default/custom set UI value doesn't seem to affect load/redraw times
- In max zoom mode all dynamic levels disappear (they behave like text)
- Dupe check includes symbol: symbol, tf, both subtypes - all must match for a duplicate group
- For the dupe check to work correctly a custom symbol must always include an exchange prefix. BB is not checked for dupes
Good Luck! Feel free to learn from/reuse the code to build your own indicators.
Buscar en scripts para "中海油+10年股价涨幅"
APEX - WaveTrend [v1]WaveTrend is a smoothed oscillator which enables it to detect true reversals in an extremely accurate manner. The beauty of this indicator is that does not generate signals during choppy sideways markets.
The basic settings are 10 / 3 / 4 these are very aggressive settings, that will generate a lot of signals in all even not so volatile markets. If you need high-quality signals you settings close to 10 / 3 /21. The strongest buy/sell signals are given when the cross occurs above or below the threshold. In the 10 / 3 / 4 you threshold for buy should be around -90 values. If you use the very smoothed variant the threshold will be around -45 to -50 values.
This indicator will be first available in APEX v1 currently being beta tested.
Schaff Trend Cycle 1.1 with signal codingThis is an edit of Lazy Bear's Schaff Trend Cycle original description here. I've added in the syntax so that you can generate an alert when it crosses the threshold in either direction. Just tick the box to show threshold crosses.
More background on the indicator is here.
www.investopedia.com
Other common settings are fast 23 slow 53 or 10/30, 3/10. I have also set it to 9/20 for test purposes. They have different pluses and minuses on different timeframes.
Double EMA & ALMA StrategyThe ALMA (50 period) acts as the main trend filter, meaning that long positions are taken above the ALMA and short positions are taken below the ALMA. For instance, the 5 and 10 period exponential moving averages are added on the chart to give early signals to the trend.
Therefore, when the 5/10 EMA triggers a bullish crossover, long signals are taken when price is above the ALMA, likewise, when the 5/10 EMA triggers a bearish crossover, short signals are taken when price is below the ALMA.
Find out optimal values by trying. May not produce accurate results in horizontal markets. Thank you.
Inverted Yield Curve with VIX Fear IndexUS 2 year and US 10 year comparison, inverted yield curve with VIX. I use this on a weekly chart with 2 moving averages, the 40 week (ma200 daily) and the 520 week (10 year median).
The bottom histogram is the VIX and the plot is the yield curve. When the VIX is above a certain level (you can set it in settings) and the ýield curve is close to or at inversion the background goes red.
The last seven recessions were preceded by an inverted yield curve. Here I combined the two main fear indexes, the VIX and the run for safe US treasuries (Inverted Yield Curve).
This is preset to the 2 year and 10 year US bond, weekly, and the normal VIX ticker but you can set it to whatever you like.
Published with source code for anyone to modify. Please comment below if you do so! This is the second in a series of indicators I intend to publish as a package of economic recoverty/recession symptom indicators.
Follow me for updates, next one up is commodities with dr Copper and oil!
Advanced Larry Williams 9.2- By EduHit rate greater than Setup 9.1
However, the stop of this setup becomes more expensive in certain situations.
PURCHASE SIGN
1 - Paper comes in a bullish trend in the operational term to be operated.
2 - Exponential moving average of 9 upward periods.
3 - Wait for a candle to make the largest closing (candle reference).
4 - If the next candle CLOSES below the minimum of the candle reference the setup is armed.
5 - Mark the candle maxim that closed below the reference. It's the trigger!
6 - If the next candle exceeds this maximum by 1 cent the trade is triggered. Put the stop loss at the low of the candle that closed below (0.01 to 0.10 below)
7 - If the next candle does not fire, let's lower the trigger to the lower maximums, SINCE the mm9exp does not turn down.
8 - It exceeded the maximum we will have the entrance.
9 - Original stop-loss in the minimum of the candle we set the maximum activated.
SIGN OF SALE
1 - Paper comes in a downtrend in the operating period to be operated.
2 - Exponential moving average of 9 periods descending.
3 - Wait for a candle that makes the lowest closing (candle reference).
4 - If the next candle CLOSE above the maximum of the reference candle the setup is armed.
5 - Bookmark the candle that closed above the reference. It's the trigger!
6 - If the next candle breaks this minimum, the trade is triggered.
7 - Place the stop-loss at the maximum of the candle that closed up.
8 - If the next candle does not trigger, we will raise the trigger to the highest minimums SINCE the exponential moving average of 9 periods does not turn upwards.
9 - It broke the minimum we will have the entrance.
10 - Stop-loss original in the maximum of the candle that we set the minimum activated.
*********************************************************************************************************************************************************
Índice de acerto Superior ao Setup 9.1
Porém o stop deste setup acaba se tornando mais caro em determinadas situações.
SINAL DE COMPRA
1 - Papel vem em tendência de alta no prazo operacional a ser operado.
2 - Média móvel exponencial de 9 períodos ascendente.
3 - Aguardar um candle que faça o maior fechamento (candle referência).
4 - Se o próximo candle FECHAR abaixo da mínima do candle referência o setup está armado.
5 - Marcar a máxima do candle que fechou abaixo do referência. É o gatilho!
6 - Se o próximo candle superar essa máxima em 1 centavo o trade é acionado. Colocar o stop-loss na mínima do candle que fechou abaixo (0,01 a 0,10 abaixo)
7 - Se o próximo candle não acionar, vamos abaixando o gatilho para as máximas menores DESDE QUE a mm9exp não vire para baixo.
8 - Superou a máxima teremos a entrada.
9 - Stop-loss original na mínima do candle que marcamos a máxima ativada.
SINAL DE VENDA
1 - Papel vem em tendência de baixa no prazo operacional a ser operado.
2 - Média móvel exponencial de 9 períodos descendente.
3 - Aguardar um candle que faça o menor fechamento (candle referência).
4 - Se o próximo candle FECHAR acima da máxima do candle referência o setup está armado.
5 - Marcar a mínima do candle que fechou acima do referência. É o gatilho!
6 - Se o próximo candle romper essa mínima o trade é acionado.
7 - Colocar o stop-loss na máxima do candle que fechou acima.
8 - Se o próximo candle não acionar, vamos levantando o gatilho para as mínimas maiores DESDE QUE a média móvel exponencial de 9 períodos não vire para cima.
9 - Rompeu a mínima teremos a entrada.
10 - Stop-loss original na máxima do candle que marcamos a mínima ativada.
Reset Every (Price)Someone requested a high/low price indicator that would reset the "remembered" prices daily. I started out doing just that, and then decided to make it much more configurable.
Choose the units (minutes, hours, days, weeks, months) and the number of those units, and this will reset the highest/lowest value remembered to the current values on your chosen time interval.
This should work with any time interval you desire, within reason...asking for resets every 4000 hours on a monthly chart will probably not work.
GE, monthly, every 7 months:
Ford, weekly, every 18 months:
Dow Jones Industrial Average, weekly, every 90 days:
LTCBTC, daily, every 10 days:
ETHUSD, 30 minutes, every 10 days:
BTCUSD, 1 minute, every 10 hours:
EURUSD, 1 minute, every 50 minutes:
Also, I am about to publish another version of this with just one source input that can be applied to any indicator...stay tuned!
XPloRR MA-Trailing-Stop StrategyXPloRR MA-Trailing-Stop Strategy
Long term MA-Trailing-Stop strategy with Adjustable Signal Strength to beat Buy&Hold strategy
None of the strategies that I tested can beat the long term Buy&Hold strategy. That's the reason why I wrote this strategy.
Purpose: beat Buy&Hold strategy with around 10 trades. 100% capitalize sold trade into new trade.
My buy strategy is triggered by the fast buy EMA (blue) crossing over the slow buy SMA curve (orange) and the fast buy EMA has a certain up strength.
My sell strategy is triggered by either one of these conditions:
the EMA(6) of the close value is crossing under the trailing stop value (green) or
the fast sell EMA (navy) is crossing under the slow sell SMA curve (red) and the fast sell EMA has a certain down strength.
The trailing stop value (green) is set to a multiple of the ATR(15) value.
ATR(15) is the SMA(15) value of the difference between the high and low values.
The scripts shows a lot of graphical information:
The close value is shown in light-green. When the close value is lower then the buy value, the close value is shown in light-red. This way it is possible to evaluate the virtual losses during the trade.
the trailing stop value is shown in dark-green. When the sell value is lower then the buy value, the last color of the trade will be red (best viewed when zoomed)(in the example, there are 2 trades that end in gain and 2 in loss (red line at end))
the EMA and SMA values for both buy and sell signals are shown as a line
the buy and sell(close) signals are labeled in blue
How to use this strategy?
Every stock has it's own "DNA", so first thing to do is tune the right parameters to get the best strategy values voor EMA , SMA, Strength for both buy and sell and the Trailing Stop (#ATR).
Look in the strategy tester overview to optimize the values Percent Profitable and Net Profit (using the strategy settings icon, you can increase/decrease the parameters)
Then keep using these parameters for future buy/sell signals only for that particular stock.
Do the same for other stocks.
Important : optimizing these parameters is no guarantee for future winning trades!
Here are the parameters:
Fast EMA Buy: buy trigger when Fast EMA Buy crosses over the Slow SMA Buy value (use values between 10-20)
Slow SMA Buy: buy trigger when Fast EMA Buy crosses over the Slow SMA Buy value (use values between 30-100)
Minimum Buy Strength: minimum upward trend value of the Fast SMA Buy value (directional coefficient)(use values between 0-120)
Fast EMA Sell: sell trigger when Fast EMA Sell crosses under the Slow SMA Sell value (use values between 10-20)
Slow SMA Sell: sell trigger when Fast EMA Sell crosses under the Slow SMA Sell value (use values between 30-100)
Minimum Sell Strength: minimum downward trend value of the Fast SMA Sell value (directional coefficient)(use values between 0-120)
Trailing Stop (#ATR): the trailing stop value as a multiple of the ATR(15) value (use values between 2-20)
Example parameters for different stocks (Start capital: 1000, Order=100% of equity, Period 1/1/2005 to now) compared to the Buy&Hold Strategy(=do nothing):
BEKB(Bekaert): EMA-Buy=12, SMA-Buy=44, Strength-Buy=65, EMA-Sell=12, SMA-Sell=55, Strength-Sell=120, Stop#ATR=20
NetProfit: 996%, #Trades: 6, %Profitable: 83%, Buy&HoldProfit: 78%
BAR(Barco): EMA-Buy=16, SMA-Buy=80, Strength-Buy=44, EMA-Sell=12, SMA-Sell=45, Strength-Sell=82, Stop#ATR=9
NetProfit: 385%, #Trades: 7, %Profitable: 71%, Buy&HoldProfit: 55%
AAPL(Apple): EMA-Buy=12, SMA-Buy=45, Strength-Buy=40, EMA-Sell=19, SMA-Sell=45, Strength-Sell=106, Stop#ATR=8
NetProfit: 6900%, #Trades: 7, %Profitable: 71%, Buy&HoldProfit: 2938%
TNET(Telenet): EMA-Buy=12, SMA-Buy=45, Strength-Buy=27, EMA-Sell=19, SMA-Sell=45, Strength-Sell=70, Stop#ATR=14
NetProfit: 129%, #Trade
Renko Price Bars Overlay// Shows the price renko bars (or range bars) instead of the PERIOD renko
// bars that are integrated into Trading View. The normal renko bars that
// Trading View offers only consider the drawing of a new brick when the
// price closes above or below the required brick size. This can produce
// misleading charts since depending on the time interval of a chart, new
// bricks may or may not be drawn. True price renko bars will draw a new
// brick immediately upon the price exceeding the next target brick size.
// When running this script in "Traditional" mode, the painting of the
// brick overlay band is INDEPENDENT of the chart interval. If price
// exceeds the required target price for the next brick, the band is
// updated immediately, instead of waiting for the price bar on the chart
// interval to close first. The brick starting anchor point will attempt
// to be a "nice number" at a round interval for the chart ticker. For
// example, if viewing EURUSD with the box size equal to 50 ticks/pips,
// the open and close prices will take the form of 1.2100, 1.2150, 1.2200,
// 1.2250, and so on. This is the same behavior as the normal traditional
// Renko bars in Trading View and other major trading platforms such as
// Meta Trader.
// Use the tick size in traditional mode to specify the block size, in
// ticks. This may give interesting results in FOREX pairs... as the tick
// size in Trading View may be 0.00001 instead of the normal pip size of
// 0.0001, so a 10 pip block size may be '100', and not the expected '10'.
// FOREX futures should work in the manner expected, a 10 pip block size
// will indeed equal 0.0010.
// The "ATR" mode functions differently than the Trading View built in
// version. The block size is updated each time the range is exceeded.
// In Trading View, when using the ATR mode, the ATR is the last ATR
// value calculated on the ENTIRE data interval, and is applied to all
// past data. You can see this when you press the '+' sign of the ticker
// in the top left of the chart window and you will see the brick size
// as a constant, the brick size is not a function of the ever changing
// ATR value of the price action. The block size of this script is not
// updated for each price candle (i.e. each 1HR on a 1HR chart), instead
// it is updated only when the price thresholds are exceeded requiring a
// the band to be updated. At that point the current ATR is considered
// and the brick size is updated.
// Options exist to show the current high and low of the brick, and to
// show the required levels that the price must exceed to draw a new
// brick and update the band.
Please leave comments if you notice any bugs or would like any new features added. I don't find much use for plotting the H/L of the current renko candle, but I have seen some request it in the past.
Cheers.
EMA Indicators with BUY sell SignalCombine 3 EMA indicators into 1. Buy and Sell signal is based on
- Buy signal based on 20 Days Highest High resistance
- Sell signal based on 10 Days Lowest Low support
Input :-
1 - Short EMA (20), Mid EMA (50) and Long EMA (200)
2 - Resistance (20) = 20 Days Highest High line
3 - Support (10) = 10 Days Lowest Low line
Volume Range EventsChanges in the feelings (positive, negative, neutral) in the market concerning the valuation of an instrument are often preceded with sudden outbursts of buying and selling frenzies. The aim of this indicator is to report such outbursts. We can see them as expansions of volume, sometimes 10 times more than usual. and as extensions of the trading range, also sometimes 10 times more than usual (e.g. usual range is 10 cent suddenly a whole dollar.) The changes are calculated in such a way that these fit between plus and minus 100 percent, the bars are scaled in some sort of logarithmic way. The Emoline is the same as the one in the True Balance of Power indicator, which I already published
ONLY RISES ARE EVENTS
Sometimes analysts are tempted to give meaning to low volume or small ranges. These simply mean that the market has little interest in trading this instrument. I believe that in such cases the trader needs to wait for expansion and extension events to happen, then he can make a better guess of where the market is heading. As events often mark the beginning or ending of a trend, this indicator provides an early and clear signal, because it doesn’t bother us about non-events.
WHAT IS USUAL?
If the algorithm would use an average as a normal to scale volume or range events, then previous peaks will act as spoilers by making the average so high that a following peak is scaled too small. I developed a function, usual() , that kicks out all extremes of a ‘population of values’ and which returns the average of the non-extreme values. It can be called with any serial. This function is called by both algorithms that report volume and range peaks, which guarantees that the results are really comparable. As this function has a fixed look back of 8 periods, we might state that ‘usual’ is a short lived relative value. I think this doesn’t matter for the practical use of the indicator.
COLORING AND INTERPRETATION
I follow the categories in the ‘Better Volume Indicator’, published by LeazyBear, these are:
1. Climactic Volumes, event >40 % (this means peak is 1.5 X usual)
LIME: Climax Buying Volume, direction up, range event also > 30 %
RED: Climax Selling Volume, direction down, range event also > 30 %
AQUA: Climax Churning Volume, both directions, range event < 30%
2. Smaller Volumes, event <40 %
GREEN: Supportive Volume, both directions, if combined with range event
BLUE: Churning Volume, both directions, if not combined with range event (Professional Trading)
3. Just Range Events
BLACK histogram bars (Amateurish Trading)
Forex Master v4.0 (EUR/USD Mean-Reversion Algorithm)DESCRIPTION
Forex Master v4.0 is a mean-reversion algorithm currently optimized for trading the EUR/USD pair on the 5M chart interval. All indicator inputs use the period's closing price and all trades are executed at the open of the period following the period where the trade signal was generated.
There are 3 main components that make up Forex Master v4.0:
I. Trend Filter
The algorithm uses a version of the ADX indicator as a trend filter to trade only in certain time periods where price is more likely to be range-bound (i.e., mean-reverting). This indicator is composed of a Fast ADX and a Slow ADX, both using the same look-back period of 50. However, the Fast ADX is smoothed with a 6-period EMA and the Slow ADX is smoothed with a 12-period EMA. When the Fast ADX is above the Slow ADX, the algorithm does not trade because this indicates that price is likelier to trend, which is bad for a mean-reversion system. Conversely, when the Fast ADX is below the Slow ADX, price is likelier to be ranging so this is the only time when the algorithm is allowed to trade.
II. Bollinger Bands
When allowed to trade by the Trend Filter, the algorithm uses the Bollinger Bands indicator to enter long and short positions. The Bolliger Bands indicator has a look-back period of 20 and a standard deviation of 1.5 for both upper and lower bands. When price crosses over the lower band, a Long Signal is generated and a long position is entered. When price crosses under the upper band, a Short Signal is generated and a short position is entered.
III. Money Management
Rule 1 - Each trade will use a limit order for a fixed quantity of 50,000 contracts (0.50 lot). The only exception is Rule
Rule 2 - Order pyramiding is enabled and up to 10 consecutive orders of the same signal can be executed (for example: 14 consecutive Long Signals are generated over 8 hours and the algorithm sends in 10 different buy orders at various prices for a total of 350,000 contracts).
Rule 3 - Every order will include a bracket with both TP and SL set at 50 pips (note: the algorithm only closes the current open position and does not enter the opposite trade once a TP or SL has been hit).
Rule 4 - When a new opposite trade signal is generated, the algorithm sends in a larger order to close the current open position as well as open a new one (for example: 14 consecutive Long Signals are generated over 8 hours and the algorithm sends in 10 different buy orders at various prices for a total of 350,000 contracts. A Short Signal is generated shortly after the 14th Long Signal. The algorithm then sends in a sell order for 400,000 contracts to close the 350,000 contracts long position and open a new short position of 50,000 contracts).
My5min1. Follow the instructions for entry and exit exactly as above. Don’t second guess, or assume/presume anything.
2. Avoid entering the trade when the price is temporarily above /below 10 day MA, but the price candle hasn’t fully formed yet. Enter the trade only after the price candle closes above/below the 10 day MA.
3. Exit the trade immediately when the price candle closes above/below 10 day MA in the direction opposite to the trade. Don’t remain in the trade wishing it to turn in your favor.
4. Never ever trade in the opposite direction of the market. i.e. don’t buy when the price is below 200 day MA and sell when the price is above 200 day MA.
5. Take profits when limit is reached. Don’t be greedy and keep on increasing the target. Remember- A bird in hand is worth two in the bush.
MACD, backtest 2015+ only, cut in half and doubledThis is only a slight modification to the existing "MACD Strategy" strategy plugin!
found the default MACD strategy to be lacking, although impressive for its simplicity. I added "year>2014" to the IF buy/sell conditions so it will only backtest from 2015 and beyond ** .
I also had a problem with the standard MACD trading late, per se. To that end I modified the inputs for fast/slow/signal to double. Example: my defaults are 10, 21, 10 so I put 20, 42, 20 in. This has the effect of making a 30min interval the same as 1 hour at 10,21,10. So if you want to backtest at 4hr, you would set your time interval to 2hr on the main chart. This is a handy way to make shorter time periods more useful even regardless of strategy/testing, since you can view 15min with alot less noise but a better response.
Used on BTCCNY OKcoin, with the chart set at 45 min (so really 90min in the strategy) this gave me a percent profitable of 42% and a profit factor of 1.998 on 189 trades.
Personally, I like to set the length/signals to 30,63,30. Meaning you need to triple the time, it allows for much better use of shorter time periods and the backtests are remarkably profitable. (i.e. 15min chart view = 45min on script, 30min= 1.5hr on script)
** If you want more specific time periods you need to try plugging in different bar values: replace "year" with "n" and "2014" with "5500". The bars are based on unix time I believe so you will need to play around with the number for n, with n being the numbers of bars.
(5+15+60min+1D)EMA20+Y'SH/L+count简介: 这是一个专为 5分钟图表 (5min Chart) 日内交易者设计的综合辅助工具。它结合了多周期趋势均线、美股核心交易时段的时间周期计数以及关键流动性位置(前一日高低点)的智能突破监测。该脚本针对美股个股及 24/7 交易的 BTC/ETH 进行了优化,强制锁定纽约时间进行运算。
核心功能:
1. 多周期 EMA 监控系统 (MTF EMAs)
5min EMA20 (蓝色):日内短期趋势核心线(默认开启)。
60min EMA20 (绿色):小时级别趋势参考(默认开启)。
15min EMA20 (红色) & 1D EMA20 (橙色):可选开启,用于捕捉更大周期的支撑阻力。
特点:所有均线采用最细线宽,平滑显示,右上角表格实时展示当前价格。
2. 美股时段 Bar Count 计数器
时间锚定:以纽约时间 (New York Time) 09:30 开盘为起点(Bar 0)。
显示规则:仅在 K 线底部显示 偶数 序号 (0, 2, 4, 6 ...),直至第 82 根 K 线停止。
关键时间窗 (Time Pivots):
Bar 18 (约 NY 10:55) 和 Bar 40 (约 NY 12:45) 会被自动高亮。
字体变为 蓝色粗体,且对应 K 线实体变为蓝色,提示潜在的变盘或宏观流动性注入时刻。
3. 智能 PDH/PDL 射线 (Smart Rays)
精确锚点:前一日高点 (PDH) 和低点 (PDL) 的射线不是从开盘画起,而是从昨日形成高低点的具体时间点射出,精确还原价格行为。
自动阻断 (Breakout Logic):一旦当前价格触碰或突破该射线,射线将自动停止延伸,直观展示“阻力/支撑已失效”。
自动清理:每日自动清除旧线,仅保留当天的参考线,保持图表整洁。
4. 视觉优化
每日分割线:自动绘制灰色虚线分隔交易日。
图表限制:脚本仅在 5分钟图表上可见,切换周期自动隐藏,避免干扰大周期分析。
设置说明:
可在设置面板中自由开关各周期 EMA 的显示。
可开关底部的计数数字显示。
English Version (for TradingView Publishing)
Title: 5min Intraday Precision Toolkit: MTF EMAs + NY Session Count + Smart Rays
Introduction: This is a comprehensive auxiliary tool designed specifically for 5-minute chart intraday traders. It combines multi-timeframe trend EMAs, time cycle counting based on the US Session, and smart breakout monitoring for key liquidity levels (Previous Day High/Low). Optimized for US Equities and Crypto (BTC/ETH) using New York Time.
Key Features:
1. Multi-Timeframe EMA System
5min EMA20 (Blue): Core short-term intraday trend (On by default).
60min EMA20 (Green): Hourly trend reference (On by default).
15min EMA20 (Red) & 1D EMA20 (Orange): Optional overlays for higher timeframe support/resistance.
Visuals: All EMAs are rendered with fine lines for a clean look, accompanied by a top-right dashboard table.
2. NY Session Bar Count
Time Anchor: Starts counting from 09:30 New York Time (Bar 0).
Display Logic: Displays only EVEN numbers (0, 2, 4...) at the bottom of the bars, stopping at count 82.
Time Pivots:
Bar 18 (~10:55 NY) and Bar 40 (~12:45 NY) are highlighted.
Labels turn Bold Blue, and the specific candles are colored Blue to indicate potential reversal or liquidity injection times.
3. Smart PDH/PDL Rays
Precise Origin: Rays for Previous Day High (PDH) and Previous Day Low (PDL) originate from the exact timestamp they were created yesterday, not just the daily open.
Breakout Stop Logic: Rays automatically stop extending once price touches or breaks them, clearly indicating that the level has been tested.
Auto-Clean: Automatically removes old rays from previous days to keep the chart clean.
4. Visual Optimization
Daily Separators: Automatic vertical dotted lines marking new days.
Visibility: All elements are hidden on non-5m charts to prevent clutter.
Settings:
Toggle visibility for individual EMAs.
Toggle visibility for the bottom bar counter.
Stage 2 Pullback Swing indicatorThis scanner is built for swing traders who want high-probability pullbacks inside strong, established uptrends. It targets names in a confirmed Stage 2 bull phase (Weinstein model) that have pulled back 10–30% from a recent swing high on light selling volume, while still respecting fast EMAs.
Goal: find powerful uptrending stocks during controlled dips before the next leg higher.
What it looks for
Strong prior uptrend: price above the 50 and 200 SMAs, momentum positive over multiple timeframes
Confirmed Stage 2: price above a rising 30-week MA on the weekly chart
Pullback depth: 10–30% off recent swing highs—not too shallow, not broken
Pullback quality: range contained, no panic selling, trend structure intact
EMA behavior: price near EMA10 or EMA20 at signal time
Volume contraction: sellers fading throughout the pullback
Bullish shift: green candle back in trend direction
Why this matters
This setup hints at institutions defending positions during a temporary dip. Strong stocks pull back cleanly with declining volume, then resume the primary trend. This script alerts you when those conditions align.
Best way to use
Filter a strong universe before applying—quality tickers only
Pair with clear trade plans: risk defined by prior swing low or ATR
Trigger alerts instead of hunting charts manually
Intended for
Swing traders who want momentum continuation setups
Traders who prefer entering on controlled retracements
Anyone tired of chasing extended breakouts
ALT Risk Metric StrategyHere's a professional write-up for your ALT Risk Strategy script:
ALT/BTC Risk Strategy - Multi-Crypto DCA with Bitcoin Correlation Analysis
Overview
This strategy uses Bitcoin correlation as a risk indicator to time entries and exits for altcoins. By analyzing how your chosen altcoin performs relative to Bitcoin, the strategy identifies optimal accumulation periods (when alt/BTC is oversold) and profit-taking opportunities (when alt/BTC is overbought). Perfect for traders who want to outperform Bitcoin by strategically timing altcoin positions.
Key Innovation: Why Alt/BTC Matters
Most traders focus solely on USD price, but Alt/BTC ratios reveal true altcoin strength:
When Alt/BTC is low → Altcoin is undervalued relative to Bitcoin (buy opportunity)
When Alt/BTC is high → Altcoin has outperformed Bitcoin (take profits)
This approach captures the rotation between BTC and alts that drives crypto cycles
Key Features
📊 Advanced Technical Analysis
RSI (60% weight): Primary momentum indicator on weekly timeframe
Long-term MA Deviation (35% weight): Measures distance from 150-period baseline
MACD (5% weight): Minor confirmation signal
EMA Smoothing: Filters noise while maintaining responsiveness
All calculations performed on Alt/BTC pairs for superior market timing
💰 3-Tier DCA System
Level 1 (Risk ≤ 70): Conservative entry, base allocation
Level 2 (Risk ≤ 50): Increased allocation, strong opportunity
Level 3 (Risk ≤ 30): Maximum allocation, extreme undervaluation
Continuous buying: Executes every bar while below threshold for true DCA behavior
Cumulative sizing: L3 triggers = L1 + L2 + L3 amounts combined
📈 Smart Profit Management
Sequential selling: Must complete L1 before L2, L2 before L3
Percentage-based exits: Sell portions of position, not fixed amounts
Auto-reset on re-entry: New buy signals reset sell progression
Prevents premature full exits during volatile conditions
🤖 3Commas Automation
Pre-configured JSON webhooks for Custom Signal Bots
Multi-exchange support: Binance, Coinbase, Kraken, Bitfinex, Bybit
Flexible quote currency: USD, USDT, or BUSD
Dynamic order sizing: Automatically adjusts to your tier thresholds
Full webhook documentation compliance
🎨 Multi-Asset Support
Pre-configured for popular altcoins:
ETH (Ethereum)
SOL (Solana)
ADA (Cardano)
LINK (Chainlink)
UNI (Uniswap)
XRP (Ripple)
DOGE
RENDER
Custom option for any other crypto
How It Works
Risk Metric Calculation (0-100 scale):
Fetches weekly Alt/BTC price data for stability
Calculates RSI, MACD, and deviation from 150-period MA
Normalizes MACD to 0-100 range using 500-bar lookback
Combines weighted components: (MACD × 0.05) + (RSI × 0.60) + (Deviation × 0.35)
Applies 5-period EMA smoothing for cleaner signals
Color-Coded Risk Zones:
Green (0-30): Extreme buying opportunity - Alt heavily oversold vs BTC
Lime/Yellow (30-70): Accumulation range - favorable risk/reward
Orange (70-85): Caution zone - consider taking initial profits
Red/Maroon (85-100+): Euphoria zone - aggressive profit-taking
Entry Logic:
Buys execute every candle when risk is below threshold
As risk decreases, position sizing automatically scales up
Example: If risk drops from 60→25, you'll be buying at L1 rate until it hits 50, then L2 rate, then L3 rate
Exit Logic:
Sells only trigger when in profit AND risk exceeds thresholds
Sequential execution ensures partial profit-taking
If new buy signal occurs before all sells complete, sell levels reset to L1
Configuration Guide
Choosing Your Altcoin:
Select crypto from dropdown (or use CUSTOM for unlisted coins)
Pick your exchange
Choose quote currency (USD, USDT, BUSD)
Risk Metric Tuning:
Long Term MA (default 150): Higher = more extreme signals, Lower = more frequent
RSI Length (default 10): Lower = more volatile, Higher = smoother
Smoothing (default 5): Increase for less noise, decrease for faster reaction
Buy Settings (Aggressive DCA Example):
L1 Threshold: 70 | Amount: $5
L2 Threshold: 50 | Amount: $6
L3 Threshold: 30 | Amount: $7
Total L3 buy = $18 per candle when deeply oversold
Sell Settings (Balanced Exit Example):
L1: 70 threshold, 25% position
L2: 85 threshold, 35% position
L3: 100 threshold, 40% position (final exit)
3Commas Setup
Bot Configuration:
Create Custom Signal Bot in 3Commas
Set trading pair to your altcoin/USD (e.g., ETH/USD, SOL/USDT)
Order size: Select "Send in webhook, quote" to use strategy's dollar amounts
Copy Bot UUID and Secret Token
Script Configuration:
Paste credentials into 3Commas section inputs
Check "Enable 3Commas Alerts"
Save and apply to chart
TradingView Alert:
Create Alert → Condition: "alert() function calls only"
Webhook URL: api.3commas.io
Enable "Webhook URL" checkbox
Expiration: Open-ended
Strategy Advantages
✅ Outperform Bitcoin: Designed specifically to beat BTC by timing alt rotations
✅ Capture Alt Seasons: Automatically accumulates when alts lag, sells when they pump
✅ Risk-Adjusted Sizing: Buys more when cheaper (better risk/reward)
✅ Emotional Discipline: Systematic approach removes fear and FOMO
✅ Multi-Asset: Run same strategy across multiple altcoins simultaneously
✅ Proven Indicators: Combines RSI, MACD, and MA deviation - battle-tested tools
Backtesting Insights
Optimal Timeframes:
Daily chart: Best for backtesting and signal generation
Weekly data is fetched internally regardless of display timeframe
Historical Performance Characteristics:
Accumulates heavily during bear markets and BTC dominance periods
Captures explosive altcoin rallies when BTC stagnates
Sequential selling preserves capital during extended downtrends
Works best on established altcoins with multi-year history
Risk Considerations:
Requires capital reserves for extended accumulation periods
Some altcoins may never recover if fundamentals deteriorate
Past correlation patterns may not predict future performance
Always size positions according to personal risk tolerance
Visual Interface
Indicator Panel Displays:
Dynamic color line: Green→Lime→Yellow→Orange→Red as risk increases
Horizontal threshold lines: Dashed lines mark your buy/sell levels
Entry/Exit labels: Green labels for buys, Orange/Red/Maroon for sells
Real-time risk value: Numerical display on price scale
Customization:
All threshold lines are adjustable via inputs
Color scheme clearly differentiates buy zones (green spectrum) from sell zones (red spectrum)
Line weights emphasize most extreme thresholds (L3 buy and L3 sell)
Strategy Philosophy
This strategy is built on the principle that altcoins move in cycles relative to Bitcoin. During Bitcoin rallies, alts often bleed against BTC (high sell, accumulate). When Bitcoin consolidates, alts pump (take profits). By measuring risk on the Alt/BTC chart instead of USD price, we time these rotations with precision.
The 3-tier system ensures you're always averaging in at better prices and scaling out at better prices, maximizing your Bitcoin-denominated returns.
Advanced Tips
Multi-Bot Strategy:
Run this on 5-10 different altcoins simultaneously to:
Diversify correlation risk
Capture whichever alt is pumping
Smooth equity curve through rotation
Pairing with BTC Strategy:
Use alongside the BTC DCA Risk Strategy for complete portfolio coverage:
BTC strategy for core holdings
ALT strategies for alpha generation
Rebalance between them based on BTC dominance
Threshold Calibration:
Check 2-3 years of historical data for your chosen alt
Note where risk metric sat during major bottoms (set buy thresholds)
Note where it peaked during euphoria (set sell thresholds)
Adjust for your risk tolerance and holding period
Credits
Strategy Development & 3Commas Integration: Claude AI (Anthropic)
Technical Analysis Framework: RSI, MACD, Moving Average theory
Implementation: pommesUNDwurst
Disclaimer
This strategy is for educational purposes only. Cryptocurrency trading involves substantial risk of loss. Altcoins are especially volatile and many fail completely. The strategy assumes liquid markets and reliable Alt/BTC price data. Always do your own research, understand the fundamentals of any asset you trade, and never risk more than you can afford to lose. Past performance does not guarantee future results. The authors are not financial advisors and assume no liability for trading decisions.
Additional Warning: Using leverage or trading illiquid altcoins amplifies risk significantly. This strategy is designed for spot trading of established cryptocurrencies with deep liquidity.
Tags: Altcoin, Alt/BTC, DCA, Risk Metric, Dollar Cost Averaging, 3Commas, ETH, SOL, Crypto Rotation, Bitcoin Correlation, Automated Trading, Alt Season
Feel free to modify any sections to better match your style or add specific backtesting results you've observed! 🚀Claude is AI and can make mistakes. Please double-check responses. Sonnet 4.5
Dual Session Range Boxes with FIB Lines█ OVERVIEW
The Dual Session Range Boxes with FIB Lines indicator is a powerful tool for identifying and visualizing Range Breakout or Inside Boxes Strategy setups with dual session tracking, customizable Fibonacci extensions, and trade zone levels. Perfect for traders who focus on session-based strategies across multiple markets.
█ FEATURES
◆ DUAL SESSION RANGES
- Range 1: Defines the Range (ORB) based on a specific time window
- Range 2: Extends the Range levels throughout a second session for trade management
- Both ranges can be independently configured with preset sessions or custom times
◆ SESSION PRESETS
- Tokyo Session (00:00 - 09:00)
- London Session (08:00 - 17:00)
- New York Session (14:00 - 21:00)
- Pre Market Session (10:00 - 15:30)
- Custom Time: Define your own session windows
◆ FIBONACCI EXTENSION LEVELS
- Automatically calculated from Range 1 High/Low
- Buy Side Levels: Projected above the range (green)
- Sell Side Levels: Projected below the range (red)
- 10 customizable Fib levels with individual on/off toggles:
- 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%, 127.2%, 161.8%, 200%, 261.8%
- Special color highlighting for key levels (50%, 100%, 200%)
- All percentage values are fully editable
◆ INSIDE TRADE ZONES
- Two horizontal lines drawn inside the Range 1 box
- Configurable percentage from High/Low (default: 10%)
- Helps identify premium/discount zones within the range
◆ LABELS & DISPLAY OPTIONS
- Show/hide price values on labels
- Show/hide percentage values on labels
- Adjustable label size (Tiny, Small, Normal, Large, Huge)
- Configurable label offset (distance above lines)
- Multiple rounding options for price display:
- 0.25 (quarter points - ideal for indices)
- 0.1 (tenth points)
- 0.01 (two decimals)
◆ STYLE CUSTOMIZATION
- Independent fill and border colors for both ranges
- Adjustable border width (1-5)
- Line style options: Solid, Dashed, Dotted
- Separate color settings for:
- Buy side Fibonacci levels
- Sell side Fibonacci levels
- Trade zone lines
- Special levels (50%, 100%, 200%)
◆ HISTORICAL DATA CONTROL
- Toggle to show/hide historical sessions
- Current session always remains visible
- Clean chart view when analyzing only the active session
█ HOW TO USE
1. Set your timezone in General settings
2. Configure Range 1 to capture your desired Opening Range period
3. Configure Range 2 to define how long levels should extend
4. Adjust Fibonacci levels based on your trading strategy
5. Use Trade Zones to identify key areas within the range
6. Toggle historical data on/off based on your analysis needs
█ USE CASES
- Opening Range Breakout (ORB) strategies
- Session-based trading (London, New York, Tokyo, Pre-Market)
- Fibonacci extension targets for breakout trades
- Identifying support/resistance from session ranges
- Multi-session analysis and confluence zones
█ NOTES
- Indicator works on timeframes lower than Daily
- All times are based on the selected timezone setting
- Range 2 only activates after Range 1 completes
- Fibonacci levels extend from Range 1 start to Range 2 end
Let me know if you like to have any enhancements.
Leave a like if you like it!
Gyspy Bot Trade Engine - V1.2B - Alerts - 12-7-25 - SignalLynxGypsy Bot Trade Engine (MK6 V1.2B) - Alerts & Visualization
Brought to you by Signal Lynx | Automation for the Night-Shift Nation 🌙
1. Executive Summary & Architecture
Gypsy Bot (MK6 V1.2B) is not merely a strategy; it is a massive, modular Trade Engine built specifically for the TradingView Pine Script V6 environment. While most tools rely on a single dominant indicator to generate signals, Gypsy Bot functions as a sophisticated Consensus Algorithm.
Note: This is the Indicator / Alerts version of the engine. It is designed for visual analysis and generating live alert signals for automation. If you wish to see Backtest data (Equity Curves, Drawdown, Profit Factors), please use the Strategy version of this script.
The engine calculates data from up to 12 distinct Technical Analysis Modules simultaneously on every bar closing. It aggregates these signals into a "Vote Count" and only fires a signal plot when a user-defined threshold of concurring signals is met. This "Voting System" acts as a noise filter, requiring multiple independent mathematical models—ranging from volume flow and momentum to cyclical harmonics and trend strength—to agree on market direction.
Beyond entries, Gypsy Bot features a proprietary Risk Management suite called the Dump Protection Team (DPT). This logic layer operates independently of the entry modules, specifically scanning for "Moon" (Parabolic) or "Nuke" (Crash) volatility events to signal forced exits, preserving capital during Black Swan events.
2. ⚠️ The Philosophy of "Curve Fitting" (Must Read)
One must be careful when applying Gypsy Bot to new pairs or charts.
To be fully transparent: Gypsy Bot is, by definition, a very advanced curve-fitting engine. Because it grants the user granular control over 12 modules, dozens of thresholds, and specific voting requirements, it is extremely easy to "over-fit" the data. You can easily toggle switches until the charts look perfect in hindsight, only to have the signals fail in live markets because they were tuned to historical noise rather than market structure.
To use this engine successfully:
Visual Verification: Do not just look for "green arrows." Look for signals that occur at logical market structure points.
Stability: Ensure signals are not flickering. This script uses closed-candle logic for key decisions to ensure that once a signal plots, it remains painted.
Regular Maintenance is Mandatory: Markets shift regimes (e.g., from Bull Trend to Crab Range). Gypsy Bot settings should be reviewed and adjusted at regular intervals to ensure the voting logic remains aligned with current market volatility.
Timeframe Recommendations:
Gypsy Bot is optimized for High Time Frame (HTF) trend following. It generally produces the most reliable results on charts ranging from 1-Hour to 12-Hours, with the 4-Hour timeframe historically serving as the "sweet spot" for most major cryptocurrency assets.
3. The Voting Mechanism: How Entries Are Generated
The heart of the Gypsy Bot engine is the ActivateOrders input (found in the "Order Signal Modifier" settings).
The engine constantly monitors the output of all enabled Modules.
Long Votes: GoLongCount
Short Votes: GoShortCount
If you have 10 Modules enabled, and you set ActivateOrders to 7:
The engine will ONLY plot a Buy Signal if 7 or more modules return a valid "Buy" signal on the same closed candle.
If only 6 modules agree, the signal is rejected.
4. Technical Deep Dive: The 12 Modules
Gypsy Bot allows you to toggle the following modules On/Off individually to suit the asset you are trading.
Module 1: Modified Slope Angle (MSA)
Logic: Calculates the geometric angle of a moving average relative to the timeline.
Function: Filters out "lazy" trends. A trend is only considered valid if the slope exceeds a specific steepness threshold.
Module 2: Correlation Trend Indicator (CTI)
Logic: Measures how closely the current price action correlates to a straight line (a perfect trend).
Function: Ensures that we are moving up with high statistical correlation, reducing fake-outs.
Module 3: Ehlers Roofing Filter
Logic: A spectral filter combining High-Pass (trend removal) and Super Smoother (noise removal).
Function: Isolates the "Roof" of price action to catch cyclical turning points before standard moving averages.
Module 4: Forecast Oscillator
Logic: Uses Linear Regression forecasting to predict where price "should" be relative to where it is.
Function: Signals when the regression trend flips. Offers "Aggressive" and "Conservative" calculation modes.
Module 5: Chandelier ATR Stop
Logic: A volatility-based trend follower that hangs a "leash" (ATR multiple) from extremes.
Function: Used as an entry filter. If price is above the Chandelier line, the trend is Bullish.
Module 6: Crypto Market Breadth (CMB)
Logic: Pulls data from multiple major tickers (BTC, ETH, and Perpetual Contracts).
Function: Calculates "Market Health." If Bitcoin is rising but the rest of the market is dumping, this module can veto a trade.
Module 7: Directional Index Convergence (DIC)
Logic: Analyzes the convergence/divergence between Fast and Slow Directional Movement indices.
Function: Identifies when trend strength is expanding.
Module 8: Market Thrust Indicator (MTI)
Logic: A volume-weighted breadth indicator using Advance/Decline and Volume data.
Function: One of the most powerful modules. Confirms that price movement is supported by actual volume flow. Recommended setting: "SSMA" (Super Smoother).
Module 9: Simple Ichimoku Cloud
Logic: Traditional Japanese trend analysis.
Function: Checks for a "Kumo Breakout." Price must be fully above/below the Cloud to confirm entry.
Module 10: Simple Harmonic Oscillator
Logic: Analyzes harmonic wave properties to detect cyclical tops and bottoms.
Function: Serves as a counter-trend or early-reversal detector.
Module 11: HSRS Compression / Super AO
Logic: Detects volatility compression (HSRS) or Momentum/Trend confluence (Super AO).
Function: Great for catching explosive moves resulting from consolidation.
Module 12: Fisher Transform (MTF)
Logic: Converts price data into a Gaussian normal distribution.
Function: Identifies extreme price deviations. Uses Multi-Timeframe (MTF) logic to ensure you aren't trading against the major trend.
5. Global Inhibitors (The Veto Power)
Even if 12 out of 12 modules vote "Buy," Gypsy Bot performs a final safety check using Global Inhibitors.
Bitcoin Halving Logic: Prevents trading during chaotic weeks surrounding Halving events (dates projected through 2040).
Miner Capitulation: Uses Hash Rate Ribbons to identify bearish regimes when miners are shutting down.
ADX Filter: Prevents trading in "Flat/Choppy" markets (Low ADX).
CryptoCap Trend: Checks the total Crypto Market Cap chart for broad market alignment.
6. Risk Management & The Dump Protection Team (DPT)
Even in this Indicator version, the RM logic runs to generate Exit Signals.
Dump Protection Team (DPT): Detects "Nuke" (Crash) or "Moon" (Pump) volatility signatures. If triggered, it plots an immediate Exit Signal (Yellow Plot).
Advanced Adaptive Trailing Stop (AATS): Dynamically tightens stops in low volatility ("Dungeon") and loosens them in high volatility ("Penthouse").
Staged Take Profits: Plots TP1, TP2, and TP3 events on the chart for visual confirmation or partial exit alerts.
7. Recommended Setup Guide
When applying Gypsy Bot to a new chart, follow this sequence:
Set Timeframe: 4 Hours (4H).
Tune DPT: Adjust "Dump/Moon Protection" inputs first. These filter out bad signals during high volatility.
Tune Module 8 (MTI): Experiment with the MA Type (SSMA is recommended).
Select Modules: Enable/Disable modules based on the asset's personality (Trending vs. Ranging).
Voting Threshold: Adjust ActivateOrders to filter out noise.
Alert Setup: Once visually satisfied, use the "Any Alert Function Call" option when creating an alert in TradingView to capture all Buy/Sell/Close events generated by the engine.
8. Technical Specs
Engine Version: Pine Script V6
Repainting: This indicator uses Closed Candle data for all Risk Management and Entry decisions. This ensures that signals do not vanish after the candle closes.
Visuals:
Blue Plot: Buy/Sell Signal.
Yellow Plot: Risk Management (RM) / DPT Close Signal.
Green/Lime/Olive Plots: Take Profit hits.
Disclaimer:
This script is a complex algorithmic tool for market analysis. Past performance is not indicative of future results. Cryptocurrency trading involves substantial risk of loss. Use this tool to assist your own decision-making, not to replace it.
9. About Signal Lynx
Automation for the Night-Shift Nation 🌙
Signal Lynx focuses on helping traders and developers bridge the gap between indicator logic and real-world automation. The same RM engine you see here powers multiple internal systems and templates, including other public scripts like the Super-AO Strategy with Advanced Risk Management.
We provide this code open source under the Mozilla Public License 2.0 (MPL-2.0) to:
Demonstrate how Adaptive Logic and structured Risk Management can outperform static, one-layer indicators
Give Pine Script users a battle-tested RM backbone they can reuse, remix, and extend
If you are looking to automate your TradingView strategies, route signals to exchanges, or simply want safer, smarter strategy structures, please keep Signal Lynx in your search.
License: Mozilla Public License 2.0 (Open Source).
If you make beneficial modifications, please consider releasing them back to the community so everyone can benefit.
Gyspy Bot Trade Engine - V1.2B - Strategy 12-7-25 - SignalLynxGypsy Bot Trade Engine (MK6 V1.2B) - Ultimate Strategy & Backtest
Brought to you by Signal Lynx | Automation for the Night-Shift Nation 🌙
1. Executive Summary & Architecture
Gypsy Bot (MK6 V1.2B) is not merely a strategy; it is a massive, modular Trade Engine built specifically for the TradingView Pine Script environment. While most strategies rely on a single dominant indicator (like an RSI cross or a MACD flip) to generate signals, Gypsy Bot functions as a sophisticated Consensus Algorithm.
The engine calculates data from up to 12 distinct Technical Analysis Modules simultaneously on every bar closing. It aggregates these signals into a "Vote Count" and only executes a trade entry when a user-defined threshold of concurring signals is met. This "Voting System" acts as a noise filter, requiring multiple independent mathematical models—ranging from volume flow and momentum to cyclical harmonics and trend strength—to agree on market direction before capital is committed.
Beyond entries, Gypsy Bot features a proprietary Risk Management suite called the Dump Protection Team (DPT). This logic layer operates independently of the entry modules, specifically scanning for "Moon" (Parabolic) or "Nuke" (Crash) volatility events to force-exit positions, overriding standard stops to preserve capital during Black Swan events.
2. ⚠️ The Philosophy of "Curve Fitting" (Must Read)
One must be careful when applying Gypsy Bot to new pairs or charts.
To be fully transparent: Gypsy Bot is, by definition, a very advanced curve-fitting engine. Because it grants the user granular control over 12 modules, dozens of thresholds, and specific voting requirements, it is extremely easy to "over-fit" the data. You can easily toggle switches until the backtest shows a 100% win rate, only to have the strategy fail immediately in live markets because it was tuned to historical noise rather than market structure.
To use this engine successfully, you must adopt a specific optimization mindset:
Ignore Raw Net Profit: Do not tune for the highest dollar amount. A strategy that makes $1M in the backtest but has a 40% drawdown is useless.
Prioritize Stability: Look for a high Profit Factor (1.5+), a high Percent Profitable, and a smooth equity curve.
Regular Maintenance is Mandatory: Markets shift regimes (e.g., from Bull Trend to Crab Range). Parameters that worked perfectly in 2021 may fail in 2024. Gypsy Bot settings should be reviewed and adjusted at regular intervals (e.g., quarterly) to ensure the voting logic remains aligned with current market volatility.
Timeframe Recommendations:
Gypsy Bot is optimized for High Time Frame (HTF) trend following. It generally produces the most reliable results on charts ranging from 1-Hour to 12-Hours, with the 4-Hour timeframe historically serving as the "sweet spot" for most major cryptocurrency assets.
3. The Voting Mechanism: How Entries Are Generated
The heart of the Gypsy Bot engine is the ActivateOrders input (found in the "Order Signal Modifier" settings).
The engine constantly monitors the output of all enabled Modules.
Long Votes: GoLongCount
Short Votes: GoShortCount
If you have 10 Modules enabled, and you set ActivateOrders to 7:
The engine will ONLY trigger a Buy Entry if 7 or more modules return a valid "Buy" signal on the same closed candle.
If only 6 modules agree, the trade is rejected.
This allows you to mix "Leading" indicators (Oscillators) with "Lagging" indicators (Moving Averages) to create a high-probability entry signal that requires momentum, volume, and trend to all be in alignment.
4. Technical Deep Dive: The 12 Modules
Gypsy Bot allows you to toggle the following modules On/Off individually to suit the asset you are trading.
Module 1: Modified Slope Angle (MSA)
Logic: Calculates the geometric angle of a moving average relative to the timeline.
Function: It filters out "lazy" trends. A trend is only considered valid if the slope exceeds a specific steepness threshold. This helps avoid entering trades during weak drifts that often precede a reversal.
Module 2: Correlation Trend Indicator (CTI)
Logic: Based on John Ehlers' work, this measures how closely the current price action correlates to a straight line (a perfect trend).
Function: It outputs a confidence score (-1 to 1). Gypsy Bot uses this to ensure that we are not just moving up, but moving up with high statistical correlation, reducing fake-outs.
Module 3: Ehlers Roofing Filter
Logic: A sophisticated spectral filter that combines a High-Pass filter (to remove long-term drift) with a Super Smoother (to remove high-frequency noise).
Function: It attempts to isolate the "Roof" of the price action. It is excellent at catching cyclical turning points before standard moving averages react.
Module 4: Forecast Oscillator
Logic: Uses Linear Regression forecasting to predict where price "should" be relative to where it is.
Function: When the Forecast Oscillator crosses its zero line, it indicates that the regression trend has flipped. We offer both "Aggressive" and "Conservative" calculation modes for this module.
Module 5: Chandelier ATR Stop
Logic: A volatility-based trend follower that hangs a "leash" (ATR multiple) from the highest high (for longs) or lowest low (for shorts).
Function: Used here as an entry filter. If price is above the Chandelier line, the trend is Bullish. It also includes a "Bull/Bear Qualifier" check to ensure structural support.
Module 6: Crypto Market Breadth (CMB)
Logic: This is a macro-filter. It pulls data from multiple major tickers (BTC, ETH, and Perpetual Contracts) across different exchanges.
Function: It calculates a "Market Health" percentage. If Bitcoin is rising but the rest of the market is dumping, this module can veto a trade, ensuring you don't buy into a "fake" rally driven by a single asset.
Module 7: Directional Index Convergence (DIC)
Logic: Analyzes the convergence/divergence between Fast and Slow Directional Movement indices.
Function: Identifies when trend strength is expanding. A buy signal is generated only when the positive directional movement overpowers the negative movement with expanding momentum.
Module 8: Market Thrust Indicator (MTI)
Logic: A volume-weighted breadth indicator. It uses Advance/Decline data and Up/Down Volume data.
Function: This is one of the most powerful modules. It confirms that price movement is supported by actual volume flow. We recommend using the "SSMA" (Super Smoother) MA Type for the cleanest signals on the 4H chart.
Module 9: Simple Ichimoku Cloud
Logic: Traditional Japanese trend analysis using the Tenkan-sen and Kijun-sen.
Function: Checks for a "Kumo Breakout." Price must be fully above the Cloud (for longs) or below it (for shorts). This is a classic "trend confirmation" module.
Module 10: Simple Harmonic Oscillator
Logic: Analyzes the harmonic wave properties of price action to detect cyclical tops and bottoms.
Function: Serves as a counter-trend or early-reversal detector. It tries to identify when a cycle has bottomed out (for buys) or topped out (for sells) before the main trend indicators catch up.
Module 11: HSRS Compression / Super AO
Logic: Two options in one.
HSRS: Hirashima Sugita Resistance Support. Detects volatility compression (squeezes) relative to dynamic support/resistance bands.
Super AO: A combination of the Awesome Oscillator and SuperTrend logic.
Function: Great for catching explosive moves that result from periods of low volatility (consolidation).
Module 12: Fisher Transform (MTF)
Logic: Converts price data into a Gaussian normal distribution.
Function: Identifies extreme price deviations. This module uses Multi-Timeframe (MTF) logic to look at higher-timeframe trends (e.g., looking at the Daily Fisher while trading the 4H chart) to ensure you aren't trading against the major trend.
5. Global Inhibitors (The Veto Power)
Even if 12 out of 12 modules vote "Buy," Gypsy Bot performs a final safety check using Global Inhibitors. If any of these are triggered, the trade is blocked.
Bitcoin Halving Logic:
Hardcoded dates for past and projected future Bitcoin halvings (up to 2040).
Trading is inhibited or restricted during the chaotic weeks immediately surrounding a Halving event to avoid volatility crushes.
Miner Capitulation:
Uses Hash Rate Ribbons (Moving averages of Hash Rate).
If miners are capitulating (Shutting down rigs due to unprofitability), the engine flags a "Bearish" regime and can flip logic to Short-only or flat.
ADX Filter (Flat Market Protocol):
If the Average Directional Index (ADX) is below a specific threshold (e.g., 20), the market is deemed "Flat/Choppy." The bot will refuse to open trend-following trades in a flat market.
CryptoCap Trend:
Checks the total Crypto Market Cap chart. If the broad market is in a downtrend, it can inhibit Long entries on individual altcoins.
6. Risk Management & The Dump Protection Team (DPT)
Gypsy Bot separates "Entry Logic" from "Risk Management Logic."
Dump Protection Team (DPT)
This is a specialized logic branch designed to save the account during Black Swan events.
Nuke Protection: If the DPT detects a volatility signature consistent with a flash crash, it overrides all other logic and forces an immediate exit.
Moon Protection: If a parabolic pump is detected that violates statistical probability (Bollinger deviations), DPT can force a profit take before the inevitable correction.
Advanced Adaptive Trailing Stop (AATS)
Unlike a static trailing stop (e.g., "trail by 5%"), AATS is dynamic.
Penthouse Level: If price is at the top of the HSRS channel (High Volatility), the stop loosens to allow for wicks.
Dungeon Level: If price is compressed at the bottom, the stop tightens to protect capital.
Staged Take Profits
TP1: Scalp a portion (e.g., 10%) to cover fees and secure a win.
TP2: Take the bulk of profit.
TP3: Leave a "Runner" position with a loose trailing stop to catch "Moon" moves.
7. Recommended Setup Guide
When applying Gypsy Bot to a new chart, follow this sequence:
Set Timeframe: 4 Hours (4H).
Reset: Turn OFF Trailing Stop, Stop Loss, and Take Profits. (We want to see raw entry performance first).
Tune DPT: Adjust "Dump/Moon Protection" inputs first. These have the highest impact on net performance.
Tune Module 8 (MTI): This module is a heavy filter. Experiment with the MA Type (SSMA is recommended).
Select Modules: Enable/Disable modules 1-12 based on the asset's personality (Trending vs. Ranging).
Voting Threshold: Adjust ActivateOrders. A lower number = More Trades (Aggressive). A higher number = Fewer, higher conviction trades (Conservative).
Final Polish: Re-enable Stop Losses, Trailing Stops, and Staged Take Profits to smooth the equity curve and define your max risk per trade.
8. Technical Specs
Engine Version: Pine Script V6
Repainting: This strategy uses Closed Candle data for all Risk Management and Entry decisions. This ensures that Backtest results align closely with real-time behavior (no repainting of historical signals).
Alerts: This script generates Strategy alerts. If you require visual-only alerts, see the source code header for instructions on switching to "Study" (Indicator) mode.
Disclaimer:
This script is a complex algorithmic tool for market analysis. Past performance is not indicative of future results. Use this tool to assist your own decision-making, not to replace it.
9. About Signal Lynx
Automation for the Night-Shift Nation 🌙
Signal Lynx focuses on helping traders and developers bridge the gap between indicator logic and real-world automation. The same RM engine you see here powers multiple internal systems and templates, including other public scripts like the Super-AO Strategy with Advanced Risk Management.
We provide this code open source under the Mozilla Public License 2.0 (MPL-2.0) to:
Demonstrate how Adaptive Logic and structured Risk Management can outperform static, one-layer indicators
Give Pine Script users a battle-tested RM backbone they can reuse, remix, and extend
If you are looking to automate your TradingView strategies, route signals to exchanges, or simply want safer, smarter strategy structures, please keep Signal Lynx in your search.
License: Mozilla Public License 2.0 (Open Source).
If you make beneficial modifications, please consider releasing them back to the community so everyone can benefit.
猛の掟・初動スクリーナー v3//@version=5
indicator("猛の掟・初動スクリーナー v3", overlay=true)
// ===============================
// 1. 移動平均線(EMA)設定
// ===============================
ema5 = ta.ema(close, 5)
ema13 = ta.ema(close, 13)
ema26 = ta.ema(close, 26)
plot(ema5, title="EMA5", color=color.orange, linewidth=2)
plot(ema13, title="EMA13", color=color.new(color.blue, 0), linewidth=2)
plot(ema26, title="EMA26", color=color.new(color.gray, 0), linewidth=2)
// ===============================
// 2. MACD(10,26,9)設定
// ===============================
fast = ta.ema(close, 10)
slow = ta.ema(close, 26)
macd = fast - slow
signal = ta.ema(macd, 9)
macdBull = ta.crossover(macd, signal)
// ===============================
// 3. 初動判定ロジック
// ===============================
// ゴールデン並び条件
goldenAligned = ema5 > ema13 and ema13 > ema26
// ローソク足が26EMAより上
priceAbove26 = close > ema26
// 3条件すべて満たすと「確」
bullEntry = goldenAligned and priceAbove26 and macdBull
// ===============================
// 4. スコア(0=なし / 1=猛 / 2=確)
// ===============================
score = bullEntry ? 2 : (goldenAligned ? 1 : 0)
// ===============================
// 5. スコアの色分け
// ===============================
scoreColor = score == 2 ? color.new(color.yellow, 0) : score == 1 ? color.new(color.lime, 0) : color.new(color.gray, 80)
// ===============================
// 6. スコア表示(カラム)
// ===============================
plot(score,
title="猛スコア (0=なし,1=猛,2=確)",
style=plot.style_columns,
color=scoreColor,
linewidth=3)
// 目安ライン
hline(0, "なし", color=color.new(color.gray, 80))
hline(1, "猛", color=color.new(color.lime, 60))
hline(2, "確", color=color.new(color.yellow, 60))
// ===============================
// 7. チャート上に「確」ラベル
// ===============================
plotshape(score == 2,
title="初動確定",
style=shape.labelup,
text="確",
color=color.yellow,
textcolor=color.black,
size=size.tiny,
location=location.belowbar)
MC² Pullback Screener v1.01//@version=5
indicator("MC² Pullback Screener v1.01", overlay=false)
//----------------------------------------------------
// 🔹 PARAMETERS
//----------------------------------------------------
lenTrend = input.int(20, "SMA Trend Length")
relVolLookback = input.int(10, "Relative Volume Lookback")
minRelVol = input.float(0.7, "Min Relative Volume on Pullback")
maxSpikeVol = input.float(3.5, "Max Spike Vol (Reject News Bars)")
pullbackBars = input.int(3, "Pullback Lookback Bars")
//----------------------------------------------------
// 🔹 DATA
//----------------------------------------------------
// Moving averages for trend direction
sma20 = ta.sma(close, lenTrend)
sma50 = ta.sma(close, 50)
// Relative Volume
volAvg = ta.sma(volume, relVolLookback)
relVol = volume / volAvg
// Trend condition
uptrend = close > sma20 and sma20 > sma50
//----------------------------------------------------
// 🔹 BREAKOUT + PULLBACK LOGIC
//----------------------------------------------------
// Recent breakout reference
recentHigh = ta.highest(close, 10)
isBreakout = close > recentHigh
// Pullback logic
nearSupport = close > recentHigh * 0.98 and close < recentHigh * 1.02
lowVolPullback = relVol < minRelVol
// Reject single-bar news spike
rejectSpike = relVol > maxSpikeVol
//----------------------------------------------------
// 🔹 ENTRY SIGNAL
//----------------------------------------------------
pullbackSignal = uptrend and lowVolPullback and nearSupport and not rejectSpike
//----------------------------------------------------
// 🔹 SCREENER OUTPUT
//----------------------------------------------------
// Pine Screener expects a plot output
plot(pullbackSignal ? 1 : 0, title="MC² Pullback Signal", style=plot.style_columns, color=pullbackSignal ? color.green : color.black)
XAUUSD 1m SMC Zones (BOS + Flexible TP Modes + Trailing Runner)//@version=6
strategy("XAUUSD 1m SMC Zones (BOS + Flexible TP Modes + Trailing Runner)",
overlay = true,
initial_capital = 10000,
pyramiding = 10,
process_orders_on_close = true)
//━━━━━━━━━━━━━━━━━━━
// 1. INPUTS
//━━━━━━━━━━━━━━━━━━━
// TP / SL
tp1Pips = input.int(10, "TP1 (pips)", minval = 1)
fixedSLpips = input.int(50, "Fixed SL (pips)", minval = 5)
runnerRR = input.float(3.0, "Runner RR (TP2 = SL * RR)", step = 0.1, minval = 1.0)
// Daily risk
maxDailyLossPct = input.float(5.0, "Max daily loss % (stop trading)", step = 0.5)
maxDailyProfitPct = input.float(20.0, "Max daily profit % (stop trading)", step = 1.0)
// HTF S/R (1H)
htfTF = input.string("60", "HTF timeframe (minutes) for S/R block")
// Profit strategy (Option C)
profitStrategy = input.string("Minimal Risk | Full BE after TP1", "Profit Strategy", options = )
// Runner stop mode (your option 4)
runnerStopMode = input.string( "BE only", "Runner Stop Mode", options = )
// ATR trail settings (only used if ATR mode selected)
atrTrailLen = input.int(14, "ATR Length (trail)", minval = 1)
atrTrailMult = input.float(1.0, "ATR Multiplier (trail)", step = 0.1, minval = 0.1)
// Pip size (for XAUUSD: 1 pip = 0.10 if tick = 0.01)
pipSize = syminfo.mintick * 10.0
tp1Points = tp1Pips * pipSize
slPoints = fixedSLpips * pipSize
baseQty = input.float (1.0, "Base order size" , step = 0.01, minval = 0.01)
//━━━━━━━━━━━━━━━━━━━
// 2. DAILY RISK MANAGEMENT
//━━━━━━━━━━━━━━━━━━━
isNewDay = ta.change(time("D")) != 0
var float dayStartEquity = na
var bool dailyStopped = false
equityNow = strategy.initial_capital + strategy.netprofit
if isNewDay or na(dayStartEquity)
dayStartEquity := equityNow
dailyStopped := false
dailyPnL = equityNow - dayStartEquity
dailyPnLPct = dayStartEquity != 0 ? (dailyPnL / dayStartEquity) * 100.0 : 0.0
if not dailyStopped
if dailyPnLPct <= -maxDailyLossPct
dailyStopped := true
if dailyPnLPct >= maxDailyProfitPct
dailyStopped := true
canTradeToday = not dailyStopped
//━━━━━━━━━━━━━━━━━━━
// 3. 1H S/R ZONES (for direction block)
//━━━━━━━━━━━━━━━━━━━
htOpen = request.security(syminfo.tickerid, htfTF, open)
htHigh = request.security(syminfo.tickerid, htfTF, high)
htLow = request.security(syminfo.tickerid, htfTF, low)
htClose = request.security(syminfo.tickerid, htfTF, close)
// Engulf logic on HTF
htBullPrev = htClose > htOpen
htBearPrev = htClose < htOpen
htBearEngulf = htClose < htOpen and htBullPrev and htOpen >= htClose and htClose <= htOpen
htBullEngulf = htClose > htOpen and htBearPrev and htOpen <= htClose and htClose >= htOpen
// Liquidity sweep on HTF previous candle
htSweepHigh = htHigh > ta.highest(htHigh, 5)
htSweepLow = htLow < ta.lowest(htLow, 5)
// Store last HTF zones
var float htResHigh = na
var float htResLow = na
var float htSupHigh = na
var float htSupLow = na
if htBearEngulf and htSweepHigh
htResHigh := htHigh
htResLow := htLow
if htBullEngulf and htSweepLow
htSupHigh := htHigh
htSupLow := htLow
// Are we inside HTF zones?
inHtfRes = not na(htResHigh) and close <= htResHigh and close >= htResLow
inHtfSup = not na(htSupLow) and close >= htSupLow and close <= htSupHigh
// Block direction against HTF zones
longBlockedByZone = inHtfRes // no buys in HTF resistance
shortBlockedByZone = inHtfSup // no sells in HTF support
//━━━━━━━━━━━━━━━━━━━
// 4. 1m LOCAL ZONES (LIQUIDITY SWEEP + ENGULF + QUALITY SCORE)
//━━━━━━━━━━━━━━━━━━━
// 1m engulf patterns
bullPrev1 = close > open
bearPrev1 = close < open
bearEngulfNow = close < open and bullPrev1 and open >= close and close <= open
bullEngulfNow = close > open and bearPrev1 and open <= close and close >= open
// Liquidity sweep by previous candle on 1m
sweepHighPrev = high > ta.highest(high, 5)
sweepLowPrev = low < ta.lowest(low, 5)
// Local zone storage (one active support + one active resistance)
// Quality score: 1 = engulf only, 2 = engulf + sweep (we only trade ≥2)
var float supLow = na
var float supHigh = na
var int supQ = 0
var bool supUsed = false
var float resLow = na
var float resHigh = na
var int resQ = 0
var bool resUsed = false
// New resistance zone: previous bullish candle -> bear engulf
if bearEngulfNow
resLow := low
resHigh := high
resQ := sweepHighPrev ? 2 : 1
resUsed := false
// New support zone: previous bearish candle -> bull engulf
if bullEngulfNow
supLow := low
supHigh := high
supQ := sweepLowPrev ? 2 : 1
supUsed := false
// Raw "inside zone" detection
inSupRaw = not na(supLow) and close >= supLow and close <= supHigh
inResRaw = not na(resHigh) and close <= resHigh and close >= resLow
// QUALITY FILTER: only trade zones with quality ≥ 2 (engulf + sweep)
highQualitySup = supQ >= 2
highQualityRes = resQ >= 2
inSupZone = inSupRaw and highQualitySup and not supUsed
inResZone = inResRaw and highQualityRes and not resUsed
// Plot zones
plot(supLow, "Sup Low", color = color.new(color.lime, 60), style = plot.style_linebr)
plot(supHigh, "Sup High", color = color.new(color.lime, 60), style = plot.style_linebr)
plot(resLow, "Res Low", color = color.new(color.red, 60), style = plot.style_linebr)
plot(resHigh, "Res High", color = color.new(color.red, 60), style = plot.style_linebr)
//━━━━━━━━━━━━━━━━━━━
// 5. MODERATE BOS (3-BAR FRACTAL STRUCTURE)
//━━━━━━━━━━━━━━━━━━━
// 3-bar swing highs/lows
swHigh = high > high and high > high
swLow = low < low and low < low
var float lastSwingHigh = na
var float lastSwingLow = na
if swHigh
lastSwingHigh := high
if swLow
lastSwingLow := low
// BOS conditions
bosUp = not na(lastSwingHigh) and close > lastSwingHigh
bosDown = not na(lastSwingLow) and close < lastSwingLow
// Zone “arming” and BOS validation
var bool supArmed = false
var bool resArmed = false
var bool supBosOK = false
var bool resBosOK = false
// Arm zones when first touched
if inSupZone
supArmed := true
if inResZone
resArmed := true
// BOS after arming → zone becomes valid for entries
if supArmed and bosUp
supBosOK := true
if resArmed and bosDown
resBosOK := true
// Reset BOS flags when new zones are created
if bullEngulfNow
supArmed := false
supBosOK := false
if bearEngulfNow
resArmed := false
resBosOK := false
//━━━━━━━━━━━━━━━━━━━
// 6. ENTRY CONDITIONS (ZONE + BOS + RISK STATE)
//━━━━━━━━━━━━━━━━━━━
flatOrShort = strategy.position_size <= 0
flatOrLong = strategy.position_size >= 0
longSignal = canTradeToday and not longBlockedByZone and inSupZone and supBosOK and flatOrShort
shortSignal = canTradeToday and not shortBlockedByZone and inResZone and resBosOK and flatOrLong
//━━━━━━━━━━━━━━━━━━━
// 7. ORDER LOGIC – TWO PROFIT STRATEGIES
//━━━━━━━━━━━━━━━━━━━
// Common metrics
atrTrail = ta.atr(atrTrailLen)
// MINIMAL MODE: single trade, BE after TP1, optional trailing
// HYBRID MODE: two trades (Scalp @ TP1, Runner @ TP2)
// Persistent tracking
var float longEntry = na
var float longTP1 = na
var float longTP2 = na
var float longSL = na
var bool longBE = false
var float longRunEntry = na
var float longRunTP1 = na
var float longRunTP2 = na
var float longRunSL = na
var bool longRunBE = false
var float shortEntry = na
var float shortTP1 = na
var float shortTP2 = na
var float shortSL = na
var bool shortBE = false
var float shortRunEntry = na
var float shortRunTP1 = na
var float shortRunTP2 = na
var float shortRunSL = na
var bool shortRunBE = false
isMinimal = profitStrategy == "Minimal Risk | Full BE after TP1"
isHybrid = profitStrategy == "Hybrid | Scalp TP + Runner TP"
//━━━━━━━━━━ LONG ENTRIES ━━━━━━━━━━
if longSignal
if isMinimal
longEntry := close
longSL := longEntry - slPoints
longTP1 := longEntry + tp1Points
longTP2 := longEntry + slPoints * runnerRR
longBE := false
strategy.entry("Long", strategy.long)
supUsed := true
supArmed := false
supBosOK := false
else if isHybrid
longRunEntry := close
longRunSL := longRunEntry - slPoints
longRunTP1 := longRunEntry + tp1Points
longRunTP2 := longRunEntry + slPoints * runnerRR
longRunBE := false
// Two separate entries, each 50% of baseQty (for backtest)
strategy.entry("LongScalp", strategy.long, qty = baseQty * 0.5)
strategy.entry("LongRun", strategy.long, qty = baseQty * 0.5)
supUsed := true
supArmed := false
supBosOK := false
//━━━━━━━━━━ SHORT ENTRIES ━━━━━━━━━━
if shortSignal
if isMinimal
shortEntry := close
shortSL := shortEntry + slPoints
shortTP1 := shortEntry - tp1Points
shortTP2 := shortEntry - slPoints * runnerRR
shortBE := false
strategy.entry("Short", strategy.short)
resUsed := true
resArmed := false
resBosOK := false
else if isHybrid
shortRunEntry := close
shortRunSL := shortRunEntry + slPoints
shortRunTP1 := shortRunEntry - tp1Points
shortRunTP2 := shortRunEntry - slPoints * runnerRR
shortRunBE := false
strategy.entry("ShortScalp", strategy.short, qty = baseQty * 50)
strategy.entry("ShortRun", strategy.short, qty = baseQty * 50)
resUsed := true
resArmed := false
resBosOK := false
//━━━━━━━━━━━━━━━━━━━
// 8. EXIT LOGIC – MINIMAL MODE
//━━━━━━━━━━━━━━━━━━━
// LONG – Minimal Risk: 1 trade, BE after TP1, runner to TP2
if isMinimal and strategy.position_size > 0 and not na(longEntry)
// Move to BE once TP1 is touched
if not longBE and high >= longTP1
longBE := true
// Base SL: BE or initial SL
float dynLongSL = longBE ? longEntry : longSL
// Optional trailing after BE
if longBE
if runnerStopMode == "Structure trail" and not na(lastSwingLow) and lastSwingLow > longEntry
dynLongSL := math.max(dynLongSL, lastSwingLow)
if runnerStopMode == "ATR trail"
trailSL = close - atrTrailMult * atrTrail
dynLongSL := math.max(dynLongSL, trailSL)
strategy.exit("Long Exit", "Long", stop = dynLongSL, limit = longTP2)
// SHORT – Minimal Risk: 1 trade, BE after TP1, runner to TP2
if isMinimal and strategy.position_size < 0 and not na(shortEntry)
if not shortBE and low <= shortTP1
shortBE := true
float dynShortSL = shortBE ? shortEntry : shortSL
if shortBE
if runnerStopMode == "Structure trail" and not na(lastSwingHigh) and lastSwingHigh < shortEntry
dynShortSL := math.min(dynShortSL, lastSwingHigh)
if runnerStopMode == "ATR trail"
trailSLs = close + atrTrailMult * atrTrail
dynShortSL := math.min(dynShortSL, trailSLs)
strategy.exit("Short Exit", "Short", stop = dynShortSL, limit = shortTP2)
//━━━━━━━━━━━━━━━━━━━
// 9. EXIT LOGIC – HYBRID MODE
//━━━━━━━━━━━━━━━━━━━
// LONG – Hybrid: Scalp + Runner
if isHybrid
// Scalp leg: full TP at TP1
if strategy.opentrades > 0
strategy.exit("LScalp TP", "LongScalp", stop = longRunSL, limit = longRunTP1)
// Runner leg
if strategy.position_size > 0 and not na(longRunEntry)
if not longRunBE and high >= longRunTP1
longRunBE := true
float dynLongRunSL = longRunBE ? longRunEntry : longRunSL
if longRunBE
if runnerStopMode == "Structure trail" and not na(lastSwingLow) and lastSwingLow > longRunEntry
dynLongRunSL := math.max(dynLongRunSL, lastSwingLow)
if runnerStopMode == "ATR trail"
trailRunSL = close - atrTrailMult * atrTrail
dynLongRunSL := math.max(dynLongRunSL, trailRunSL)
strategy.exit("LRun TP", "LongRun", stop = dynLongRunSL, limit = longRunTP2)
// SHORT – Hybrid: Scalp + Runner
if isHybrid
if strategy.opentrades > 0
strategy.exit("SScalp TP", "ShortScalp", stop = shortRunSL, limit = shortRunTP1)
if strategy.position_size < 0 and not na(shortRunEntry)
if not shortRunBE and low <= shortRunTP1
shortRunBE := true
float dynShortRunSL = shortRunBE ? shortRunEntry : shortRunSL
if shortRunBE
if runnerStopMode == "Structure trail" and not na(lastSwingHigh) and lastSwingHigh < shortRunEntry
dynShortRunSL := math.min(dynShortRunSL, lastSwingHigh)
if runnerStopMode == "ATR trail"
trailRunSLs = close + atrTrailMult * atrTrail
dynShortRunSL := math.min(dynShortRunSL, trailRunSLs)
strategy.exit("SRun TP", "ShortRun", stop = dynShortRunSL, limit = shortRunTP2)
//━━━━━━━━━━━━━━━━━━━
// 10. RESET STATE WHEN FLAT
//━━━━━━━━━━━━━━━━━━━
if strategy.position_size == 0
longEntry := na
shortEntry := na
longBE := false
shortBE := false
longRunEntry := na
shortRunEntry := na
longRunBE := false
shortRunBE := false
//━━━━━━━━━━━━━━━━━━━
// 11. VISUAL ENTRY MARKERS
//━━━━━━━━━━━━━━━━━━━
plotshape(longSignal, title = "Long Signal", style = shape.triangleup,
location = location.belowbar, color = color.lime, size = size.tiny, text = "L")
plotshape(shortSignal, title = "Short Signal", style = shape.triangledown,
location = location.abovebar, color = color.red, size = size.tiny, text = "S")






















