Tags:

The shadow trading strategy identifies K-line with long lower or upper shadows to determine potential market reversal opportunities. It goes long when a long lower shadow is identified and goes short when a long upper shadow is identified. The strategy mainly utilizes the general principle of shadow reversal for trading.

The core logic of the shadow trading strategy is to identify long upper and lower shadows in K-lines. The strategy calculates the size of the K-line body `corpo`

and the size of the shadows `pinnaL`

and `pinnaS`

. When the size of the shadow is larger than the body size by a certain multiplier, it considers there may be reversal opportunities. Specifically, the strategy includes the following steps:

- Calculate K-line body size
`corpo`

, which is the absolute value of the difference between open and close price. - Calculate upper shadow
`pinnaL`

, which is the absolute value of the difference between highest price and close price. - Calculate lower shadow
`pinnaS`

, which is the absolute value of the difference between lowest price and close price. - Check if upper shadow is larger than body size by a multiplier, through
`pinnaL > (corpo*size)`

, where`size`

is an adjustable parameter. - Check if lower shadow is larger than body size by a multiplier, through
`pinnaS > (corpo*size)`

. - If above conditions are met, go short (long upper shadow) or long (long lower shadow) at the close of the K-line with shadow.

In addition, the strategy also checks if the K-line range `dim`

is greater than the minimum value `min`

to filter out trivial K-lines with negligible range. Stop loss and take profit are used for exit.

- Utilizes the general principle of shadow reversal, which is a relatively reliable trading signal
- Simple and clear strategy logic, intuitive parameter settings, easy to grasp
- Flexible risk control by adjusting parameters to change entry frequency
- Can be further optimized by combining trend, support/resistance etc.

- Probability of failure in shadow reversal exists, can lower risk by adjusting parameters
- Needs combination with trend judgment to avoid counter trend trades
- Parameters need optimization for different products, may vary across products
- Can combine other indicators to filter entries, lower win rate for higher profitability

- Optimize parameters by product to improve stability
- Add trend judgment with moving averages etc. to avoid counter trend
- Add checks on breaking recent high/low points to improve efficacy
- Optimize stop loss and take profit to maximize profit while minimizing loss
- Optimize position sizing, can vary across different products

The shadow trading strategy is a simple and practical short-term trading strategy. It generates trading signals using the general principle of shadow reversals. The strategy logic is simple and easy to implement, and can be adjusted and optimized according to product differences. At the same time, shadow trading also carries certain risks. It needs to be combined with trend and other factors for filtration to reduce false trades. When used properly, shadow trading can become an effective component in a quant trading system.

/*backtest start: 2023-10-01 00:00:00 end: 2023-10-11 23:59:59 period: 10m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 strategy("Shadow Trading", overlay=true) size = input(1,type=float) pinnaL = abs(high - close) pinnaS = abs(low-close) scarto = input(title="Tail Tollerance", type=float, defval=0.0018) corpo = abs(close - open) dim = abs(high-low) min = input(0.001) shortE = (open + dim) longE = (open - dim) barcolor(dim > min and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) ? navy : na) longcond = (dim > min) and (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) minimo=low+scarto massimo=high+scarto barcolor( dim > min and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) ? orange: na) shortcond = (dim > min) and(close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) //plot(shortE) //plot(longE) //plot(open) ss= shortcond ? close : na ll=longcond ? close : na offset= input(0.00000) DayClose = 2 closup = barssince(change(strategy.opentrades)>0) >= DayClose longCondition = (close > open) and (pinnaL > (corpo*size)) and (open-low<scarto) crossFlag = longcond ? 1 : 0 monthBegin = input(1,maxval = 12) yearBegin = input(2013, maxval= 2015, minval=2000) if(month(time)>monthBegin and year(time) >yearBegin) if (longcond) strategy.entry("short", strategy.short, stop = low - offset) //strategy.close("short", when = closup) shortCondition = (close < open) and (pinnaS > (corpo*size)) and (high-open<scarto) if(month(time)>monthBegin and year(time) >yearBegin) if (shortcond) strategy.entry("long", strategy.long, stop = high + offset) //strategy.close("long", when = closup) Target = input(20) Stop = input(70) //- 2 Trailing = input(0) CQ = 100 TPP = (Target > 0) ? Target*10: na SLP = (Stop > 0) ? Stop*10 : na TSP = (Trailing > 0) ? Trailing : na strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP) strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

- Moving Average Crossover Strategy
- Dual Breakout Strategy
- Cross Limit Order Cross Period Trading Strategy
- Ichimoku Stop Loss Strategy
- Keltner Channel Trend Based Strategy
- Scaled Normalized Vector Strategy with Karobein Mean Reversion
- Dual Moving Average Reversal Strategy
- Intraday Pivot Breakout Strategy
- Jupiter and Saturn Momentum MA Crossover Filtered Strategy
- Beyond The Clouds Strategy
- Trend Breakout Moving Average Tracking Strategy
- Volume Oscillator Based Trend Tracking Strategy
- Trend Following Long Term Strategy Based on SuperTrend and Fisher Transform
- Dual Golden Cross Reversal Trading Strategy
- 斐波那契回撤交易策略脚本
- RSI-BB Momentum Breakout Strategy
- Breakout Band Fixed Stop Loss Strategy
- RSI and SuperTrend Based Dual Direction Trading Strategy
- EMA 13 48 Trend Following Strategy
- Williams Accumulation/Distribution (Williams AD) Strategy