This short strategy focuses on downside moves during bear markets, while ensuring the asset trades within a long-term downtrend, exiting after further downside.
The logic is:
Compute MACD short, long and histogram lines
Bearish MACD crossover signals potential downtrend
Price below 450-day MA confirms long-term downtrend
Enter short when both conditions met
Take profit set at 8% below entry price
Stop loss set at 4% above entry price
It utilizes MACD for short-term turns and long MA to avoid blind shorting. Profit/loss controls risk.
MACD signals short-term downside potential
Long MA filter avoids shorting reversals
2:1 profit/loss ratio controls risk
Requires MACD parameter tuning
Long MA prone to lagging signals
SHORT only misses long opportunities
This strategy captures short-term down moves when ensured of a bear trend. Profit/loss tuning and position sizing are key for performance.
/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Coinrule
//@version=5
strategy("Shorting Bearish MACD Cross with Price Below EMA 450 (By Coinrule)", overlay=true, initial_capital = 10000, default_qty_value = 30, default_qty_type = strategy.percent_of_equity, commission_type=strategy.commission.percent, commission_value=0.1)
// EMAs
slowEMA = ta.ema(close, 450)
// MACD
[macdLine, signalLine, histogramLine] = ta.macd(close, 11, 26, 9)
// Conditions
goShortCondition1 = ta.crossunder(macdLine, signalLine)
goShortCondition2 = slowEMA > close
timePeriod = time >= timestamp(syminfo.timezone, 2021, 12, 1, 0, 0)
notInTrade = strategy.position_size <= 0
strategyDirection = strategy.direction.short
if (goShortCondition1 and goShortCondition2 and timePeriod and notInTrade)
stopLoss = high * 1.04
takeProfit = low * 0.92
strategy.entry("Short", strategy.short)
strategy.exit("exit","Short", stop=stopLoss, limit=takeProfit)
plot(slowEMA, color=color.green)