
Strategi ini adalah sistem perdagangan momentum yang menggabungkan beberapa petunjuk teknikal dan mengintegrasikan mekanisme berhenti dan kehilangan yang fleksibel. Strategi ini menggunakan tanda silang tiga petunjuk teknikal yang biasa digunakan, RSI, EMA dan MACD, untuk menilai trend dan momentum pasaran, dan membuat keputusan perdagangan berdasarkan itu. Strategi ini juga memperkenalkan konsep peratusan stop loss dan kadar keuntungan risiko untuk mengoptimumkan pengurusan dana dan kawalan risiko.
Prinsip utama strategi ini adalah untuk mengenal pasti peluang dagangan yang berpotensi melalui kerjasama pelbagai indikator.
Strategi akan mencetuskan isyarat perdagangan apabila kedua-dua indikator ini memenuhi syarat tertentu pada masa yang sama. Sebagai contoh, apabila EMA jangka pendek melintasi EMA jangka panjang, RSI di bawah paras overbought dan carta MACD di atas garis isyarat, isyarat melakukan lebih banyak akan dihasilkan.
Di samping itu, strategi ini juga menggabungkan mekanisme peratusan stop loss, yang membolehkan peniaga menetapkan tahap stop loss dan stop loss yang sesuai mengikut keutamaan risiko mereka sendiri. Pengenalan nisbah risiko keuntungan mengoptimumkan lagi strategi pengurusan wang.
Strategi perdagangan lintas-indikator ini menyediakan pedagang dengan sistem perdagangan yang komprehensif dengan menggunakan indikator teknikal seperti RSI, EMA, dan MACD secara komprehensif, digabungkan dengan mekanisme stop-loss yang fleksibel. Kelebihan strategi ini adalah keupayaan untuk menganalisis pasaran dari pelbagai sudut dan pendekatan pengurusan risiko yang fleksibel.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-10-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Crypto Futures Day Trading with Profit/Limit/Loss", overlay=true, margin_long=100, margin_short=100)
// Parameters for the strategy
rsiPeriod = input.int(14, title="RSI Period")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
emaShortPeriod = input.int(9, title="Short EMA Period")
emaLongPeriod = input.int(21, title="Long EMA Period")
macdFastLength = input.int(12, title="MACD Fast Length")
macdSlowLength = input.int(26, title="MACD Slow Length")
macdSignalSmoothing = input.int(9, title="MACD Signal Smoothing")
// Parameters for Take Profit, Stop Loss, and Limit
takeProfitPercent = input.float(3, title="Take Profit %", step=0.1) // 3% by default
stopLossPercent = input.float(1, title="Stop Loss %", step=0.1) // 1% by default
limitRiskRewardRatio = input.float(2, title="Risk/Reward Ratio", step=0.1) // Example: 2:1 ratio
// Calculate RSI
rsi = ta.rsi(close, rsiPeriod)
// Calculate EMA (Exponential Moving Average)
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)
// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalSmoothing)
// Calculate take profit and stop loss levels
takeProfitLong = strategy.position_avg_price * (1 + takeProfitPercent / 100)
stopLossLong = strategy.position_avg_price * (1 - stopLossPercent / 100)
takeProfitShort = strategy.position_avg_price * (1 - takeProfitPercent / 100)
stopLossShort = strategy.position_avg_price * (1 + stopLossPercent / 100)
// Entry conditions for long position
longCondition = ta.crossover(emaShort, emaLong) and rsi < rsiOverbought and macdLine > signalLine
if (longCondition)
strategy.entry("Long", strategy.long)
// Exit conditions for long position based on stop loss and take profit
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", limit=takeProfitLong, stop=stopLossLong)
// Entry conditions for short position
shortCondition = ta.crossunder(emaShort, emaLong) and rsi > rsiOversold and macdLine < signalLine
if (shortCondition)
strategy.entry("Short", strategy.short)
// Exit conditions for short position based on stop loss and take profit
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", limit=takeProfitShort, stop=stopLossShort)
// Plot EMA lines on the chart
plot(emaShort, color=color.blue, title="Short EMA (9)")
plot(emaLong, color=color.red, title="Long EMA (21)")
// Plot MACD and signal lines in a separate window
plot(macdLine, color=color.green, title="MACD Line")
plot(signalLine, color=color.orange, title="Signal Line")
// Plot RSI
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")